ui/gtk/container.c

changeset 1123
42ef3156ea09
parent 1063
e0251f6e15f7
equal deleted inserted replaced
1122:fd0f943ff5f3 1123:42ef3156ea09
41 41
42 #include "../ui/properties.h" 42 #include "../ui/properties.h"
43 43
44 44
45 void ui_container_begin_close(UiObject *obj) { 45 void ui_container_begin_close(UiObject *obj) {
46 UiContainerX *ct = obj->container_end; 46 UiContainer *ct = obj->container_end;
47 ct->close = 1; 47 ct->close = 1;
48 } 48 }
49 49
50 int ui_container_finish(UiObject *obj) { 50 int ui_container_finish(UiObject *obj) {
51 UiContainerX *ct = obj->container_end; 51 UiContainer *ct = obj->container_end;
52 if(ct->close) { 52 if(ct->close) {
53 ui_end_new(obj); 53 ui_end_new(obj);
54 return 0; 54 return 0;
55 } 55 }
56 return 1; 56 return 1;
80 int rowspacing, 80 int rowspacing,
81 int margin) 81 int margin)
82 { 82 {
83 GtkWidget *sub = NULL; 83 GtkWidget *sub = NULL;
84 GtkWidget *add = NULL; 84 GtkWidget *add = NULL;
85 UiContainerX *container = NULL; 85 UiContainer *container = NULL;
86 switch(type) { 86 switch(type) {
87 default: { 87 default: {
88 sub = ui_gtk_vbox_new(spacing); 88 sub = ui_gtk_vbox_new(spacing);
89 add = ui_gtk_set_margin(sub, margin, 0, 0, 0, 0); 89 add = ui_gtk_set_margin(sub, margin, 0, 0, 0, 0);
90 container = ui_box_container(obj, sub, type); 90 container = ui_box_container(obj, sub, type);
123 UiCustomContainer *container = cxZalloc(obj->ctx->allocator, sizeof(UiCustomContainer)); 123 UiCustomContainer *container = cxZalloc(obj->ctx->allocator, sizeof(UiCustomContainer));
124 container->container.add = ui_custom_container_add; 124 container->container.add = ui_custom_container_add;
125 container->container.widget = widget; 125 container->container.widget = widget;
126 container->add = add_child; 126 container->add = add_child;
127 container->userdata = userdata; 127 container->userdata = userdata;
128 uic_object_push_container(obj, (UiContainerX*)container); 128 uic_object_push_container(obj, (UiContainer*)container);
129 } 129 }
130 130
131 /* -------------------- Box Container -------------------- */ 131 /* -------------------- Box Container -------------------- */
132 UiContainerX* ui_box_container(UiObject *obj, GtkWidget *box, UiSubContainerType type) { 132 UiContainer* ui_box_container(UiObject *obj, GtkWidget *box, UiSubContainerType type) {
133 UiBoxContainer *ct = cxCalloc( 133 UiBoxContainer *ct = cxCalloc(
134 obj->ctx->allocator, 134 obj->ctx->allocator,
135 1, 135 1,
136 sizeof(UiBoxContainer)); 136 sizeof(UiBoxContainer));
137 ct->container.widget = box; 137 ct->container.widget = box;
138 ct->container.add = ui_box_container_add; 138 ct->container.add = ui_box_container_add;
139 ct->type = type; 139 ct->type = type;
140 return (UiContainerX*)ct; 140 return (UiContainer*)ct;
141 } 141 }
142 142
143 void ui_box_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 143 void ui_box_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
144 UiBoxContainer *bc = (UiBoxContainer*)ct; 144 UiBoxContainer *bc = (UiBoxContainer*)ct;
145 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); 145 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom);
170 #else 170 #else
171 gtk_box_pack_start(GTK_BOX(ct->widget), widget, expand, fill, 0); 171 gtk_box_pack_start(GTK_BOX(ct->widget), widget, expand, fill, 0);
172 #endif 172 #endif
173 } 173 }
174 174
175 UiContainerX* ui_grid_container( 175 UiContainer* ui_grid_container(
176 UiObject *obj, 176 UiObject *obj,
177 GtkWidget *grid, 177 GtkWidget *grid,
178 UiBool def_hexpand, 178 UiBool def_hexpand,
179 UiBool def_vexpand, 179 UiBool def_vexpand,
180 UiBool def_hfill, 180 UiBool def_hfill,
190 ct->def_vfill = def_vfill; 190 ct->def_vfill = def_vfill;
191 ct->container.widget = grid; 191 ct->container.widget = grid;
192 ct->container.add = ui_grid_container_add; 192 ct->container.add = ui_grid_container_add;
193 UI_GTK_V2(ct->width = 0); 193 UI_GTK_V2(ct->width = 0);
194 UI_GTK_V2(ct->height = 1); 194 UI_GTK_V2(ct->height = 1);
195 return (UiContainerX*)ct; 195 return (UiContainer*)ct;
196 } 196 }
197 197
198 198
199 #if GTK_MAJOR_VERSION >= 3 199 #if GTK_MAJOR_VERSION >= 3
200 void ui_grid_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 200 void ui_grid_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
269 269
270 ct->current = widget; 270 ct->current = widget;
271 } 271 }
272 #endif 272 #endif
273 273
274 UiContainerX* ui_frame_container(UiObject *obj, GtkWidget *frame) { 274 UiContainer* ui_frame_container(UiObject *obj, GtkWidget *frame) {
275 UiContainerPrivate *ct = cxCalloc( 275 UiContainerPrivate *ct = cxCalloc(
276 obj->ctx->allocator, 276 obj->ctx->allocator,
277 1, 277 1,
278 sizeof(UiContainerPrivate)); 278 sizeof(UiContainerPrivate));
279 ct->widget = frame; 279 ct->widget = frame;
280 ct->add = ui_frame_container_add; 280 ct->add = ui_frame_container_add;
281 return (UiContainerX*)ct; 281 return (UiContainer*)ct;
282 } 282 }
283 283
284 void ui_frame_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 284 void ui_frame_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
285 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); 285 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom);
286 FRAME_SET_CHILD(ct->widget, widget); 286 FRAME_SET_CHILD(ct->widget, widget);
287 } 287 }
288 288
289 UiContainerX* ui_expander_container(UiObject *obj, GtkWidget *expander) { 289 UiContainer* ui_expander_container(UiObject *obj, GtkWidget *expander) {
290 UiContainerPrivate *ct = cxCalloc( 290 UiContainerPrivate *ct = cxCalloc(
291 obj->ctx->allocator, 291 obj->ctx->allocator,
292 1, 292 1,
293 sizeof(UiContainerPrivate)); 293 sizeof(UiContainerPrivate));
294 ct->widget = expander; 294 ct->widget = expander;
295 ct->add = ui_expander_container_add; 295 ct->add = ui_expander_container_add;
296 return (UiContainerX*)ct; 296 return (UiContainer*)ct;
297 } 297 }
298 298
299 void ui_expander_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 299 void ui_expander_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
300 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); 300 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom);
301 EXPANDER_SET_CHILD(ct->widget, widget); 301 EXPANDER_SET_CHILD(ct->widget, widget);
305 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); 305 widget = ui_gtk_set_margin(widget, layout->margin, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom);
306 // TODO: check if the widget implements GtkScrollable 306 // TODO: check if the widget implements GtkScrollable
307 SCROLLEDWINDOW_SET_CHILD(ct->widget, widget); 307 SCROLLEDWINDOW_SET_CHILD(ct->widget, widget);
308 } 308 }
309 309
310 UiContainerX* ui_scrolledwindow_container(UiObject *obj, GtkWidget *scrolledwindow) { 310 UiContainer* ui_scrolledwindow_container(UiObject *obj, GtkWidget *scrolledwindow) {
311 UiContainerPrivate *ct = cxCalloc( 311 UiContainerPrivate *ct = cxCalloc(
312 obj->ctx->allocator, 312 obj->ctx->allocator,
313 1, 313 1,
314 sizeof(UiContainerPrivate)); 314 sizeof(UiContainerPrivate));
315 ct->widget = scrolledwindow; 315 ct->widget = scrolledwindow;
316 ct->add = ui_scrolledwindow_container_add; 316 ct->add = ui_scrolledwindow_container_add;
317 return (UiContainerX*)ct; 317 return (UiContainer*)ct;
318 } 318 }
319 319
320 UiContainerX* ui_tabview_container(UiObject *obj, GtkWidget *tabview) { 320 UiContainer* ui_tabview_container(UiObject *obj, GtkWidget *tabview) {
321 UiTabViewContainer *ct = cxCalloc( 321 UiTabViewContainer *ct = cxCalloc(
322 obj->ctx->allocator, 322 obj->ctx->allocator,
323 1, 323 1,
324 sizeof(UiTabViewContainer)); 324 sizeof(UiTabViewContainer));
325 ct->container.widget = tabview; 325 ct->container.widget = tabview;
326 ct->container.add = ui_tabview_container_add; 326 ct->container.add = ui_tabview_container_add;
327 return (UiContainerX*)ct; 327 return (UiContainer*)ct;
328 } 328 }
329 329
330 void ui_tabview_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 330 void ui_tabview_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
331 UiGtkTabView *data = ui_widget_get_tabview_data(ct->widget); 331 UiGtkTabView *data = ui_widget_get_tabview_data(ct->widget);
332 if(!data) { 332 if(!data) {
388 388
389 GtkWidget *box = type == UI_CONTAINER_VBOX ? ui_gtk_vbox_new(args->spacing) : ui_gtk_hbox_new(args->spacing); 389 GtkWidget *box = type == UI_CONTAINER_VBOX ? ui_gtk_vbox_new(args->spacing) : ui_gtk_hbox_new(args->spacing);
390 ui_set_name_and_style(box, args->name, args->style_class); 390 ui_set_name_and_style(box, args->name, args->style_class);
391 ct->add(ct, box, &layout); 391 ct->add(ct, box, &layout);
392 392
393 UiContainerX *container = ui_box_container(obj, box, type); 393 UiContainer *container = ui_box_container(obj, box, type);
394 uic_object_push_container(obj, container); 394 uic_object_push_container(obj, container);
395 395
396 uic_widget_set_visibility_states(obj->ctx, box, args->visibility_states); 396 uic_widget_set_visibility_states(obj->ctx, box, args->visibility_states);
397 397
398 return box; 398 return box;
426 426
427 GtkWidget *grid = ui_create_grid_widget(args->columnspacing, args->rowspacing); 427 GtkWidget *grid = ui_create_grid_widget(args->columnspacing, args->rowspacing);
428 ui_set_name_and_style(grid, args->name, args->style_class); 428 ui_set_name_and_style(grid, args->name, args->style_class);
429 ct->add(ct, grid, &layout); 429 ct->add(ct, grid, &layout);
430 430
431 UiContainerX *container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill); 431 UiContainer *container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill);
432 uic_object_push_container(obj, container); 432 uic_object_push_container(obj, container);
433 433
434 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states); 434 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states);
435 435
436 return grid; 436 return grid;
474 args->rowspacing, 474 args->rowspacing,
475 args->padding); 475 args->padding);
476 if(sub) { 476 if(sub) {
477 FRAME_SET_CHILD(frame, sub); 477 FRAME_SET_CHILD(frame, sub);
478 } else { 478 } else {
479 UiContainerX *container = ui_frame_container(obj, frame); 479 UiContainer *container = ui_frame_container(obj, frame);
480 uic_object_push_container(obj, container); 480 uic_object_push_container(obj, container);
481 } 481 }
482 482
483 uic_widget_set_visibility_states(obj->ctx, frame, args->visibility_states); 483 uic_widget_set_visibility_states(obj->ctx, frame, args->visibility_states);
484 484
500 args->rowspacing, 500 args->rowspacing,
501 args->padding); 501 args->padding);
502 if(sub) { 502 if(sub) {
503 EXPANDER_SET_CHILD(expander, sub); 503 EXPANDER_SET_CHILD(expander, sub);
504 } else { 504 } else {
505 UiContainerX *container = ui_expander_container(obj, expander); 505 UiContainer *container = ui_expander_container(obj, expander);
506 uic_object_push_container(obj, container); 506 uic_object_push_container(obj, container);
507 } 507 }
508 508
509 uic_widget_set_visibility_states(obj->ctx, expander, args->visibility_states); 509 uic_widget_set_visibility_states(obj->ctx, expander, args->visibility_states);
510 510
527 args->rowspacing, 527 args->rowspacing,
528 args->padding); 528 args->padding);
529 if(sub) { 529 if(sub) {
530 SCROLLEDWINDOW_SET_CHILD(sw, sub); 530 SCROLLEDWINDOW_SET_CHILD(sw, sub);
531 } else { 531 } else {
532 UiContainerX *container = ui_scrolledwindow_container(obj, sw); 532 UiContainer *container = ui_scrolledwindow_container(obj, sw);
533 uic_object_push_container(obj, container); 533 uic_object_push_container(obj, container);
534 } 534 }
535 535
536 uic_widget_set_visibility_states(obj->ctx, sw, args->visibility_states); 536 uic_widget_set_visibility_states(obj->ctx, sw, args->visibility_states);
537 537
819 819
820 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; 820 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
821 UiLayout layout = UI_ARGS2LAYOUT(args); 821 UiLayout layout = UI_ARGS2LAYOUT(args);
822 ct->add(ct, widget, &layout); 822 ct->add(ct, widget, &layout);
823 823
824 UiContainerX *container = ui_tabview_container(obj, widget); 824 UiContainer *container = ui_tabview_container(obj, widget);
825 uic_object_push_container(obj, container); 825 uic_object_push_container(obj, container);
826 826
827 uic_widget_set_visibility_states(obj->ctx, widget, args->visibility_states); 827 uic_widget_set_visibility_states(obj->ctx, widget, args->visibility_states);
828 828
829 return widget; 829 return widget;
830 } 830 }
831 831
832 static GtkWidget* create_tab(UiObject *obj, UiGtkTabView *tabview, const char *title, int tab) { 832 static GtkWidget* create_tab(UiObject *obj, UiGtkTabView *tabview, const char *title, int tab) {
833 UiContainerX *container; 833 UiContainer *container;
834 GtkWidget *sub; 834 GtkWidget *sub;
835 switch(tabview->subcontainer) { 835 switch(tabview->subcontainer) {
836 default: { 836 default: {
837 sub = ui_gtk_vbox_new(tabview->spacing); 837 sub = ui_gtk_vbox_new(tabview->spacing);
838 container = ui_box_container(obj, sub, tabview->subcontainer); 838 container = ui_box_container(obj, sub, tabview->subcontainer);
914 obj->ctx->allocator, 914 obj->ctx->allocator,
915 1, 915 1,
916 sizeof(UiHeaderbarContainer)); 916 sizeof(UiHeaderbarContainer));
917 memcpy(hb, ct, sizeof(UiHeaderbarContainer)); 917 memcpy(hb, ct, sizeof(UiHeaderbarContainer));
918 hb->part = part; 918 hb->part = part;
919 uic_object_push_container(obj, (UiContainerX*)hb); 919 uic_object_push_container(obj, (UiContainer*)hb);
920 } 920 }
921 921
922 void ui_headerbar_start_create(UiObject *obj) { 922 void ui_headerbar_start_create(UiObject *obj) {
923 hb_set_part(obj, 0); 923 hb_set_part(obj, 0);
924 } 924 }
937 937
938 GtkWidget *box = ui_gtk_hbox_new(args->alt_spacing); 938 GtkWidget *box = ui_gtk_hbox_new(args->alt_spacing);
939 ui_set_name_and_style(box, args->name, args->style_class); 939 ui_set_name_and_style(box, args->name, args->style_class);
940 ct->add(ct, box, &layout); 940 ct->add(ct, box, &layout);
941 941
942 UiContainerX *container = ui_headerbar_fallback_container(obj, box); 942 UiContainer *container = ui_headerbar_fallback_container(obj, box);
943 uic_object_push_container(obj, container); 943 uic_object_push_container(obj, container);
944 944
945 return box; 945 return box;
946 } 946 }
947 947
948 static void hb_fallback_set_part(UiObject *obj, int part) { 948 static void hb_fallback_set_part(UiObject *obj, int part) {
949 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; 949 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
950 GtkWidget *headerbar = ct->widget; 950 GtkWidget *headerbar = ct->widget;
951 951
952 UiContainerX *container = ui_headerbar_container(obj, headerbar); 952 UiContainer *container = ui_headerbar_container(obj, headerbar);
953 uic_object_push_container(obj, container); 953 uic_object_push_container(obj, container);
954 954
955 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)container; 955 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)container;
956 hb->part = part; 956 hb->part = part;
957 } 957 }
958 958
959 UiContainerX* ui_headerbar_fallback_container(UiObject *obj, GtkWidget *headerbar) { 959 UiContainer* ui_headerbar_fallback_container(UiObject *obj, GtkWidget *headerbar) {
960 UiHeaderbarContainer *ct = cxCalloc( 960 UiHeaderbarContainer *ct = cxCalloc(
961 obj->ctx->allocator, 961 obj->ctx->allocator,
962 1, 962 1,
963 sizeof(UiHeaderbarContainer)); 963 sizeof(UiHeaderbarContainer));
964 ct->container.widget = headerbar; 964 ct->container.widget = headerbar;
965 ct->container.add = ui_headerbar_fallback_container_add; 965 ct->container.add = ui_headerbar_fallback_container_add;
966 return (UiContainerX*)ct; 966 return (UiContainer*)ct;
967 } 967 }
968 968
969 void ui_headerbar_fallback_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 969 void ui_headerbar_fallback_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
970 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct; 970 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct;
971 BOX_ADD(ct->widget, widget); 971 BOX_ADD(ct->widget, widget);
977 GtkWidget *headerbar = g_object_get_data(G_OBJECT(obj->widget), "ui_headerbar"); 977 GtkWidget *headerbar = g_object_get_data(G_OBJECT(obj->widget), "ui_headerbar");
978 if(!headerbar) { 978 if(!headerbar) {
979 return ui_headerbar_fallback_create(obj, args); 979 return ui_headerbar_fallback_create(obj, args);
980 } 980 }
981 981
982 UiContainerX *container = ui_headerbar_container(obj, headerbar); 982 UiContainer *container = ui_headerbar_container(obj, headerbar);
983 uic_object_push_container(obj, container); 983 uic_object_push_container(obj, container);
984 984
985 return headerbar; 985 return headerbar;
986 } 986 }
987 987
988 UiContainerX* ui_headerbar_container(UiObject *obj, GtkWidget *headerbar) { 988 UiContainer* ui_headerbar_container(UiObject *obj, GtkWidget *headerbar) {
989 UiHeaderbarContainer *ct = cxCalloc( 989 UiHeaderbarContainer *ct = cxCalloc(
990 obj->ctx->allocator, 990 obj->ctx->allocator,
991 1, 991 1,
992 sizeof(UiHeaderbarContainer)); 992 sizeof(UiHeaderbarContainer));
993 ct->container.widget = headerbar; 993 ct->container.widget = headerbar;
994 ct->container.add = ui_headerbar_container_add; 994 ct->container.add = ui_headerbar_container_add;
995 return (UiContainerX*)ct; 995 return (UiContainer*)ct;
996 } 996 }
997 997
998 void ui_headerbar_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 998 void ui_headerbar_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
999 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct; 999 UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct;
1000 if(hb->part == 0) { 1000 if(hb->part == 0) {
1033 1033
1034 GtkWidget *box = ui_gtk_vbox_new(args->spacing); 1034 GtkWidget *box = ui_gtk_vbox_new(args->spacing);
1035 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom); 1035 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom);
1036 adw_toolbar_view_set_content(ADW_TOOLBAR_VIEW(sidebar_toolbar_view), box); 1036 adw_toolbar_view_set_content(ADW_TOOLBAR_VIEW(sidebar_toolbar_view), box);
1037 1037
1038 UiContainerX *container = ui_box_container(obj, box, UI_CONTAINER_VBOX); 1038 UiContainer *container = ui_box_container(obj, box, UI_CONTAINER_VBOX);
1039 uic_object_push_container(obj, container); 1039 uic_object_push_container(obj, container);
1040 1040
1041 return box; 1041 return box;
1042 } 1042 }
1043 #else 1043 #else
1046 1046
1047 GtkWidget *box = ui_gtk_vbox_new(args->spacing); 1047 GtkWidget *box = ui_gtk_vbox_new(args->spacing);
1048 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom); 1048 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom);
1049 BOX_ADD_EXPAND(sidebar_vbox, box); 1049 BOX_ADD_EXPAND(sidebar_vbox, box);
1050 1050
1051 UiContainerX *container = ui_box_container(obj, box, UI_CONTAINER_VBOX); 1051 UiContainer *container = ui_box_container(obj, box, UI_CONTAINER_VBOX);
1052 uic_object_push_container(obj, container); 1052 uic_object_push_container(obj, container);
1053 1053
1054 return box; 1054 return box;
1055 } 1055 }
1056 #endif 1056 #endif
1066 GtkWidget *box = ui_gtk_vbox_new(args->spacing); 1066 GtkWidget *box = ui_gtk_vbox_new(args->spacing);
1067 ui_set_name_and_style(box, args->name, args->style_class); 1067 ui_set_name_and_style(box, args->name, args->style_class);
1068 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom); 1068 ui_gtk_set_margin(box, args->margin, args->margin_left, args->margin_right, args->margin_top, args->margin_bottom);
1069 BOX_ADD_EXPAND(pbox, box); 1069 BOX_ADD_EXPAND(pbox, box);
1070 1070
1071 UiContainerX *container = ui_box_container(obj, box, UI_CONTAINER_VBOX); 1071 UiContainer *container = ui_box_container(obj, box, UI_CONTAINER_VBOX);
1072 uic_object_push_container(obj, container); 1072 uic_object_push_container(obj, container);
1073 1073
1074 return box; 1074 return box;
1075 } 1075 }
1076 1076
1133 G_CALLBACK(save_pane_pos), 1133 G_CALLBACK(save_pane_pos),
1134 strdup(args->position_property)); 1134 strdup(args->position_property));
1135 } 1135 }
1136 1136
1137 UiSplitPane *splitpane = ui_create_splitpane_data(pane0, orientation, max, args->initial_position); 1137 UiSplitPane *splitpane = ui_create_splitpane_data(pane0, orientation, max, args->initial_position);
1138 UiContainerX *container = ui_splitpane_container(obj, pane0, splitpane); 1138 UiContainer *container = ui_splitpane_container(obj, pane0, splitpane);
1139 uic_object_push_container(obj, container); 1139 uic_object_push_container(obj, container);
1140 1140
1141 g_object_set_data(G_OBJECT(pane0), "ui_splitpane", splitpane); 1141 g_object_set_data(G_OBJECT(pane0), "ui_splitpane", splitpane);
1142 1142
1143 UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); 1143 UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER);
1170 ct->initial_position = init; 1170 ct->initial_position = init;
1171 ct->children = cxArrayListCreate(NULL, CX_STORE_POINTERS, 4); 1171 ct->children = cxArrayListCreate(NULL, CX_STORE_POINTERS, 4);
1172 return ct; 1172 return ct;
1173 } 1173 }
1174 1174
1175 UiContainerX* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiSplitPane *data) { 1175 UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiSplitPane *data) {
1176 UiSplitPaneContainer *ct = ui_calloc(obj->ctx, 1, sizeof(UiSplitPaneContainer)); 1176 UiSplitPaneContainer *ct = ui_calloc(obj->ctx, 1, sizeof(UiSplitPaneContainer));
1177 ct->container.widget = pane; 1177 ct->container.widget = pane;
1178 ct->container.add = ui_splitpane_container_add; 1178 ct->container.add = ui_splitpane_container_add;
1179 ct->splitpane = data; 1179 ct->splitpane = data;
1180 return (UiContainerX*)ct; 1180 return (UiContainer*)ct;
1181 } 1181 }
1182 1182
1183 void ui_splitpane_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) { 1183 void ui_splitpane_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
1184 UiSplitPaneContainer *sct = (UiSplitPaneContainer*)ct; 1184 UiSplitPaneContainer *sct = (UiSplitPaneContainer*)ct;
1185 UiSplitPane *s = sct->splitpane; 1185 UiSplitPane *s = sct->splitpane;

mercurial