diff --git a/Source/Project64-core/Settings.cpp b/Source/Project64-core/Settings.cpp index b258e46ac..8a221f522 100644 --- a/Source/Project64-core/Settings.cpp +++ b/Source/Project64-core/Settings.cpp @@ -389,8 +389,9 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory) AddHandler(Plugin_AUDIO_Current, new CSettingTypeApplication("Plugin", "Audio Dll", "Audio\\Project64-Audio_d.dll")); AddHandler(Plugin_CONT_Current, new CSettingTypeApplication("Plugin", "Controller Dll", "Input\\Project64-Input_d.dll")); #else - AddHandler(Plugin_GFX_Current, new CSettingTypeApplication("Plugin", "Graphics Dll", "GFX\\Project64-Video.dll")); - AddHandler(Plugin_AUDIO_Current, new CSettingTypeApplication("Plugin", "Audio Dll", "Audio\\Project64-Audio.dll")); + AddHandler(Plugin_GFX_Default, new CSettingTypeApplication("Plugin", "Graphics Dll Default", "GFX\\Project64-Video.dll")); + AddHandler(Plugin_GFX_Current, new CSettingTypeApplication("Plugin", "Graphics Dll", Plugin_GFX_Default)); + AddHandler(Plugin_AUDIO_Current, new CSettingTypeApplication("Plugin", "Audio Dll", "Audio\\Project64-Audio.dll")); AddHandler(Plugin_CONT_Current, new CSettingTypeApplication("Plugin", "Controller Dll", "Input\\Project64-Input.dll")); #endif #else diff --git a/Source/Project64-core/Settings/SettingsID.h b/Source/Project64-core/Settings/SettingsID.h index f00b836b6..bdb1b2235 100644 --- a/Source/Project64-core/Settings/SettingsID.h +++ b/Source/Project64-core/Settings/SettingsID.h @@ -302,6 +302,7 @@ enum SettingID //Plugins Plugin_RSP_Current, Plugin_RSP_CurVer, + Plugin_GFX_Default, Plugin_GFX_Current, Plugin_GFX_CurVer, Plugin_AUDIO_Current, diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc index 2c08bdcc8..a4e70e980 100644 --- a/Source/Project64/UserInterface/UIResources.rc +++ b/Source/Project64/UserInterface/UIResources.rc @@ -470,18 +470,23 @@ BEGIN PUSHBUTTON "Close",IDCANCEL,154,110,50,14 END -IDD_Welcome DIALOGEX 0, 0, 234, 126 +IDD_Welcome DIALOGEX 0, 0, 234, 167 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION CAPTION "Project64 - Welcome" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",IDOK,90,108,50,12 + DEFPUSHBUTTON "OK",IDOK,90,149,50,12 LTEXT "Select Language:",IDC_SELECT_LANG,12,77,86,12 COMBOBOX IDC_LANG_SEL,82,77,130,120,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_BMP_LOGO,"Static",SS_BLACKFRAME,1,0,232,74 - LTEXT "Game Directory:",IDC_GAME_DIR_STATIC,12,91,86,12 + LTEXT "Game Directory:",IDC_GAME_DIR_STATIC,12,92,86,12 EDITTEXT IDC_GAME_DIR,82,91,130,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_SELECT_GAME_DIR,215,91,14,12 + CONTROL "GlideN64\n________\nModern Design\nFor newer computers",IDC_RADIO_GLIDEN64, + "Button",BS_AUTORADIOBUTTON | BS_MULTILINE,76,107,80,35 + CONTROL "Project64-Video\n_____________\nWorks on basically any computer",IDC_RADIO_PJ64_VIDEO, + "Button",BS_AUTORADIOBUTTON | BS_MULTILINE,157,107,73,35 + LTEXT "Video Plugin:",IDC_VIDEO_PLUGIN_STATIC,12,108,61,14 END IDD_Debugger_Memory DIALOGEX 0, 0, 321, 199 @@ -1589,7 +1594,7 @@ BEGIN IDD_Welcome, DIALOG BEGIN RIGHTMARGIN, 233 - BOTTOMMARGIN, 120 + BOTTOMMARGIN, 161 END IDD_Debugger_Memory, DIALOG diff --git a/Source/Project64/UserInterface/WelcomeScreen.cpp b/Source/Project64/UserInterface/WelcomeScreen.cpp index 58c627642..7645438a7 100644 --- a/Source/Project64/UserInterface/WelcomeScreen.cpp +++ b/Source/Project64/UserInterface/WelcomeScreen.cpp @@ -49,7 +49,7 @@ LRESULT WelcomeScreen::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l { m_Logo.SubclassWindow(GetDlgItem(IDC_BMP_LOGO)); m_Logo.SetBitmap(MAKEINTRESOURCE(IDB_ABOUT_LOGO)); - + LanguageList LangList = g_Lang->GetLangList(); CComboBox LangCB(GetDlgItem(IDC_LANG_SEL)); for (LanguageList::iterator Language = LangList.begin(); Language != LangList.end(); Language++) @@ -64,10 +64,11 @@ LRESULT WelcomeScreen::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l { LangCB.SetCurSel(0); } + CButton(GetDlgItem(IDC_RADIO_GLIDEN64)).SetCheck(BST_CHECKED); return TRUE; } -LRESULT WelcomeScreen::OnColorStatic(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) +LRESULT WelcomeScreen::OnCtlColorStatic(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) { HDC hdcStatic = (HDC)wParam; SetTextColor(hdcStatic, RGB(0, 0, 0)); @@ -75,20 +76,26 @@ LRESULT WelcomeScreen::OnColorStatic(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lPar return (LONG)(LRESULT)((HBRUSH)GetStockObject(NULL_BRUSH)); } -LRESULT WelcomeScreen::OnEraseBackground(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) +BOOL WelcomeScreen::OnEraseBackground(CDCHandle dc) { static HPEN outline = CreatePen(PS_SOLID, 1, 0x00FFFFFF); static HBRUSH fill = CreateSolidBrush(0x00FFFFFF); - SelectObject((HDC)wParam, outline); - SelectObject((HDC)wParam, fill); + dc.SelectPen(outline); + dc.SelectBrush(fill); RECT rect; GetClientRect(&rect); - - Rectangle((HDC)wParam, rect.left, rect.top, rect.right, rect.bottom); + dc.Rectangle(&rect); return TRUE; } +HBRUSH WelcomeScreen::OnCtlColorStatic(CDCHandle dc, CStatic /*wndStatic*/) +{ + dc.SetBkColor(RGB(255, 255, 255)); + dc.SetDCBrushColor(RGB(255, 255, 255)); + return (HBRUSH)GetStockObject(DC_BRUSH); +} + LRESULT WelcomeScreen::OnOkCmd(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL & /*bHandled*/) { CComboBox LangCB(GetDlgItem(IDC_LANG_SEL)); @@ -106,6 +113,8 @@ LRESULT WelcomeScreen::OnOkCmd(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCt g_Settings->SaveString(RomList_GameDir, GameDir.GetDriveDirectory().c_str()); Notify().AddRecentDir(GameDir); } + + g_Settings->SaveString(Plugin_GFX_Default, CButton(GetDlgItem(IDC_RADIO_GLIDEN64)).GetCheck() == BST_CHECKED ? "GFX\\GLideN64\\GLideN64.dll" : "GFX\\Project64-Video.dll"); EndDialog(0); return TRUE; } diff --git a/Source/Project64/UserInterface/WelcomeScreen.h b/Source/Project64/UserInterface/WelcomeScreen.h index e01a87755..15f01341f 100644 --- a/Source/Project64/UserInterface/WelcomeScreen.h +++ b/Source/Project64/UserInterface/WelcomeScreen.h @@ -18,8 +18,8 @@ class WelcomeScreen : public: BEGIN_MSG_MAP_EX(WelcomeScreen) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnColorStatic) - MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground) + MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic) + MSG_WM_ERASEBKGND(OnEraseBackground) COMMAND_ID_HANDLER_EX(IDC_SELECT_GAME_DIR, SelectGameDir) COMMAND_ID_HANDLER(IDOK, OnOkCmd) END_MSG_MAP() @@ -35,8 +35,9 @@ private: void SelectGameDir(UINT Code, int id, HWND ctl); LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled); - LRESULT OnColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled); - LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled); + LRESULT OnCtlColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); + HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic); + BOOL OnEraseBackground(CDCHandle dc); LRESULT OnOkCmd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL & bHandled); static int CALLBACK SelectDirCallBack(HWND hwnd, DWORD uMsg, DWORD lp, DWORD lpData); diff --git a/Source/Project64/UserInterface/resource.h b/Source/Project64/UserInterface/resource.h index 7fbe7c91e..4e00238fd 100644 --- a/Source/Project64/UserInterface/resource.h +++ b/Source/Project64/UserInterface/resource.h @@ -243,6 +243,7 @@ #define IDC_MENU_ITEMS 1089 #define IDC_PAGELIST 1090 #define IDC_GAME_DIR_STATIC 1090 +#define IDC_VIDEO_PLUGIN_STATIC 1091 #define IDC_CPU_TYPE_TEXT 1092 #define IDC_ZIP 1092 #define IDC_SETTING_INFO 1092 @@ -864,6 +865,9 @@ #define IDC_OK 1723 #define IDC_CANCEL 1724 #define IDC_APPLY 1725 +#define IDC_RADIO_GLIDEN64 1728 +#define IDC_RADIO_JABO 1729 +#define IDC_RADIO_PJ64_VIDEO 1729 #define ID_POPUPMENU_PLAYGAMEWITHDISK 40008 #define ID_POPUPMENU_ADDSYMBOL 40013 #define ID_POPUPMENU_VIEWDISASM 40017 @@ -937,7 +941,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 225 #define _APS_NEXT_COMMAND_VALUE 40121 -#define _APS_NEXT_CONTROL_VALUE 1726 +#define _APS_NEXT_CONTROL_VALUE 1730 #define _APS_NEXT_SYMED_VALUE 102 #endif #endif