| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763 |
- /*
- ** Command & Conquer Generals(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- ////////////////////////////////////////////////////////////////////////////////
- // //
- // (c) 2001-2003 Electronic Arts Inc. //
- // //
- ////////////////////////////////////////////////////////////////////////////////
- // FILE: Properties.cpp ///////////////////////////////////////////////////////
- //-----------------------------------------------------------------------------
- //
- // Westwood Studios Pacific.
- //
- // Confidential Information
- // Copyright (C) 2001 - All Rights Reserved
- //
- //-----------------------------------------------------------------------------
- //
- // Project: GUIEdit
- //
- // File name: Properties.cpp
- //
- // Created: Colin Day, August 2001
- //
- // Desc: Initializing property dialogs. This file also contains
- // helper functions for loading, populating, and saving
- // properties that are common to all the property dialogs
- // ranging from the generic window to any of the
- // gadget controls.
- //
- //-----------------------------------------------------------------------------
- ///////////////////////////////////////////////////////////////////////////////
-
- // SYSTEM INCLUDES ////////////////////////////////////////////////////////////
- #include <stdlib.h>
- #include <assert.h>
- #include <stdio.h>
- // USER INCLUDES //////////////////////////////////////////////////////////////
- #include "Common/Debug.h"
- #include "GameClient/Gadget.h"
- #include "GameClient/GameWindowManager.h"
- #include "GameClient/GadgetRadioButton.h"
- #include "GameClient/GadgetPushButton.h"
- #include "GameClient/GadgetCheckBox.h"
- #include "GameClient/GadgetStaticText.h"
- #include "GameClient/GadgetTextEntry.h"
- #include "GameClient/HeaderTemplate.h"
- #include "GUIEdit.h"
- #include "Properties.h"
- #include "EditWindow.h"
- #include "Resource.h"
- #include "HierarchyView.h"
- #include "GameClient/GameText.h"
- // DEFINES ////////////////////////////////////////////////////////////////////
- // PRIVATE TYPES //////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // PRIVATE DATA ///////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- static TextDrawData textDrawData[ 3 ];
- static Int currTextIndex;
- static Int enabledTextIndex,
- disabledTextIndex,
- hiliteTextIndex;
- ColorControl colorControlTable[] =
- {
- { BUTTON_ENABLED_COLOR, { 255, 255, 255, 255 } },
- { BUTTON_ENABLED_BORDER_COLOR, { 255, 255, 255, 255 } },
- { BUTTON_DISABLED_COLOR, { 255, 255, 255, 255 } },
- { BUTTON_DISABLED_BORDER_COLOR, { 255, 255, 255, 255 } },
- { BUTTON_HILITE_COLOR, { 255, 255, 255, 255 } },
- { BUTTON_HILITE_BORDER_COLOR, { 255, 255, 255, 255 } },
-
- { BUTTON_COLOR, 0, },
- { BUTTON_BORDER_COLOR, 0 },
- { 0, { 0, 0, 0, 0 } } // keep this last!
- };
- ImageAndColorInfo imageAndColorTable[] =
- {
- { GWS_PUSH_BUTTON, BUTTON_ENABLED, "[Button] Enabled (Normal)", NULL, 0, 0 },
- { GWS_PUSH_BUTTON, BUTTON_ENABLED_PUSHED, "[Button] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_PUSH_BUTTON, BUTTON_DISABLED, "[Button] Disabled (Normal)", NULL, 0, 0 },
- { GWS_PUSH_BUTTON, BUTTON_DISABLED_PUSHED, "[Button] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_PUSH_BUTTON, BUTTON_HILITE, "[Button] Hilite (Normal)", NULL, 0, 0 },
- { GWS_PUSH_BUTTON, BUTTON_HILITE_PUSHED, "[Button] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_ENABLED, "[Radio] Enabled Surface", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_ENABLED_UNCHECKED_BOX, "[Radio] Enabled Nubbin (Un-checked)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_ENABLED_CHECKED_BOX, "[Radio] Enabled Nubbin (Checked)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_DISABLED, "[Radio] Disabled Surface", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_DISABLED_UNCHECKED_BOX, "[Radio] Disabled Nubbin (Un-checked)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_DISABLED_CHECKED_BOX, "[Radio] Disabled Nubbin (Checked)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_HILITE, "[Radio] Hilite Surface", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_HILITE_UNCHECKED_BOX, "[Radio] Hilite Nubbin (Un-checked)", NULL, 0, 0 },
- { GWS_RADIO_BUTTON, RADIO_HILITE_CHECKED_BOX, "[Radio] Hilite Nubbin (Checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_ENABLED, "[Check Box] Enabled Surface", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_ENABLED_UNCHECKED_BOX, "[Check Box] Enabled Box (Un-checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_ENABLED_CHECKED_BOX, "[Check Box] Enabled Box (Checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_DISABLED, "[Check Box] Disabled Surface", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_DISABLED_UNCHECKED_BOX, "[Check Box] Disabled Box (Un-checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_DISABLED_CHECKED_BOX, "[Check Box] Disabled Box (Checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_HILITE, "[Check Box] Hilite Surface", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_HILITE_UNCHECKED_BOX, "[Check Box] Hilite Box (Un-checked)", NULL, 0, 0 },
- { GWS_CHECK_BOX, CHECK_BOX_HILITE_CHECKED_BOX, "[Check Box] Hilite Box (Checked)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_ENABLED_LEFT, "[HSlider] Enabled Left End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_ENABLED_RIGHT, "[HSlider] Enabled Right End", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_ENABLED_CENTER, "[HSlider] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_ENABLED_SMALL_CENTER, "[HSlider] Enabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_DISABLED_LEFT, "[HSlider] Disabled Left End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_DISABLED_RIGHT, "[HSlider] Disabled Right End", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_DISABLED_CENTER, "[HSlider] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_DISABLED_SMALL_CENTER, "[HSlider] Disabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_HILITE_LEFT, "[HSlider] Hilite Left End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_HILITE_RIGHT, "[HSlider] Hilite Right End", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_HILITE_CENTER, "[HSlider] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_HILITE_SMALL_CENTER, "[HSlider] Hilite Repeating Small Cener", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_ENABLED, "[Thumb [HSlider]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_ENABLED_PUSHED, "[Thumb [HSlider]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_DISABLED, "[Thumb [HSlider]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_DISABLED_PUSHED, "[Thumb [HSlider]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_HILITE, "[Thumb [HSlider]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_HORZ_SLIDER, HSLIDER_THUMB_HILITE_PUSHED, "[Thumb [HSlider]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_ENABLED_TOP, "[VSlider] Enabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_ENABLED_BOTTOM, "[VSlider] Enabled Bottom End", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_ENABLED_CENTER, "[VSlider] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_ENABLED_SMALL_CENTER, "[VSlider] Enabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_DISABLED_TOP, "[VSlider] Disabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_DISABLED_BOTTOM, "[VSlider] Disabled Bottom End", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_DISABLED_CENTER, "[VSlider] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_DISABLED_SMALL_CENTER, "[VSlider] Disabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_HILITE_TOP, "[VSlider] Hilite Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_HILITE_BOTTOM, "[VSlider] Hilite Bottom End", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_HILITE_CENTER, "[VSlider] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_HILITE_SMALL_CENTER, "[VSlider] Hilite Repeating Small Cener", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_ENABLED, "[Thumb [VSlider]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_ENABLED_PUSHED, "[Thumb [VSlider]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_DISABLED, "[Thumb [VSlider]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_DISABLED_PUSHED, "[Thumb [VSlider]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_HILITE, "[Thumb [VSlider]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_VERT_SLIDER, VSLIDER_THUMB_HILITE_PUSHED, "[Thumb [VSlider]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_ENABLED, "[Listbox] Enabled Surface", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_ENABLED_SELECTED_ITEM_LEFT, "[Listbox] Enabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_ENABLED_SELECTED_ITEM_RIGHT, "[Listbox] Enabled Selected Item Right End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_ENABLED_SELECTED_ITEM_CENTER, "[Listbox] Enabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER, "[Listbox] Enabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DISABLED, "[Listbox] Disabled Surface", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DISABLED_SELECTED_ITEM_LEFT, "[Listbox] Disabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DISABLED_SELECTED_ITEM_RIGHT, "[Listbox] Disabled Selected Item Right End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DISABLED_SELECTED_ITEM_CENTER, "[Listbox] Disabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER, "[Listbox] Disabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_HILITE, "[Listbox] Hilite Surface", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_HILITE_SELECTED_ITEM_LEFT, "[Listbox] Hilite Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_HILITE_SELECTED_ITEM_RIGHT, "[Listbox] Hilite Selected Item Right End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_HILITE_SELECTED_ITEM_CENTER, "[Listbox] Hilite Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER, "[Listbox] Hilite Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_ENABLED, "[Up Button [Listbox]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_ENABLED_PUSHED, "[Up Button [Listbox]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_DISABLED, "[Up Button [Listbox]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_DISABLED_PUSHED, "[Up Button [Listbox]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_HILITE, "[Up Button [Listbox]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_UP_BUTTON_HILITE_PUSHED, "[Up Button [Listbox]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_ENABLED, "[Down Button [Listbox]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_ENABLED_PUSHED, "[Down Button [Listbox]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_DISABLED, "[Down Button [Listbox]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_DISABLED_PUSHED, "[Down Button [Listbox]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_HILITE, "[Down Button [Listbox]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_DOWN_BUTTON_HILITE_PUSHED, "[Down Button [Listbox]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_ENABLED_TOP, "[Slider [Listbox]] Enabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_ENABLED_BOTTOM, "[Slider [Listbox]] Enabled Bottom End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_ENABLED_CENTER, "[Slider [Listbox]] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_ENABLED_SMALL_CENTER, "[Slider [Listbox]] Enabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_DISABLED_TOP, "[Slider [Listbox]] Disabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_DISABLED_BOTTOM, "[Slider [Listbox]] Disabled Bottom End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_DISABLED_CENTER, "[Slider [Listbox]] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_DISABLED_SMALL_CENTER, "[Slider [Listbox]] Disabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_HILITE_TOP, "[Slider [Listbox]] Hilite Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_HILITE_BOTTOM, "[Slider [Listbox]] Hilite Bottom End", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_HILITE_CENTER, "[Slider [Listbox]] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_HILITE_SMALL_CENTER, "[Slider [Listbox]] Hilite Repeating Small Cener", NULL, 0, 0 },
-
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_ENABLED, "[Slider Thumb [Listbox]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_ENABLED_PUSHED, "[Slider Thumb [Listbox]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_DISABLED, "[Slider Thumb [Listbox]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_DISABLED_PUSHED, "[Slider Thumb [Listbox]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_HILITE, "[Slider Thumb [Listbox]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_SCROLL_LISTBOX, LISTBOX_SLIDER_THUMB_HILITE_PUSHED, "[Slider Thumb [Listbox]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_ENABLED, "[ComboBox] Enabled Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_ENABLED_SELECTED_ITEM_LEFT, "[ComboBox] Enabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_ENABLED_SELECTED_ITEM_RIGHT, "[ComboBox] Enabled Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_ENABLED_SELECTED_ITEM_CENTER, "[ComboBox] Enabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER, "[ComboBox] Enabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DISABLED, "[ComboBox] Disabled Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DISABLED_SELECTED_ITEM_LEFT, "[ComboBox] Disabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DISABLED_SELECTED_ITEM_RIGHT, "[ComboBox] Disabled Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DISABLED_SELECTED_ITEM_CENTER, "[ComboBox] Disabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER, "[ComboBox] Disabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_HILITE, "[ComboBox] Hilite Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_HILITE_SELECTED_ITEM_LEFT, "[ComboBox] Hilite Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_HILITE_SELECTED_ITEM_RIGHT, "[ComboBox] Hilite Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_HILITE_SELECTED_ITEM_CENTER, "[ComboBox] Hilite Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_HILITE_SELECTED_ITEM_SMALL_CENTER, "[ComboBox] Hilite Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_ENABLED, "[Button [ComboBox]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_ENABLED_PUSHED, "[Button [ComboBox]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_DISABLED, "[Button [ComboBox]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_DISABLED_PUSHED, "[Button [ComboBox]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_HILITE, "[Button [ComboBox]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_DROP_DOWN_BUTTON_HILITE_PUSHED, "[Button [ComboBox]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_ENABLED_LEFT, "[Text Entry [ComboBox]] Enabled Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_ENABLED_RIGHT, "[Text Entry [ComboBox]] Enabled Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_ENABLED_CENTER, "[Text Entry [ComboBox]] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_ENABLED_SMALL_CENTER, "[Text Entry [ComboBox]] Enabled Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_DISABLED_LEFT, "[Text Entry [ComboBox]] Disabled Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_DISABLED_RIGHT, "[Text Entry [ComboBox]] Disabled Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_DISABLED_CENTER, "[Text Entry [ComboBox]] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_DISABLED_SMALL_CENTER, "[Text Entry [ComboBox]] Disabled Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_HILITE_LEFT, "[Text Entry [ComboBox]] Hilite Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_HILITE_RIGHT, "[Text Entry [ComboBox]] Hilite Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_HILITE_CENTER, "[Text Entry [ComboBox]] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_EDIT_BOX_HILITE_SMALL_CENTER, "[Text Entry [ComboBox]] Hilite Small Repeating Center", NULL, 0, 0 },
-
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_ENABLED, "[Listbox [ComboBox]] Enabled Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_LEFT, "[Listbox [ComboBox]] Enabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_RIGHT, "[Listbox [ComboBox]] Enabled Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_CENTER, "[Listbox [ComboBox]] Enabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_ENABLED_SELECTED_ITEM_SMALL_CENTER, "[Listbox [ComboBox]] Enabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DISABLED, "[Listbox [ComboBox]] Disabled Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_LEFT, "[Listbox [ComboBox]] Disabled Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_RIGHT, "[Listbox [ComboBox]] Disabled Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_CENTER, "[Listbox [ComboBox]] Disabled Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DISABLED_SELECTED_ITEM_SMALL_CENTER, "[Listbox [ComboBox]] Disabled Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_HILITE, "[Listbox [ComboBox]] Hilite Surface", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_LEFT, "[Listbox [ComboBox]] Hilite Selected Item Left End (or colors)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_RIGHT, "[Listbox [ComboBox]] Hilite Selected Item Right End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_CENTER, "[Listbox [ComboBox]] Hilite Selected Item Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_HILITE_SELECTED_ITEM_SMALL_CENTER, "[Listbox [ComboBox]] Hilite Selected Item Small Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_ENABLED, "[Up Button [Listbox]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_ENABLED_PUSHED, "[Up Button [Listbox [ComboBox]]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_DISABLED, "[Up Button [Listbox [ComboBox]]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_DISABLED_PUSHED, "[Up Button [Listbox [ComboBox]]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_HILITE, "[Up Button [Listbox [ComboBox]]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_UP_BUTTON_HILITE_PUSHED, "[Up Button [Listbox [ComboBox]]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_ENABLED, "[Down Button [Listbox [ComboBox]]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_ENABLED_PUSHED, "[Down Button [Listbox [ComboBox]]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_DISABLED, "[Down Button [Listbox [ComboBox]]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_DISABLED_PUSHED, "[Down Button [Listbox [ComboBox]]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_HILITE, "[Down Button [Listbox [ComboBox]]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_DOWN_BUTTON_HILITE_PUSHED, "[Down Button [Listbox [ComboBox]]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_ENABLED_TOP, "[Slider [Listbox [ComboBox]]] Enabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_ENABLED_BOTTOM, "[Slider [Listbox [ComboBox]]] Enabled Bottom End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_ENABLED_CENTER, "[Slider [Listbox [ComboBox]]] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_ENABLED_SMALL_CENTER, "[Slider [Listbox [ComboBox]]] Enabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_DISABLED_TOP, "[Slider [Listbox [ComboBox]]] Disabled Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_DISABLED_BOTTOM, "[Slider [Listbox [ComboBox]]] Disabled Bottom End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_DISABLED_CENTER, "[Slider [Listbox [ComboBox]]] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_DISABLED_SMALL_CENTER, "[Slider [Listbox [ComboBox]]] Disabled Repeating Small Cener", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_HILITE_TOP, "[Slider [Listbox [ComboBox]]] Hilite Top End (or bar colors for no image)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_HILITE_BOTTOM, "[Slider [Listbox [ComboBox]]] Hilite Bottom End", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_HILITE_CENTER, "[Slider [Listbox [ComboBox]]] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_HILITE_SMALL_CENTER, "[Slider [Listbox [ComboBox]]] Hilite Repeating Small Cener", NULL, 0, 0 },
-
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_ENABLED, "[Slider Thumb [Listbox [ComboBox]]] Enabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_ENABLED_PUSHED, "[Slider Thumb [Listbox [ComboBox]]] Enabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_DISABLED, "[Slider Thumb [Listbox [ComboBox]]] Disabled (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_DISABLED_PUSHED, "[Slider Thumb [Listbox [ComboBox]]] Disabled (Pushed)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_HILITE, "[Slider Thumb [Listbox [ComboBox]]] Hilite (Normal)", NULL, 0, 0 },
- { GWS_COMBO_BOX, COMBOBOX_LISTBOX_SLIDER_THUMB_HILITE_PUSHED, "[Slider Thumb [Listbox [ComboBox]]] Hilite (Pushed)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_LEFT, "[Bar] Enabled Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_RIGHT, "[Bar] Enabled Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_CENTER, "[Bar] Enabled Repeating Center End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_SMALL_CENTER, "[Bar] Enabled Small Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_BAR_LEFT, "[Bar] Enabled Fill Bar Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_BAR_RIGHT, "[Bar] Enabled Fill Bar Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_BAR_CENTER, "[Bar] Enabled Fill Bar Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_ENABLED_BAR_SMALL_CENTER, "[Bar] Enabled Fill Bar Small Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_LEFT, "[Bar] Disabled Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_RIGHT, "[Bar] Disabled Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_CENTER, "[Bar] Disabled Repeating Center End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_SMALL_CENTER, "[Bar] Disabled Small Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_BAR_LEFT, "[Bar] Disabled Fill Bar Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_BAR_RIGHT, "[Bar] Disabled Fill Bar Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_BAR_CENTER, "[Bar] Disabled Fill Bar Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_DISABLED_BAR_SMALL_CENTER, "[Bar] Disabled Fill Bar Small Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_LEFT, "[Bar] Hilite Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_RIGHT, "[Bar] Hilite Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_CENTER, "[Bar] Hilite Repeating Center End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_SMALL_CENTER, "[Bar] Hilite Small Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_BAR_LEFT, "[Bar] Hilite Fill Bar Left End (or color for no images)", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_BAR_RIGHT, "[Bar] Hilite Fill Bar Right End", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_BAR_CENTER, "[Bar] Hilite Fill Bar Repeating Center", NULL, 0, 0 },
- { GWS_PROGRESS_BAR, PROGRESS_BAR_HILITE_BAR_SMALL_CENTER, "[Bar] Hilite Fill Bar Small Repeating Center", NULL, 0, 0 },
- { GWS_STATIC_TEXT, STATIC_TEXT_ENABLED, "[Static Text] Enabled", NULL, 0, 0 },
- { GWS_STATIC_TEXT, STATIC_TEXT_DISABLED, "[Static Text] Disabled", NULL, 0, 0 },
- { GWS_STATIC_TEXT, STATIC_TEXT_HILITE, "[Static Text] Hilite", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_ENABLED_LEFT, "[Text Entry] Enabled Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_ENABLED_RIGHT, "[Text Entry] Enabled Right End", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_ENABLED_CENTER, "[Text Entry] Enabled Repeating Center", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_ENABLED_SMALL_CENTER, "[Text Entry] Enabled Small Repeating Center", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_DISABLED_LEFT, "[Text Entry] Disabled Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_DISABLED_RIGHT, "[Text Entry] Disabled Right End", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_DISABLED_CENTER, "[Text Entry] Disabled Repeating Center", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_DISABLED_SMALL_CENTER, "[Text Entry] Disabled Small Repeating Center", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_HILITE_LEFT, "[Text Entry] Hilite Left End (Or colors for no image)", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_HILITE_RIGHT, "[Text Entry] Hilite Right End", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_HILITE_CENTER, "[Text Entry] Hilite Repeating Center", NULL, 0, 0 },
- { GWS_ENTRY_FIELD, TEXT_ENTRY_HILITE_SMALL_CENTER, "[Text Entry] Hilite Small Repeating Center", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_0_ENABLED, "[Tab Control] Tab 0 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_0_DISABLED, "[Tab Control] Tab 0 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_0_HILITE, "[Tab Control] Tab 0 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_1_ENABLED, "[Tab Control] Tab 1 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_1_DISABLED, "[Tab Control] Tab 1 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_1_HILITE, "[Tab Control] Tab 1 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_2_ENABLED, "[Tab Control] Tab 2 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_2_DISABLED, "[Tab Control] Tab 2 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_2_HILITE, "[Tab Control] Tab 2 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_3_ENABLED, "[Tab Control] Tab 3 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_3_DISABLED, "[Tab Control] Tab 3 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_3_HILITE, "[Tab Control] Tab 3 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_4_ENABLED, "[Tab Control] Tab 4 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_4_DISABLED, "[Tab Control] Tab 4 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_4_HILITE, "[Tab Control] Tab 4 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_5_ENABLED, "[Tab Control] Tab 5 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_5_DISABLED, "[Tab Control] Tab 5 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_5_HILITE, "[Tab Control] Tab 5 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_6_ENABLED, "[Tab Control] Tab 6 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_6_DISABLED, "[Tab Control] Tab 6 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_6_HILITE, "[Tab Control] Tab 6 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_7_ENABLED, "[Tab Control] Tab 7 Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_7_DISABLED, "[Tab Control] Tab 7 Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TC_TAB_7_HILITE, "[Tab Control] Tab 7 Hilite", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TAB_CONTROL_ENABLED, "[Tab Control] Background Surface Enabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TAB_CONTROL_DISABLED, "[Tab Control] Background Surface Disabled", NULL, 0, 0 },
- { GWS_TAB_CONTROL, TAB_CONTROL_HILITE, "[Tab Control] Background Surface Hilite", NULL, 0, 0 },
- { GWS_USER_WINDOW, GENERIC_ENABLED, "[User]Enabled Surface", NULL, 0, 0 },
- { GWS_USER_WINDOW, GENERIC_DISABLED, "[User]Disabled Surface", NULL, 0, 0 },
- { GWS_USER_WINDOW, GENERIC_HILITE, "[User]Hilite Surface", NULL, 0, 0 },
- { 0, IDENTIFIER_INVALID, NULL, NULL, 0, 0 } // keep this last!
- };
- // PUBLIC DATA ////////////////////////////////////////////////////////////////
- // PRIVATE PROTOTYPES /////////////////////////////////////////////////////////
- // PRIVATE FUNCTIONS //////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // PUBLIC FUNCTIONS ///////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // InitPropertiesDialog =======================================================
- /** Bring up the correct properties dialog for the window in question */
- //=============================================================================
- void InitPropertiesDialog( GameWindow *window, Int x, Int y )
- {
- HWND dialog;
- POINT screen;
- // sanity
- if( window == NULL )
- return;
- // translate client position to screen coords of menu
- screen.x = x;
- screen.y = y;
- ClientToScreen( TheEditWindow->getWindowHandle(), &screen );
- // bring up the right dialog
- if( BitTest( window->winGetStyle(), GWS_PUSH_BUTTON ) )
- dialog = InitPushButtonPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_RADIO_BUTTON ) )
- dialog = InitRadioButtonPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_TAB_CONTROL ) )
- dialog = InitTabControlPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_CHECK_BOX ) )
- dialog = InitCheckBoxPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_SCROLL_LISTBOX ) )
- dialog = InitListboxPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_PROGRESS_BAR ) )
- dialog = InitProgressBarPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_STATIC_TEXT ) )
- dialog = InitStaticTextPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_ENTRY_FIELD ) )
- dialog = InitTextEntryPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_ALL_SLIDER ) )
- dialog = InitSliderPropertiesDialog( window );
- else if( BitTest( window->winGetStyle(), GWS_COMBO_BOX ) )
- dialog = InitComboBoxPropertiesDialog( window );
- else
- dialog = InitUserWinPropertiesDialog( window );
- // sanity check dialog
- if( dialog == NULL )
- {
- DEBUG_LOG(( "Error creating properties dialog\n" ));
- MessageBox( TheEditor->getWindowHandle(), "Error creating property dialog!", "Error", MB_OK );
- assert( 0 );
- return;
- } // end if
- // save the window we're working with
- TheEditor->setPropertyTarget( window );
- //
- // position the dialog with the upper left at the mouse position or as
- // close as possible
- //
- PositionWindowOnScreen( dialog, screen.x, screen.y );
- } // end InitPropertiesDialog
- // LoadFontCombo ==============================================================
- /** Load the font combo with fonts currently available */
- //=============================================================================
- void LoadFontCombo( HWND comboBox, GameFont *currFont )
- {
- GameFont *font;
- char buffer[ 256 ];
- Int index;
- // sanity
- if( comboBox == NULL || TheFontLibrary == NULL )
- return;
- // reset the combo box
- //
- // load string representations of each font and attach the font data
- // pointer to the entry
- //
- for( font = TheFontLibrary->firstFont();
- font;
- font = TheFontLibrary->nextFont( font ) )
- {
- // construct name
- if( font->bold )
- sprintf( buffer, "%s - Size: %d [Bold]", font->nameString.str(), font->pointSize );
- else
- sprintf( buffer, "%s - Size: %d", font->nameString.str(), font->pointSize );
- // add to combo box
- index = SendMessage( comboBox, CB_ADDSTRING, 0, (LPARAM)buffer );
- // attach pointer to font at combo index
- SendMessage( comboBox, CB_SETITEMDATA, index, (DWORD)font );
- } // end for font
- // add a "[None]" at the top index
- SendMessage( comboBox, CB_INSERTSTRING, 0, (LPARAM)"[None]" );
- // if no font select the top index
- if( currFont == NULL )
- {
- SendMessage( comboBox, CB_SETCURSEL, 0, 0 );
- } // end if
- else
- {
- Int count;
- // how many entries in the combo box
- count = SendMessage( comboBox, CB_GETCOUNT, 0, 0 );
- // find the entry with the matching item data and select it
- for( Int i = 0; i < count; i++ )
- {
- // get the item data here
- font = (GameFont *)SendMessage( comboBox, CB_GETITEMDATA, i, 0 );
- if( currFont == font )
- {
- // select this item in the combo box
- SendMessage( comboBox, CB_SETCURSEL, i, 0 );
- break; // exit for i
- } // end if
- } // end for i
- } // end else
- } // end LoadFontCombo
- // GetSelectedFontFromCombo ===================================================
- /** Based on the combo box selection return the game font associated
- * with that selection */
- //=============================================================================
- GameFont *GetSelectedFontFromCombo( HWND combo )
- {
- // santiy
- if( combo == NULL )
- return NULL;
- // get the selected item
- Int selected;
- selected = SendMessage( combo, CB_GETCURSEL, 0, 0 );
- // index 0 is the "none" selector
- if( selected == 0 )
- return NULL;
- // get the font from the selected item
- return (GameFont *)SendMessage( combo, CB_GETITEMDATA, selected, 0 );
- } // end GetSelectedFontFromCombo
- // saveFontSelection ==========================================================
- /** Save the font from the currently selected item in the font dialog */
- //=============================================================================
- static void saveFontSelection( HWND combo, GameWindow *window )
- {
- GameFont *font;
- // sanity
- if( combo == NULL || window == NULL )
- return;
- // get the font
- font = GetSelectedFontFromCombo( combo );
- window->winSetFont( font );
- } // end saveFontSelection
- // saveHeaderSelection ========================================================
- /** Save the Header from the currently selected item in the font dialog */
- //=============================================================================
- static void saveHeaderSelection( HWND comboBox, GameWindow *window )
- {
- Int selected;
- char buffer[ 512 ];
- // santiy
- if( comboBox == NULL )
- return;
- // get the selected index
- selected = SendMessage( comboBox, CB_GETCURSEL, 0, 0 );
- // do nothing if index 0 is selected (contains the string "[NONE]")
- if( selected == CB_ERR || selected == 0 )
- window->winGetInstanceData()->m_headerTemplateName.clear();
- // get the text of the selected item
- SendMessage( comboBox, CB_GETLBTEXT, selected, (LPARAM)buffer );
- // return the image loc that matches the string
- window->winGetInstanceData()->m_headerTemplateName.set(buffer);
- } // end ComboBoxSelectionToImage
- // loadTooltipTextLabel ==============================================================
- /** Load the edit control with the window text label */
- //=============================================================================
- static void loadTooltipTextLabel( HWND edit, GameWindow *window )
- {
- // sanity
- if( edit == NULL || window == NULL )
- return;
- // limit the text entry field in size
- SendMessage( edit, EM_LIMITTEXT, MAX_TEXT_LABEL - 1, 0 );
- // load the text
- WinInstanceData *instData = window->winGetInstanceData();
-
- SendMessage( edit, WM_SETTEXT, 0, (LPARAM)instData->m_tooltipString.str() );
- } // end loadTooltipTextLabel
- // loadTooltipDelayTextLabel ==============================================================
- /** Load the edit control with the window text label */
- //=============================================================================
- static void loadTooltipDelayTextLabel( HWND dialog, HWND edit, GameWindow *window )
- {
- // sanity
- if( dialog == NULL || edit == NULL || window == NULL )
- return;
- // limit the text entry field in size
- SendMessage( edit, EM_LIMITTEXT, 6, 0 );
- // load the text
- // WinInstanceData *instData = window->winGetInstanceData();
-
- // SetDlgItemInt( dialog, edit, instData->m_tooltipDelay, TRUE );
- } // end loadTooltipDelayTextLabel
- // saveTooltipTextLabel ==============================================================
- /** Save the text label entry */
- //=============================================================================
- static void saveTooltipTextLabel( HWND edit, GameWindow *window )
- {
- // sanity
- if( edit == NULL || window == NULL )
- return;
- // get the text from the edit control into the label buffer
- char buffer[ MAX_TEXT_LABEL ];
- WinInstanceData *instData = window->winGetInstanceData();
- SendMessage( edit, WM_GETTEXT, MAX_TEXT_LABEL - 1, (LPARAM)buffer );
- instData->m_tooltipString.set(buffer);
- instData->setTooltipText(TheGameText->fetch(buffer) );
- } // end saveTooltipTextLabel
- // saveTooltipTextLabel ==============================================================
- /** Save the text label entry */
- //=============================================================================
- static void saveTooltipDelayTextLabel(HWND dialog, HWND edit, GameWindow *window )
- {
- // sanity
- if( dialog == NULL || edit == NULL || window == NULL )
- return;
- // WinInstanceData *instData = window->winGetInstanceData();
- // instData->m_tooltipDelay = GetDlgItemInt( dialog, edit, NULL, TRUE );
-
- } // end saveTooltipDelayTextLabel
- // loadTextLabel ==============================================================
- /** Load the edit control with the window text label */
- //=============================================================================
- static void loadTextLabel( HWND edit, GameWindow *window )
- {
- // sanity
- if( edit == NULL || window == NULL )
- return;
- // limit the text entry field in size
- SendMessage( edit, EM_LIMITTEXT, MAX_TEXT_LABEL - 1, 0 );
- // load the text
- WinInstanceData *instData = window->winGetInstanceData();
- SendMessage( edit, WM_SETTEXT, 0, (LPARAM)instData->m_textLabelString.str() );
- } // end loadTextLabel
- // saveTextLabel ==============================================================
- /** Save the text label entry */
- //=============================================================================
- static void saveTextLabel( HWND edit, GameWindow *window )
- {
- // sanity
- if( edit == NULL || window == NULL )
- return;
- // get the text from the edit control into the label buffer
- char buffer[ MAX_TEXT_LABEL ];
- WinInstanceData *instData = window->winGetInstanceData();
- SendMessage( edit, WM_GETTEXT, MAX_TEXT_LABEL - 1, (LPARAM)buffer );
- instData->m_textLabelString.set( buffer );
- //
- // set the text into the window so we can see it
- // The localization String Manger is here
- //
- UnicodeString text;
- text = TheGameText->fetch( (char *)instData->m_textLabelString.str()); //TheWindowManager->winTextLabelToText( instData->m_textLabelString );
-
- UnsignedInt style = window->winGetStyle();
- if( BitTest( style, GWS_PUSH_BUTTON ) )
- GadgetButtonSetText( window, text );
- else if( BitTest( style, GWS_CHECK_BOX ) )
- GadgetCheckBoxSetText( window, text );
- else if( BitTest( style, GWS_RADIO_BUTTON ) )
- GadgetRadioSetText( window, text );
- else if( BitTest( style, GWS_STATIC_TEXT ) )
- GadgetStaticTextSetText( window, text );
- else if( BitTest( style, GWS_ENTRY_FIELD ) )
- GadgetTextEntrySetText( window, text );
- else
- window->winSetText( text );
- } // end saveTextLavel
- // LoadTextStateCombo =========================================================
- /** Load the text state combo */
- //=============================================================================
- void LoadTextStateCombo( HWND comboBox,
- Color enabled, Color enabledBorder,
- Color disabled, Color disabledBorder,
- Color hilite, Color hiliteBorder )
- {
- // sanity
- if( comboBox == NULL )
- return;
- //
- // add the three text states to the combo box and put the draw data colors
- // as the user data for each combo index
- //
- enabledTextIndex = SendMessage( comboBox, CB_INSERTSTRING, -1, (LPARAM)"Enabled Text" );
- disabledTextIndex = SendMessage( comboBox, CB_INSERTSTRING, -1, (LPARAM)"Disabled Text" );
- hiliteTextIndex = SendMessage( comboBox, CB_INSERTSTRING, -1, (LPARAM)"Hilite Text" );
- textDrawData[ enabledTextIndex ].color = enabled;
- textDrawData[ enabledTextIndex ].borderColor = enabledBorder;
- textDrawData[ disabledTextIndex ].color = disabled;
- textDrawData[ disabledTextIndex ].borderColor = disabledBorder;
- textDrawData[ hiliteTextIndex ].color = hilite;
- textDrawData[ hiliteTextIndex ].borderColor = hiliteBorder;
- // select the enabled state
- currTextIndex = 0;
- SendMessage( comboBox, CB_SETCURSEL, currTextIndex, 0 );
- } // end LoadTextStateCombo
- // LoadStateCombo =============================================================
- /** Load the state combo box passed in based on the window type
- * provided. This will look through the image and color table for
- * which state entries to add as strings to the combobox */
- //=============================================================================
- void LoadStateCombo( UnsignedInt style, HWND comboBox )
- {
- Int index;
- // sanity
- if( comboBox == NULL )
- return;
- // load the combo box with matching bit fields
- ImageAndColorInfo *entry;
- for( entry = imageAndColorTable; entry->stateName; entry++ )
- {
- if( BitTest( entry->windowType, style ) )
- {
-
- // add string
- index = SendMessage( comboBox, CB_ADDSTRING, 0, (LPARAM)entry->stateName );
- // set the state identifier as the item data of this entry
- SendMessage( comboBox, CB_SETITEMDATA, index, entry->stateID );
- } // end if
- } // end for entry
- } // end LoadStateCombo
- // CommonDialogInitialize =====================================================
- /** Called from all dialog initializations */
- //=============================================================================
- void CommonDialogInitialize( GameWindow *window, HWND dialog )
- {
- WinInstanceData *instData;
- // sanity
- if( window == NULL || dialog == NULL )
- return;
- // get instance data
- instData = window->winGetInstanceData();
- // populate common properties
- if( BitTest( window->winGetStatus(), WIN_STATUS_ENABLED ) )
- CheckDlgButton( dialog, CHECK_ENABLED, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_DRAGABLE ) )
- CheckDlgButton( dialog, CHECK_DRAGABLE, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_HIDDEN ) )
- CheckDlgButton( dialog, CHECK_HIDDEN, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_NO_INPUT ) )
- CheckDlgButton( dialog, CHECK_NO_INPUT, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_NO_FOCUS ) )
- CheckDlgButton( dialog, CHECK_NO_FOCUS, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_BORDER ) )
- CheckDlgButton( dialog, CHECK_BORDER, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_IMAGE ) )
- CheckDlgButton( dialog, CHECK_IMAGE, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_SEE_THRU ) )
- CheckDlgButton( dialog, CHECK_SEE_THRU, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_WRAP_CENTERED ) )
- CheckDlgButton( dialog, CHECK_WRAP_CENTERED, BST_CHECKED );
- if( BitTest( window->winGetStatus(), WIN_STATUS_CHECK_LIKE ) )
- CheckDlgButton( dialog, CHECK_CHECK_LIKE, BST_CHECKED );
-
- //
- // limit the window name box to the max name size minus some breathing
- // room for the filename
- //
- SendMessage( GetDlgItem( dialog, EDIT_NAME ), EM_SETLIMITTEXT,
- MAX_WINDOW_NAME_LEN - 16, 0 );
- // set the text explaining the name size limit to the user
- char buffer[ 128 ];
- sprintf( buffer, "Name length + layout filename length (.wnd) must not exceed %d characters.",
- MAX_WINDOW_NAME_LEN );
- SetDlgItemText( dialog, STATIC_NAME_MAX, buffer );
-
- // set name
- SetDlgItemText( dialog, EDIT_NAME, instData->m_decoratedNameString.str() );
- // load listbox with image names
- LoadImageListComboBox( GetDlgItem( dialog, COMBO_IMAGE ) );
- // load listbox with image names
- LoadHeaderTemplateListComboBox( GetDlgItem( dialog, COMBO_HEADER ), instData->m_headerTemplateName);
-
- // load the combo box for available properties
- LoadStateCombo( window->winGetStyle(), GetDlgItem( dialog, COMBO_STATE ) );
- // load the text state combo box
- LoadTextStateCombo( GetDlgItem( dialog, COMBO_TEXT_STATE ),
- instData->m_enabledText.color,
- instData->m_enabledText.borderColor,
- instData->m_disabledText.color,
- instData->m_disabledText.borderColor,
- instData->m_hiliteText.color,
- instData->m_hiliteText.borderColor );
- // load the font combo if present
- HWND combo = GetDlgItem( dialog, COMBO_FONT );
- if( combo )
- LoadFontCombo( combo, window->winGetFont() );
- // load text edit control if present
- HWND edit = GetDlgItem( dialog, EDIT_TEXT_LABEL );
- if( edit )
- loadTextLabel( edit, window );
- // load text edit control if present
- HWND tooltipEdit = GetDlgItem( dialog, EDIT_TOOLTIP_TEXT );
- if( tooltipEdit )
- loadTooltipTextLabel( tooltipEdit, window );
- // load text edit control if present
- HWND tooltipDelay = GetDlgItem( dialog, EDIT_TOOLTIP_DELAY );
- if( tooltipDelay )
- SetDlgItemInt( dialog, EDIT_TOOLTIP_DELAY, instData->m_tooltipDelay, TRUE );
-
- } // end CommonDialogInitialize
- // validateName ===============================================================
- /** Validate a name before saving it into a window. All window names
- * loaded from the current layout must have unique names */
- //=============================================================================
- static Bool validateName( GameWindow *root, GameWindow *exception, char *name )
- {
- // end recursion, note that "" is always a valid name
- if( root == NULL || name == NULL || strlen( name ) == 0 )
- return TRUE;
- // a name cannot have a colon in it cause we use it for decoration
- if( strchr( name, ':' ) != NULL )
- {
- char buffer[ 1024 ];
- sprintf( buffer, "Names cannot have any colons (:) in them ... sorry." );
- MessageBox( TheEditor->getWindowHandle(), buffer, "Illegal Character", MB_OK );
- return FALSE;
- } // end if
- // if this root window is not the exception window compare name
- if( root != exception )
- {
- WinInstanceData *instData = root->winGetInstanceData();
- if( strcmp( instData->m_decoratedNameString.str(), name ) == 0 )
- {
- char buffer[ 1024 ];
- sprintf( buffer, "Another window already has the name '%s'. Duplicates are not allowed, sorry.", name );
- MessageBox( TheEditor->getWindowHandle(), buffer, "Duplicate Name", MB_OK );
- return FALSE;
- } // end if
- } // end if
- // check our children
- GameWindow *child;
- for( child = root->winGetChild(); child; child = child->winGetNext() )
- if( validateName( child, exception, name ) == FALSE )
- return FALSE;
- // check the next window in the list
- return validateName( root->winGetNext(), exception, name );
- } // end validateName
- // adjustGadgetDrawMethods ====================================================
- /** Based on the WIN_STATUS_IMAGE, set the draw callbacks to the
- * functions that will either draw images or that will draw plain */
- //=============================================================================
- static void adjustGadgetDrawMethods( Bool useImages, GameWindow *window )
- {
-
- // sanity
- if( window == NULL )
- return;
- // get style of window
- UnsignedInt style = window->winGetStyle();
- if( TheEditor->windowIsGadget( window ) )//The below only applies to gadgets.
- {
- // check image or normal
- if( useImages )
- {
- if( BitTest( style, GWS_PUSH_BUTTON ) )
- window->winSetDrawFunc( TheWindowManager->getPushButtonImageDrawFunc() );
- else if( BitTest( style, GWS_RADIO_BUTTON ) )
- window->winSetDrawFunc( TheWindowManager->getRadioButtonImageDrawFunc() );
- else if( BitTest( style, GWS_TAB_CONTROL ) )
- window->winSetDrawFunc( TheWindowManager->getTabControlImageDrawFunc() );
- else if( BitTest( style, GWS_CHECK_BOX ) )
- window->winSetDrawFunc( TheWindowManager->getCheckBoxImageDrawFunc() );
- else if( BitTest( style, GWS_SCROLL_LISTBOX ) )
- window->winSetDrawFunc( TheWindowManager->getListBoxImageDrawFunc() );
- else if( BitTest( style, GWS_COMBO_BOX ) )
- window->winSetDrawFunc( TheWindowManager->getComboBoxImageDrawFunc() );
- else if( BitTest( style, GWS_PROGRESS_BAR ) )
- window->winSetDrawFunc( TheWindowManager->getProgressBarImageDrawFunc() );
- else if( BitTest( style, GWS_HORZ_SLIDER ) )
- window->winSetDrawFunc( TheWindowManager->getHorizontalSliderImageDrawFunc() );
- else if( BitTest( style, GWS_VERT_SLIDER ) )
- window->winSetDrawFunc( TheWindowManager->getVerticalSliderImageDrawFunc() );
- else if( BitTest( style, GWS_STATIC_TEXT ) )
- window->winSetDrawFunc( TheWindowManager->getStaticTextImageDrawFunc() );
- else if( BitTest( style, GWS_ENTRY_FIELD ) )
- window->winSetDrawFunc( TheWindowManager->getTextEntryImageDrawFunc() );
- else
- {
- DEBUG_LOG(( "Unable to adjust draw method, undefined gadget\n" ));
- assert( 0 );
- return;
- } // end else
- // set the image status bit
- window->winSetStatus( WIN_STATUS_IMAGE );
- } // end if, image set
- else
- {
- if( BitTest( style, GWS_PUSH_BUTTON ) )
- window->winSetDrawFunc( TheWindowManager->getPushButtonDrawFunc() );
- else if( BitTest( style, GWS_RADIO_BUTTON ) )
- window->winSetDrawFunc( TheWindowManager->getRadioButtonDrawFunc() );
- else if( BitTest( style, GWS_TAB_CONTROL ) )
- window->winSetDrawFunc( TheWindowManager->getTabControlDrawFunc() );
- else if( BitTest( style, GWS_CHECK_BOX ) )
- window->winSetDrawFunc( TheWindowManager->getCheckBoxDrawFunc() );
- else if( BitTest( style, GWS_SCROLL_LISTBOX ) )
- window->winSetDrawFunc( TheWindowManager->getListBoxDrawFunc() );
- else if( BitTest( style, GWS_COMBO_BOX ) )
- window->winSetDrawFunc( TheWindowManager->getComboBoxDrawFunc() );
- else if( BitTest( style, GWS_PROGRESS_BAR ) )
- window->winSetDrawFunc( TheWindowManager->getProgressBarDrawFunc() );
- else if( BitTest( style, GWS_HORZ_SLIDER ) )
- window->winSetDrawFunc( TheWindowManager->getHorizontalSliderDrawFunc() );
- else if( BitTest( style, GWS_VERT_SLIDER ) )
- window->winSetDrawFunc( TheWindowManager->getVerticalSliderDrawFunc() );
- else if( BitTest( style, GWS_STATIC_TEXT ) )
- window->winSetDrawFunc( TheWindowManager->getStaticTextDrawFunc() );
- else if( BitTest( style, GWS_ENTRY_FIELD ) )
- window->winSetDrawFunc( TheWindowManager->getTextEntryDrawFunc() );
- else
- {
- DEBUG_LOG(( "Unable to adjust draw method, undefined gadget\n" ));
- assert( 0 );
- return;
- } // end else
- // clear the image bit
- window->winClearStatus( WIN_STATUS_IMAGE );
- } // end else, image not set
- }//end if window is gadget
- // adjust any child gadgets
- GameWindow *child;
- for( child = window->winGetChild(); child; child = child->winGetNext() )
- adjustGadgetDrawMethods( useImages, child );
- } // end adjustGadgetDrawMethods
- // SaveCommonDialogProperties =================================================
- /** Save properties common on all dialogs for all windows */
- //=============================================================================
- Bool SaveCommonDialogProperties( HWND dialog, GameWindow *window )
- {
- UnsignedInt bit;
- // sanity
- if( dialog == NULL || window == NULL )
- return FALSE;
- // get name in the name edit box
- char name[ MAX_WINDOW_NAME_LEN ];
- strcpy( name, "" );
- GetDlgItemText( dialog, EDIT_NAME, name, MAX_WINDOW_NAME_LEN );
- if( validateName( TheWindowManager->winGetWindowList(),
- window, name ) == FALSE )
- return FALSE;
- // assign the name to the window
- WinInstanceData *instData = window->winGetInstanceData();
- instData->m_decoratedNameString = name;
- // notify the hierarchy view of the change in window name
- TheHierarchyView->updateWindowName( window );
- // save bits
- window->winEnable( IsDlgButtonChecked( dialog, CHECK_ENABLED ) );
- bit = WIN_STATUS_DRAGABLE;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_DRAGABLE ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_HIDDEN;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_HIDDEN ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_NO_INPUT;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_NO_INPUT ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_NO_FOCUS;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_NO_FOCUS ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_BORDER;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_BORDER ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_IMAGE;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_IMAGE ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_SEE_THRU;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_SEE_THRU ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_WRAP_CENTERED;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_WRAP_CENTERED ) )
- window->winSetStatus( bit );
- bit = WIN_STATUS_CHECK_LIKE;
- window->winClearStatus( bit );
- if( IsDlgButtonChecked( dialog, CHECK_CHECK_LIKE ) )
- window->winSetStatus( bit );
- //
- // adjust the window callbacks for gadgets based on image status
- // or not
- //
- if( TheEditor->windowIsGadget( window ) )
- adjustGadgetDrawMethods( BitTest( window->winGetStatus(), WIN_STATUS_IMAGE ),
- window );
- // save colors
- window->winSetEnabledTextColors( textDrawData[ enabledTextIndex ].color,
- textDrawData[ enabledTextIndex ].borderColor );
- window->winSetDisabledTextColors( textDrawData[ disabledTextIndex ].color,
- textDrawData[ disabledTextIndex ].borderColor );
- window->winSetHiliteTextColors( textDrawData[ hiliteTextIndex ].color,
- textDrawData[ hiliteTextIndex ].borderColor );
- // save font data if present
- HWND fontCombo = GetDlgItem( dialog, COMBO_FONT );
- if( fontCombo )
- saveFontSelection( fontCombo, window );
- // save text label data if present
- HWND editText = GetDlgItem( dialog, EDIT_TEXT_LABEL );
- if( editText )
- saveTextLabel( editText, window );
- // save text label data if present
- HWND editTooltipText = GetDlgItem( dialog, EDIT_TOOLTIP_TEXT );
- if( editTooltipText )
- saveTooltipTextLabel( editTooltipText, window );
- // save delay text label data if present
- HWND editTooltipDelayText = GetDlgItem( dialog, EDIT_TOOLTIP_DELAY );
- if( editTooltipDelayText )
- instData->m_tooltipDelay = GetDlgItemInt( dialog, EDIT_TOOLTIP_DELAY, NULL, TRUE );
- HWND headerCombo = GetDlgItem( dialog, COMBO_HEADER );
- if( headerCombo )
- saveHeaderSelection( headerCombo, window );
- // contents of the editor have now changed
- TheEditor->setUnsaved( TRUE );
- return TRUE;
-
- } // end SaveCommonDialogProperties
- // LoadImageListComboBox ======================================================
- /** Load a combo box with image names from the GUI image collection
- * including a [NONE] at the top that is selected */
- //=============================================================================
- void LoadImageListComboBox( HWND comboBox )
- {
- Image *image;
- // sanity
- if( comboBox == NULL )
- return;
- // clear the content of the box
- SendMessage( comboBox, CB_RESETCONTENT, 0, 0 );
- // load the combo box with string names from the GUI image collection
- for( image = TheMappedImageCollection->firstImage();
- image;
- image = TheMappedImageCollection->nextImage( image ) )
- {
- SendMessage( comboBox, CB_ADDSTRING, 0, (LPARAM)image->getName().str() );
- } // end for image
- // add a [NONE] at the top of the image lists
- SendMessage( comboBox, CB_INSERTSTRING, 0, (LPARAM)"[NONE]" );
- // select the [NONE] label
- SendMessage( comboBox, CB_SETCURSEL, 0, 0 );
-
- } // end LoadImageListComboBox
- // LoadHeaderTemplateListComboBox =============================================
- /** Load a combo box with header template names
- * including a [NONE] at the top that is selected */
- //=============================================================================
- void LoadHeaderTemplateListComboBox( HWND comboBox, AsciiString selected )
- {
- HeaderTemplate *ht;
- // sanity
- if( comboBox == NULL )
- return;
- // clear the content of the box
- SendMessage( comboBox, CB_RESETCONTENT, 0, 0 );
- // load the combo box with string names from the Header Templates
- for( ht = TheHeaderTemplateManager->getFirstHeader();
- ht;
- ht = TheHeaderTemplateManager->getNextHeader(ht) )
- {
- SendMessage( comboBox, CB_ADDSTRING, 0, (LPARAM)ht->m_name.str());
- } // end for image
- // add a [NONE] at the top of the image lists
- SendMessage( comboBox, CB_INSERTSTRING, 0, (LPARAM)"[NONE]" );
- // select the [NONE] label
- if(selected.isEmpty())
- SendMessage( comboBox, CB_SETCURSEL, 0, 0 );
- else
- SendMessage( comboBox, CB_SELECTSTRING, -1, (LPARAM)selected.str() );
-
-
- } // end LoadHeaderTemplateListComboBox
- // ComboBoxSelectionToImage ===================================================
- /** Given a combo box assumed to be loaded with a list of image names,
- * if there is a selection, translate that selection into an
- * image Loc from the GUI collection
- *
- * NOTE: The image list combo boxes have a [NONE] at index 0, if that
- * is selected NULL will be returned
- */
- //=============================================================================
- const Image *ComboBoxSelectionToImage( HWND comboBox )
- {
- Int selected;
- char buffer[ 512 ];
- // santiy
- if( comboBox == NULL )
- return NULL;
- // get the selected index
- selected = SendMessage( comboBox, CB_GETCURSEL, 0, 0 );
- // do nothing if index 0 is selected (contains the string "[NONE]")
- if( selected == CB_ERR || selected == 0 )
- return NULL;
- // get the text of the selected item
- SendMessage( comboBox, CB_GETLBTEXT, selected, (LPARAM)buffer );
- // return the image loc that matches the string
- return TheMappedImageCollection->findImageByName( AsciiString( buffer ) );
- } // end ComboBoxSelectionToImage
- // GetControlColor ============================================================
- /** Search the control color table and return the color for the
- * matching ID */
- //=============================================================================
- RGBColorInt *GetControlColor( UnsignedInt controlID )
- {
- ColorControl *entry;
- for( entry = colorControlTable; entry->controlID; entry++ )
- {
- if( entry->controlID == controlID )
- return &entry->color;
- } // end for
- // not found
- return NULL;
- } // end GetControlColor
- // SetControlColor ============================================================
- /** Set the color in the table with the matching control ID */
- //=============================================================================
- void SetControlColor( UnsignedInt controlID, Color color )
- {
- ColorControl *entry;
- UnsignedByte red, green, blue, alpha;
- // get the color components
- GameGetColorComponents( color, &red, &green, &blue, &alpha );
- for( entry = colorControlTable; entry->controlID; entry++ )
- {
- if( entry->controlID == controlID )
- {
- entry->color.alpha = alpha;
- entry->color.red = red;
- entry->color.green = green;
- entry->color.blue = blue;
- break;
- } // end if
- } // end for
- } // end SetControlColor
- // GetStateInfo ===============================================================
- /** Get a image and color state entry */
- //=============================================================================
- ImageAndColorInfo *GetStateInfo( StateIdentifier id )
- {
- ImageAndColorInfo *entry;
- for( entry = imageAndColorTable; entry->stateName; entry++ )
- {
- if( entry->stateID == id )
- return entry;
- } // end for entry
- return NULL;
- } // end GetStateInfo
- // SwitchToState ==============================================================
- /** Switch the image and color combo box to specified state, invalidate
- * the color previews and select the correct image for the new state */
- //=============================================================================
- void SwitchToState( StateIdentifier id, HWND dialog )
- {
- HWND stateBox = GetDlgItem( dialog, COMBO_STATE );
- HWND imageBox = GetDlgItem( dialog, COMBO_IMAGE );
- HWND colorButton = GetDlgItem( dialog, BUTTON_COLOR );
- HWND borderColorButton = GetDlgItem( dialog, BUTTON_BORDER_COLOR );
- ImageAndColorInfo *info;
- // get the data for the new state
- info = GetStateInfo( id );
- if( info == NULL )
- {
- DEBUG_LOG(( "Invalid state request\n" ));
- assert( 0 );
- return;
- } // end if
- // select the string in the state combo box
- SendMessage( stateBox, CB_SELECTSTRING, -1, (LPARAM)info->stateName );
- // select the image in the image combo box
- if( info->image )
- SendMessage( imageBox, CB_SELECTSTRING, -1, (LPARAM)info->image->getName().str() );
- else
- SendMessage( imageBox, CB_SETCURSEL, 0, 0 );
- //
- // invalidate the color previews, they will redraw with the new
- // state automatically
- //
- InvalidateRect( colorButton, NULL, TRUE );
- InvalidateRect( borderColorButton, NULL, TRUE );
- } // end SwitchToState
- // StoreImageAndColor =========================================================
- /** Store the image and colors in the table */
- //=============================================================================
- void StoreImageAndColor( StateIdentifier id, const Image *image,
- Color color, Color borderColor )
- {
- ImageAndColorInfo *entry;
- for( entry = imageAndColorTable; entry->stateName; entry++ )
- {
- if( entry->stateID == id )
- {
- entry->image = image;
- entry->color = color;
- entry->borderColor = borderColor;
- break; // exit for
- } // end if
- } // end for
- } // end StoreImageAndColor
- // StoreColor =================================================================
- /** Store the colors in the table */
- //=============================================================================
- void StoreColor( StateIdentifier id, Color color, Color borderColor )
- {
- ImageAndColorInfo *entry;
- for( entry = imageAndColorTable; entry->stateName; entry++ )
- {
- if( entry->stateID == id )
- {
- entry->color = color;
- entry->borderColor = borderColor;
- break; // exit for
- } // end if
- } // end for
- } // end StoreColor
- // GetCurrentStateInfo ========================================================
- /** Get the info on the current state selected in the state combo */
- //=============================================================================
- ImageAndColorInfo *GetCurrentStateInfo( HWND dialog )
- {
- HWND stateCombo = GetDlgItem( dialog, COMBO_STATE );
- Int selected;
- StateIdentifier stateID;
- // get selected state
- selected = SendMessage( stateCombo, CB_GETCURSEL, 0, 0 );
- if( selected == CB_ERR )
- return NULL;
- // get the state ID of the selected item (stored in the item data)
- stateID = (StateIdentifier)SendMessage( stateCombo, CB_GETITEMDATA, selected, 0 );
- return GetStateInfo( stateID );
- } // end GetCurrentStateInfo
- // PositionWindowOnScreen =====================================================
- /** Position the window on the screen, but keep the window completely
- * on-screen. Position passed in should be in screen coordinates */
- //=============================================================================
- void PositionWindowOnScreen( HWND window, Int x, Int y )
- {
- RECT windowRect;
- ICoord2D windowPos;
- ICoord2D windowSize;
- // get the window rectangle
- GetWindowRect( window, &windowRect );
- windowSize.x = windowRect.right - windowRect.left;
- windowSize.y = windowRect.bottom - windowRect.top;
- // get screen size not obscured by taskbar and toolbars
- RECT screenRect;
- SystemParametersInfo( SPI_GETWORKAREA, 0, &screenRect, 0 );
- // find window position, but dont let it go outside of the screen
- if( x < screenRect.left )
- x = screenRect.left;
- if( y < screenRect.top )
- y = screenRect.top;
- windowPos.x = x;
- windowPos.y = y;
- if( windowPos.x + windowSize.x > screenRect.right )
- windowPos.x = screenRect.right - windowSize.x;
- if( windowPos.y + windowSize.y > screenRect.bottom )
- windowPos.y = screenRect.bottom - windowSize.y;
- // place the window
- MoveWindow( window, windowPos.x, windowPos.y,
- windowSize.x, windowSize.y, TRUE );
- // show the window
- ShowWindow( window, SW_SHOW );
- } // end PositionWindowOnScreen
- // HandleCommonDialogMessages =================================================
- /** Handle any messages common to all controls on all property dialogs */
- //=============================================================================
- Bool HandleCommonDialogMessages( HWND hWndDialog, UINT message,
- WPARAM wParam, LPARAM lParam,
- Int *returnCode )
- {
- Bool used = FALSE;
- switch( message )
- {
- // ------------------------------------------------------------------------
- case WM_DRAWITEM:
- {
- UINT controlID = (UINT)wParam; // control identifier
- LPDRAWITEMSTRUCT drawItem = (LPDRAWITEMSTRUCT)lParam; // item drawing
- Color color = GAME_COLOR_UNDEFINED;
- // ImageAndColorInfo *info = GetCurrentStateInfo( hWndDialog );
- // we only care about color button controls
- if( controlID == BUTTON_COLOR || controlID == BUTTON_BORDER_COLOR )
- {
- ImageAndColorInfo *info = GetCurrentStateInfo( hWndDialog );
- if( info )
- if( controlID == BUTTON_COLOR )
- color = info->color;
- else
- color = info->borderColor;
- } // end if
- else if( controlID == BUTTON_TEXT_COLOR || controlID == BUTTON_TEXT_BORDER_COLOR )
- {
- TextDrawData textDraw = textDrawData[ currTextIndex ];
- if( controlID == BUTTON_TEXT_COLOR )
- color = textDraw.color;
- else
- color = textDraw.borderColor;
- } // end else if
- if( color != GAME_COLOR_UNDEFINED )
- {
- HBRUSH hBrushNew, hBrushOld;
- RECT rect;
- HWND hWndControl = GetDlgItem( hWndDialog, controlID );
- UnsignedByte r, g, b, a;
- // if this control is disabled just let windows handle drawing
- if( IsWindowEnabled( hWndControl ) == FALSE )
- {
-
- *returnCode = FALSE;
- break;
- } // end if
- // get the color info
- GameGetColorComponents( color, &r, &g, &b, &a );
- // Get the area we have to draw in
- GetClientRect( hWndControl, &rect );
- // create a new brush and select it into DC
- hBrushNew = CreateSolidBrush( RGB ( r, g, b ) );
- hBrushOld = (HBRUSH)SelectObject( drawItem->hDC, hBrushNew );
- // draw the rectangle
- Rectangle( drawItem->hDC, rect.left, rect.top, rect.right, rect.bottom );
- // put the old brush back and delete the new one
- SelectObject( drawItem->hDC, hBrushOld );
- DeleteObject( hBrushNew );
- // validate this new area
- ValidateRect( hWndControl, NULL );
- // we have taken care of it
- *returnCode = TRUE;
- used = TRUE;
- break;
- } // end if
- *returnCode = FALSE;
- break;
- } // end draw item
- // ------------------------------------------------------------------------
- case WM_COMMAND:
- {
- Int notifyCode = HIWORD( wParam ); // notification code
- Int controlID = LOWORD( wParam ); // control ID
- HWND hWndControl = (HWND)lParam; // control window handle
-
- switch( controlID )
- {
- // --------------------------------------------------------------------
- case COMBO_STATE:
- {
- // property switch to the new state
- if( notifyCode == CBN_SELCHANGE )
- {
- Int selected;
- StateIdentifier newState;
- // get new state selected
- selected = SendMessage( hWndControl, CB_GETCURSEL, 0, 0 );
- newState = (StateIdentifier)SendMessage( hWndControl, CB_GETITEMDATA, selected, 0 );
- SwitchToState( newState, hWndDialog );
- } // end if
- used = TRUE;
- break;
- } // end state
- // --------------------------------------------------------------------
- case COMBO_TEXT_STATE:
- {
- // invalidate text color preview boxes
- if( notifyCode == CBN_SELCHANGE )
- {
- // get the selected index as the current text data
- currTextIndex = SendMessage( hWndControl, CB_GETCURSEL, 0, 0 );
- // invalidate each of the preview windows for text colors
- InvalidateRect( GetDlgItem( hWndDialog, BUTTON_TEXT_COLOR ), NULL, TRUE );
- InvalidateRect( GetDlgItem( hWndDialog, BUTTON_TEXT_BORDER_COLOR ), NULL, TRUE );
- } // end if
- used = TRUE;
- break;
- } // end text state
- // --------------------------------------------------------------------
- case COMBO_IMAGE:
- {
-
- // store image selection changes
- if( notifyCode == CBN_SELCHANGE )
- {
- ImageAndColorInfo *info = GetCurrentStateInfo( hWndDialog );
- const Image *newImage = ComboBoxSelectionToImage( hWndControl );
- StoreImageAndColor( info->stateID, newImage,
- info->color, info->borderColor );
- } // end if
-
- used = TRUE;
- break;
- } // end image
- // --------------------------------------------------------------------
- case BUTTON_COLOR:
- case BUTTON_BORDER_COLOR:
- case BUTTON_TEXT_COLOR:
- case BUTTON_TEXT_BORDER_COLOR:
- {
- Color oldColor = GAME_COLOR_UNDEFINED;
- UnsignedByte r, g, b, a;
- ImageAndColorInfo *info = GetCurrentStateInfo( hWndDialog );
- // get the old color
- if( controlID == BUTTON_COLOR && info )
- oldColor = info->color;
- else if( controlID == BUTTON_BORDER_COLOR && info )
- oldColor = info->borderColor;
- else if( controlID == BUTTON_TEXT_COLOR )
- oldColor = textDrawData[ currTextIndex ].color;
- else if( controlID == BUTTON_TEXT_BORDER_COLOR )
- oldColor = textDrawData[ currTextIndex ].borderColor;
- else
- assert( 0 );
- GameGetColorComponents( oldColor, &r, &g, &b, &a );
- // get the mouse position for color dialog placement
- POINT mouse;
- GetCursorPos( &mouse );
- // open the color selector
- RGBColorInt *selectedColor = SelectColor( r, g, b, a, mouse.x, mouse.y );
- // store the new color
- if( selectedColor )
- {
- Color newColor = GameMakeColor( selectedColor->red,
- selectedColor->green,
- selectedColor->blue,
- selectedColor->alpha );
- if( controlID == BUTTON_COLOR && info )
- StoreImageAndColor( info->stateID, info->image, newColor, info->borderColor );
- else if( controlID == BUTTON_BORDER_COLOR && info )
- StoreImageAndColor( info->stateID, info->image, info->color, newColor );
- else if( controlID == BUTTON_TEXT_COLOR )
- textDrawData[ currTextIndex ].color = newColor;
- else if( controlID == BUTTON_TEXT_BORDER_COLOR )
- textDrawData[ currTextIndex ].borderColor = newColor;
- else
- assert( 0 );
- // invalidate the color preview
- InvalidateRect( hWndControl, NULL, TRUE );
- } // end if
- used = TRUE;
- break;
- } // end color buttons
- } // end switch( LOWORD( wParam ) )
- *returnCode = 0;
- break;
- } // end of WM_COMMAND
- } // end of switch
- return used;
- } // end HandleCommonDialogMessages
- // GetProprsEnabledTextColor ==================================================
- //=============================================================================
- Color GetPropsEnabledTextColor( void )
- {
- return textDrawData[ enabledTextIndex ].color;
- }
- // GetPropsEnabledTextBorderColor =============================================
- //=============================================================================
- Color GetPropsEnabledTextBorderColor( void )
- {
- return textDrawData[ enabledTextIndex ].borderColor;
- }
- // GetProprsDisabledTextColor =================================================
- //=============================================================================
- Color GetPropsDisabledTextColor( void )
- {
- return textDrawData[ disabledTextIndex ].color;
- }
- // GetPropsDisabledTextBorderColor ============================================
- //=============================================================================
- Color GetPropsDisabledTextBorderColor( void )
- {
- return textDrawData[ disabledTextIndex ].borderColor;
- }
- // GetProprsHiliteTextColor ===================================================
- //=============================================================================
- Color GetPropsHiliteTextColor( void )
- {
- return textDrawData[ hiliteTextIndex ].color;
- }
- // GetPropsHiliteTextBorderColor ==============================================
- //=============================================================================
- Color GetPropsHiliteTextBorderColor( void )
- {
- return textDrawData[ hiliteTextIndex ].borderColor;
- }
|