15#include "engine_string.h"
17#include "ScriptedControlClass.h"
23 TEXTSTYLE_LARGE_CONTROL,
30 TEXTORIENTATION_CENTER,
43class ScriptedLabelControlClass :
public ScriptedControlClass
46 ScriptedLabelControlClass(
int ctl_id);
48 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_LABEL; }
49 virtual ScriptedLabelControlClass* As_ScriptedLabelControlClass() {
return this; }
51 const WideStringClass& Get_Label_Text() {
return text; }
52 void Set_Label_Text(
const wchar_t* newText) { text = newText; Set_Dirty(
true); }
53 const Vector3& Get_Text_Color() {
return color; }
54 void Set_Text_Color(Vector3& newColor) { color = newColor; Set_Dirty(
true); }
55 void Set_Text_Color(
int r,
int g,
int b) { color.X = r / 255.f; color.Y = g / 255.f; color.Z = b / 255.f; Set_Dirty(
true); }
56 TextStyle Get_Style() {
return style; }
57 void Set_Style(TextStyle newStyle) { style = newStyle; Set_Dirty(
true); }
58 TextOrientation Get_Orientation() {
return orientation; }
59 void Set_Orientation(TextOrientation newOrientation) { orientation = newOrientation; Set_Dirty(
true); }
64 TextOrientation orientation;
69class ScriptedImageControlClass :
public ScriptedControlClass
72 ScriptedImageControlClass(
int ctl_id);
74 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_IMAGE; }
75 virtual ScriptedImageControlClass* As_ScriptedImageControlClass() {
return this; }
77 const StringClass& Get_Image_Name() {
return imageName; }
78 void Set_Image_Name(
const char* newName) { imageName = newName; Set_Dirty(
true); }
80 StringClass imageName;
85class ScriptedButtonControlClass :
public ScriptedControlClass
88 ScriptedButtonControlClass(
int ctl_id);
90 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_BUTTON; }
91 virtual ScriptedButtonControlClass* As_ScriptedButtonControlClass() {
return this; }
93 const WideStringClass& Get_Button_Text() {
return buttonText; }
94 void Set_Button_Text(
const wchar_t* newText) { buttonText = newText; Set_Dirty(
true); }
95 const StringClass& Get_Button_Up_Image_Name() {
return imageNameUp; }
96 void Set_Button_Up_Image_Name(
const char* newName) { imageNameUp = newName; Set_Dirty(
true); }
97 const StringClass& Get_Button_Down_Image_Name() {
return imageNameDn; }
98 void Set_Button_Down_Image_Name(
const char* newName) { imageNameDn = newName; Set_Dirty(
true); }
99 ButtonStyle Get_Button_Style() {
return style; }
100 void Set_Button_Style(ButtonStyle newStyle) { style = newStyle; Set_Dirty(
true); }
102 WideStringClass buttonText;
103 StringClass imageNameUp;
104 StringClass imageNameDn;
110class ScriptedTextAreaControlClass :
public ScriptedControlClass
113 ScriptedTextAreaControlClass(
int ctl_id);
115 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_TEXTAREA; }
116 virtual ScriptedTextAreaControlClass* As_ScriptedTextAreaControlClass() {
return this; }
118 int Get_Text_Limit() {
return textLimit; }
119 void Set_Text_Limit(
int newLimit) { textLimit = newLimit; Set_Dirty(
true); }
120 bool Is_Password_Field() {
return isPassword; }
121 void Set_Password_Field(
bool password) { isPassword = password; Set_Dirty(
true); }
122 bool Is_Numeric_Field() {
return isNumeric; }
123 void Set_Numeric_Field(
bool numeric) { isNumeric = numeric; Set_Dirty(
true); }
124 bool Is_Automatic_Horizontal_Scroll() {
return autoHorizontalScroll; }
125 void Set_Automatic_Horizontal_Scroll(
bool scroll) { autoHorizontalScroll = scroll; Set_Dirty(
true); }
126 const WideStringClass& Get_Text() {
return textareaText; }
127 void Set_Text(
const wchar_t* newText) { textareaText = newText; Set_Dirty(
true); }
128 int Get_Text_Length() {
return textareaText.Get_Length(); }
133 bool autoHorizontalScroll;
134 WideStringClass textareaText;
139class ScriptedCheckBoxControlClass :
public ScriptedControlClass
142 ScriptedCheckBoxControlClass(
int ctl_id);
144 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_CHECKBOX; }
145 virtual ScriptedCheckBoxControlClass* As_ScriptedCheckBoxControlClass() {
return this; }
147 const WideStringClass& Get_Text() {
return checkboxText; }
148 void Set_Text(
const wchar_t* newText) { checkboxText = newText; Set_Dirty(
true); }
149 bool Is_Checked() {
return isChecked; }
150 void Set_Checked(
bool checked) { isChecked = checked; Set_Dirty(
true); }
152 WideStringClass checkboxText;
158class ScriptedComboBoxControlClass :
public ScriptedControlClass
161 ScriptedComboBoxControlClass(
int ctl_id);
163 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_COMBOBOX; }
164 virtual ScriptedComboBoxControlClass* As_ScriptedComboBoxControlClass() {
return this; }
166 int Get_Selected_Index() {
return selectedIndex; }
167 void Set_Selected_Index(
int newIndex) { selectedIndex = newIndex; Set_Dirty(
true); }
168 void Add_Item(
const wchar_t* item) { options.Add(item); Set_Dirty(
true); }
169 void Insert_Item(
int index,
const wchar_t* item) { options.Insert(index, item); Set_Dirty(
true); }
170 int Get_Item_Count() {
return options.Count(); }
171 const WideStringClass& Get_Item(
int index) {
return options[index]; }
172 const WideStringClass& Get_Selected_Item_Text() {
return options[selectedIndex]; }
173 void Remove_Item(
int index) { options.Delete(index); Set_Dirty(
true); }
174 void Remove_Item(
const WideStringClass& item) { options.DeleteObj(item); Set_Dirty(
true); }
175 void Clear_Items() { options.Delete_All(); Set_Dirty(
true); }
177 DynamicVectorClass<WideStringClass> options;
183class ScriptedSliderControlClass :
public ScriptedControlClass
186 ScriptedSliderControlClass(
int ctl_id);
188 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_SLIDER; }
189 virtual ScriptedSliderControlClass* As_ScriptedSliderControlClass() {
return this; }
191 int Get_Minimum() {
return minVal; }
192 void Set_Minimum(
int newMin) { minVal = newMin; Set_Dirty(
true); }
193 int Get_Maximum() {
return maxVal; }
194 void Set_Maximum(
int newMax) { maxVal = newMax; Set_Dirty(
true); }
195 int Get_Value() {
return value; }
196 void Set_Value(
int newValue) { value = newValue; Set_Dirty(
true); }
205class ScriptedProgressBarControlClass :
public ScriptedControlClass
208 ScriptedProgressBarControlClass(
int ctl_id);
210 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_PROGRESSBAR; }
211 virtual ScriptedProgressBarControlClass* As_ScriptedProgressBarControlClass() {
return this; }
213 int Get_Minimum() {
return minVal; }
214 void Set_Minimum(
int newMin) { minVal = newMin; Set_Dirty(
true); }
215 int Get_Maximum() {
return maxVal; }
216 void Set_Maximum(
int newMax) { maxVal = newMax; Set_Dirty(
true); }
217 int Get_Progress() {
return progress; }
218 void Set_Progress(
int newProgress) { progress = newProgress > maxVal ? maxVal : newProgress < minVal ? minVal : newProgress; Set_Dirty(
true); }
219 int Get_Step_Count() {
return stepCount; }
220 void Set_Step_Count(
int newStep) { stepCount = newStep; }
221 void Increment_Value() { progress += progress + stepCount > maxVal ? maxVal - progress : stepCount; Set_Dirty(
true); }
222 void Decrement_Value() { progress -= progress - stepCount < minVal ? progress - minVal : stepCount; Set_Dirty(
true); }
233class ScriptedHealthBarControlClass :
public ScriptedControlClass
236 ScriptedHealthBarControlClass(
int ctl_id);
238 virtual ControlType Get_Control_Type() {
return CONTROLTYPE_HEALTHBAR; }
239 virtual ScriptedHealthBarControlClass* As_ScriptedHealthBarControlClass() {
return this; }
241 float Get_Life() {
return life; }
242 void Set_Life(
float newLife) { life = WWMath::Clamp(newLife); Set_Dirty(
true); }