Properties.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. /*
  2. ** Command & Conquer Generals(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: Properties.h /////////////////////////////////////////////////////////
  24. //-----------------------------------------------------------------------------
  25. //
  26. // Westwood Studios Pacific.
  27. //
  28. // Confidential Information
  29. // Copyright (C) 2001 - All Rights Reserved
  30. //
  31. //-----------------------------------------------------------------------------
  32. //
  33. // Project: GUIEdit
  34. //
  35. // File name: Properties.h
  36. //
  37. // Created: Colin Day, August 2001
  38. //
  39. // Desc: Header for bringing up property dialogs for windows and
  40. // window gadgets.
  41. //
  42. //-----------------------------------------------------------------------------
  43. ///////////////////////////////////////////////////////////////////////////////
  44. #pragma once
  45. #ifndef __PROPERTIES_H_
  46. #define __PROPERTIES_H_
  47. // SYSTEM INCLUDES ////////////////////////////////////////////////////////////
  48. // USER INCLUDES //////////////////////////////////////////////////////////////
  49. #include "GameClient/GameWindow.h"
  50. #include "GUIEditColor.h"
  51. // FORWARD REFERENCES /////////////////////////////////////////////////////////
  52. ///////////////////////////////////////////////////////////////////////////////
  53. // TYPE DEFINES ///////////////////////////////////////////////////////////////
  54. ///////////////////////////////////////////////////////////////////////////////
  55. // ColorControl ---------------------------------------------------------------
  56. /** This makes it easier for us to associate colors with dialog
  57. * control ID's for purposes of custom color buttons */
  58. //-----------------------------------------------------------------------------
  59. struct ColorControl
  60. {
  61. UnsignedInt controlID; ///< controlID from resource file
  62. RGBColorInt color; ///< the color for this controlID
  63. };
  64. // StateIdentifiers -----------------------------------------------------------
  65. /** These state identifiers link to image and color info entries */
  66. //-----------------------------------------------------------------------------
  67. typedef enum
  68. {
  69. IDENTIFIER_INVALID = 0, // keep this 0 and keep it first
  70. FIRST_VALID_IDENTIFIER = 1,
  71. BUTTON_ENABLED = FIRST_VALID_IDENTIFIER,
  72. BUTTON_ENABLED_PUSHED,
  73. BUTTON_DISABLED,
  74. BUTTON_DISABLED_PUSHED,
  75. BUTTON_HILITE,
  76. BUTTON_HILITE_PUSHED,
  77. RADIO_ENABLED,
  78. RADIO_ENABLED_UNCHECKED_BOX,
  79. RADIO_ENABLED_CHECKED_BOX,
  80. RADIO_DISABLED,
  81. RADIO_DISABLED_UNCHECKED_BOX,
  82. RADIO_DISABLED_CHECKED_BOX,
  83. RADIO_HILITE,
  84. RADIO_HILITE_UNCHECKED_BOX,
  85. RADIO_HILITE_CHECKED_BOX,
  86. CHECK_BOX_ENABLED,
  87. CHECK_BOX_ENABLED_UNCHECKED_BOX,
  88. CHECK_BOX_ENABLED_CHECKED_BOX,
  89. CHECK_BOX_DISABLED,
  90. CHECK_BOX_DISABLED_UNCHECKED_BOX,
  91. CHECK_BOX_DISABLED_CHECKED_BOX,
  92. CHECK_BOX_HILITE,
  93. CHECK_BOX_HILITE_UNCHECKED_BOX,
  94. CHECK_BOX_HILITE_CHECKED_BOX,
  95. COMBOBOX_ENABLED,
  96. COMBOBOX_ENABLED_SELECTED_ITEM_LEFT,
  97. COMBOBOX_ENABLED_SELECTED_ITEM_RIGHT,
  98. COMBOBOX_ENABLED_SELECTED_ITEM_CENTER,
  99. COMBOBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER,
  100. COMBOBOX_DISABLED,
  101. COMBOBOX_DISABLED_SELECTED_ITEM_LEFT,
  102. COMBOBOX_DISABLED_SELECTED_ITEM_RIGHT,
  103. COMBOBOX_DISABLED_SELECTED_ITEM_CENTER,
  104. COMBOBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER,
  105. COMBOBOX_HILITE,
  106. COMBOBOX_HILITE_SELECTED_ITEM_LEFT,
  107. COMBOBOX_HILITE_SELECTED_ITEM_RIGHT,
  108. COMBOBOX_HILITE_SELECTED_ITEM_CENTER,
  109. COMBOBOX_HILITE_SELECTED_ITEM_SMALL_CENTER,
  110. COMBOBOX_DROP_DOWN_BUTTON_ENABLED,
  111. COMBOBOX_DROP_DOWN_BUTTON_ENABLED_PUSHED,
  112. COMBOBOX_DROP_DOWN_BUTTON_DISABLED,
  113. COMBOBOX_DROP_DOWN_BUTTON_DISABLED_PUSHED,
  114. COMBOBOX_DROP_DOWN_BUTTON_HILITE,
  115. COMBOBOX_DROP_DOWN_BUTTON_HILITE_PUSHED,
  116. COMBOBOX_EDIT_BOX_ENABLED_LEFT,
  117. COMBOBOX_EDIT_BOX_ENABLED_RIGHT,
  118. COMBOBOX_EDIT_BOX_ENABLED_CENTER,
  119. COMBOBOX_EDIT_BOX_ENABLED_SMALL_CENTER,
  120. COMBOBOX_EDIT_BOX_DISABLED_LEFT,
  121. COMBOBOX_EDIT_BOX_DISABLED_RIGHT,
  122. COMBOBOX_EDIT_BOX_DISABLED_CENTER,
  123. COMBOBOX_EDIT_BOX_DISABLED_SMALL_CENTER,
  124. COMBOBOX_EDIT_BOX_HILITE_LEFT,
  125. COMBOBOX_EDIT_BOX_HILITE_RIGHT,
  126. COMBOBOX_EDIT_BOX_HILITE_CENTER,
  127. COMBOBOX_EDIT_BOX_HILITE_SMALL_CENTER,
  128. COMBOBOX_LISTBOX_ENABLED,
  129. COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_LEFT,
  130. COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_RIGHT,
  131. COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_CENTER,
  132. COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER,
  133. COMBOBOX_LISTBOX_DISABLED,
  134. COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_LEFT,
  135. COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_RIGHT,
  136. COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_CENTER,
  137. COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER,
  138. COMBOBOX_LISTBOX_HILITE,
  139. COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_LEFT,
  140. COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_RIGHT,
  141. COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_CENTER,
  142. COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER,
  143. COMBOBOX_LISTBOX_UP_BUTTON_ENABLED,
  144. COMBOBOX_LISTBOX_UP_BUTTON_ENABLED_PUSHED,
  145. COMBOBOX_LISTBOX_UP_BUTTON_DISABLED,
  146. COMBOBOX_LISTBOX_UP_BUTTON_DISABLED_PUSHED,
  147. COMBOBOX_LISTBOX_UP_BUTTON_HILITE,
  148. COMBOBOX_LISTBOX_UP_BUTTON_HILITE_PUSHED,
  149. COMBOBOX_LISTBOX_DOWN_BUTTON_ENABLED,
  150. COMBOBOX_LISTBOX_DOWN_BUTTON_ENABLED_PUSHED,
  151. COMBOBOX_LISTBOX_DOWN_BUTTON_DISABLED,
  152. COMBOBOX_LISTBOX_DOWN_BUTTON_DISABLED_PUSHED,
  153. COMBOBOX_LISTBOX_DOWN_BUTTON_HILITE,
  154. COMBOBOX_LISTBOX_DOWN_BUTTON_HILITE_PUSHED,
  155. COMBOBOX_LISTBOX_SLIDER_ENABLED_TOP,
  156. COMBOBOX_LISTBOX_SLIDER_ENABLED_BOTTOM,
  157. COMBOBOX_LISTBOX_SLIDER_ENABLED_CENTER,
  158. COMBOBOX_LISTBOX_SLIDER_ENABLED_SMALL_CENTER,
  159. COMBOBOX_LISTBOX_SLIDER_DISABLED_TOP,
  160. COMBOBOX_LISTBOX_SLIDER_DISABLED_BOTTOM,
  161. COMBOBOX_LISTBOX_SLIDER_DISABLED_CENTER,
  162. COMBOBOX_LISTBOX_SLIDER_DISABLED_SMALL_CENTER,
  163. COMBOBOX_LISTBOX_SLIDER_HILITE_TOP,
  164. COMBOBOX_LISTBOX_SLIDER_HILITE_BOTTOM,
  165. COMBOBOX_LISTBOX_SLIDER_HILITE_CENTER,
  166. COMBOBOX_LISTBOX_SLIDER_HILITE_SMALL_CENTER,
  167. COMBOBOX_LISTBOX_SLIDER_THUMB_ENABLED,
  168. COMBOBOX_LISTBOX_SLIDER_THUMB_ENABLED_PUSHED,
  169. COMBOBOX_LISTBOX_SLIDER_THUMB_DISABLED,
  170. COMBOBOX_LISTBOX_SLIDER_THUMB_DISABLED_PUSHED,
  171. COMBOBOX_LISTBOX_SLIDER_THUMB_HILITE,
  172. COMBOBOX_LISTBOX_SLIDER_THUMB_HILITE_PUSHED,
  173. VSLIDER_ENABLED_TOP,
  174. VSLIDER_ENABLED_BOTTOM,
  175. VSLIDER_ENABLED_CENTER,
  176. VSLIDER_ENABLED_SMALL_CENTER,
  177. VSLIDER_DISABLED_TOP,
  178. VSLIDER_DISABLED_BOTTOM,
  179. VSLIDER_DISABLED_CENTER,
  180. VSLIDER_DISABLED_SMALL_CENTER,
  181. VSLIDER_HILITE_TOP,
  182. VSLIDER_HILITE_BOTTOM,
  183. VSLIDER_HILITE_CENTER,
  184. VSLIDER_HILITE_SMALL_CENTER,
  185. VSLIDER_THUMB_ENABLED,
  186. VSLIDER_THUMB_ENABLED_PUSHED,
  187. VSLIDER_THUMB_DISABLED,
  188. VSLIDER_THUMB_DISABLED_PUSHED,
  189. VSLIDER_THUMB_HILITE,
  190. VSLIDER_THUMB_HILITE_PUSHED,
  191. HSLIDER_ENABLED_LEFT,
  192. HSLIDER_ENABLED_RIGHT,
  193. HSLIDER_ENABLED_CENTER,
  194. HSLIDER_ENABLED_SMALL_CENTER,
  195. HSLIDER_DISABLED_LEFT,
  196. HSLIDER_DISABLED_RIGHT,
  197. HSLIDER_DISABLED_CENTER,
  198. HSLIDER_DISABLED_SMALL_CENTER,
  199. HSLIDER_HILITE_LEFT,
  200. HSLIDER_HILITE_RIGHT,
  201. HSLIDER_HILITE_CENTER,
  202. HSLIDER_HILITE_SMALL_CENTER,
  203. HSLIDER_THUMB_ENABLED,
  204. HSLIDER_THUMB_ENABLED_PUSHED,
  205. HSLIDER_THUMB_DISABLED,
  206. HSLIDER_THUMB_DISABLED_PUSHED,
  207. HSLIDER_THUMB_HILITE,
  208. HSLIDER_THUMB_HILITE_PUSHED,
  209. LISTBOX_ENABLED,
  210. LISTBOX_ENABLED_SELECTED_ITEM_LEFT,
  211. LISTBOX_ENABLED_SELECTED_ITEM_RIGHT,
  212. LISTBOX_ENABLED_SELECTED_ITEM_CENTER,
  213. LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER,
  214. LISTBOX_DISABLED,
  215. LISTBOX_DISABLED_SELECTED_ITEM_LEFT,
  216. LISTBOX_DISABLED_SELECTED_ITEM_RIGHT,
  217. LISTBOX_DISABLED_SELECTED_ITEM_CENTER,
  218. LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER,
  219. LISTBOX_HILITE,
  220. LISTBOX_HILITE_SELECTED_ITEM_LEFT,
  221. LISTBOX_HILITE_SELECTED_ITEM_RIGHT,
  222. LISTBOX_HILITE_SELECTED_ITEM_CENTER,
  223. LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER,
  224. LISTBOX_UP_BUTTON_ENABLED,
  225. LISTBOX_UP_BUTTON_ENABLED_PUSHED,
  226. LISTBOX_UP_BUTTON_DISABLED,
  227. LISTBOX_UP_BUTTON_DISABLED_PUSHED,
  228. LISTBOX_UP_BUTTON_HILITE,
  229. LISTBOX_UP_BUTTON_HILITE_PUSHED,
  230. LISTBOX_DOWN_BUTTON_ENABLED,
  231. LISTBOX_DOWN_BUTTON_ENABLED_PUSHED,
  232. LISTBOX_DOWN_BUTTON_DISABLED,
  233. LISTBOX_DOWN_BUTTON_DISABLED_PUSHED,
  234. LISTBOX_DOWN_BUTTON_HILITE,
  235. LISTBOX_DOWN_BUTTON_HILITE_PUSHED,
  236. LISTBOX_SLIDER_ENABLED_TOP,
  237. LISTBOX_SLIDER_ENABLED_BOTTOM,
  238. LISTBOX_SLIDER_ENABLED_CENTER,
  239. LISTBOX_SLIDER_ENABLED_SMALL_CENTER,
  240. LISTBOX_SLIDER_DISABLED_TOP,
  241. LISTBOX_SLIDER_DISABLED_BOTTOM,
  242. LISTBOX_SLIDER_DISABLED_CENTER,
  243. LISTBOX_SLIDER_DISABLED_SMALL_CENTER,
  244. LISTBOX_SLIDER_HILITE_TOP,
  245. LISTBOX_SLIDER_HILITE_BOTTOM,
  246. LISTBOX_SLIDER_HILITE_CENTER,
  247. LISTBOX_SLIDER_HILITE_SMALL_CENTER,
  248. LISTBOX_SLIDER_THUMB_ENABLED,
  249. LISTBOX_SLIDER_THUMB_ENABLED_PUSHED,
  250. LISTBOX_SLIDER_THUMB_DISABLED,
  251. LISTBOX_SLIDER_THUMB_DISABLED_PUSHED,
  252. LISTBOX_SLIDER_THUMB_HILITE,
  253. LISTBOX_SLIDER_THUMB_HILITE_PUSHED,
  254. PROGRESS_BAR_ENABLED_LEFT,
  255. PROGRESS_BAR_ENABLED_RIGHT,
  256. PROGRESS_BAR_ENABLED_CENTER,
  257. PROGRESS_BAR_ENABLED_SMALL_CENTER,
  258. PROGRESS_BAR_ENABLED_BAR_LEFT,
  259. PROGRESS_BAR_ENABLED_BAR_RIGHT,
  260. PROGRESS_BAR_ENABLED_BAR_CENTER,
  261. PROGRESS_BAR_ENABLED_BAR_SMALL_CENTER,
  262. PROGRESS_BAR_DISABLED_LEFT,
  263. PROGRESS_BAR_DISABLED_RIGHT,
  264. PROGRESS_BAR_DISABLED_CENTER,
  265. PROGRESS_BAR_DISABLED_SMALL_CENTER,
  266. PROGRESS_BAR_DISABLED_BAR_LEFT,
  267. PROGRESS_BAR_DISABLED_BAR_RIGHT,
  268. PROGRESS_BAR_DISABLED_BAR_CENTER,
  269. PROGRESS_BAR_DISABLED_BAR_SMALL_CENTER,
  270. PROGRESS_BAR_HILITE_LEFT,
  271. PROGRESS_BAR_HILITE_RIGHT,
  272. PROGRESS_BAR_HILITE_CENTER,
  273. PROGRESS_BAR_HILITE_SMALL_CENTER,
  274. PROGRESS_BAR_HILITE_BAR_LEFT,
  275. PROGRESS_BAR_HILITE_BAR_RIGHT,
  276. PROGRESS_BAR_HILITE_BAR_CENTER,
  277. PROGRESS_BAR_HILITE_BAR_SMALL_CENTER,
  278. STATIC_TEXT_ENABLED,
  279. STATIC_TEXT_DISABLED,
  280. STATIC_TEXT_HILITE,
  281. TEXT_ENTRY_ENABLED_LEFT,
  282. TEXT_ENTRY_ENABLED_RIGHT,
  283. TEXT_ENTRY_ENABLED_CENTER,
  284. TEXT_ENTRY_ENABLED_SMALL_CENTER,
  285. TEXT_ENTRY_DISABLED_LEFT,
  286. TEXT_ENTRY_DISABLED_RIGHT,
  287. TEXT_ENTRY_DISABLED_CENTER,
  288. TEXT_ENTRY_DISABLED_SMALL_CENTER,
  289. TEXT_ENTRY_HILITE_LEFT,
  290. TEXT_ENTRY_HILITE_RIGHT,
  291. TEXT_ENTRY_HILITE_CENTER,
  292. TEXT_ENTRY_HILITE_SMALL_CENTER,
  293. TC_TAB_0_ENABLED,
  294. TC_TAB_0_DISABLED,
  295. TC_TAB_0_HILITE,
  296. TC_TAB_1_ENABLED,
  297. TC_TAB_1_DISABLED,
  298. TC_TAB_1_HILITE,
  299. TC_TAB_2_ENABLED,
  300. TC_TAB_2_DISABLED,
  301. TC_TAB_2_HILITE,
  302. TC_TAB_3_ENABLED,
  303. TC_TAB_3_DISABLED,
  304. TC_TAB_3_HILITE,
  305. TC_TAB_4_ENABLED,
  306. TC_TAB_4_DISABLED,
  307. TC_TAB_4_HILITE,
  308. TC_TAB_5_ENABLED,
  309. TC_TAB_5_DISABLED,
  310. TC_TAB_5_HILITE,
  311. TC_TAB_6_ENABLED,
  312. TC_TAB_6_DISABLED,
  313. TC_TAB_6_HILITE,
  314. TC_TAB_7_ENABLED,
  315. TC_TAB_7_DISABLED,
  316. TC_TAB_7_HILITE,
  317. TAB_CONTROL_ENABLED,
  318. TAB_CONTROL_DISABLED,
  319. TAB_CONTROL_HILITE,
  320. GENERIC_ENABLED,
  321. GENERIC_DISABLED,
  322. GENERIC_HILITE,
  323. NUM_STATE_IDENTIFIERS // keep this last
  324. } StateIdentifier;
  325. // ImageAndColorInfo ----------------------------------------------------------
  326. /** This is a place for us to store image and color information for
  327. * all the various states for each of the controls, it makes it easier
  328. * for us cause we can just put and get queries in this table and
  329. * work with only one set of dialog controls on all the property
  330. * dialog windows */
  331. //-----------------------------------------------------------------------------
  332. struct ImageAndColorInfo
  333. {
  334. UnsignedInt windowType; ///< this entry applies to these kind of windows
  335. StateIdentifier stateID; ///< state identifier
  336. char *stateName; ///< string state name that this affects
  337. const Image *image; ///< the image for this entry
  338. Color color; ///< color for this entry
  339. Color borderColor; ///< border color for this entry
  340. };
  341. // INLINING ///////////////////////////////////////////////////////////////////
  342. ///////////////////////////////////////////////////////////////////////////////
  343. // EXTERNALS //////////////////////////////////////////////////////////////////
  344. ///////////////////////////////////////////////////////////////////////////////
  345. extern void InitPropertiesDialog( GameWindow *window, Int x, Int y );
  346. extern HWND InitPushButtonPropertiesDialog( GameWindow *window );
  347. extern HWND InitRadioButtonPropertiesDialog( GameWindow *window );
  348. extern HWND InitCheckBoxPropertiesDialog( GameWindow *window );
  349. extern HWND InitListboxPropertiesDialog( GameWindow *window );
  350. extern HWND InitComboBoxPropertiesDialog( GameWindow *window );
  351. extern HWND InitProgressBarPropertiesDialog( GameWindow *window );
  352. extern HWND InitTabControlPropertiesDialog( GameWindow *window );
  353. extern HWND InitStaticTextPropertiesDialog( GameWindow *window );
  354. extern HWND InitTextEntryPropertiesDialog( GameWindow *window );
  355. extern HWND InitSliderPropertiesDialog( GameWindow *window );
  356. extern HWND InitUserWinPropertiesDialog( GameWindow *window );
  357. // these functions help us in managing the dialog "engine"
  358. extern Bool HandleCommonDialogMessages( HWND hWndDialog, UINT message,
  359. WPARAM wParam, LPARAM lParam,
  360. Int *returnCode );
  361. extern void CommonDialogInitialize( GameWindow *window, HWND dialog );
  362. extern void LoadImageListComboBox( HWND comboBox );
  363. extern void LoadHeaderTemplateListComboBox( HWND comboBox, AsciiString selected );
  364. extern const Image *ComboBoxSelectionToImage( HWND comboBox );
  365. extern RGBColorInt *GetControlColor( UnsignedInt controlID );
  366. extern void SetControlColor( UnsignedInt controlID, Color color );
  367. extern void PositionWindowOnScreen( HWND window, Int x, Int y );
  368. extern Bool SaveCommonDialogProperties( HWND dialog, GameWindow *window );
  369. extern void LoadStateCombo( UnsignedInt style, HWND comboBox );
  370. extern void LoadTextStateCombo( HWND comboBox,
  371. Color enabled, Color enabledBorder,
  372. Color disabled, Color disabledBorder,
  373. Color hilite, Color hiliteBorder );
  374. extern void InitCallbackCombos( HWND dialog, GameWindow *window );
  375. extern void SaveCallbacks( GameWindow *window, HWND dialog );
  376. extern ImageAndColorInfo *GetStateInfo( StateIdentifier id );
  377. extern ImageAndColorInfo *GetCurrentStateInfo( HWND dialog );
  378. void SwitchToState( StateIdentifier id, HWND dialog );
  379. extern void StoreImageAndColor( StateIdentifier id, const Image *image,
  380. Color color, Color borderColor );
  381. extern void StoreColor( StateIdentifier id, Color color, Color borderColor );
  382. extern void LoadFontCombo( HWND comboBox, GameFont *currFont );
  383. extern GameFont *GetSelectedFontFromCombo( HWND combo );
  384. extern Color GetPropsEnabledTextColor( void );
  385. extern Color GetPropsEnabledTextBorderColor( void );
  386. extern Color GetPropsDisabledTextColor( void );
  387. extern Color GetPropsDisabledTextBorderColor( void );
  388. extern Color GetPropsHiliteTextColor( void );
  389. extern Color GetPropsHiliteTextBorderColor( void );
  390. #endif // __PROPERTIES_H_