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 CPanelOptions::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { DlgCheckBox_Check(hDlg,IDC_PANELOPTIONS_SNAPATMAINWINDOW, m_fSnapAtMainWindow); DlgCheckBox_Check(hDlg,IDC_PANELOPTIONS_ATTACHTOMAINWINDOW, m_fAttachToMainWindow); // Opacity ::SendDlgItemMessage(hDlg,IDC_PANELOPTIONS_OPACITY_TB, TBM_SETRANGE,TRUE,MAKELPARAM(20,100)); ::SendDlgItemMessage(hDlg,IDC_PANELOPTIONS_OPACITY_TB, TBM_SETPOS,TRUE,m_Opacity); ::SendDlgItemMessage(hDlg,IDC_PANELOPTIONS_OPACITY_TB, TBM_SETPAGESIZE,0,10); ::SendDlgItemMessage(hDlg,IDC_PANELOPTIONS_OPACITY_TB, TBM_SETTICFREQ,10,0); ::SetDlgItemInt(hDlg,IDC_PANELOPTIONS_OPACITY_EDIT,m_Opacity,TRUE); ::SendDlgItemMessage(hDlg,IDC_PANELOPTIONS_OPACITY_UD, UDM_SETRANGE,0,MAKELPARAM(100,20)); m_CurSettingFont=m_Font; SetFontInfo(hDlg,IDC_PANELOPTIONS_FONTINFO,&m_Font); DlgCheckBox_Check(hDlg,IDC_PANELOPTIONS_SPECCAPTIONFONT,m_fSpecCaptionFont); EnableDlgItems(hDlg,IDC_PANELOPTIONS_CAPTIONFONT_INFO, IDC_PANELOPTIONS_CAPTIONFONT_CHOOSE, m_fSpecCaptionFont); m_CurSettingCaptionFont=m_CaptionFont; SetFontInfo(hDlg,IDC_PANELOPTIONS_CAPTIONFONT_INFO,&m_CaptionFont); m_ItemListView.Attach(::GetDlgItem(hDlg,IDC_PANELOPTIONS_ITEMLIST)); m_ItemListView.InitCheckList(); PanelItemInfoList ItemList(m_ItemList); for (size_t i=0;i<m_AvailItemList.size();i++) { const TVTest::String &ID=m_AvailItemList[i].ID; if (std::find_if(ItemList.begin(),ItemList.end(), [&](const PanelItemInfo &Item) -> bool { return CompareID(Item.ID,ID); })==ItemList.end()) { PanelItemInfo Item; Item.ID=ID; Item.fVisible=m_AvailItemList[i].fVisible; ItemList.push_back(Item); } } int ItemCount=0; for (int i=0;i<(int)ItemList.size();i++) { const PanelItemInfo &Item=ItemList[i]; int ID=GetItemIDFromIDText(Item.ID); if (ID>=0) { m_ItemListView.InsertItem(ItemCount,m_AvailItemList[ID].Title.c_str(),ID); m_ItemListView.CheckItem(ItemCount,Item.fVisible); ItemCount++; } } UpdateItemListControlsState(); DlgComboBox_AddString(hDlg,IDC_PANELOPTIONS_FIRSTTAB,TEXT("最後に表示したタブ")); int Sel=0; if (!m_InitialTab.empty()) { LPTSTR p; long IDNum=std::_tcstol(m_InitialTab.c_str(),&p,10); if (*p==_T('\0')) { if (IDNum>=0 && (size_t)IDNum<m_AvailItemList.size()) Sel=IDNum+1; } } for (size_t i=0;i<m_AvailItemList.size();i++) { DlgComboBox_AddString(hDlg,IDC_PANELOPTIONS_FIRSTTAB,m_AvailItemList[i].Title.c_str()); if (Sel==0 && CompareID(m_AvailItemList[i].ID,m_InitialTab)) Sel=(int)i+1; } DlgComboBox_SetCurSel(hDlg,IDC_PANELOPTIONS_FIRSTTAB,Sel); static const LPCTSTR TabStyleList[] = { TEXT("文字のみ"), TEXT("アイコンのみ"), TEXT("アイコンと文字"), }; for (int i=0;i<lengthof(TabStyleList);i++) DlgComboBox_AddString(hDlg,IDC_PANELOPTIONS_TABSTYLE,TabStyleList[i]); DlgComboBox_SetCurSel(hDlg,IDC_PANELOPTIONS_TABSTYLE,(int)m_TabStyle); DlgCheckBox_Check(hDlg,IDC_PANELOPTIONS_TABTOOLTIP,m_fTabTooltip); } return TRUE; case WM_HSCROLL: if (reinterpret_cast<HWND>(lParam)== ::GetDlgItem(hDlg,IDC_PANELOPTIONS_OPACITY_TB)) { SyncEditWithTrackBar(hDlg,IDC_PANELOPTIONS_OPACITY_TB, IDC_PANELOPTIONS_OPACITY_EDIT); } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_PANELOPTIONS_OPACITY_EDIT: if (HIWORD(wParam)==EN_CHANGE) SyncTrackBarWithEdit(hDlg,IDC_PANELOPTIONS_OPACITY_EDIT, IDC_PANELOPTIONS_OPACITY_TB); return TRUE; case IDC_PANELOPTIONS_ITEMLIST_UP: case IDC_PANELOPTIONS_ITEMLIST_DOWN: { int From=m_ItemListView.GetSelectedItem(),To; if (LOWORD(wParam)==IDC_PANELOPTIONS_ITEMLIST_UP) To=From-1; else To=From+1; if (To<0 || To>=m_ItemListView.GetItemCount()) return TRUE; m_ItemListView.MoveItem(From,To); UpdateItemListControlsState(); } return TRUE; case IDC_PANELOPTIONS_CHOOSEFONT: if (ChooseFontDialog(hDlg,&m_CurSettingFont)) SetFontInfo(hDlg,IDC_PANELOPTIONS_FONTINFO,&m_CurSettingFont); return TRUE; case IDC_PANELOPTIONS_SPECCAPTIONFONT: EnableDlgItemsSyncCheckBox(hDlg,IDC_PANELOPTIONS_CAPTIONFONT_INFO, IDC_PANELOPTIONS_CAPTIONFONT_CHOOSE, IDC_PANELOPTIONS_SPECCAPTIONFONT); return TRUE; case IDC_PANELOPTIONS_CAPTIONFONT_CHOOSE: if (ChooseFontDialog(hDlg,&m_CurSettingCaptionFont)) SetFontInfo(hDlg,IDC_PANELOPTIONS_CAPTIONFONT_INFO,&m_CurSettingCaptionFont); return TRUE; } return TRUE; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: { CMainPanel &Panel=GetAppClass().Panel; m_fSnapAtMainWindow= DlgCheckBox_IsChecked(hDlg,IDC_PANELOPTIONS_SNAPATMAINWINDOW); m_fAttachToMainWindow= DlgCheckBox_IsChecked(hDlg,IDC_PANELOPTIONS_ATTACHTOMAINWINDOW); m_Opacity=::GetDlgItemInt(hDlg,IDC_PANELOPTIONS_OPACITY_EDIT,NULL,TRUE); Panel.Frame.SetPanelOpacity(m_Opacity*255/100); bool fFontChanged=!CompareLogFont(&m_Font,&m_CurSettingFont); if (fFontChanged) { m_Font=m_CurSettingFont; Panel.Form.SetTabFont(&m_Font); Panel.Form.SetPageFont(&m_Font); } bool fChangeCaptionFont=false; bool fSpecCaptionFont=DlgCheckBox_IsChecked(hDlg,IDC_PANELOPTIONS_SPECCAPTIONFONT); if (m_fSpecCaptionFont!=fSpecCaptionFont) { m_fSpecCaptionFont=fSpecCaptionFont; fChangeCaptionFont=true; } if (!CompareLogFont(&m_CaptionFont,&m_CurSettingCaptionFont)) { m_CaptionFont=m_CurSettingCaptionFont; if (m_fSpecCaptionFont) fChangeCaptionFont=true; } else if (m_fSpecCaptionFont && fFontChanged) { fChangeCaptionFont=true; } if (fChangeCaptionFont) { CPanelForm::CPage *pCaptionPanel=Panel.Form.GetPageByID(PANEL_ID_CAPTION); if (pCaptionPanel!=NULL) pCaptionPanel->SetFont(m_fSpecCaptionFont? &m_CaptionFont:&m_Font); } const int ItemCount=m_ItemListView.GetItemCount(); m_ItemList.clear(); m_ItemList.resize(ItemCount); for (int i=0;i<ItemCount;i++) { const PanelItemInfo &ItemInfo=m_AvailItemList[m_ItemListView.GetItemParam(i)]; m_ItemList[i].ID=ItemInfo.ID; m_ItemList[i].fVisible=m_ItemListView.IsItemChecked(i); } ApplyItemList(&Panel.Form); int InitialTab=(int)DlgComboBox_GetCurSel(hDlg,IDC_PANELOPTIONS_FIRSTTAB); if (InitialTab==0) { m_InitialTab.clear(); } else if (InitialTab>0) { m_InitialTab=m_AvailItemList[InitialTab-1].ID; } int TabStyleSel=(int)DlgComboBox_GetCurSel(hDlg,IDC_PANELOPTIONS_TABSTYLE); if (TabStyleSel>=0) { m_TabStyle=static_cast<CPanelForm::TabStyle>(TabStyleSel); Panel.Form.SetTabStyle(m_TabStyle); } m_fTabTooltip= DlgCheckBox_IsChecked(hDlg,IDC_PANELOPTIONS_TABTOOLTIP); Panel.Form.EnableTooltip(m_fTabTooltip); m_fChanged=true; } break; case LVN_ITEMCHANGED: UpdateItemListControlsState(); return TRUE; } break; case WM_DESTROY: m_ItemListView.Detach(); return TRUE; } return FALSE; }
INT_PTR CEpgOptions::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { CLogoManager &LogoManager=GetAppClass().LogoManager; DlgCheckBox_Check(hDlg,IDC_EPGOPTIONS_SAVEEPGFILE,m_fSaveEpgFile); ::EnableDlgItems(hDlg,IDC_EPGOPTIONS_EPGFILENAME_LABEL, IDC_EPGOPTIONS_EPGFILENAME_BROWSE,m_fSaveEpgFile); ::SendDlgItemMessage(hDlg,IDC_EPGOPTIONS_EPGFILENAME, EM_LIMITTEXT,MAX_PATH-1,0); ::SetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGFILENAME,m_szEpgFileName); DlgCheckBox_Check(hDlg,IDC_EPGOPTIONS_UPDATEWHENSTANDBY,m_fUpdateWhenStandby); DlgCheckBox_Check(hDlg,IDC_EPGOPTIONS_UPDATEBSEXTENDED,m_fUpdateBSExtended); DlgCheckBox_Check(hDlg,IDC_EPGOPTIONS_UPDATECSEXTENDED,m_fUpdateCSExtended); DlgCheckBox_Check(hDlg,IDC_EPGOPTIONS_USEEPGDATA,m_fUseEDCBData); ::SendDlgItemMessage(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER,EM_LIMITTEXT,MAX_PATH-1,0); ::SetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER,m_szEDCBDataFolder); EnableDlgItems(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER_LABEL, IDC_EPGOPTIONS_EPGDATAFOLDER_BROWSE, m_fUseEDCBData); DlgCheckBox_Check(hDlg,IDC_LOGOOPTIONS_SAVEDATA,m_fSaveLogoFile); ::SendDlgItemMessage(hDlg,IDC_LOGOOPTIONS_DATAFILENAME,EM_LIMITTEXT,MAX_PATH-1,0); ::SetDlgItemText(hDlg,IDC_LOGOOPTIONS_DATAFILENAME,m_szLogoFileName); EnableDlgItems(hDlg,IDC_LOGOOPTIONS_DATAFILENAME_LABEL, IDC_LOGOOPTIONS_DATAFILENAME_BROWSE, m_fSaveLogoFile); DlgCheckBox_Check(hDlg,IDC_LOGOOPTIONS_SAVERAWLOGO,LogoManager.GetSaveLogo()); DlgCheckBox_Check(hDlg,IDC_LOGOOPTIONS_SAVEBMPLOGO,LogoManager.GetSaveLogoBmp()); ::SendDlgItemMessage(hDlg,IDC_LOGOOPTIONS_LOGOFOLDER,EM_LIMITTEXT,MAX_PATH-1,0); ::SetDlgItemText(hDlg,IDC_LOGOOPTIONS_LOGOFOLDER,LogoManager.GetLogoDirectory()); m_CurEventInfoFont=m_EventInfoFont; TVTest::StyleUtil::SetFontInfoItem(hDlg,IDC_EVENTINFOOPTIONS_FONT_INFO,m_CurEventInfoFont); } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_EPGOPTIONS_SAVEEPGFILE: EnableDlgItemsSyncCheckBox(hDlg, IDC_EPGOPTIONS_EPGFILENAME_LABEL, IDC_EPGOPTIONS_EPGFILENAME_BROWSE, IDC_EPGOPTIONS_SAVEEPGFILE); return TRUE; case IDC_EPGOPTIONS_EPGFILENAME_BROWSE: { OPENFILENAME ofn; TCHAR szFileName[MAX_PATH],szInitialDir[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGFILENAME, szFileName,lengthof(szFileName)); ofn.lStructSize=sizeof(OPENFILENAME); ofn.hwndOwner=hDlg; ofn.lpstrFilter=TEXT("すべてのファイル\0*.*\0"); ofn.lpstrCustomFilter=NULL; ofn.nFilterIndex=1; ofn.lpstrFile=szFileName; ofn.nMaxFile=lengthof(szFileName); ofn.lpstrFileTitle=NULL; if (szFileName[0]=='\0' || ::PathIsFileSpec(szFileName)) { ::GetModuleFileName(NULL,szInitialDir,lengthof(szInitialDir)); ::PathRemoveFileSpec(szInitialDir); ofn.lpstrInitialDir=szInitialDir; } else ofn.lpstrInitialDir=NULL; ofn.lpstrTitle=TEXT("EPGファイル名"); ofn.Flags=OFN_EXPLORER | OFN_HIDEREADONLY; ofn.lpstrDefExt=NULL; #if _WIN32_WINNT>=0x500 ofn.pvReserved=NULL; ofn.dwReserved=0; ofn.FlagsEx=0; #endif if (FileOpenDialog(&ofn)) ::SetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGFILENAME,szFileName); } return TRUE; case IDC_EPGOPTIONS_USEEPGDATA: EnableDlgItemsSyncCheckBox(hDlg, IDC_EPGOPTIONS_EPGDATAFOLDER_LABEL, IDC_EPGOPTIONS_EPGDATAFOLDER_BROWSE, IDC_EPGOPTIONS_USEEPGDATA); return TRUE; case IDC_EPGOPTIONS_EPGDATAFOLDER_BROWSE: { TCHAR szFolder[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER,szFolder,lengthof(szFolder)); if (BrowseFolderDialog(hDlg,szFolder,TEXT("EPGデータのフォルダ"))) ::SetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER,szFolder); } return TRUE; case IDC_LOGOOPTIONS_SAVEDATA: EnableDlgItemsSyncCheckBox(hDlg, IDC_LOGOOPTIONS_DATAFILENAME_LABEL, IDC_LOGOOPTIONS_DATAFILENAME_BROWSE, IDC_LOGOOPTIONS_SAVEDATA); return TRUE; case IDC_LOGOOPTIONS_DATAFILENAME_BROWSE: { OPENFILENAME ofn; TCHAR szFileName[MAX_PATH],szInitialDir[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_LOGOOPTIONS_DATAFILENAME,szFileName,lengthof(szFileName)); ofn.lStructSize=sizeof(OPENFILENAME); ofn.hwndOwner=hDlg; ofn.lpstrFilter=TEXT("すべてのファイル\0*.*\0"); ofn.lpstrCustomFilter=NULL; ofn.nFilterIndex=1; ofn.lpstrFile=szFileName; ofn.nMaxFile=lengthof(szFileName); ofn.lpstrFileTitle=NULL; if (szFileName[0]=='\0' || ::PathIsFileSpec(szFileName)) { ::GetModuleFileName(NULL,szInitialDir,lengthof(szInitialDir)); ::PathRemoveFileSpec(szInitialDir); ofn.lpstrInitialDir=szInitialDir; } else ofn.lpstrInitialDir=NULL; ofn.lpstrTitle=TEXT("ロゴファイル名"); ofn.Flags=OFN_EXPLORER | OFN_HIDEREADONLY; ofn.lpstrDefExt=NULL; #if _WIN32_WINNT>=0x500 ofn.pvReserved=NULL; ofn.dwReserved=0; ofn.FlagsEx=0; #endif if (FileOpenDialog(&ofn)) ::SetDlgItemText(hDlg,IDC_LOGOOPTIONS_DATAFILENAME,szFileName); } return TRUE; case IDC_LOGOOPTIONS_LOGOFOLDER_BROWSE: { TCHAR szFolder[MAX_PATH]; ::GetDlgItemText(hDlg,IDC_LOGOOPTIONS_LOGOFOLDER,szFolder,lengthof(szFolder)); if (BrowseFolderDialog(hDlg,szFolder,TEXT("ロゴのフォルダ"))) ::SetDlgItemText(hDlg,IDC_LOGOOPTIONS_LOGOFOLDER,szFolder); } return TRUE; case IDC_EVENTINFOOPTIONS_FONT_CHOOSE: if (TVTest::StyleUtil::ChooseStyleFont(hDlg,&m_CurEventInfoFont)) TVTest::StyleUtil::SetFontInfoItem(hDlg,IDC_EVENTINFOOPTIONS_FONT_INFO,m_CurEventInfoFont); return TRUE; } return TRUE; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: { CLogoManager &LogoManager=GetAppClass().LogoManager; TCHAR szPath[MAX_PATH]; m_fSaveEpgFile= DlgCheckBox_IsChecked(hDlg,IDC_EPGOPTIONS_SAVEEPGFILE); ::GetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGFILENAME, m_szEpgFileName,lengthof(m_szEpgFileName)); m_fUpdateWhenStandby= DlgCheckBox_IsChecked(hDlg,IDC_EPGOPTIONS_UPDATEWHENSTANDBY); m_fUpdateBSExtended= DlgCheckBox_IsChecked(hDlg,IDC_EPGOPTIONS_UPDATEBSEXTENDED); m_fUpdateCSExtended= DlgCheckBox_IsChecked(hDlg,IDC_EPGOPTIONS_UPDATECSEXTENDED); bool fUseEpgData= DlgCheckBox_IsChecked(hDlg,IDC_EPGOPTIONS_USEEPGDATA); ::GetDlgItemText(hDlg,IDC_EPGOPTIONS_EPGDATAFOLDER, m_szEDCBDataFolder,lengthof(m_szEDCBDataFolder)); if (!m_fUseEDCBData && fUseEpgData) { m_fUseEDCBData=fUseEpgData; AsyncLoadEDCBData(); } m_fUseEDCBData=fUseEpgData; m_fSaveLogoFile=DlgCheckBox_IsChecked(hDlg,IDC_LOGOOPTIONS_SAVEDATA); ::GetDlgItemText(hDlg,IDC_LOGOOPTIONS_DATAFILENAME, m_szLogoFileName,lengthof(m_szLogoFileName)); LogoManager.SetSaveLogo(DlgCheckBox_IsChecked(hDlg,IDC_LOGOOPTIONS_SAVERAWLOGO)); LogoManager.SetSaveLogoBmp(DlgCheckBox_IsChecked(hDlg,IDC_LOGOOPTIONS_SAVEBMPLOGO)); ::GetDlgItemText(hDlg,IDC_LOGOOPTIONS_LOGOFOLDER,szPath,lengthof(szPath)); LogoManager.SetLogoDirectory(szPath); if (m_EventInfoFont!=m_CurEventInfoFont) { m_EventInfoFont=m_CurEventInfoFont; SetGeneralUpdateFlag(UPDATE_GENERAL_EVENTINFOFONT); } m_fChanged=true; } break; } 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; }