ui/motif/container.h

changeset 64
6ef2c7f73a30
parent 62
70d2aee84432
child 76
3782827378ab
equal deleted inserted replaced
63:46a42f0c4f93 64:6ef2c7f73a30
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;
62 UI_BOX_HORIZONTAL 63 UI_BOX_HORIZONTAL
63 }; 64 };
64 65
65 struct UiLayout { 66 struct UiLayout {
66 UiLayoutBool fill; 67 UiLayoutBool fill;
67 UiBool newline; 68 UiBool newline;
69 char *label;
68 }; 70 };
69 71
70 struct UiContainer { 72 struct UiContainer {
71 Widget widget; 73 Widget widget;
72 Widget (*prepare)(UiContainer*, Arg *, int*, UiBool); 74 Widget (*prepare)(UiContainer*, Arg *, int*, UiBool);
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);

mercurial