37 extern "C" { |
37 extern "C" { |
38 #endif |
38 #endif |
39 |
39 |
40 #define ui_reset_layout(layout) memset(&(layout), 0, sizeof(UiLayout)) |
40 #define ui_reset_layout(layout) memset(&(layout), 0, sizeof(UiLayout)) |
41 |
41 |
42 typedef struct MotifTabbedPane MotifTabbedPane; |
42 typedef struct MotifTabbedPane MotifTabbedPane; |
43 typedef struct UiTab UiTab; |
43 typedef struct UiTab UiTab; |
44 typedef struct UiBoxContainer UiBoxContainer; |
44 typedef struct UiBoxContainer UiBoxContainer; |
45 typedef struct UiGridContainer UiGridContainer; |
45 typedef struct UiGridContainer UiGridContainer; |
46 typedef struct UiLayout UiLayout; |
46 typedef struct UiTabViewContainer UiTabViewContainer; |
|
47 typedef struct UiLayout UiLayout; |
47 |
48 |
48 typedef Widget (*ui_container_add_f)(UiContainer*, Arg*, int*, UiBool); |
49 typedef Widget (*ui_container_add_f)(UiContainer*, Arg*, int*, UiBool); |
49 |
50 |
50 typedef enum UiLayoutBool UiLayoutBool; |
51 typedef enum UiLayoutBool UiLayoutBool; |
51 typedef enum UiBoxOrientation UiBoxOrientation; |
52 typedef enum UiBoxOrientation UiBoxOrientation; |
74 UiLayout layout; |
76 UiLayout layout; |
75 }; |
77 }; |
76 |
78 |
77 struct UiBoxContainer { |
79 struct UiBoxContainer { |
78 UiContainer container; |
80 UiContainer container; |
79 Widget prev_widget; |
81 Widget prev_widget; |
80 UiBool has_fill; |
82 UiBool has_fill; |
81 UiBoxOrientation orientation; |
83 UiBoxOrientation orientation; |
82 }; |
84 }; |
83 |
85 |
84 struct UiGridContainer { |
86 struct UiGridContainer { |
85 UiContainer container; |
87 UiContainer container; |
86 UcxList *lines; |
88 UcxList *lines; |
87 UcxList *current; |
89 UcxList *current; |
|
90 }; |
|
91 |
|
92 struct UiTabViewContainer { |
|
93 UiContainer container; |
|
94 UiContext *context; |
|
95 Widget widget; |
|
96 UcxList *tabs; |
|
97 Widget current; |
88 }; |
98 }; |
89 |
99 |
90 struct MotifTabbedPane { |
100 struct MotifTabbedPane { |
91 UiTabbedPane view; |
101 UiTabbedPane view; |
92 Widget tabbar; |
102 Widget tabbar; |
111 |
121 |
112 UiContainer* ui_grid_container(UiObject *obj, Widget rowcolumn); |
122 UiContainer* ui_grid_container(UiObject *obj, Widget rowcolumn); |
113 Widget ui_grid_container_prepare(UiContainer *ct, Arg *args, int *n, UiBool fill); |
123 Widget ui_grid_container_prepare(UiContainer *ct, Arg *args, int *n, UiBool fill); |
114 void ui_grid_container_add(UiContainer *ct, Widget widget); |
124 void ui_grid_container_add(UiContainer *ct, Widget widget); |
115 |
125 |
|
126 UiContainer* ui_tabview_container(UiObject *obj, Widget rowcolumn); |
|
127 Widget ui_tabview_container_prepare(UiContainer *ct, Arg *args, int *n, UiBool fill); |
|
128 void ui_tabview_container_add(UiContainer *ct, Widget widget); |
|
129 |
116 void ui_tab_button_callback(Widget widget, UiTab *tab, XtPointer d); |
130 void ui_tab_button_callback(Widget widget, UiTab *tab, XtPointer d); |
117 void ui_change_tab(MotifTabbedPane *pane, UiTab *tab); |
131 void ui_change_tab(MotifTabbedPane *pane, UiTab *tab); |
118 |
132 |
119 void ui_tab_set_document(UiContext *ctx, void *document); |
133 void ui_tab_set_document(UiContext *ctx, void *document); |
120 void ui_tab_detach_document(UiContext *ctx, void *document); |
134 void ui_tab_detach_document(UiContext *ctx, void *document); |