From 639a42445cd9c857d8071806d6f1e6bdb42f3d9c Mon Sep 17 00:00:00 2001 From: luigi__ Date: Sat, 27 Dec 2008 01:12:40 +0000 Subject: [PATCH] The default language upon first launch is now really English, not French. The menus are now better, though still not perfect. Removed "HMENU menu" as it was useless due to "HMENU mainMenu". --- desmume/src/windows/main.cpp | 125 ++++++++++++++++++----------------- 1 file changed, 66 insertions(+), 59 deletions(-) diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index 7ff99b13f..836985dab 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -160,8 +160,6 @@ float DefaultHeight; float widthTradeOff; float heightTradeOff; -HMENU menu; - //static char IniName[MAX_PATH]; int sndcoretype=SNDCORE_DIRECTX; int sndbuffersize=735*4; @@ -1073,6 +1071,41 @@ joinThread_gdb( void *thread_handle) { } +int MenuInit() +{ + mainMenu = LoadMenu(hAppInst, "MENU_PRINCIPAL"); //Load Menu, and store handle + if (!MainWindow->setMenu(mainMenu)) return 0; + + // menu checks + MainWindow->checkMenu(IDC_FORCERATIO, MF_BYCOMMAND | (ForceRatio==1?MF_CHECKED:MF_UNCHECKED)); + + MainWindow->checkMenu(ID_VIEW_DISPLAYFPS, FpsDisplay ? MF_CHECKED : MF_UNCHECKED); + + MainWindow->checkMenu(IDC_WINDOW1X, MF_BYCOMMAND | ((windowSize==1)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_WINDOW2X, MF_BYCOMMAND | ((windowSize==2)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_WINDOW3X, MF_BYCOMMAND | ((windowSize==3)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_WINDOW4X, MF_BYCOMMAND | ((windowSize==4)?MF_CHECKED:MF_UNCHECKED)); + + MainWindow->checkMenu(IDC_ROTATE0, MF_BYCOMMAND | ((GPU_rotation==0)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_ROTATE90, MF_BYCOMMAND | ((GPU_rotation==90)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_ROTATE180, MF_BYCOMMAND | ((GPU_rotation==180)?MF_CHECKED:MF_UNCHECKED)); + MainWindow->checkMenu(IDC_ROTATE270, MF_BYCOMMAND | ((GPU_rotation==270)?MF_CHECKED:MF_UNCHECKED)); + + DragAcceptFiles(MainWindow->getHWnd(), TRUE); + + recentromsmenu = CreateMenu(); //Create recent Roms menu + GetRecentRoms(); //Populate the recent roms menu + + return 1; +} + +void MenuDeinit() +{ + MainWindow->setMenu(NULL); + DestroyMenu(mainMenu); +} + + void SetLanguage(int langid) { switch(langid) @@ -1108,7 +1141,7 @@ void SaveLanguage(int langid) void CheckLanguage(UINT id) { int i; - for (i = IDC_LANGENGLISH; i < IDC_LANGFRENCH+1; i++) + for (i = IDC_LANGENGLISH; i < IDC_LANGDANISH+1; i++) MainWindow->checkMenu(i, MF_BYCOMMAND | MF_UNCHECKED); MainWindow->checkMenu(id, MF_BYCOMMAND | MF_CHECKED); @@ -1116,13 +1149,10 @@ void CheckLanguage(UINT id) void ChangeLanguage(int id) { - HMENU newmenu; - SetLanguage(id); - newmenu = LoadMenu(hAppInst, "MENU_PRINCIPAL"); - SetMenu(MainWindow->getHWnd(), newmenu); - DestroyMenu(menu); - menu = newmenu; + + MenuDeinit(); + MenuInit(); } int RegClass(WNDPROC Proc, LPCTSTR szName) @@ -1215,40 +1245,25 @@ int WINAPI WinMain (HINSTANCE hThisInstance, /* default the firmware settings, they may get changed later */ NDS_FillDefaultFirmwareConfigData( &win_fw_config); - GetPrivateProfileString("General", "Language", "-1", text, 80, IniName); + GetPrivateProfileString("General", "Language", "0", text, 80, IniName); SetLanguage(atoi(text)); bad_glob_cflash_disk_image_file = my_config.cflash_disk_image_file; hAccel = LoadAccelerators(hAppInst, MAKEINTRESOURCE(IDR_MAIN_ACCEL)); - mainMenu = LoadMenu(hThisInstance, "MENU_PRINCIPAL"); //Load Menu, and store handle - if (!MainWindow->setMenu(mainMenu)) + if(MenuInit() == 0) { MessageBox(NULL, "Error creating main menu", "DeSmuME", MB_OK); delete MainWindow; exit(-1); } - - // menu checks - MainWindow->checkMenu(IDC_FORCERATIO, MF_BYCOMMAND | (ForceRatio==1?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(ID_VIEW_DISPLAYFPS, FpsDisplay ? MF_CHECKED : MF_UNCHECKED); - - MainWindow->checkMenu(IDC_WINDOW1X, MF_BYCOMMAND | ((windowSize==1)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_WINDOW2X, MF_BYCOMMAND | ((windowSize==2)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_WINDOW3X, MF_BYCOMMAND | ((windowSize==3)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_WINDOW4X, MF_BYCOMMAND | ((windowSize==4)?MF_CHECKED:MF_UNCHECKED)); - - MainWindow->checkMenu(IDC_ROTATE0, MF_BYCOMMAND | ((GPU_rotation==0)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_ROTATE90, MF_BYCOMMAND | ((GPU_rotation==90)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_ROTATE180, MF_BYCOMMAND | ((GPU_rotation==180)?MF_CHECKED:MF_UNCHECKED)); - MainWindow->checkMenu(IDC_ROTATE270, MF_BYCOMMAND | ((GPU_rotation==270)?MF_CHECKED:MF_UNCHECKED)); - - DragAcceptFiles(MainWindow->getHWnd(), TRUE); - - recentromsmenu = CreateMenu(); //Create recent Roms menu - GetRecentRoms(); //Populate the recent roms menu + EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_RESET, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_GRAYED); LOG("Init NDS\n"); @@ -1330,7 +1345,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance, } #ifdef BETA_VERSION - EnableMenuItem (menu, IDM_SUBMITBUGREPORT, MF_GRAYED); + EnableMenuItem (mainMenu, IDM_SUBMITBUGREPORT, MF_GRAYED); #endif LOG("Init sound core\n"); sndcoretype = GetPrivateProfileInt("Sound","SoundCore", SNDCORE_DIRECTX, IniName); @@ -1390,22 +1405,14 @@ int WINAPI WinMain (HINSTANCE hThisInstance, { if(LoadROM(lpszArgument, bad_glob_cflash_disk_image_file)) { - EnableMenuItem(menu, IDM_EXEC, MF_GRAYED); - EnableMenuItem(menu, IDM_PAUSE, MF_ENABLED); - EnableMenuItem(menu, IDM_RESET, MF_ENABLED); - EnableMenuItem(menu, IDM_GAME_INFO, MF_ENABLED); - EnableMenuItem(menu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); romloaded = TRUE; NDS_UnPause(); } - else - { - EnableMenuItem(menu, IDM_EXEC, MF_ENABLED); - EnableMenuItem(menu, IDM_PAUSE, MF_GRAYED); - EnableMenuItem(menu, IDM_RESET, MF_GRAYED); - EnableMenuItem(menu, IDM_GAME_INFO, MF_GRAYED); - EnableMenuItem(menu, IDM_IMPORTBACKUPMEMORY, MF_GRAYED); - } } MainWindow->checkMenu(IDC_SAVETYPE1, MF_BYCOMMAND | MF_CHECKED); @@ -1575,10 +1582,10 @@ void OpenRecentROM(int listNum) //LOG("Attempting to load %s\n",filename); if(LoadROM(filename, bad_glob_cflash_disk_image_file)) { - EnableMenuItem(menu, IDM_PAUSE, MF_ENABLED); - EnableMenuItem(menu, IDM_RESET, MF_ENABLED); - EnableMenuItem(menu, IDM_GAME_INFO, MF_ENABLED); - EnableMenuItem(menu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); romloaded = TRUE; } @@ -1690,11 +1697,11 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM DragFinish((HDROP)wParam); if(LoadROM(filename, bad_glob_cflash_disk_image_file)) { - EnableMenuItem(menu, IDM_EXEC, MF_GRAYED); - EnableMenuItem(menu, IDM_PAUSE, MF_ENABLED); - EnableMenuItem(menu, IDM_RESET, MF_ENABLED); - EnableMenuItem(menu, IDM_GAME_INFO, MF_ENABLED); - EnableMenuItem(menu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); romloaded = TRUE; } NDS_UnPause(); @@ -1812,11 +1819,11 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM if(LoadROM(filename, bad_glob_cflash_disk_image_file)) { - EnableMenuItem(menu, IDM_EXEC, MF_GRAYED); - EnableMenuItem(menu, IDM_PAUSE, MF_ENABLED); - EnableMenuItem(menu, IDM_RESET, MF_ENABLED); - EnableMenuItem(menu, IDM_GAME_INFO, MF_ENABLED); - EnableMenuItem(menu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED); + EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED); + EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED); romloaded = TRUE; NDS_UnPause(); }