22 #ifndef AGS_SHARED_GUI_GUI_BUTTON_H 23 #define AGS_SHARED_GUI_GUI_BUTTON_H 25 #include "common/std/vector.h" 26 #include "ags/engine/ac/button.h" 27 #include "ags/shared/gui/gui_object.h" 28 #include "ags/shared/util/string.h" 32 #define GUIBUTTON_LEGACY_TEXTLENGTH 50 37 enum GUIClickMouseButton {
45 kGUIAction_SetMode = 1,
46 kGUIAction_RunScript = 2,
49 enum LegacyButtonAlignment {
50 kLegacyButtonAlign_TopCenter = 0,
51 kLegacyButtonAlign_TopLeft = 1,
52 kLegacyButtonAlign_TopRight = 2,
53 kLegacyButtonAlign_CenterLeft = 3,
54 kLegacyButtonAlign_Centered = 4,
55 kLegacyButtonAlign_CenterRight = 5,
56 kLegacyButtonAlign_BottomLeft = 6,
57 kLegacyButtonAlign_BottomCenter = 7,
58 kLegacyButtonAlign_BottomRight = 8,
63 enum GUIButtonPlaceholder {
65 kButtonPlace_InvItemStretch,
66 kButtonPlace_InvItemCenter,
67 kButtonPlace_InvItemAuto
74 bool HasAlphaChannel()
const override;
75 int32_t GetCurrentImage()
const;
76 int32_t GetNormalImage()
const;
77 int32_t GetMouseOverImage()
const;
78 int32_t GetPushedImage()
const;
79 GUIButtonPlaceholder GetPlaceholder()
const;
80 const String &GetText()
const;
81 bool IsImageButton()
const;
82 bool IsClippingImage()
const;
85 Rect CalcGraphicRect(
bool clipped)
override;
86 void Draw(
Bitmap *ds,
int x = 0,
int y = 0)
override;
87 void SetClipImage(
bool on);
88 void SetCurrentImage(int32_t image);
89 void SetMouseOverImage(int32_t image);
90 void SetNormalImage(int32_t image);
91 void SetPushedImage(int32_t image);
92 void SetImages(int32_t normal, int32_t over, int32_t pushed);
93 void SetText(
const String &text);
96 bool OnMouseDown()
override;
97 void OnMouseEnter()
override;
98 void OnMouseLeave()
override;
99 void OnMouseUp()
override;
102 void ReadFromFile(
Stream *in, GuiVersion gui_version)
override;
103 void WriteToFile(
Stream *out)
const override;
104 void ReadFromSavegame(
Shared::Stream *in, GuiSvgVersion svg_ver)
override;
111 FrameAlignment TextAlignment;
114 GUIClickAction ClickAction[kNumGUIClicks];
115 int32_t ClickData[kNumGUIClicks];
121 void DrawImageButton(
Bitmap *ds,
int x,
int y,
bool draw_disabled);
122 void DrawText(
Bitmap *ds,
int x,
int y,
bool draw_disabled);
123 void DrawTextButton(
Bitmap *ds,
int x,
int y,
bool draw_disabled);
124 void PrepareTextToDraw();
126 void UpdateCurrentImage();
129 int32_t _mouseOverImage;
130 int32_t _pushedImage;
132 int32_t _currentImage;
136 GUIButtonPlaceholder _placeholder;
Definition: achievements_tables.h:27
Definition: allegro_bitmap.h:44
Definition: gui_object.h:44
Definition: geometry.h:219