| 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); |
| 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); |
| 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; |