INT_PTR CGeneralOptions::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { CAppMain &App=GetAppClass(); ::SendDlgItemMessage(hDlg,IDC_OPTIONS_DRIVERDIRECTORY,EM_LIMITTEXT,MAX_PATH-1,0); ::SetDlgItemText(hDlg,IDC_OPTIONS_DRIVERDIRECTORY,m_BonDriverDirectory.c_str()); // BonDriver ::CheckRadioButton(hDlg,IDC_OPTIONS_DEFAULTDRIVER_NONE, IDC_OPTIONS_DEFAULTDRIVER_CUSTOM, (int)m_DefaultDriverType+IDC_OPTIONS_DEFAULTDRIVER_NONE); EnableDlgItems(hDlg,IDC_OPTIONS_DEFAULTDRIVER, IDC_OPTIONS_DEFAULTDRIVER_BROWSE, m_DefaultDriverType==DEFAULT_DRIVER_CUSTOM); const CDriverManager &DriverManager=App.DriverManager; DlgComboBox_LimitText(hDlg,IDC_OPTIONS_DEFAULTDRIVER,MAX_PATH-1); for (int i=0;i<DriverManager.NumDrivers();i++) { DlgComboBox_AddString(hDlg,IDC_OPTIONS_DEFAULTDRIVER, DriverManager.GetDriverInfo(i)->GetFileName()); } ::SetDlgItemText(hDlg,IDC_OPTIONS_DEFAULTDRIVER,m_DefaultBonDriverName.c_str()); DlgCheckBox_Check(hDlg,IDC_OPTIONS_RESIDENT,m_fResident); DlgCheckBox_Check(hDlg,IDC_OPTIONS_KEEPSINGLETASK,m_fKeepSingleTask); DlgCheckBox_Check(hDlg,IDC_OPTIONS_STANDALONEPROGRAMGUIDE,m_fStandaloneProgramGuide); DlgCheckBox_Check(hDlg,IDC_OPTIONS_ENABLE1SEGFALLBACK,m_fEnable1SegFallback); if (Util::OS::IsWindows7OrLater()) { DlgCheckBox_Check(hDlg,IDC_OPTIONS_USEUNIQUEAPPID, App.TaskbarOptions.GetUseUniqueAppID()); DlgCheckBox_Check(hDlg,IDC_OPTIONS_ENABLEJUMPLIST, App.TaskbarOptions.GetEnableJumpList()); DlgCheckBox_Check(hDlg,IDC_OPTIONS_JUMPLISTKEEPSINGLETASK, App.TaskbarOptions.GetJumpListKeepSingleTask()); EnableDlgItem(hDlg,IDC_OPTIONS_JUMPLISTKEEPSINGLETASK, App.TaskbarOptions.GetEnableJumpList()); } else { EnableDlgItems(hDlg, IDC_OPTIONS_ENABLEJUMPLIST, IDC_OPTIONS_USEUNIQUEAPPID, false); } } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_OPTIONS_DRIVERDIRECTORY_BROWSE: { TCHAR szDirectory[MAX_PATH]; if (::GetDlgItemText(hDlg,IDC_OPTIONS_DRIVERDIRECTORY,szDirectory,lengthof(szDirectory))>0) { if (::PathIsRelative(szDirectory)) { TCHAR szTemp[MAX_PATH]; GetAppClass().GetAppDirectory(szTemp); ::PathAppend(szTemp,szDirectory); ::PathCanonicalize(szDirectory,szTemp); } } else { GetAppClass().GetAppDirectory(szDirectory); } if (BrowseFolderDialog(hDlg,szDirectory,TEXT("BonDriver の検索フォルダを選択してください。"))) ::SetDlgItemText(hDlg,IDC_OPTIONS_DRIVERDIRECTORY,szDirectory); } return TRUE; case IDC_OPTIONS_DEFAULTDRIVER_NONE: case IDC_OPTIONS_DEFAULTDRIVER_LAST: case IDC_OPTIONS_DEFAULTDRIVER_CUSTOM: EnableDlgItemsSyncCheckBox(hDlg,IDC_OPTIONS_DEFAULTDRIVER, IDC_OPTIONS_DEFAULTDRIVER_BROWSE, IDC_OPTIONS_DEFAULTDRIVER_CUSTOM); return TRUE; case IDC_OPTIONS_DEFAULTDRIVER_BROWSE: { OPENFILENAME ofn; TCHAR szFileName[MAX_PATH],szInitDir[MAX_PATH]; CFilePath FilePath; ::GetDlgItemText(hDlg,IDC_OPTIONS_DEFAULTDRIVER,szFileName,lengthof(szFileName)); FilePath.SetPath(szFileName); if (FilePath.GetDirectory(szInitDir)) { ::lstrcpy(szFileName,FilePath.GetFileName()); } else { GetAppClass().GetAppDirectory(szInitDir); } InitOpenFileName(&ofn); ofn.hwndOwner=hDlg; ofn.lpstrFilter= TEXT("BonDriver(BonDriver*.dll)\0BonDriver*.dll\0") TEXT("すべてのファイル\0*.*\0"); ofn.lpstrFile=szFileName; ofn.nMaxFile=lengthof(szFileName); ofn.lpstrInitialDir=szInitDir; ofn.lpstrTitle=TEXT("BonDriverの選択"); ofn.Flags=OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_EXPLORER; if (FileOpenDialog(&ofn)) ::SetDlgItemText(hDlg,IDC_OPTIONS_DEFAULTDRIVER,szFileName); } return TRUE; case IDC_OPTIONS_ENABLEJUMPLIST: EnableDlgItemSyncCheckBox(hDlg, IDC_OPTIONS_JUMPLISTKEEPSINGLETASK, IDC_OPTIONS_ENABLEJUMPLIST); return TRUE; } return TRUE; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: { TCHAR szDirectory[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_OPTIONS_DRIVERDIRECTORY, szDirectory,lengthof(szDirectory)); m_BonDriverDirectory=szDirectory; m_DefaultDriverType=(DefaultDriverType) (GetCheckedRadioButton(hDlg,IDC_OPTIONS_DEFAULTDRIVER_NONE, IDC_OPTIONS_DEFAULTDRIVER_CUSTOM)- IDC_OPTIONS_DEFAULTDRIVER_NONE); TCHAR szDefaultBonDriver[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_OPTIONS_DEFAULTDRIVER, szDefaultBonDriver,lengthof(szDefaultBonDriver)); m_DefaultBonDriverName=szDefaultBonDriver; bool fResident=DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_RESIDENT); if (fResident!=m_fResident) { m_fResident=fResident; SetUpdateFlag(UPDATE_RESIDENT); } m_fKeepSingleTask= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_KEEPSINGLETASK); m_fStandaloneProgramGuide= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_STANDALONEPROGRAMGUIDE); bool fEnable1SegFallback= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_ENABLE1SEGFALLBACK); if (fEnable1SegFallback!=m_fEnable1SegFallback) { m_fEnable1SegFallback=fEnable1SegFallback; SetUpdateFlag(UPDATE_1SEGFALLBACK); } if (Util::OS::IsWindows7OrLater()) { CTaskbarOptions &TaskbarOptions=GetAppClass().TaskbarOptions; TaskbarOptions.SetUseUniqueAppID( DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_USEUNIQUEAPPID)); TaskbarOptions.SetEnableJumpList( DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_ENABLEJUMPLIST)); TaskbarOptions.SetJumpListKeepSingleTask( DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_JUMPLISTKEEPSINGLETASK)); TaskbarOptions.SetChanged(); } m_fChanged=true; } return TRUE; } break; } return FALSE; }
INT_PTR CViewOptions::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { // ウィンドウ設定 DlgCheckBox_Check(hDlg,IDC_OPTIONS_SNAPATWINDOWEDGE, m_fSnapAtWindowEdge); DlgCheckBox_Check(hDlg,IDC_OPTIONS_ADJUSTASPECTRESIZING, m_fAdjustAspectResizing); DlgCheckBox_Check(hDlg,IDC_OPTIONS_NEARCORNERRESIZEORIGIN, m_fNearCornerResizeOrigin); DlgCheckBox_Check(hDlg,IDC_OPTIONS_ZOOMKEEPASPECTRATIO,m_fZoomKeepAspectRatio); { static const LPCTSTR AdjustWindowModeList[] = { TEXT("サイズを変えない"), TEXT("幅のみ変える"), TEXT("幅と高さを変える"), }; for (int i=0;i<lengthof(AdjustWindowModeList);i++) { DlgComboBox_AddString(hDlg,IDC_OPTIONS_PANSCANADJUSTWINDOW, AdjustWindowModeList[i]); } DlgComboBox_SetCurSel(hDlg,IDC_OPTIONS_PANSCANADJUSTWINDOW, m_PanScanAdjustWindowMode); } DlgCheckBox_Check(hDlg,IDC_OPTIONS_REMEMBER1SEGWINDOWSIZE,m_fRemember1SegWindowSize); DlgCheckBox_Check(hDlg,IDC_OPTIONS_MINIMIZETOTRAY,m_fMinimizeToTray); DlgCheckBox_Check(hDlg,IDC_OPTIONS_MINIMIZEDISABLEPREVIEW, m_fDisablePreviewWhenMinimized); DlgCheckBox_Check(hDlg,IDC_OPTIONS_USELOGOICON, m_fUseLogoIcon); DlgCheckBox_Check(hDlg,IDC_OPTIONS_SHOWTITLEEVENTTIME, m_fShowTitleEventTime); DlgCheckBox_Check(hDlg,IDC_OPTIONS_SHOWLOGO,m_fShowLogo); ::SetDlgItemText(hDlg,IDC_OPTIONS_LOGOFILENAME,m_szLogoFileName); ::SendDlgItemMessage(hDlg,IDC_OPTIONS_LOGOFILENAME,EM_LIMITTEXT,MAX_PATH-1,0); ::EnableDlgItems(hDlg,IDC_OPTIONS_LOGOFILENAME,IDC_OPTIONS_LOGOFILENAME_BROWSE, m_fShowLogo); // 抑止設定 DlgCheckBox_Check(hDlg,IDC_OPTIONS_NOSCREENSAVER,m_fNoScreenSaver); DlgCheckBox_Check(hDlg,IDC_OPTIONS_NOMONITORLOWPOWER,m_fNoMonitorLowPower); DlgCheckBox_Check(hDlg,IDC_OPTIONS_NOMONITORLOWPOWERACTIVEONLY, m_fNoMonitorLowPowerActiveOnly); EnableDlgItem(hDlg,IDC_OPTIONS_NOMONITORLOWPOWERACTIVEONLY,m_fNoMonitorLowPower); } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_OPTIONS_SHOWLOGO: EnableDlgItemsSyncCheckBox(hDlg,IDC_OPTIONS_LOGOFILENAME,IDC_OPTIONS_LOGOFILENAME_BROWSE, IDC_OPTIONS_SHOWLOGO); return TRUE; case IDC_OPTIONS_LOGOFILENAME_BROWSE: { OPENFILENAME ofn; TCHAR szFileName[MAX_PATH],szInitDir[MAX_PATH]; CFilePath FilePath; ::GetDlgItemText(hDlg,IDC_OPTIONS_LOGOFILENAME,szFileName,lengthof(szFileName)); FilePath.SetPath(szFileName); if (FilePath.GetDirectory(szInitDir)) { ::lstrcpy(szFileName,FilePath.GetFileName()); } else { GetAppClass().GetAppDirectory(szInitDir); } InitOpenFileName(&ofn); ofn.hwndOwner=hDlg; ofn.lpstrFilter= TEXT("BMPファイル(*.bmp)\0*.bmp\0") TEXT("すべてのファイル\0*.*\0"); ofn.lpstrFile=szFileName; ofn.nMaxFile=lengthof(szFileName); ofn.lpstrInitialDir=szInitDir; ofn.lpstrTitle=TEXT("ロゴ画像の選択"); ofn.Flags=OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_EXPLORER; if (::GetOpenFileName(&ofn)) { ::SetDlgItemText(hDlg,IDC_OPTIONS_LOGOFILENAME,szFileName); } } return TRUE; case IDC_OPTIONS_NOMONITORLOWPOWER: EnableDlgItemSyncCheckBox(hDlg,IDC_OPTIONS_NOMONITORLOWPOWERACTIVEONLY, IDC_OPTIONS_NOMONITORLOWPOWER); return TRUE; } return TRUE; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: { CAppMain &App=GetAppClass(); bool f; m_fSnapAtWindowEdge= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_SNAPATWINDOWEDGE); m_fAdjustAspectResizing= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_ADJUSTASPECTRESIZING); m_fNearCornerResizeOrigin= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_NEARCORNERRESIZEORIGIN); m_fZoomKeepAspectRatio= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_ZOOMKEEPASPECTRATIO); m_PanScanAdjustWindowMode=(AdjustWindowMode) DlgComboBox_GetCurSel(hDlg,IDC_OPTIONS_PANSCANADJUSTWINDOW); m_fRemember1SegWindowSize= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_REMEMBER1SEGWINDOWSIZE); m_fMinimizeToTray= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_MINIMIZETOTRAY); m_fDisablePreviewWhenMinimized= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_MINIMIZEDISABLEPREVIEW); f=DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_USELOGOICON); if (m_fUseLogoIcon!=f) { m_fUseLogoIcon=f; App.UICore.UpdateIcon(); } f=DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_SHOWTITLEEVENTTIME); if (m_fShowTitleEventTime!=f) { m_fShowTitleEventTime=f; App.UICore.UpdateTitle(); } { bool fLogo=DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_SHOWLOGO); TCHAR szFileName[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_OPTIONS_LOGOFILENAME,szFileName,MAX_PATH); if (fLogo!=m_fShowLogo || ::lstrcmp(szFileName,m_szLogoFileName)!=0) { m_fShowLogo=fLogo; ::lstrcpy(m_szLogoFileName,szFileName); SetUpdateFlag(UPDATE_LOGO); } } m_fNoScreenSaver= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_NOSCREENSAVER); m_fNoMonitorLowPower= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_NOMONITORLOWPOWER); m_fNoMonitorLowPowerActiveOnly= DlgCheckBox_IsChecked(hDlg,IDC_OPTIONS_NOMONITORLOWPOWERACTIVEONLY); App.UICore.PreventDisplaySave(true); m_fChanged=true; } break; } break; } return FALSE; }