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 | { |