1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #ifndef CONTAINER_H
30 #define CONTAINER_H
31
32 #include "../ui/toolkit.h"
33 #include "../ui/container.h"
34 #include <string.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 #define ui_reset_layout(layout) memset(&(layout),
0,
sizeof(UiLayout))
41 #define ui_lb2bool(b) ((b) ==
UI_LAYOUT_TRUE ?
TRUE :
FALSE)
42 #define ui_bool2lb(b) ((b) ?
UI_LAYOUT_TRUE :
UI_LAYOUT_FALSE)
43
44 typedef void (*ui_container_add_f)(UiContainer*, GtkWidget*, UiBool);
45
46 typedef struct UiDocumentView UiDocumentView;
47
48 typedef struct UiLayout UiLayout;
49 typedef enum UiLayoutBool UiLayoutBool;
50
51 enum UiLayoutBool {
52 UI_LAYOUT_UNDEFINED =
0,
53 UI_LAYOUT_TRUE,
54 UI_LAYOUT_FALSE,
55 };
56
57 struct UiLayout {
58 UiLayoutBool fill;
59 UiBool newline;
60 char *label;
61 UiBool hexpand;
62 UiBool vexpand;
63 int width;
64 int gridwidth;
65 };
66
67 struct UiContainer {
68 GtkWidget *widget;
69 GtkMenu *menu;
70 GtkWidget *current;
71
72 void (*add)(UiContainer*, GtkWidget*, UiBool);
73 UiLayout layout;
74
75 int close;
76 };
77
78 typedef struct UiBoxContainer {
79 UiContainer container;
80 UiBool has_fill;
81 } UiBoxContainer;
82
83 typedef struct UiGridContainer {
84 UiContainer container;
85 int x;
86 int y;
87 #ifdef UI_GTK2
88 int width;
89 int height;
90 #endif
91 } UiGridContainer;
92
93 typedef struct UiPanedContainer {
94 UiContainer container;
95 GtkWidget *current_pane;
96 int orientation;
97 int max;
98 int cur;
99 } UiPanedContainer;
100
101 typedef struct UiTabViewContainer {
102 UiContainer container;
103 } UiTabViewContainer;
104
105 GtkWidget* ui_gtk_vbox_new(
int spacing);
106 GtkWidget* ui_gtk_hbox_new(
int spacing);
107
108 UiContainer* ui_frame_container(UiObject *obj, GtkWidget *frame);
109 void ui_frame_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
110
111 UiContainer* ui_box_container(UiObject *obj, GtkWidget *box);
112 void ui_box_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
113
114 UiContainer* ui_grid_container(UiObject *obj, GtkWidget *grid);
115 void ui_grid_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
116
117 UiContainer* ui_scrolledwindow_container(UiObject *obj, GtkWidget *scrolledwindow);
118 void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
119
120 UiContainer* ui_tabview_container(UiObject *obj, GtkWidget *tabview);
121 void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
122
123 void ui_paned_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
124
125 void ui_split_container_add1(UiContainer *ct, GtkWidget *widget, UiBool fill);
126 void ui_split_container_add2(UiContainer *ct, GtkWidget *widget, UiBool fill);
127
128
129 UiObject* ui_add_document_tab(UiDocumentView *view);
130 void ui_tab_set_document(UiContext *ctx,
void *document);
131 void ui_tab_detach_document(UiContext *ctx);
132
133 #ifdef __cplusplus
134 }
135 #endif
136
137 #endif
138
139