15#include "engine_string.h"
16#include "engine_vector.h"
18#include "ScriptedControlClass.h"
20class ScriptedMenuDialogClass;
21class ScriptedPopupDialogClass;
31 DIALOGORIENTATION_NONE,
32 DIALOGORIENTATION_TOPLEFT,
33 DIALOGORIENTATION_TOPCENTER,
34 DIALOGORIENTATION_TOPRIGHT,
35 DIALOGORIENTATION_MIDDLELEFT,
36 DIALOGORIENTATION_MIDDLECENTER,
37 DIALOGORIENTATION_MIDDLERIGHT,
38 DIALOGORIENTATION_BOTTOMLEFT,
39 DIALOGORIENTATION_BOTTOMCENTER,
40 DIALOGORIENTATION_BOTTOMRIGHT
43class ScriptedDialogClass
46 ScriptedDialogClass(
int client,
int dlg_id);
47 virtual ~ScriptedDialogClass();
49 virtual DialogType Get_Dialog_Type() = 0;
50 virtual ScriptedMenuDialogClass* As_ScriptedMenuDialogClass() {
return NULL; }
51 virtual ScriptedPopupDialogClass* As_ScriptedPopupDialogClass() {
return NULL; }
53 int Get_Dialog_ID() {
return id; }
54 int Get_Client_ID() {
return clientId; }
55 bool Is_Dirty() {
return isDirty; }
56 void Set_Dirty(
bool dirty) { isDirty = dirty; }
58 virtual void Add_Control(ScriptedControlClass* control);
59 virtual ScriptedControlClass* Create_Control(ControlType type);
60 virtual ScriptedControlClass* Find_Control(
int id);
61 virtual int Get_Control_Count();
62 virtual ScriptedControlClass* Get_Control_Index(
int index);
63 virtual void Remove_Control(
int id);
64 virtual void Remove_Control(ScriptedControlClass* control);
65 virtual void Clear_Controls();
66 virtual void Focus_Control(ScriptedControlClass* control);
71 DynamicVectorClass<ScriptedControlClass*> controls;
75class ScriptedMenuDialogClass :
public ScriptedDialogClass
78 ScriptedMenuDialogClass(
int client,
int dlg_id);
79 virtual ~ScriptedMenuDialogClass();
81 virtual DialogType Get_Dialog_Type() {
return DIALOGTYPE_MENU; }
82 virtual ScriptedMenuDialogClass* As_ScriptedMenuDialogClass() {
return this; }
85class ScriptedPopupDialogClass :
public ScriptedDialogClass
88 ScriptedPopupDialogClass(
int client,
int dlg_id);
89 virtual ~ScriptedPopupDialogClass();
91 virtual DialogType Get_Dialog_Type() {
return DIALOGTYPE_POPUP; }
92 virtual ScriptedPopupDialogClass* As_ScriptedPopupDialogClass() {
return this; }
94 DialogOrientation Get_Orientation() {
return orientation; }
95 void Set_Orientation(DialogOrientation newOrientation) { orientation = newOrientation; Set_Dirty(
true); }
96 const Vector2& Get_Dialog_Size() {
return size; }
97 void Set_Dialog_Size(Vector2& newSize) { size = newSize; Set_Dirty(
true); }
98 void Set_Dialog_Size(
int width,
int height) { size.X = (float)width; size.Y = (float)height; Set_Dirty(
true); }
99 const Vector2& Get_Dialog_Location() {
return location; }
100 void Set_Dialog_Location(Vector2& newLocation) { location = newLocation; Set_Dirty(
true); }
101 void Set_Dialog_Location(
int x,
int y) { location.X = (float)x; location.Y = (float)y; Set_Dirty(
true); }
102 const WideStringClass& Get_Dialog_Title() {
return title; }
103 void Set_Dialog_Title(
const wchar_t* newTitle) { title = newTitle; Set_Dirty(
true); }
108 DialogOrientation orientation;
109 WideStringClass title;