Rev 57 | Rev 62 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 57 | Rev 59 | ||
|---|---|---|---|
| Line 38... | Line 38... | ||
| 38 | if (path[length] == ':') |
38 | if (path[length] == ':') |
| 39 | length++; // if it's a disk letter separator, keep it |
39 | length++; // if it's a disk letter separator, keep it |
| 40 | 40 | ||
| 41 | path[length] = 0; // terminate the string at this position |
41 | path[length] = 0; // terminate the string at this position |
| 42 | return (path); // and return a pointer to it |
42 | return (path); // and return a pointer to it |
| - | 43 | } |
|
| - | 44 | ||
| - | 45 | ||
| - | 46 | void CreateOrUpdateApplicationMenu (void) |
|
| - | 47 | { |
|
| - | 48 | // this function creates or re-creates the main application menu and its accelerator table |
|
| - | 49 | ||
| - | 50 | HMENU hDropDownMenu; |
|
| - | 51 | ACCEL accelerators[] = |
|
| - | 52 | { |
|
| - | 53 | {FVIRTKEY | FCONTROL, L'O', MENUID_GAME_LOAD}, |
|
| - | 54 | {FVIRTKEY | FCONTROL, L'S', MENUID_GAME_SAVE}, |
|
| - | 55 | {FVIRTKEY | FCONTROL, L'Z', MENUID_CHESSBOARD_CANCELLASTMOVE}, |
|
| - | 56 | {FVIRTKEY, VK_HOME, MENUID_CHESSBOARD_BEGINNINGOFGAME}, |
|
| - | 57 | {FVIRTKEY, VK_LEFT, MENUID_CHESSBOARD_PREVIOUSMOVE}, |
|
| - | 58 | {FVIRTKEY, VK_RIGHT, MENUID_CHESSBOARD_NEXTMOVE}, |
|
| - | 59 | {FVIRTKEY, VK_END, MENUID_CHESSBOARD_CURRENTSTATEOFGAME}, |
|
| - | 60 | {FVIRTKEY | FCONTROL, L'G', MENUID_CHESSBOARD_GOTOMOVE}, |
|
| - | 61 | {FVIRTKEY, VK_F1, MENUID_HELP_HELP}, |
|
| - | 62 | {FVIRTKEY, VK_F2, MENUID_GAME_NEWGAME}, |
|
| - | 63 | {FVIRTKEY, VK_F3, MENUID_GAME_STATISTICS}, |
|
| - | 64 | {FVIRTKEY, VK_F4, MENUID_GAME_OPTIONS}, |
|
| - | 65 | {FVIRTKEY, VK_F5, MENUID_CHESSBOARD_TOPVIEW}, |
|
| - | 66 | {FVIRTKEY, VK_F6, MENUID_CHESSBOARD_DEFAULTVIEW}, |
|
| - | 67 | {FVIRTKEY, VK_F7, MENUID_CHESSBOARD_RESETVIEW}, |
|
| - | 68 | {FVIRTKEY, VK_UP, MENUID_CHESSBOARD_ZOOMIN}, |
|
| - | 69 | {FVIRTKEY, VK_DOWN, MENUID_CHESSBOARD_ZOOMOUT}, |
|
| - | 70 | {FVIRTKEY | FCONTROL, VK_DOWN, MENUID_CHESSBOARD_DISPLAYWINDOWSDESKTOP}, |
|
| - | 71 | {FVIRTKEY, VK_F8, MENUID_CHESSBOARD_CHANGEAPPEARANCE}, |
|
| - | 72 | {FVIRTKEY, VK_F9, MENUID_INTERNET_SHOWONLINEPLAYERS}, |
|
| - | 73 | {FVIRTKEY, VK_F10, MENUID_INTERNET_SHOWSOUGHTGAMES}, |
|
| - | 74 | }; |
|
| - | 75 | ||
| - | 76 | // if needed, destroy the accelerators table and the application menu object |
|
| - | 77 | if (hMainAccelerators) |
|
| - | 78 | DestroyAcceleratorTable (hMainAccelerators); |
|
| - | 79 | hMainAccelerators = NULL; |
|
| - | 80 | if (IsMenu (hMainMenu)) |
|
| - | 81 | DestroyMenu (hMainMenu); |
|
| - | 82 | hMainMenu = NULL; |
|
| - | 83 | ||
| - | 84 | // now create the menu again |
|
| - | 85 | hMainMenu = CreateMenu (); |
|
| - | 86 | hDropDownMenu = CreateMenu (); // create the first drop-down item |
|
| - | 87 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_NEWGAME, LOCALIZE (L"Menu_GameNewGame")); |
|
| - | 88 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_LOAD, LOCALIZE (L"Menu_GameLoadGame")); |
|
| - | 89 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_SETUPPOSITION, LOCALIZE (L"Menu_GameSetupPosition")); |
|
| - | 90 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_GAME_SAVE, LOCALIZE (L"Menu_GameSaveGame")); // initially grayed |
|
| - | 91 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_GAME_SAVEAS, LOCALIZE (L"Menu_GameSaveGameAs")); // initially grayed |
|
| - | 92 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_GAME_SAVEPOSITIONAS, LOCALIZE (L"Menu_GameSavePositionAs")); // initially grayed |
|
| - | 93 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_RESIGN, LOCALIZE (L"Menu_GameResign")); |
|
| - | 94 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 95 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_GAME_STATISTICS, LOCALIZE (L"Menu_GameStatistics")); |
|
| - | 96 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_OPTIONS, LOCALIZE (L"Menu_GameOptions")); |
|
| - | 97 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 98 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_GAME_QUIT, LOCALIZE (L"Menu_GameQuit")); |
|
| - | 99 | AppendMenu (hMainMenu, MF_POPUP, (UINT) hDropDownMenu, LOCALIZE (L"Menu_Game")); |
|
| - | 100 | DestroyMenu (hDropDownMenu); |
|
| - | 101 | hDropDownMenu = CreateMenu (); // create the second drop-down item |
|
| - | 102 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_CHESSBOARD_SUGGESTMOVE, LOCALIZE (L"Menu_ChessboardSuggestMove")); // initially grayed |
|
| - | 103 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_CHESSBOARD_CANCELLASTMOVE, LOCALIZE (L"Menu_ChessboardCancelLastMove")); // initially grayed |
|
| - | 104 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_CHESSBOARD_COMMENTMOVE, LOCALIZE (L"Menu_ChessboardCommentMove")); // initially grayed |
|
| - | 105 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_CHESSBOARD_GOTOMOVE, LOCALIZE (L"Menu_ChessboardGoToMove")); // initially grayed |
|
| - | 106 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_CHESSBOARD_SWAPSIDES, LOCALIZE (L"Menu_ChessboardSwapSides")); // initially grayed |
|
| - | 107 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 108 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_CHESSBOARD_TOPVIEW, LOCALIZE (L"Menu_ChessboardTopView")); |
|
| - | 109 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_CHESSBOARD_DEFAULTVIEW, LOCALIZE (L"Menu_ChessboardDefaultView")); |
|
| - | 110 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_CHESSBOARD_RESETVIEW, LOCALIZE (L"Menu_ChessboardResetView")); |
|
| - | 111 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 112 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_CHESSBOARD_CHANGEAPPEARANCE, LOCALIZE (L"Menu_ChessboardChangeAppearance")); |
|
| - | 113 | if (options.want_fullscreen) |
|
| - | 114 | { |
|
| - | 115 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 116 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_CHESSBOARD_DISPLAYWINDOWSDESKTOP, LOCALIZE (L"Menu_ChessboardDisplayWindowsDesktop")); |
|
| - | 117 | } |
|
| - | 118 | AppendMenu (hMainMenu, MF_POPUP, (UINT) hDropDownMenu, LOCALIZE (L"Menu_Chessboard")); |
|
| - | 119 | DestroyMenu (hDropDownMenu); |
|
| - | 120 | hDropDownMenu = CreateMenu (); // create the third drop-down item |
|
| - | 121 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_SHOWONLINEPLAYERS, LOCALIZE (L"Menu_InternetShowOnlinePlayers")); // initially grayed |
|
| - | 122 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_SHOWSOUGHTGAMES, LOCALIZE (L"Menu_InternetShowSoughtGames")); // initially grayed |
|
| - | 123 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_SEEKGAME, LOCALIZE (L"Menu_InternetSeekGame")); // initially grayed |
|
| - | 124 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 125 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_CHATTERCHANNELS, LOCALIZE (L"Menu_InternetChatterChannels")); // initially grayed |
|
| - | 126 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_ENTERCHATTEXT, LOCALIZE (L"Menu_InternetEnterChatText")); // initially grayed |
|
| - | 127 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 128 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_DISPLAYPLAYERCARD, LOCALIZE (L"Menu_InternetDisplayPlayerCard")); // initially grayed |
|
| - | 129 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_DISPLAYYOURCARD, LOCALIZE (L"Menu_InternetDisplayYourCard")); // initially grayed |
|
| - | 130 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 131 | AppendMenu (hDropDownMenu, MF_STRING | MF_GRAYED, MENUID_INTERNET_MOTD, LOCALIZE (L"Menu_InternetDisplayMOTD")); // initially grayed |
|
| - | 132 | AppendMenu (hMainMenu, MF_POPUP, (UINT) hDropDownMenu, LOCALIZE (L"Menu_Internet")); |
|
| - | 133 | DestroyMenu (hDropDownMenu); |
|
| - | 134 | hDropDownMenu = CreateMenu (); // create the fourth drop-down item |
|
| - | 135 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_HELP, LOCALIZE (L"Menu_HelpDisplayHelp")); |
|
| - | 136 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_GETCHESSGAMES, LOCALIZE (L"Menu_HelpGetChessGames")); |
|
| - | 137 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 138 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_ADDMODIFYVISUALTHEMES, LOCALIZE (L"Menu_HelpAddModifyThemes")); |
|
| - | 139 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_ADDMODIFYENGINES, LOCALIZE (L"Menu_HelpAddModifyEngines")); |
|
| - | 140 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_ADDMODIFYTRANSLATIONS, LOCALIZE (L"Menu_HelpAddModifyTranslations")); |
|
| - | 141 | AppendMenu (hDropDownMenu, MF_SEPARATOR, 0, NULL); |
|
| - | 142 | AppendMenu (hDropDownMenu, MF_STRING, MENUID_HELP_ABOUT, LOCALIZE (L"Menu_HelpAbout")); |
|
| - | 143 | AppendMenu (hMainMenu, MF_POPUP, (UINT) hDropDownMenu, LOCALIZE (L"Menu_Help")); |
|
| - | 144 | DestroyMenu (hDropDownMenu); |
|
| - | 145 | ||
| - | 146 | // finally, set this menu to be the app's menu |
|
| - | 147 | SetMenu (hMainWnd, hMainMenu); |
|
| - | 148 | ||
| - | 149 | // (re-)create the accelerators |
|
| - | 150 | hMainAccelerators = CreateAcceleratorTable (accelerators, sizeof (accelerators) / sizeof (ACCEL)); |
|
| - | 151 | ||
| - | 152 | return; // finished, application menu is (re)created |
|
| 43 | } |
153 | } |
| 44 | 154 | ||
| 45 | 155 | ||
| 46 | void CenterWindow (HWND hWnd, HWND hParentWnd) |
156 | void CenterWindow (HWND hWnd, HWND hParentWnd) |
| 47 | { |
157 | { |