GUICallbacks.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. /*
  2. ** Command & Conquer Generals Zero Hour(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. ////////////////////////////////////////////////////////////////////////////////
  19. // //
  20. // (c) 2001-2003 Electronic Arts Inc. //
  21. // //
  22. ////////////////////////////////////////////////////////////////////////////////
  23. // FILE: GUICallbacks.h ///////////////////////////////////////////////////////////////////////////
  24. // Created: Colin Day, June 2001
  25. // Desc: GUI Callbacks header
  26. ///////////////////////////////////////////////////////////////////////////////////////////////////
  27. #pragma once
  28. #ifndef __GUICALLBACKS_H_
  29. #define __GUICALLBACKS_H_
  30. // INCLUDES ///////////////////////////////////////////////////////////////////////////////////////
  31. #include "GameClient/GameWindow.h"
  32. // EXTERNALS //////////////////////////////////////////////////////////////////////////////////////
  33. //=================================================================================================
  34. // Shell Menus //
  35. //=================================================================================================
  36. // Main Menu --------------------------------------------------------------------------------------
  37. extern void MainMenuInit( WindowLayout *layout, void *userData );
  38. extern void MainMenuUpdate( WindowLayout *layout, void *userData );
  39. extern void MainMenuShutdown( WindowLayout *layout, void *userData );
  40. extern WindowMsgHandledType MainMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  41. extern WindowMsgHandledType MainMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  42. // Single Player Menu -----------------------------------------------------------------------------
  43. extern void SinglePlayerMenuInit( WindowLayout *layout, void *userData );
  44. extern void SinglePlayerMenuUpdate( WindowLayout *layout, void *userData );
  45. extern void SinglePlayerMenuShutdown( WindowLayout *layout, void *userData );
  46. extern WindowMsgHandledType SinglePlayerMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  47. extern WindowMsgHandledType SinglePlayerMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  48. // Options Menu -----------------------------------------------------------------------------------
  49. extern void OptionsMenuInit( WindowLayout *layout, void *userData );
  50. extern void OptionsMenuUpdate( WindowLayout *layout, void *userData );
  51. extern void OptionsMenuShutdown( WindowLayout *layout, void *userData );
  52. extern WindowMsgHandledType OptionsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  53. extern WindowMsgHandledType OptionsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  54. // Map Select Menu --------------------------------------------------------------------------------
  55. extern void MapSelectMenuInit( WindowLayout *layout, void *userData );
  56. extern void MapSelectMenuUpdate( WindowLayout *layout, void *userData );
  57. extern void MapSelectMenuShutdown( WindowLayout *layout, void *userData );
  58. extern WindowMsgHandledType MapSelectMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  59. extern WindowMsgHandledType MapSelectMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  60. // Replay Menu --------------------------------------------------------------------------------
  61. extern void ReplayMenuInit( WindowLayout *layout, void *userData );
  62. extern void ReplayMenuUpdate( WindowLayout *layout, void *userData );
  63. extern void ReplayMenuShutdown( WindowLayout *layout, void *userData );
  64. extern WindowMsgHandledType ReplayMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  65. extern WindowMsgHandledType ReplayMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  66. // Credits Menu --------------------------------------------------------------------------------
  67. extern void CreditsMenuInit( WindowLayout *layout, void *userData );
  68. extern void CreditsMenuUpdate( WindowLayout *layout, void *userData );
  69. extern void CreditsMenuShutdown( WindowLayout *layout, void *userData );
  70. extern WindowMsgHandledType CreditsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  71. extern WindowMsgHandledType CreditsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  72. // Score Screen --------------------------------------------------------------------------------
  73. extern void ScoreScreenInit( WindowLayout *layout, void *userData );
  74. extern void ScoreScreenUpdate( WindowLayout *layout, void *userData );
  75. extern void ScoreScreenShutdown( WindowLayout *layout, void *userData );
  76. extern WindowMsgHandledType ScoreScreenSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  77. extern WindowMsgHandledType ScoreScreenInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  78. // Save/Load Menu ----------------------------------------------------------------------------------
  79. extern void SaveLoadMenuInit( WindowLayout *layout, void *userData );
  80. extern void SaveLoadMenuFullScreenInit( WindowLayout *layout, void *userData );
  81. extern void SaveLoadMenuUpdate( WindowLayout *layout, void *userData );
  82. extern void SaveLoadMenuShutdown( WindowLayout *layout, void *userData );
  83. extern WindowMsgHandledType SaveLoadMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  84. extern WindowMsgHandledType SaveLoadMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  85. // Popup Communicator ------------------------------------------------------------------------------
  86. extern void PopupCommunicatorInit( WindowLayout *layout, void *userData );
  87. extern void PopupCommunicatorUpdate( WindowLayout *layout, void *userData );
  88. extern void PopupCommunicatorShutdown( WindowLayout *layout, void *userData );
  89. extern WindowMsgHandledType PopupCommunicatorSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  90. extern WindowMsgHandledType PopupCommunicatorInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  91. // SkirmishGameOptionsMenu
  92. extern void SkirmishGameOptionsMenuInit( WindowLayout *layout, void *userData );
  93. extern void SkirmishGameOptionsMenuUpdate( WindowLayout *layout, void *userData );
  94. extern void SkirmishGameOptionsMenuShutdown( WindowLayout *layout, void *userData );
  95. extern WindowMsgHandledType SkirmishGameOptionsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  96. extern WindowMsgHandledType SkirmishGameOptionsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  97. // SkirmishMapSelectMenu
  98. extern void SkirmishMapSelectMenuInit( WindowLayout *layout, void *userData );
  99. extern void SkirmishMapSelectMenuUpdate( WindowLayout *layout, void *userData );
  100. extern void SkirmishMapSelectMenuShutdown( WindowLayout *layout, void *userData );
  101. extern WindowMsgHandledType SkirmishMapSelectMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  102. extern WindowMsgHandledType SkirmishMapSelectMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  103. // Generals' Challenge Mode Menu
  104. extern void ChallengeMenuInit( WindowLayout *layout, void *userData );
  105. extern void ChallengeMenuUpdate( WindowLayout *layout, void *userData );
  106. extern void ChallengeMenuShutdown( WindowLayout *layout, void *userData );
  107. extern WindowMsgHandledType ChallengeMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  108. extern WindowMsgHandledType ChallengeMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  109. // Keyboard Options Menu ---------------------------------------------------------------------------
  110. extern void KeyboardOptionsMenuInit( WindowLayout *layout, void *userData );
  111. extern void KeyboardOptionsMenuUpdate( WindowLayout *layout, void *userData );
  112. extern void KeyboardOptionsMenuShutdown( WindowLayout *layout, void *userData );
  113. extern WindowMsgHandledType KeyboardOptionsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  114. extern WindowMsgHandledType KeyboardOptionsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  115. // Lan Lobby Menu ----------------------------------------------------------------------------------
  116. extern void LanLobbyMenuInit( WindowLayout *layout, void *userData );
  117. extern void LanLobbyMenuUpdate( WindowLayout *layout, void *userData );
  118. extern void LanLobbyMenuShutdown( WindowLayout *layout, void *userData );
  119. extern WindowMsgHandledType LanLobbyMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  120. extern WindowMsgHandledType LanLobbyMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  121. // Lan Game Options Menu ---------------------------------------------------------------------------
  122. extern void LanGameOptionsMenuInit( WindowLayout *layout, void *userData );
  123. extern void LanGameOptionsMenuUpdate( WindowLayout *layout, void *userData );
  124. extern void LanGameOptionsMenuShutdown( WindowLayout *layout, void *userData );
  125. extern WindowMsgHandledType LanGameOptionsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  126. extern WindowMsgHandledType LanGameOptionsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  127. // Lan Map Select Menu -----------------------------------------------------------------------------
  128. extern void LanMapSelectMenuInit( WindowLayout *layout, void *userData );
  129. extern void LanMapSelectMenuUpdate( WindowLayout *layout, void *userData );
  130. extern void LanMapSelectMenuShutdown( WindowLayout *layout, void *userData );
  131. extern WindowMsgHandledType LanMapSelectMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  132. extern WindowMsgHandledType LanMapSelectMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  133. // Lan Map Select Menu -----------------------------------------------------------------------------
  134. extern void GameInfoWindowInit( WindowLayout *layout, void *userData );
  135. extern WindowMsgHandledType GameInfoWindowSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  136. // (Patch) Download Menu ----------------------------------------------------------------------------------
  137. extern void DownloadMenuInit( WindowLayout *layout, void *userData );
  138. extern void DownloadMenuUpdate( WindowLayout *layout, void *userData );
  139. extern void DownloadMenuShutdown( WindowLayout *layout, void *userData );
  140. extern WindowMsgHandledType DownloadMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  141. extern WindowMsgHandledType DownloadMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  142. // Popup host Game Internet -----------------------------------------------------------------------------------
  143. extern void DifficultySelectInit( WindowLayout *layout, void *userData );
  144. extern WindowMsgHandledType DifficultySelectSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  145. extern WindowMsgHandledType DifficultySelectInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  146. //=================================================================================================
  147. // WOL UI //
  148. //=================================================================================================
  149. // WOL Ladder Screen ---------------------------------------------------------------------------------
  150. extern void WOLLadderScreenInit( WindowLayout *layout, void *userData );
  151. extern void WOLLadderScreenUpdate( WindowLayout *layout, void *userData );
  152. extern void WOLLadderScreenShutdown( WindowLayout *layout, void *userData );
  153. extern WindowMsgHandledType WOLLadderScreenSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  154. extern WindowMsgHandledType WOLLadderScreenInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  155. // WOL Login Menu ---------------------------------------------------------------------------------
  156. extern void WOLLoginMenuInit( WindowLayout *layout, void *userData );
  157. extern void WOLLoginMenuUpdate( WindowLayout *layout, void *userData );
  158. extern void WOLLoginMenuShutdown( WindowLayout *layout, void *userData );
  159. extern WindowMsgHandledType WOLLoginMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  160. extern WindowMsgHandledType WOLLoginMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  161. // WOL Locale Select Popup ---------------------------------------------------------------------------------
  162. extern void WOLLocaleSelectInit( WindowLayout *layout, void *userData );
  163. extern void WOLLocaleSelectUpdate( WindowLayout *layout, void *userData );
  164. extern void WOLLocaleSelectShutdown( WindowLayout *layout, void *userData );
  165. extern WindowMsgHandledType WOLLocaleSelectSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  166. extern WindowMsgHandledType WOLLocaleSelectInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  167. // WOL Message Window ------------------------------------------------------------------------------
  168. extern void WOLMessageWindowInit( WindowLayout *layout, void *userData );
  169. extern void WOLMessageWindowUpdate( WindowLayout *layout, void *userData );
  170. extern void WOLMessageWindowShutdown( WindowLayout *layout, void *userData );
  171. extern WindowMsgHandledType WOLMessageWindowSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  172. extern WindowMsgHandledType WOLMessageWindowInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  173. // WOL Quick Match Menu ----------------------------------------------------------------------------
  174. extern void WOLQuickMatchMenuInit( WindowLayout *layout, void *userData );
  175. extern void WOLQuickMatchMenuUpdate( WindowLayout *layout, void *userData );
  176. extern void WOLQuickMatchMenuShutdown( WindowLayout *layout, void *userData );
  177. extern WindowMsgHandledType WOLQuickMatchMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  178. extern WindowMsgHandledType WOLQuickMatchMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  179. // WOL Welcome Menu --------------------------------------------------------------------------------
  180. extern void WOLWelcomeMenuInit( WindowLayout *layout, void *userData );
  181. extern void WOLWelcomeMenuUpdate( WindowLayout *layout, void *userData );
  182. extern void WOLWelcomeMenuShutdown( WindowLayout *layout, void *userData );
  183. extern WindowMsgHandledType WOLWelcomeMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  184. extern WindowMsgHandledType WOLWelcomeMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  185. // WOL Welcome Menu --------------------------------------------------------------------------------
  186. extern void WOLStatusMenuInit( WindowLayout *layout, void *userData );
  187. extern void WOLStatusMenuUpdate( WindowLayout *layout, void *userData );
  188. extern void WOLStatusMenuShutdown( WindowLayout *layout, void *userData );
  189. extern WindowMsgHandledType WOLStatusMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  190. extern WindowMsgHandledType WOLStatusMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  191. // WOL Quickmatch Score Screen --------------------------------------------------------------------------------
  192. extern void WOLQMScoreScreenInit( WindowLayout *layout, void *userData );
  193. extern void WOLQMScoreScreenUpdate( WindowLayout *layout, void *userData );
  194. extern void WOLQMScoreScreenShutdown( WindowLayout *layout, void *userData );
  195. extern WindowMsgHandledType WOLQMScoreScreenSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  196. extern WindowMsgHandledType WOLQMScoreScreenInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  197. // WOL Lobby Menu ---------------------------------------------------------------------------------
  198. extern void WOLLobbyMenuInit( WindowLayout *layout, void *userData );
  199. extern void WOLLobbyMenuUpdate( WindowLayout *layout, void *userData );
  200. extern void WOLLobbyMenuShutdown( WindowLayout *layout, void *userData );
  201. extern WindowMsgHandledType WOLLobbyMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  202. extern WindowMsgHandledType WOLLobbyMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  203. // WOL Game Setup Menu ---------------------------------------------------------------------------------
  204. extern void WOLGameSetupMenuInit( WindowLayout *layout, void *userData );
  205. extern void WOLGameSetupMenuUpdate( WindowLayout *layout, void *userData );
  206. extern void WOLGameSetupMenuShutdown( WindowLayout *layout, void *userData );
  207. extern WindowMsgHandledType WOLGameSetupMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  208. extern WindowMsgHandledType WOLGameSetupMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  209. // WOL Custom Score Screen --------------------------------------------------------------------------------
  210. extern void WOLCustomScoreScreenInit( WindowLayout *layout, void *userData );
  211. extern void WOLCustomScoreScreenUpdate( WindowLayout *layout, void *userData );
  212. extern void WOLCustomScoreScreenShutdown( WindowLayout *layout, void *userData );
  213. extern WindowMsgHandledType WOLCustomScoreScreenSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  214. extern WindowMsgHandledType WOLCustomScoreScreenInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  215. // WOL Map Select Overlay ---------------------------------------------------------------------------------
  216. extern void WOLMapSelectMenuInit( WindowLayout *layout, void *userData );
  217. extern void WOLMapSelectMenuUpdate( WindowLayout *layout, void *userData );
  218. extern void WOLMapSelectMenuShutdown( WindowLayout *layout, void *userData );
  219. extern WindowMsgHandledType WOLMapSelectMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  220. extern WindowMsgHandledType WOLMapSelectMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  221. // WOL Buddy Overlay ---------------------------------------------------------------------------------
  222. extern void WOLBuddyOverlayInit( WindowLayout *layout, void *userData );
  223. extern void WOLBuddyOverlayUpdate( WindowLayout *layout, void *userData );
  224. extern void WOLBuddyOverlayShutdown( WindowLayout *layout, void *userData );
  225. extern WindowMsgHandledType WOLBuddyOverlaySystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  226. extern WindowMsgHandledType WOLBuddyOverlayInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  227. // WOL Buddy Overlay Right Click menu callbacks --------------------------------------------------------------
  228. extern void WOLBuddyOverlayRCMenuInit( WindowLayout *layout, void *userData );
  229. extern WindowMsgHandledType WOLBuddyOverlayRCMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  230. // GameSpy Player Info Overlay ---------------------------------------------------------------------------------
  231. extern void GameSpyPlayerInfoOverlayInit( WindowLayout *layout, void *userData );
  232. extern void GameSpyPlayerInfoOverlayUpdate( WindowLayout *layout, void *userData );
  233. extern void GameSpyPlayerInfoOverlayShutdown( WindowLayout *layout, void *userData );
  234. extern WindowMsgHandledType GameSpyPlayerInfoOverlaySystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  235. extern WindowMsgHandledType GameSpyPlayerInfoOverlayInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  236. // Popup host Game Internet -----------------------------------------------------------------------------------
  237. extern void PopupHostGameInit( WindowLayout *layout, void *userData );
  238. extern void PopupHostGameUpdate( WindowLayout * layout, void *userData);
  239. extern WindowMsgHandledType PopupHostGameSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  240. extern WindowMsgHandledType PopupHostGameInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  241. // Popup InGame Message Box -----------------------------------------------------------------------------------
  242. extern void InGamePopupMessageInit( WindowLayout *layout, void *userData );
  243. extern WindowMsgHandledType InGamePopupMessageSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  244. extern WindowMsgHandledType InGamePopupMessageInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  245. // Popup join Game Internet -----------------------------------------------------------------------------------
  246. extern void PopupJoinGameInit( WindowLayout *layout, void *userData );
  247. extern WindowMsgHandledType PopupJoinGameSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  248. extern WindowMsgHandledType PopupJoinGameInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  249. // Network Direct ConnectWindow ---------------------------------------------------------------------------------
  250. extern void NetworkDirectConnectInit( WindowLayout *layout, void *userData );
  251. extern void NetworkDirectConnectUpdate( WindowLayout *layout, void *userData );
  252. extern void NetworkDirectConnectShutdown( WindowLayout *layout, void *userData );
  253. extern WindowMsgHandledType NetworkDirectConnectSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  254. extern WindowMsgHandledType NetworkDirectConnectInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  255. //=================================================================================================
  256. // IME UI //
  257. //=================================================================================================
  258. // IME Candidate Window
  259. extern WindowMsgHandledType IMECandidateWindowSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  260. extern WindowMsgHandledType IMECandidateWindowInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  261. extern void IMECandidateMainDraw( GameWindow *window, WinInstanceData *instData );
  262. extern void IMECandidateTextAreaDraw( GameWindow *window, WinInstanceData *instData );
  263. //=================================================================================================
  264. // In Game UI //
  265. //=================================================================================================
  266. // Control Bar ------------------------------------------------------------------------------------
  267. extern WindowMsgHandledType ControlBarSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  268. extern WindowMsgHandledType ControlBarObserverSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  269. extern WindowMsgHandledType ControlBarInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  270. extern WindowMsgHandledType LeftHUDInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  271. extern void ToggleControlBar( Bool immediate = TRUE );
  272. extern void HideControlBar( Bool immediate = TRUE );
  273. extern void ShowControlBar( Bool immediate = TRUE );
  274. // Replay Controls --------------------------------------------------------------------------------
  275. extern WindowMsgHandledType ReplayControlSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  276. extern WindowMsgHandledType ReplayControlInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  277. // InGame Chat Controls --------------------------------------------------------------------------------
  278. extern WindowMsgHandledType InGameChatSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  279. extern WindowMsgHandledType InGameChatInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  280. enum InGameChatType
  281. {
  282. INGAME_CHAT_ALLIES,
  283. INGAME_CHAT_EVERYONE,
  284. INGAME_CHAT_PLAYERS
  285. };
  286. extern void ToggleInGameChat( Bool immediate = TRUE );
  287. extern void HideInGameChat( Bool immediate = TRUE );
  288. extern void ShowInGameChat( Bool immediate = TRUE );
  289. void ResetInGameChat( void );
  290. void SetInGameChatType( InGameChatType chatType );
  291. Bool IsInGameChatActive();
  292. // Diplomacy Controls --------------------------------------------------------------------------------
  293. WindowMsgHandledType DiplomacySystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  294. WindowMsgHandledType DiplomacyInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  295. void ToggleDiplomacy( Bool immediate = TRUE );
  296. void HideDiplomacy( Bool immediate = TRUE );
  297. void ResetDiplomacy( void );
  298. // Generals Exp Points --------------------------------------------------------------------------------
  299. WindowMsgHandledType GeneralsExpPointsSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  300. WindowMsgHandledType GeneralsExpPointsInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  301. // IdleWorker Controls --------------------------------------------------------------------------------
  302. WindowMsgHandledType IdleWorkerSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  303. // Disconnect Menu --------------------------------------------------------------------------------
  304. extern void ShowDisconnectWindow( void );
  305. extern void HideDisconnectWindow( void );
  306. extern WindowMsgHandledType DisconnectControlSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  307. extern WindowMsgHandledType DisconnectControlInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  308. // Establish Connections Window -------------------------------------------------------------------
  309. extern void ShowEstablishConnectionsWindow( void );
  310. extern void HideEstablishConnectionsWindow( void );
  311. extern WindowMsgHandledType EstablishConnectionsControlSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  312. extern WindowMsgHandledType EstablishConnectionsControlInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  313. // The in game quit menu --------------------------------------------------------------------------
  314. extern void destroyQuitMenu();
  315. extern void ToggleQuitMenu( void );
  316. extern void HideQuitMenu( void );
  317. extern WindowMsgHandledType QuitMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  318. // Message of the Day -----------------------------------------------------------------------------
  319. extern WindowMsgHandledType MOTDSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  320. // Message Box --------------------------------------------------------------------------------
  321. extern WindowMsgHandledType MessageBoxSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  322. extern WindowMsgHandledType QuitMessageBoxSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
  323. #endif // __GUICALLBACKS_H_