GlistEngine
Loading...
Searching...
No Matches
gGUISizer.h
Go to the documentation of this file.
1/*
2 * gGUISizer.h
3 *
4 * Created on: Aug 20, 2021
5 * Author: noyan
6 */
7
8#ifndef UI_GGUISIZER_H_
9#define UI_GGUISIZER_H_
10
11#include "gGUIControl.h"
12
13
14class gGUISizer: public gGUIControl {
15public:
17
19 virtual ~gGUISizer();
20
21 void set(gBaseApp* root, gBaseGUIObject* topParentGUIObject, gBaseGUIObject* parentGUIObject, int parentSlotLineNo, int parentSlotColumnNo, int x, int y, int w, int h);
22 void set(int x, int y, int w, int h);
24
25 void setSize(int lineNum, int columnNum);
28 void setLineProportions(float* proportions);
29 void setColumnProportions(float* proportions);
30 void setSlotPadding(int padding, int height = 0);
31
32 void setControl(int lineNo, int columnNo, gGUIControl* guiControl);
33 void removeControl(int lineNo, int columnNo);
34 gGUIControl* getControl(int lineNo, int columnNo);
35
36 void update();
37 void draw();
38
42
43 void setAlignContentVertically(bool enabled);
45
46 int getCursor(int x, int y);
47 void keyPressed(int key);
48 void keyReleased(int key);
49 void charPressed(unsigned int codepoint);
50 void mouseMoved(int x, int y);
51 void mousePressed(int x, int y, int button);
52 void mouseDragged(int x, int y, int button);
53 void mouseReleased(int x, int y, int button);
54 void mouseScrolled(int x, int y);
57 void windowResized(int w, int h);
58 int getSlotWidth(int lineNo, int columnNo);
59 int getSlotHeight(int lineNo, int columnNo);
60 int getSlotX(int lineNo, int columnNo);
61 int getSlotY(int lineNo, int columnNo);
62
63 bool isControlSet(int lineNo, int columnNo);
64
65private:
66 struct Entry {
67 gGUIControl* control = nullptr;
68 bool isset = false;
69 };
70
71 int sizertype;
72 int linenum, columnnum;
73 std::vector<Entry> guicontrols;
74 bool bordersenabled;
75 float* lineprs;
76 float* columnprs;
77 float* linetprs;
78 float* columntprs;
79 bool resizable;
80 int resizecolumn, resizeline;
81 int resizex, resizey;
82 bool fillbackground;
83 int slotpadding;
84 int slotheightpadding;
85 bool alignvertically;
86
87private:
88 int detectSizerType();
89 void reloadControls();
90 void reloadControl(gGUIControl& control);
91 void reloadControl(gGUIControl& control, int line, int column);
92
93 int indexOf(int line, int column) const;
94
95 void checkSpaces();
96};
97
98#endif /* UI_GGUISIZER_H_ */
Definition gBaseApp.h:16
Definition gBaseGUIObject.h:18
gBaseApp * root
Definition gBaseGUIObject.h:147
int height
Definition gBaseGUIObject.h:120
Definition gGUIControl.h:29
Definition gGUISizer.h:14
void mouseDragged(int x, int y, int button)
static const int SIZERTYPE_VERTICAL
Definition gGUISizer.h:16
void draw()
void mousePressed(int x, int y, int button)
void setSlotPadding(int padding, int height=0)
int getSlotHeight(int lineNo, int columnNo)
void mouseExited()
static const int SIZERTYPE_GRID
Definition gGUISizer.h:16
gGUIControl * getControl(int lineNo, int columnNo)
int getSlotWidth(int lineNo, int columnNo)
void keyPressed(int key)
void set(gBaseApp *root, gBaseGUIObject *topParentGUIObject, gBaseGUIObject *parentGUIObject, int parentSlotLineNo, int parentSlotColumnNo, int x, int y, int w, int h)
void keyReleased(int key)
virtual ~gGUISizer()
int getSlotX(int lineNo, int columnNo)
void enableResizing(bool isEnabled)
int getSizerType()
void update()
void mouseScrolled(int x, int y)
void enableBorders(bool isEnabled)
void setLineProportions(float *proportions)
void setControl(int lineNo, int columnNo, gGUIControl *guiControl)
void charPressed(unsigned int codepoint)
void setColumnProportions(float *proportions)
void windowResized(int w, int h)
static const int SIZERTYPE_HORIZONTAL
Definition gGUISizer.h:16
int getColumnNum()
void mouseMoved(int x, int y)
bool isAlignContentVertically()
int getLineNum()
void setAlignContentVertically(bool enabled)
void mouseReleased(int x, int y, int button)
int getCursor(int x, int y)
void setSize(int lineNum, int columnNum)
void mouseEntered()
void removeControl(int lineNo, int columnNo)
void enableBackgroundFill(bool isEnabled)
int getSlotY(int lineNo, int columnNo)
void set(int x, int y, int w, int h)
bool isControlSet(int lineNo, int columnNo)