ui/qt/container.h

changeset 516
4b31c74666d7
parent 130
212b63dd61be
child 519
8884c7fbe4cb
equal deleted inserted replaced
515:9e18cb8c4412 516:4b31c74666d7
37 #include <QGridLayout> 37 #include <QGridLayout>
38 #include <QTabWidget> 38 #include <QTabWidget>
39 #include <QStackedWidget> 39 #include <QStackedWidget>
40 #include <QSplitter> 40 #include <QSplitter>
41 41
42 #define ui_lb2bool(b) ((b) == UI_LAYOUT_TRUE ? TRUE : FALSE)
43 #define ui_bool2lb(b) ((b) ? UI_LAYOUT_TRUE : UI_LAYOUT_FALSE)
44 #define ui_reset_layout(layout) memset(&(layout), 0, sizeof(UiLayout))
45 42
46 typedef struct UiLayout UiLayout;
47 43
48 enum UiLayoutBool {
49 UI_LAYOUT_UNDEFINED = 0,
50 UI_LAYOUT_TRUE,
51 UI_LAYOUT_FALSE,
52 };
53 typedef enum UiLayoutBool UiLayoutBool;
54
55 struct UiLayout {
56 UiLayoutBool fill;
57 bool newline;
58 char *label;
59 bool hexpand;
60 bool vexpand;
61 int gridwidth;
62 };
63
64 struct UiContainer {
65 UiLayout layout;
66 UIWIDGET current;
67 QMenu *menu;
68
69 virtual void add(QWidget *widget, bool fill) = 0;
70 };
71
72 class UiBoxContainer : public UiContainer {
73 public:
74 QBoxLayout *box;
75 bool hasStretchedWidget = false;
76 QSpacerItem *space;
77
78 UiBoxContainer(QBoxLayout *box);
79
80 virtual void add(QWidget *widget, bool fill);
81 };
82
83 class UiGridContainer : public UiContainer {
84 public:
85 QGridLayout *grid;
86 int x = 0;
87 int y = 0;
88
89 UiGridContainer(QGridLayout *grid, int margin, int columnspacing, int rowspacing);
90
91 virtual void add(QWidget *widget, bool fill);
92 };
93
94 class UiTabViewContainer : public UiContainer {
95 public:
96 QTabWidget *tabwidget;
97
98 UiTabViewContainer(QTabWidget *tabwidget);
99 virtual void add(QWidget *widget, bool fill);
100 };
101
102 class UiStackContainer : public UiContainer {
103 public:
104 QStackedWidget *stack;
105
106 UiStackContainer(QStackedWidget *stack);
107 virtual void add(QWidget *widget, bool fill);
108 };
109
110 class UiSidebarContainer : public UiContainer {
111 public:
112 QSplitter *splitter;
113
114 UiSidebarContainer(QSplitter *splitter);
115 virtual void add(QWidget *widget, bool fill);
116 };
117 44
118 #endif /* CONTAINER_H */ 45 #endif /* CONTAINER_H */
119 46

mercurial