ListboxProperties.cpp 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972
  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: ListboxProperties.cpp ////////////////////////////////////////////////
  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: ListboxProperties.cpp
  36. //
  37. // Created: Colin Day, August 2001
  38. //
  39. // Desc: Listbox properties dialog
  40. //
  41. //-----------------------------------------------------------------------------
  42. ///////////////////////////////////////////////////////////////////////////////
  43. // SYSTEM INCLUDES ////////////////////////////////////////////////////////////
  44. // USER INCLUDES //////////////////////////////////////////////////////////////
  45. #include "GUIEdit.h"
  46. #include "Properties.h"
  47. #include "LayoutScheme.h"
  48. #include "Resource.h"
  49. #include "GameClient/GadgetListBox.h"
  50. #include "GameClient/GadgetPushButton.h"
  51. #include "Gameclient/GadgetSlider.h"
  52. #include "GameClient/GameWindowManager.h"
  53. // DEFINES ////////////////////////////////////////////////////////////////////
  54. // PRIVATE TYPES //////////////////////////////////////////////////////////////
  55. // PRIVATE DATA ///////////////////////////////////////////////////////////////
  56. // PUBLIC DATA ////////////////////////////////////////////////////////////////
  57. // PRIVATE PROTOTYPES /////////////////////////////////////////////////////////
  58. ///////////////////////////////////////////////////////////////////////////////
  59. // PRIVATE FUNCTIONS //////////////////////////////////////////////////////////
  60. ///////////////////////////////////////////////////////////////////////////////
  61. // addScrollbar ===============================================================
  62. /** Add a scrollbar to a listbox window that doesn't have one */
  63. //=============================================================================
  64. static void addScrollbar( GameWindow *listbox )
  65. {
  66. // create scrollbar stuffs
  67. GadgetListboxCreateScrollbar( listbox );
  68. //
  69. // get the colors for the listbox and reset them to recolor the
  70. // newly created scrollbar parts
  71. //
  72. Color enabled = GadgetListBoxGetEnabledColor( listbox );
  73. Color enabledBorder = GadgetListBoxGetEnabledBorderColor( listbox );
  74. Color enabledSelectedItem = GadgetListBoxGetEnabledSelectedItemColor( listbox );
  75. Color enabledSelectedItemBorder = GadgetListBoxGetEnabledSelectedItemBorderColor( listbox );
  76. Color disabled = GadgetListBoxGetDisabledColor( listbox );
  77. Color disabledBorder = GadgetListBoxGetDisabledBorderColor( listbox );
  78. Color disabledSelectedItem = GadgetListBoxGetDisabledSelectedItemColor( listbox );
  79. Color disabledSelectedItemBorder = GadgetListBoxGetDisabledSelectedItemBorderColor( listbox );
  80. Color hilite = GadgetListBoxGetHiliteColor( listbox );
  81. Color hiliteBorder = GadgetListBoxGetHiliteBorderColor( listbox );
  82. Color hiliteSelectedItem = GadgetListBoxGetHiliteSelectedItemColor( listbox );
  83. Color hiliteSelectedItemBorder = GadgetListBoxGetHiliteSelectedItemBorderColor( listbox );
  84. GadgetListBoxSetColors( listbox,
  85. enabled,
  86. enabledBorder,
  87. enabledSelectedItem,
  88. enabledSelectedItemBorder,
  89. disabled,
  90. disabledBorder,
  91. disabledSelectedItem,
  92. disabledSelectedItemBorder,
  93. hilite,
  94. hiliteBorder,
  95. hiliteSelectedItem,
  96. hiliteSelectedItemBorder );
  97. //
  98. // now that colors are assigned based on the colors of the listbox
  99. // itself, assign the default listbox scroll images
  100. //
  101. ImageAndColorInfo *info;
  102. GameWindow *upButton = GadgetListBoxGetUpButton( listbox );
  103. if( upButton )
  104. {
  105. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_ENABLED );
  106. GadgetButtonSetEnabledImage( upButton, info->image );
  107. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_ENABLED_PUSHED );
  108. GadgetButtonSetEnabledSelectedImage( upButton, info->image );
  109. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_DISABLED );
  110. GadgetButtonSetDisabledImage( upButton, info->image );
  111. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_DISABLED_PUSHED );
  112. GadgetButtonSetDisabledSelectedImage( upButton, info->image );
  113. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_HILITE );
  114. GadgetButtonSetHiliteImage( upButton, info->image );
  115. info = TheDefaultScheme->getImageAndColor( LISTBOX_UP_BUTTON_HILITE_PUSHED );
  116. GadgetButtonSetHiliteSelectedImage( upButton, info->image );
  117. } // end if
  118. GameWindow *downButton = GadgetListBoxGetDownButton( listbox );
  119. if( downButton )
  120. {
  121. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_ENABLED );
  122. GadgetButtonSetEnabledImage( downButton, info->image );
  123. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_ENABLED_PUSHED );
  124. GadgetButtonSetEnabledSelectedImage( downButton, info->image );
  125. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_DISABLED );
  126. GadgetButtonSetDisabledImage( downButton, info->image );
  127. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_DISABLED_PUSHED );
  128. GadgetButtonSetDisabledSelectedImage( downButton, info->image );
  129. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_HILITE );
  130. GadgetButtonSetHiliteImage( downButton, info->image );
  131. info = TheDefaultScheme->getImageAndColor( LISTBOX_DOWN_BUTTON_HILITE_PUSHED );
  132. GadgetButtonSetHiliteSelectedImage( downButton, info->image );
  133. } // end if
  134. GameWindow *slider = GadgetListBoxGetSlider( listbox );
  135. if( slider )
  136. {
  137. // ----------------------------------------------------------------------
  138. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_ENABLED_TOP );
  139. GadgetSliderSetEnabledImageTop( slider, info->image );
  140. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_ENABLED_BOTTOM );
  141. GadgetSliderSetEnabledImageBottom( slider, info->image );
  142. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_ENABLED_CENTER );
  143. GadgetSliderSetEnabledImageCenter( slider, info->image );
  144. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_ENABLED_SMALL_CENTER );
  145. GadgetSliderSetEnabledImageSmallCenter( slider, info->image );
  146. // ----------------------------------------------------------------------
  147. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_DISABLED_TOP );
  148. GadgetSliderSetDisabledImageTop( slider, info->image );
  149. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_DISABLED_BOTTOM );
  150. GadgetSliderSetDisabledImageBottom( slider, info->image );
  151. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_DISABLED_CENTER );
  152. GadgetSliderSetDisabledImageCenter( slider, info->image );
  153. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_DISABLED_SMALL_CENTER );
  154. GadgetSliderSetDisabledImageSmallCenter( slider, info->image );
  155. // ----------------------------------------------------------------------
  156. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_HILITE_TOP );
  157. GadgetSliderSetHiliteImageTop( slider, info->image );
  158. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_HILITE_BOTTOM );
  159. GadgetSliderSetHiliteImageBottom( slider, info->image );
  160. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_HILITE_CENTER );
  161. GadgetSliderSetHiliteImageCenter( slider, info->image );
  162. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_HILITE_SMALL_CENTER );
  163. GadgetSliderSetHiliteImageSmallCenter( slider, info->image );
  164. //-----------------------------------------------------------------------
  165. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_ENABLED );
  166. GadgetSliderSetEnabledThumbImage( slider, info->image );
  167. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_ENABLED_PUSHED );
  168. GadgetSliderSetEnabledSelectedThumbImage( slider, info->image );
  169. GadgetSliderSetEnabledSelectedThumbColor( slider, info->color );
  170. GadgetSliderSetEnabledSelectedThumbBorderColor( slider, info->borderColor );
  171. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_DISABLED );
  172. GadgetSliderSetDisabledThumbImage( slider, info->image );
  173. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_DISABLED_PUSHED );
  174. GadgetSliderSetDisabledSelectedThumbImage( slider, info->image );
  175. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_HILITE );
  176. GadgetSliderSetHiliteThumbImage( slider, info->image );
  177. info = TheDefaultScheme->getImageAndColor( LISTBOX_SLIDER_THUMB_HILITE_PUSHED );
  178. GadgetSliderSetHiliteSelectedThumbImage( slider, info->image );
  179. } // end if, slider
  180. } // end addScrollbar
  181. // removeScrollbar ============================================================
  182. /** Remove all scrollbar constructs froma listbox that has it already */
  183. //=============================================================================
  184. static void removeScrollbar( GameWindow *listbox )
  185. {
  186. ListboxData *listData = (ListboxData *)listbox->winGetUserData();
  187. // delete the up button
  188. TheWindowManager->winDestroy( listData->upButton );
  189. listData->upButton = NULL;
  190. // delete down button
  191. TheWindowManager->winDestroy( listData->downButton );
  192. listData->downButton = NULL;
  193. // delete the slider
  194. TheWindowManager->winDestroy( listData->slider );
  195. listData->slider = NULL;
  196. // remove the scrollbar flag from the listbox data
  197. listData->scrollBar = FALSE;
  198. } // end removeScrollbar
  199. // resizeMaxItems =============================================================
  200. /** Change the max items that a listbox can accomodate */
  201. //=============================================================================
  202. static void resizeMaxItems( GameWindow *listbox, UnsignedInt newMaxItems )
  203. {
  204. // ListboxData *listData = (ListboxData *)listbox->winGetUserData();
  205. } // end resizeMaxItems
  206. // listboxPropertiesCallback ==================================================
  207. /** Dialog callback for properties */
  208. //=============================================================================
  209. static LRESULT CALLBACK listboxPropertiesCallback( HWND hWndDialog,
  210. UINT message,
  211. WPARAM wParam,
  212. LPARAM lParam )
  213. {
  214. Int returnCode;
  215. //
  216. // handle any common messages between all property dialogs cause they
  217. // are designed to have controls doing the same functionality
  218. // and names
  219. //
  220. if( HandleCommonDialogMessages( hWndDialog, message,
  221. wParam, lParam, &returnCode ) == TRUE )
  222. return returnCode;
  223. switch( message )
  224. {
  225. // ------------------------------------------------------------------------
  226. case WM_COMMAND:
  227. {
  228. // Int notifyCode = HIWORD( wParam ); // notification code
  229. Int controlID = LOWORD( wParam ); // control ID
  230. // HWND hWndControl = (HWND)lParam; // control window handle
  231. switch( controlID )
  232. {
  233. // --------------------------------------------------------------------
  234. case BUTTON_SUBCONTROL_COLOR:
  235. {
  236. ImageAndColorInfo *info;
  237. //
  238. // using the current colors in the base of the listbox, assign a
  239. // reasonable color scheme to all the sub control components
  240. //
  241. info = GetStateInfo( LISTBOX_ENABLED );
  242. StoreColor( LISTBOX_UP_BUTTON_ENABLED, info->color, info->borderColor );
  243. StoreColor( LISTBOX_DOWN_BUTTON_ENABLED, info->color, info->borderColor );
  244. StoreColor( LISTBOX_SLIDER_ENABLED_TOP, info->color, info->borderColor );
  245. StoreColor( LISTBOX_SLIDER_THUMB_ENABLED, info->color, info->borderColor );
  246. info = GetStateInfo( LISTBOX_ENABLED_SELECTED_ITEM_LEFT );
  247. StoreColor( LISTBOX_UP_BUTTON_ENABLED_PUSHED, info->color, info->borderColor );
  248. StoreColor( LISTBOX_DOWN_BUTTON_ENABLED_PUSHED, info->color, info->borderColor );
  249. StoreColor( LISTBOX_SLIDER_THUMB_ENABLED_PUSHED, info->color, info->borderColor );
  250. info = GetStateInfo( LISTBOX_DISABLED );
  251. StoreColor( LISTBOX_UP_BUTTON_DISABLED, info->color, info->borderColor );
  252. StoreColor( LISTBOX_DOWN_BUTTON_DISABLED, info->color, info->borderColor );
  253. StoreColor( LISTBOX_SLIDER_DISABLED_TOP, info->color, info->borderColor );
  254. StoreColor( LISTBOX_SLIDER_THUMB_DISABLED, info->color, info->borderColor );
  255. info = GetStateInfo( LISTBOX_DISABLED_SELECTED_ITEM_LEFT );
  256. StoreColor( LISTBOX_UP_BUTTON_DISABLED_PUSHED, info->color, info->borderColor );
  257. StoreColor( LISTBOX_DOWN_BUTTON_DISABLED_PUSHED, info->color, info->borderColor );
  258. StoreColor( LISTBOX_SLIDER_THUMB_DISABLED_PUSHED, info->color, info->borderColor );
  259. info = GetStateInfo( LISTBOX_HILITE );
  260. StoreColor( LISTBOX_UP_BUTTON_HILITE, info->color, info->borderColor );
  261. StoreColor( LISTBOX_DOWN_BUTTON_HILITE, info->color, info->borderColor );
  262. StoreColor( LISTBOX_SLIDER_HILITE_TOP, info->color, info->borderColor );
  263. StoreColor( LISTBOX_SLIDER_THUMB_HILITE, info->color, info->borderColor );
  264. info = GetStateInfo( LISTBOX_HILITE_SELECTED_ITEM_LEFT );
  265. StoreColor( LISTBOX_UP_BUTTON_HILITE_PUSHED, info->color, info->borderColor );
  266. StoreColor( LISTBOX_DOWN_BUTTON_HILITE_PUSHED, info->color, info->borderColor );
  267. StoreColor( LISTBOX_SLIDER_THUMB_HILITE_PUSHED, info->color, info->borderColor );
  268. break;
  269. } // end case subcontrol color
  270. // --------------------------------------------------------------------
  271. case IDOK:
  272. {
  273. GameWindow *window = TheEditor->getPropertyTarget();
  274. // sanity
  275. if( window )
  276. {
  277. ImageAndColorInfo *info;
  278. // save the common properties
  279. if( SaveCommonDialogProperties( hWndDialog, window ) == FALSE )
  280. break;
  281. // save the image and color data
  282. // ----------------------------------------------------------------
  283. info = GetStateInfo( LISTBOX_ENABLED );
  284. GadgetListBoxSetEnabledImage( window, info->image );
  285. GadgetListBoxSetEnabledColor( window, info->color );
  286. GadgetListBoxSetEnabledBorderColor( window, info->borderColor );
  287. info = GetStateInfo( LISTBOX_ENABLED_SELECTED_ITEM_LEFT );
  288. GadgetListBoxSetEnabledSelectedItemImageLeft( window, info->image );
  289. GadgetListBoxSetEnabledSelectedItemColor( window, info->color );
  290. GadgetListBoxSetEnabledSelectedItemBorderColor( window, info->borderColor );
  291. info = GetStateInfo( LISTBOX_ENABLED_SELECTED_ITEM_RIGHT );
  292. GadgetListBoxSetEnabledSelectedItemImageRight( window, info->image );
  293. info = GetStateInfo( LISTBOX_ENABLED_SELECTED_ITEM_CENTER );
  294. GadgetListBoxSetEnabledSelectedItemImageCenter( window, info->image );
  295. info = GetStateInfo( LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER );
  296. GadgetListBoxSetEnabledSelectedItemImageSmallCenter( window, info->image );
  297. // ----------------------------------------------------------------
  298. info = GetStateInfo( LISTBOX_DISABLED );
  299. GadgetListBoxSetDisabledImage( window, info->image );
  300. GadgetListBoxSetDisabledColor( window, info->color );
  301. GadgetListBoxSetDisabledBorderColor( window, info->borderColor );
  302. info = GetStateInfo( LISTBOX_DISABLED_SELECTED_ITEM_LEFT );
  303. GadgetListBoxSetDisabledSelectedItemImageLeft( window, info->image );
  304. GadgetListBoxSetDisabledSelectedItemColor( window, info->color );
  305. GadgetListBoxSetDisabledSelectedItemBorderColor( window, info->borderColor );
  306. info = GetStateInfo( LISTBOX_DISABLED_SELECTED_ITEM_RIGHT );
  307. GadgetListBoxSetDisabledSelectedItemImageRight( window, info->image );
  308. info = GetStateInfo( LISTBOX_DISABLED_SELECTED_ITEM_CENTER );
  309. GadgetListBoxSetDisabledSelectedItemImageCenter( window, info->image );
  310. info = GetStateInfo( LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER );
  311. GadgetListBoxSetDisabledSelectedItemImageSmallCenter( window, info->image );
  312. // ----------------------------------------------------------------
  313. info = GetStateInfo( LISTBOX_HILITE );
  314. GadgetListBoxSetHiliteImage( window, info->image );
  315. GadgetListBoxSetHiliteColor( window, info->color );
  316. GadgetListBoxSetHiliteBorderColor( window, info->borderColor );
  317. info = GetStateInfo( LISTBOX_HILITE_SELECTED_ITEM_LEFT );
  318. GadgetListBoxSetHiliteSelectedItemImageLeft( window, info->image );
  319. GadgetListBoxSetHiliteSelectedItemColor( window, info->color );
  320. GadgetListBoxSetHiliteSelectedItemBorderColor( window, info->borderColor );
  321. info = GetStateInfo( LISTBOX_HILITE_SELECTED_ITEM_RIGHT );
  322. GadgetListBoxSetHiliteSelectedItemImageRight( window, info->image );
  323. info = GetStateInfo( LISTBOX_HILITE_SELECTED_ITEM_CENTER );
  324. GadgetListBoxSetHiliteSelectedItemImageCenter( window, info->image );
  325. info = GetStateInfo( LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER );
  326. GadgetListBoxSetHiliteSelectedItemImageSmallCenter( window, info->image );
  327. // up button
  328. GameWindow *upButton = GadgetListBoxGetUpButton( window );
  329. if( upButton )
  330. {
  331. // ----------------------------------------------------------------
  332. info = GetStateInfo( LISTBOX_UP_BUTTON_ENABLED );
  333. GadgetButtonSetEnabledImage( upButton, info->image );
  334. GadgetButtonSetEnabledColor( upButton, info->color );
  335. GadgetButtonSetEnabledBorderColor( upButton, info->borderColor );
  336. info = GetStateInfo( LISTBOX_UP_BUTTON_ENABLED_PUSHED );
  337. GadgetButtonSetEnabledSelectedImage( upButton, info->image );
  338. GadgetButtonSetEnabledSelectedColor( upButton, info->color );
  339. GadgetButtonSetEnabledSelectedBorderColor( upButton, info->borderColor );
  340. // ----------------------------------------------------------------
  341. info = GetStateInfo( LISTBOX_UP_BUTTON_DISABLED );
  342. GadgetButtonSetDisabledImage( upButton, info->image );
  343. GadgetButtonSetDisabledColor( upButton, info->color );
  344. GadgetButtonSetDisabledBorderColor( upButton, info->borderColor );
  345. info = GetStateInfo( LISTBOX_UP_BUTTON_DISABLED_PUSHED );
  346. GadgetButtonSetDisabledSelectedImage( upButton, info->image );
  347. GadgetButtonSetDisabledSelectedColor( upButton, info->color );
  348. GadgetButtonSetDisabledSelectedBorderColor( upButton, info->borderColor );
  349. // ----------------------------------------------------------------
  350. info = GetStateInfo( LISTBOX_UP_BUTTON_HILITE );
  351. GadgetButtonSetHiliteImage( upButton, info->image );
  352. GadgetButtonSetHiliteColor( upButton, info->color );
  353. GadgetButtonSetHiliteBorderColor( upButton, info->borderColor );
  354. info = GetStateInfo( LISTBOX_UP_BUTTON_HILITE_PUSHED );
  355. GadgetButtonSetHiliteSelectedImage( upButton, info->image );
  356. GadgetButtonSetHiliteSelectedColor( upButton, info->color );
  357. GadgetButtonSetHiliteSelectedBorderColor( upButton, info->borderColor );
  358. } // end if
  359. // down button
  360. GameWindow *downButton = GadgetListBoxGetDownButton( window );
  361. if( downButton )
  362. {
  363. // ----------------------------------------------------------------
  364. info = GetStateInfo( LISTBOX_DOWN_BUTTON_ENABLED );
  365. GadgetButtonSetEnabledImage( downButton, info->image );
  366. GadgetButtonSetEnabledColor( downButton, info->color );
  367. GadgetButtonSetEnabledBorderColor( downButton, info->borderColor );
  368. info = GetStateInfo( LISTBOX_DOWN_BUTTON_ENABLED_PUSHED );
  369. GadgetButtonSetEnabledSelectedImage( downButton, info->image );
  370. GadgetButtonSetEnabledSelectedColor( downButton, info->color );
  371. GadgetButtonSetEnabledSelectedBorderColor( downButton, info->borderColor );
  372. // ----------------------------------------------------------------
  373. info = GetStateInfo( LISTBOX_DOWN_BUTTON_DISABLED );
  374. GadgetButtonSetDisabledImage( downButton, info->image );
  375. GadgetButtonSetDisabledColor( downButton, info->color );
  376. GadgetButtonSetDisabledBorderColor( downButton, info->borderColor );
  377. info = GetStateInfo( LISTBOX_DOWN_BUTTON_DISABLED_PUSHED );
  378. GadgetButtonSetDisabledSelectedImage( downButton, info->image );
  379. GadgetButtonSetDisabledSelectedColor( downButton, info->color );
  380. GadgetButtonSetDisabledSelectedBorderColor( downButton, info->borderColor );
  381. // ----------------------------------------------------------------
  382. info = GetStateInfo( LISTBOX_DOWN_BUTTON_HILITE );
  383. GadgetButtonSetHiliteImage( downButton, info->image );
  384. GadgetButtonSetHiliteColor( downButton, info->color );
  385. GadgetButtonSetHiliteBorderColor( downButton, info->borderColor );
  386. info = GetStateInfo( LISTBOX_DOWN_BUTTON_HILITE_PUSHED );
  387. GadgetButtonSetHiliteSelectedImage( downButton, info->image );
  388. GadgetButtonSetHiliteSelectedColor( downButton, info->color );
  389. GadgetButtonSetHiliteSelectedBorderColor( downButton, info->borderColor );
  390. } // end if
  391. // slider
  392. GameWindow *slider = GadgetListBoxGetSlider( window );
  393. if( slider )
  394. {
  395. // ----------------------------------------------------------------
  396. info = GetStateInfo( LISTBOX_SLIDER_ENABLED_TOP );
  397. GadgetSliderSetEnabledImageTop( slider, info->image );
  398. GadgetSliderSetEnabledColor( slider, info->color );
  399. GadgetSliderSetEnabledBorderColor( slider, info->borderColor );
  400. info = GetStateInfo( LISTBOX_SLIDER_ENABLED_BOTTOM );
  401. GadgetSliderSetEnabledImageBottom( slider, info->image );
  402. info = GetStateInfo( LISTBOX_SLIDER_ENABLED_CENTER );
  403. GadgetSliderSetEnabledImageCenter( slider, info->image );
  404. info = GetStateInfo( LISTBOX_SLIDER_ENABLED_SMALL_CENTER );
  405. GadgetSliderSetEnabledImageSmallCenter( slider, info->image );
  406. // ----------------------------------------------------------------
  407. info = GetStateInfo( LISTBOX_SLIDER_DISABLED_TOP );
  408. GadgetSliderSetDisabledImageTop( slider, info->image );
  409. GadgetSliderSetDisabledColor( slider, info->color );
  410. GadgetSliderSetDisabledBorderColor( slider, info->borderColor );
  411. info = GetStateInfo( LISTBOX_SLIDER_DISABLED_BOTTOM );
  412. GadgetSliderSetDisabledImageBottom( slider, info->image );
  413. info = GetStateInfo( LISTBOX_SLIDER_DISABLED_CENTER );
  414. GadgetSliderSetDisabledImageCenter( slider, info->image );
  415. info = GetStateInfo( LISTBOX_SLIDER_DISABLED_SMALL_CENTER );
  416. GadgetSliderSetDisabledImageSmallCenter( slider, info->image );
  417. // ----------------------------------------------------------------
  418. info = GetStateInfo( LISTBOX_SLIDER_HILITE_TOP );
  419. GadgetSliderSetHiliteImageTop( slider, info->image );
  420. GadgetSliderSetHiliteColor( slider, info->color );
  421. GadgetSliderSetHiliteBorderColor( slider, info->borderColor );
  422. info = GetStateInfo( LISTBOX_SLIDER_HILITE_BOTTOM );
  423. GadgetSliderSetHiliteImageBottom( slider, info->image );
  424. info = GetStateInfo( LISTBOX_SLIDER_HILITE_CENTER );
  425. GadgetSliderSetHiliteImageCenter( slider, info->image );
  426. info = GetStateInfo( LISTBOX_SLIDER_HILITE_SMALL_CENTER );
  427. GadgetSliderSetHiliteImageSmallCenter( slider, info->image );
  428. // ----------------------------------------------------------------
  429. info = GetStateInfo( LISTBOX_SLIDER_THUMB_ENABLED );
  430. GadgetSliderSetEnabledThumbImage( slider, info->image );
  431. GadgetSliderSetEnabledThumbColor( slider, info->color );
  432. GadgetSliderSetEnabledThumbBorderColor( slider, info->borderColor );
  433. info = GetStateInfo( LISTBOX_SLIDER_THUMB_ENABLED_PUSHED );
  434. GadgetSliderSetEnabledSelectedThumbImage( slider, info->image );
  435. GadgetSliderSetEnabledSelectedThumbColor( slider, info->color );
  436. GadgetSliderSetEnabledSelectedThumbBorderColor( slider, info->borderColor );
  437. // ----------------------------------------------------------------
  438. info = GetStateInfo( LISTBOX_SLIDER_THUMB_DISABLED );
  439. GadgetSliderSetDisabledThumbImage( slider, info->image );
  440. GadgetSliderSetDisabledThumbColor( slider, info->color );
  441. GadgetSliderSetDisabledThumbBorderColor( slider, info->borderColor );
  442. info = GetStateInfo( LISTBOX_SLIDER_THUMB_DISABLED_PUSHED );
  443. GadgetSliderSetDisabledSelectedThumbImage( slider, info->image );
  444. GadgetSliderSetDisabledSelectedThumbColor( slider, info->color );
  445. GadgetSliderSetDisabledSelectedThumbBorderColor( slider, info->borderColor );
  446. // ----------------------------------------------------------------
  447. info = GetStateInfo( LISTBOX_SLIDER_THUMB_HILITE );
  448. GadgetSliderSetHiliteThumbImage( slider, info->image );
  449. GadgetSliderSetHiliteThumbColor( slider, info->color );
  450. GadgetSliderSetHiliteThumbBorderColor( slider, info->borderColor );
  451. info = GetStateInfo( LISTBOX_SLIDER_THUMB_HILITE_PUSHED );
  452. GadgetSliderSetHiliteSelectedThumbImage( slider, info->image );
  453. GadgetSliderSetHiliteSelectedThumbColor( slider, info->color );
  454. GadgetSliderSetHiliteSelectedThumbBorderColor( slider, info->borderColor );
  455. } // end if
  456. // save specific list data
  457. ListboxData *listData = (ListboxData *)window->winGetUserData();
  458. listData->forceSelect = IsDlgButtonChecked( hWndDialog, CHECK_FORCE_SELECT );
  459. listData->autoScroll = IsDlgButtonChecked( hWndDialog, CHECK_AUTO_SCROLL );
  460. listData->scrollIfAtEnd = IsDlgButtonChecked( hWndDialog, CHECK_SCROLL_IF_AT_END );
  461. listData->autoPurge = IsDlgButtonChecked( hWndDialog, CHECK_AUTO_PURGE );
  462. // addition or subtraction of a scroll bar
  463. Bool wantScrollBar = IsDlgButtonChecked( hWndDialog, CHECK_HAS_SCROLLBAR );
  464. if( wantScrollBar == TRUE && listData->scrollBar == FALSE )
  465. addScrollbar( window );
  466. else if( wantScrollBar == FALSE && listData->scrollBar == TRUE )
  467. removeScrollbar( window );
  468. // change in the size of the listbox
  469. Int newMaxItems = GetDlgItemInt( hWndDialog, EDIT_MAX_ITEMS, NULL, FALSE );
  470. if( newMaxItems != listData->listLength )
  471. GadgetListBoxSetListLength( window, newMaxItems );
  472. // multi-select
  473. Bool wantMultiSelect = IsDlgButtonChecked( hWndDialog, CHECK_MULTI_SELECT );
  474. if( wantMultiSelect == TRUE && listData->multiSelect == FALSE )
  475. GadgetListBoxAddMultiSelect( window );
  476. else if( wantMultiSelect == FALSE && listData->multiSelect == TRUE )
  477. GadgetListBoxRemoveMultiSelect( window );
  478. // Wordwrap
  479. UnsignedInt bit = WIN_STATUS_ONE_LINE;
  480. window->winClearStatus( bit );
  481. if( IsDlgButtonChecked( hWndDialog, CHECK_NO_WORDWRAP ) )
  482. window->winSetStatus( bit );
  483. // Multi-column
  484. Int newColumns = GetDlgItemInt( hWndDialog, EDIT_NUM_COLUMNS,NULL,FALSE);
  485. if(newColumns > 1)
  486. {
  487. char *percentages = new char[60];
  488. char *token;
  489. GetDlgItemText(hWndDialog,EDIT_COLUMN_PERCENT,percentages,200);
  490. if(strlen(percentages) == 0)
  491. {
  492. MessageBox(NULL,"You have specified a column amount greater then 1, please enter the same about of percentages","whoops",MB_OK | MB_ICONSTOP | MB_APPLMODAL);
  493. break;
  494. }
  495. Int *newPercentages = new Int[newColumns];
  496. Int i = 0;
  497. Int total = 0;
  498. token = strtok( percentages, "," );
  499. while( token != NULL )
  500. {
  501. newPercentages[i] = atoi(token);
  502. total += newPercentages[i];
  503. token = strtok( NULL, "," );
  504. i++;
  505. if(i > newColumns && token)
  506. {
  507. Char *whoopsMsg = new char[250];
  508. sprintf(whoopsMsg,"You have Specified %d columns but I have read in more then that for the percentages, please double check your data", newColumns);
  509. MessageBox(NULL, whoopsMsg,"Whoops",MB_OK | MB_ICONSTOP | MB_APPLMODAL);
  510. return 0;
  511. }
  512. else if( i < newColumns && !token )
  513. {
  514. Char *whoopsMsg = new char[250];
  515. sprintf(whoopsMsg,"You have Specified %d columns but I have read in only %d for the percentages, please double check your data", newColumns, i );
  516. MessageBox(NULL, whoopsMsg,"Whoops",MB_OK | MB_ICONSTOP | MB_APPLMODAL);
  517. return 0;
  518. }
  519. else if((total > 100 ) || (total < 100 && !token ))
  520. {
  521. Char *whoopsMsg = new char[250];
  522. sprintf(whoopsMsg,"Please Double check to make sure your percentages add up to 100.", newColumns, i - 1);
  523. MessageBox(NULL, whoopsMsg,"Whoops",MB_OK | MB_ICONSTOP | MB_APPLMODAL);
  524. return 0;
  525. }
  526. }
  527. listData->columnWidthPercentage = newPercentages;
  528. }
  529. listData->columns = newColumns;
  530. } // end if
  531. DestroyWindow( hWndDialog );
  532. break;
  533. } // end OK
  534. // --------------------------------------------------------------------
  535. case IDCANCEL:
  536. {
  537. DestroyWindow( hWndDialog );
  538. break;
  539. } // end cancel
  540. } // end switch( LOWORD( wParam ) )
  541. return 0;
  542. } // end of WM_COMMAND
  543. // ------------------------------------------------------------------------
  544. case WM_CLOSE:
  545. {
  546. DestroyWindow( hWndDialog );
  547. return 0;
  548. } // end close
  549. // ------------------------------------------------------------------------
  550. default:
  551. return 0;
  552. } // end of switch
  553. } // end listboxPropertiesCallback
  554. ///////////////////////////////////////////////////////////////////////////////
  555. // PUBLIC FUNCTIONS ///////////////////////////////////////////////////////////
  556. ///////////////////////////////////////////////////////////////////////////////
  557. // InitListboxPropertiesDialog ================================================
  558. /** Bring up the listbox properties window */
  559. //=============================================================================
  560. HWND InitListboxPropertiesDialog( GameWindow *window )
  561. {
  562. HWND dialog;
  563. // create the dialog box
  564. dialog = CreateDialog( TheEditor->getInstance(),
  565. (LPCTSTR)LISTBOX_PROPERTIES_DIALOG,
  566. TheEditor->getWindowHandle(),
  567. (DLGPROC)listboxPropertiesCallback );
  568. if( dialog == NULL )
  569. return NULL;
  570. // do the common initialization
  571. CommonDialogInitialize( window, dialog );
  572. //
  573. // store in the image and color table the values for this putton
  574. //
  575. const Image *image;
  576. Color color, borderColor;
  577. // --------------------------------------------------------------------------
  578. image = GadgetListBoxGetEnabledImage( window );
  579. color = GadgetListBoxGetEnabledColor( window );
  580. borderColor = GadgetListBoxGetEnabledBorderColor( window );
  581. StoreImageAndColor( LISTBOX_ENABLED, image, color, borderColor );
  582. image = GadgetListBoxGetEnabledSelectedItemImageLeft( window );
  583. color = GadgetListBoxGetEnabledSelectedItemColor( window );
  584. borderColor = GadgetListBoxGetEnabledSelectedItemBorderColor( window );
  585. StoreImageAndColor( LISTBOX_ENABLED_SELECTED_ITEM_LEFT, image, color, borderColor );
  586. image = GadgetListBoxGetEnabledSelectedItemImageRight( window );
  587. StoreImageAndColor( LISTBOX_ENABLED_SELECTED_ITEM_RIGHT, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  588. image = GadgetListBoxGetEnabledSelectedItemImageCenter( window );
  589. StoreImageAndColor( LISTBOX_ENABLED_SELECTED_ITEM_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  590. image = GadgetListBoxGetEnabledSelectedItemImageSmallCenter( window );
  591. StoreImageAndColor( LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  592. // --------------------------------------------------------------------------
  593. image = GadgetListBoxGetDisabledImage( window );
  594. color = GadgetListBoxGetDisabledColor( window );
  595. borderColor = GadgetListBoxGetDisabledBorderColor( window );
  596. StoreImageAndColor( LISTBOX_DISABLED, image, color, borderColor );
  597. image = GadgetListBoxGetDisabledSelectedItemImageLeft( window );
  598. color = GadgetListBoxGetDisabledSelectedItemColor( window );
  599. borderColor = GadgetListBoxGetDisabledSelectedItemBorderColor( window );
  600. StoreImageAndColor( LISTBOX_DISABLED_SELECTED_ITEM_LEFT, image, color, borderColor );
  601. image = GadgetListBoxGetDisabledSelectedItemImageRight( window );
  602. StoreImageAndColor( LISTBOX_DISABLED_SELECTED_ITEM_RIGHT, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  603. image = GadgetListBoxGetDisabledSelectedItemImageCenter( window );
  604. StoreImageAndColor( LISTBOX_DISABLED_SELECTED_ITEM_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  605. image = GadgetListBoxGetDisabledSelectedItemImageSmallCenter( window );
  606. StoreImageAndColor( LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  607. // --------------------------------------------------------------------------
  608. image = GadgetListBoxGetHiliteImage( window );
  609. color = GadgetListBoxGetHiliteColor( window );
  610. borderColor = GadgetListBoxGetHiliteBorderColor( window );
  611. StoreImageAndColor( LISTBOX_HILITE, image, color, borderColor );
  612. image = GadgetListBoxGetHiliteSelectedItemImageLeft( window );
  613. color = GadgetListBoxGetHiliteSelectedItemColor( window );
  614. borderColor = GadgetListBoxGetHiliteSelectedItemBorderColor( window );
  615. StoreImageAndColor( LISTBOX_HILITE_SELECTED_ITEM_LEFT, image, color, borderColor );
  616. image = GadgetListBoxGetHiliteSelectedItemImageRight( window );
  617. StoreImageAndColor( LISTBOX_HILITE_SELECTED_ITEM_RIGHT, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  618. image = GadgetListBoxGetHiliteSelectedItemImageCenter( window );
  619. StoreImageAndColor( LISTBOX_HILITE_SELECTED_ITEM_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  620. image = GadgetListBoxGetHiliteSelectedItemImageSmallCenter( window );
  621. StoreImageAndColor( LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER, image, WIN_COLOR_UNDEFINED, WIN_COLOR_UNDEFINED );
  622. // --------------------------------------------------------------------------
  623. GameWindow *upButton = GadgetListBoxGetUpButton( window );
  624. if( upButton )
  625. {
  626. // ------------------------------------------------------------------------
  627. image = GadgetButtonGetEnabledImage( upButton );
  628. color = GadgetButtonGetEnabledColor( upButton );
  629. borderColor = GadgetButtonGetEnabledBorderColor( upButton );
  630. StoreImageAndColor( LISTBOX_UP_BUTTON_ENABLED, image, color, borderColor );
  631. image = GadgetButtonGetEnabledSelectedImage( upButton );
  632. color = GadgetButtonGetEnabledSelectedColor( upButton );
  633. borderColor = GadgetButtonGetEnabledSelectedBorderColor( upButton );
  634. StoreImageAndColor( LISTBOX_UP_BUTTON_ENABLED_PUSHED, image, color, borderColor );
  635. // ------------------------------------------------------------------------
  636. image = GadgetButtonGetDisabledImage( upButton );
  637. color = GadgetButtonGetDisabledColor( upButton );
  638. borderColor = GadgetButtonGetDisabledBorderColor( upButton );
  639. StoreImageAndColor( LISTBOX_UP_BUTTON_DISABLED, image, color, borderColor );
  640. image = GadgetButtonGetDisabledSelectedImage( upButton );
  641. color = GadgetButtonGetDisabledSelectedColor( upButton );
  642. borderColor = GadgetButtonGetDisabledSelectedBorderColor( upButton );
  643. StoreImageAndColor( LISTBOX_UP_BUTTON_DISABLED_PUSHED, image, color, borderColor );
  644. // ------------------------------------------------------------------------
  645. image = GadgetButtonGetHiliteImage( upButton );
  646. color = GadgetButtonGetHiliteColor( upButton );
  647. borderColor = GadgetButtonGetHiliteBorderColor( upButton );
  648. StoreImageAndColor( LISTBOX_UP_BUTTON_HILITE, image, color, borderColor );
  649. image = GadgetButtonGetHiliteSelectedImage( upButton );
  650. color = GadgetButtonGetHiliteSelectedColor( upButton );
  651. borderColor = GadgetButtonGetHiliteSelectedBorderColor( upButton );
  652. StoreImageAndColor( LISTBOX_UP_BUTTON_HILITE_PUSHED, image, color, borderColor );
  653. } // end if
  654. // --------------------------------------------------------------------------
  655. GameWindow *downButton = GadgetListBoxGetDownButton( window );
  656. if( downButton )
  657. {
  658. // ------------------------------------------------------------------------
  659. image = GadgetButtonGetEnabledImage( downButton );
  660. color = GadgetButtonGetEnabledColor( downButton );
  661. borderColor = GadgetButtonGetEnabledBorderColor( downButton );
  662. StoreImageAndColor( LISTBOX_DOWN_BUTTON_ENABLED, image, color, borderColor );
  663. image = GadgetButtonGetEnabledSelectedImage( downButton );
  664. color = GadgetButtonGetEnabledSelectedColor( downButton );
  665. borderColor = GadgetButtonGetEnabledSelectedBorderColor( downButton );
  666. StoreImageAndColor( LISTBOX_DOWN_BUTTON_ENABLED_PUSHED, image, color, borderColor );
  667. // ------------------------------------------------------------------------
  668. image = GadgetButtonGetDisabledImage( downButton );
  669. color = GadgetButtonGetDisabledColor( downButton );
  670. borderColor = GadgetButtonGetDisabledBorderColor( downButton );
  671. StoreImageAndColor( LISTBOX_DOWN_BUTTON_DISABLED, image, color, borderColor );
  672. image = GadgetButtonGetDisabledSelectedImage( downButton );
  673. color = GadgetButtonGetDisabledSelectedColor( downButton );
  674. borderColor = GadgetButtonGetDisabledSelectedBorderColor( downButton );
  675. StoreImageAndColor( LISTBOX_DOWN_BUTTON_DISABLED_PUSHED, image, color, borderColor );
  676. // ------------------------------------------------------------------------
  677. image = GadgetButtonGetHiliteImage( downButton );
  678. color = GadgetButtonGetHiliteColor( downButton );
  679. borderColor = GadgetButtonGetHiliteBorderColor( downButton );
  680. StoreImageAndColor( LISTBOX_DOWN_BUTTON_HILITE, image, color, borderColor );
  681. image = GadgetButtonGetHiliteSelectedImage( downButton );
  682. color = GadgetButtonGetHiliteSelectedColor( downButton );
  683. borderColor = GadgetButtonGetHiliteSelectedBorderColor( downButton );
  684. StoreImageAndColor( LISTBOX_DOWN_BUTTON_HILITE_PUSHED, image, color, borderColor );
  685. } // end if
  686. GameWindow *slider = GadgetListBoxGetSlider( window );
  687. if( slider )
  688. {
  689. // --------------------------------------------------------------------------
  690. image = GadgetSliderGetEnabledImageTop( slider );
  691. color = GadgetSliderGetEnabledColor( slider );
  692. borderColor = GadgetSliderGetEnabledBorderColor( slider );
  693. StoreImageAndColor( LISTBOX_SLIDER_ENABLED_TOP, image, color, borderColor );
  694. image = GadgetSliderGetEnabledImageBottom( slider );
  695. StoreImageAndColor( LISTBOX_SLIDER_ENABLED_BOTTOM, image, color, borderColor );
  696. image = GadgetSliderGetEnabledImageCenter( slider );
  697. StoreImageAndColor( LISTBOX_SLIDER_ENABLED_CENTER, image, color, borderColor );
  698. image = GadgetSliderGetEnabledImageSmallCenter( slider );
  699. StoreImageAndColor( LISTBOX_SLIDER_ENABLED_SMALL_CENTER, image, color, borderColor );
  700. // --------------------------------------------------------------------------
  701. image = GadgetSliderGetDisabledImageTop( slider );
  702. color = GadgetSliderGetDisabledColor( slider );
  703. borderColor = GadgetSliderGetDisabledBorderColor( slider );
  704. StoreImageAndColor( LISTBOX_SLIDER_DISABLED_TOP, image, color, borderColor );
  705. image = GadgetSliderGetDisabledImageBottom( slider );
  706. StoreImageAndColor( LISTBOX_SLIDER_DISABLED_BOTTOM, image, color, borderColor );
  707. image = GadgetSliderGetDisabledImageCenter( slider );
  708. StoreImageAndColor( LISTBOX_SLIDER_DISABLED_CENTER, image, color, borderColor );
  709. image = GadgetSliderGetDisabledImageSmallCenter( slider );
  710. StoreImageAndColor( LISTBOX_SLIDER_DISABLED_SMALL_CENTER, image, color, borderColor );
  711. // --------------------------------------------------------------------------
  712. image = GadgetSliderGetHiliteImageTop( slider );
  713. color = GadgetSliderGetHiliteColor( slider );
  714. borderColor = GadgetSliderGetHiliteBorderColor( slider );
  715. StoreImageAndColor( LISTBOX_SLIDER_HILITE_TOP, image, color, borderColor );
  716. image = GadgetSliderGetHiliteImageBottom( slider );
  717. StoreImageAndColor( LISTBOX_SLIDER_HILITE_BOTTOM, image, color, borderColor );
  718. image = GadgetSliderGetHiliteImageCenter( slider );
  719. StoreImageAndColor( LISTBOX_SLIDER_HILITE_CENTER, image, color, borderColor );
  720. image = GadgetSliderGetHiliteImageSmallCenter( slider );
  721. StoreImageAndColor( LISTBOX_SLIDER_HILITE_SMALL_CENTER, image, color, borderColor );
  722. // --------------------------------------------------------------------------
  723. image = GadgetSliderGetEnabledThumbImage( slider );
  724. color = GadgetSliderGetEnabledThumbColor( slider );
  725. borderColor = GadgetSliderGetEnabledThumbBorderColor( slider );
  726. StoreImageAndColor( LISTBOX_SLIDER_THUMB_ENABLED, image, color, borderColor );
  727. image = GadgetSliderGetEnabledSelectedThumbImage( slider );
  728. color = GadgetSliderGetEnabledSelectedThumbColor( slider );
  729. borderColor = GadgetSliderGetEnabledSelectedThumbBorderColor( slider );
  730. StoreImageAndColor( LISTBOX_SLIDER_THUMB_ENABLED_PUSHED, image, color, borderColor );
  731. // --------------------------------------------------------------------------
  732. image = GadgetSliderGetDisabledThumbImage( slider );
  733. color = GadgetSliderGetDisabledThumbColor( slider );
  734. borderColor = GadgetSliderGetDisabledThumbBorderColor( slider );
  735. StoreImageAndColor( LISTBOX_SLIDER_THUMB_DISABLED, image, color, borderColor );
  736. image = GadgetSliderGetDisabledSelectedThumbImage( slider );
  737. color = GadgetSliderGetDisabledSelectedThumbColor( slider );
  738. borderColor = GadgetSliderGetDisabledSelectedThumbBorderColor( slider );
  739. StoreImageAndColor( LISTBOX_SLIDER_THUMB_DISABLED_PUSHED, image, color, borderColor );
  740. // --------------------------------------------------------------------------
  741. image = GadgetSliderGetHiliteThumbImage( slider );
  742. color = GadgetSliderGetHiliteThumbColor( slider );
  743. borderColor = GadgetSliderGetHiliteThumbBorderColor( slider );
  744. StoreImageAndColor( LISTBOX_SLIDER_THUMB_HILITE, image, color, borderColor );
  745. image = GadgetSliderGetHiliteSelectedThumbImage( slider );
  746. color = GadgetSliderGetHiliteSelectedThumbColor( slider );
  747. borderColor = GadgetSliderGetHiliteSelectedThumbBorderColor( slider );
  748. StoreImageAndColor( LISTBOX_SLIDER_THUMB_HILITE_PUSHED, image, color, borderColor );
  749. } // end if
  750. // init listbox specific property section
  751. ListboxData *listData = (ListboxData *)window->winGetUserData();
  752. CheckDlgButton( dialog, CHECK_HAS_SCROLLBAR, listData->scrollBar );
  753. CheckDlgButton( dialog, CHECK_MULTI_SELECT, listData->multiSelect );
  754. CheckDlgButton( dialog, CHECK_FORCE_SELECT, listData->forceSelect );
  755. CheckDlgButton( dialog, CHECK_AUTO_SCROLL, listData->autoScroll );
  756. CheckDlgButton( dialog, CHECK_SCROLL_IF_AT_END, listData->scrollIfAtEnd );
  757. CheckDlgButton( dialog, CHECK_AUTO_PURGE, listData->autoPurge );
  758. SetDlgItemInt( dialog, EDIT_MAX_ITEMS, listData->listLength, FALSE );
  759. SetDlgItemInt( dialog, EDIT_NUM_COLUMNS, listData->columns, FALSE );
  760. if(listData->columns > 1)
  761. {
  762. char *percentages = new char[60];
  763. char *tempStr = new char[60];
  764. sprintf(percentages,"%d",listData->columnWidthPercentage[0]);
  765. for(Int i = 1; i < listData->columns; i++ )
  766. {
  767. strcat(percentages,",");
  768. strcat(percentages,itoa(listData->columnWidthPercentage[i],tempStr,10));
  769. }
  770. SetDlgItemText(dialog,EDIT_COLUMN_PERCENT,percentages);
  771. }
  772. // WordWrap Check Box
  773. if( BitTest( window->winGetStatus(), WIN_STATUS_ONE_LINE ) )
  774. CheckDlgButton( dialog, CHECK_NO_WORDWRAP, BST_CHECKED );
  775. // select the button enabled state for display
  776. SwitchToState( LISTBOX_ENABLED, dialog );
  777. //
  778. // initialize the dialog with values from the window
  779. //
  780. return dialog;
  781. } // end InitListboxPropertiesDialog