Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
ScriptedControlClass.h
1/* Renegade Scripts.dll
2 Copyright 2022 Tiberian Technologies
3
4 This file is part of the Renegade scripts.dll
5 The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version. See the file COPYING for more details.
9 In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
10 Only the source code to the module(s) containing the licenced code has to be released.
11*/
12
13#pragma once
14
15#include "engine_vector.h"
16#include "vector2.h"
17
18class ScriptedDialogClass;
19class ScriptedLabelControlClass;
20class ScriptedImageControlClass;
21class ScriptedButtonControlClass;
22class ScriptedTextAreaControlClass;
23class ScriptedCheckBoxControlClass;
24class ScriptedComboBoxControlClass;
25class ScriptedSliderControlClass;
26class ScriptedProgressBarControlClass;
27class ScriptedHealthBarControlClass;
28
29typedef enum
30{
31 CONTROLTYPE_LABEL = 1,
32 CONTROLTYPE_IMAGE,
33 CONTROLTYPE_BUTTON,
34 CONTROLTYPE_TEXTAREA,
35 CONTROLTYPE_CHECKBOX,
36 CONTROLTYPE_COMBOBOX,
37 CONTROLTYPE_SLIDER,
38 CONTROLTYPE_PROGRESSBAR,
39 CONTROLTYPE_HEALTHBAR
40} ControlType;
41
42class ScriptedControlClass
43{
44public:
45 ScriptedControlClass(int ctl_id);
46 virtual ~ScriptedControlClass();
47
48 virtual ControlType Get_Control_Type() = 0;
49 virtual ScriptedLabelControlClass* As_ScriptedLabelControlClass() { return NULL; }
50 virtual ScriptedImageControlClass* As_ScriptedImageControlClass() { return NULL; }
51 virtual ScriptedButtonControlClass* As_ScriptedButtonControlClass() { return NULL; }
52 virtual ScriptedTextAreaControlClass* As_ScriptedTextAreaControlClass() { return NULL; }
53 virtual ScriptedCheckBoxControlClass* As_ScriptedCheckBoxControlClass() { return NULL; }
54 virtual ScriptedComboBoxControlClass* As_ScriptedComboBoxControlClass() { return NULL; }
55 virtual ScriptedSliderControlClass* As_ScriptedSliderControlClass() { return NULL; }
56 virtual ScriptedProgressBarControlClass* As_ScriptedProgressBarControlClass() { return NULL; }
57 virtual ScriptedHealthBarControlClass* As_ScriptedHealthBarControlClass() { return NULL; }
58
59 int Get_Control_ID() { return controlId; }
60 const Vector2& Get_Location() { return location; }
61 void Set_Location(Vector2& newLocation) { location = newLocation; Set_Dirty(true); }
62 void Set_Location(int x, int y) { location.X = (float)x; location.Y = (float)y; Set_Dirty(true); }
63 const Vector2& Get_Size() { return size; }
64 void Set_Size(Vector2& newSize) { size = newSize; Set_Dirty(true); }
65 void Set_Size(int width, int height) { size.X = (float)width; size.Y = (float)height; Set_Dirty(true); }
66 bool Is_Enabled() { return isEnabled; }
67 void Set_Enabled(bool enabled) { isEnabled = enabled; Set_Dirty(true); }
68 bool Is_Dirty() { return isDirty; }
69 void Set_Dirty(bool dirty) { isDirty = dirty; }
70
71protected:
72 int controlId;
73 Vector2 location;
74 Vector2 size;
75 bool isEnabled;
76 bool isDirty;
77};