| 85 |
85 |
| 86 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
86 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 87 Widget grid = XtCreateManagedWidget(args->name ? args->name : "boxcontainer", gridClass, parent, xargs, n); |
87 Widget grid = XtCreateManagedWidget(args->name ? args->name : "boxcontainer", gridClass, parent, xargs, n); |
| 88 ctn->add(ctn, grid); |
88 ctn->add(ctn, grid); |
| 89 |
89 |
| 90 UiContainerX *container = ui_box_container(obj, grid, orientation); |
90 UiContainer *container = ui_box_container(obj, grid, orientation); |
| 91 uic_object_push_container(obj, container); |
91 uic_object_push_container(obj, container); |
| 92 |
92 |
| 93 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states); |
93 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states); |
| 94 |
94 |
| 95 return grid; |
95 return grid; |
| 103 // public |
103 // public |
| 104 UIWIDGET ui_hbox_create(UiObject *obj, UiContainerArgs *args) { |
104 UIWIDGET ui_hbox_create(UiObject *obj, UiContainerArgs *args) { |
| 105 return box_create(obj, args, UI_BOX_HORIZONTAL); |
105 return box_create(obj, args, UI_BOX_HORIZONTAL); |
| 106 } |
106 } |
| 107 |
107 |
| 108 UiContainerX* ui_box_container(UiObject *obj, Widget grid, UiBoxOrientation orientation) { |
108 UiContainer* ui_box_container(UiObject *obj, Widget grid, UiBoxOrientation orientation) { |
| 109 UiBoxContainer *ctn = ui_malloc(obj->ctx, sizeof(UiBoxContainer)); |
109 UiBoxContainer *ctn = ui_malloc(obj->ctx, sizeof(UiBoxContainer)); |
| 110 memset(ctn, 0, sizeof(UiBoxContainer)); |
110 memset(ctn, 0, sizeof(UiBoxContainer)); |
| 111 ctn->container.prepare = orientation == UI_BOX_VERTICAL ? ui_vbox_prepare : ui_hbox_prepare; |
111 ctn->container.prepare = orientation == UI_BOX_VERTICAL ? ui_vbox_prepare : ui_hbox_prepare; |
| 112 ctn->container.add = ui_box_container_add; |
112 ctn->container.add = ui_box_container_add; |
| 113 ctn->container.widget = grid; |
113 ctn->container.widget = grid; |
| 114 ctn->n = 0; |
114 ctn->n = 0; |
| 115 return (UiContainerX*)ctn; |
115 return (UiContainer*)ctn; |
| 116 } |
116 } |
| 117 |
117 |
| 118 static Widget ui_box_container_prepare(UiBoxContainer *box, UiLayout *layout, Arg *args, int *n) { |
118 static Widget ui_box_container_prepare(UiBoxContainer *box, UiLayout *layout, Arg *args, int *n) { |
| 119 ui_container_apply_grid_margin(args, n, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); |
119 ui_container_apply_grid_margin(args, n, layout->margin_left, layout->margin_right, layout->margin_top, layout->margin_bottom); |
| 120 box->n++; |
120 box->n++; |
| 168 XtSetArg(xargs[n], gridColumnSpacing, args->columnspacing); n++; |
168 XtSetArg(xargs[n], gridColumnSpacing, args->columnspacing); n++; |
| 169 XtSetArg(xargs[n], gridRowSpacing, args->rowspacing); n++; |
169 XtSetArg(xargs[n], gridRowSpacing, args->rowspacing); n++; |
| 170 Widget grid = XtCreateManagedWidget(args->name ? args->name : "gridcontainer", gridClass, parent, xargs, n); |
170 Widget grid = XtCreateManagedWidget(args->name ? args->name : "gridcontainer", gridClass, parent, xargs, n); |
| 171 ui_container_add(ctn, grid); |
171 ui_container_add(ctn, grid); |
| 172 |
172 |
| 173 UiContainerX *container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill); |
173 UiContainer *container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill); |
| 174 uic_object_push_container(obj, container); |
174 uic_object_push_container(obj, container); |
| 175 |
175 |
| 176 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states); |
176 uic_widget_set_visibility_states(obj->ctx, grid, args->visibility_states); |
| 177 |
177 |
| 178 return grid; |
178 return grid; |
| 179 } |
179 } |
| 180 |
180 |
| 181 UiContainerX* ui_grid_container( |
181 UiContainer* ui_grid_container( |
| 182 UiObject *obj, |
182 UiObject *obj, |
| 183 Widget grid, |
183 Widget grid, |
| 184 UiBool def_hexpand, |
184 UiBool def_hexpand, |
| 185 UiBool def_vexpand, |
185 UiBool def_vexpand, |
| 186 UiBool def_hfill, |
186 UiBool def_hfill, |
| 195 ctn->y = 0; |
195 ctn->y = 0; |
| 196 ctn->def_hexpand = def_hexpand; |
196 ctn->def_hexpand = def_hexpand; |
| 197 ctn->def_vexpand = def_vexpand; |
197 ctn->def_vexpand = def_vexpand; |
| 198 ctn->def_hfill = def_hfill; |
198 ctn->def_hfill = def_hfill; |
| 199 ctn->def_vfill = def_vfill; |
199 ctn->def_vfill = def_vfill; |
| 200 return (UiContainerX*)ctn; |
200 return (UiContainer*)ctn; |
| 201 } |
201 } |
| 202 |
202 |
| 203 Widget ui_grid_container_prepare(UiContainerPrivate *ctn, UiLayout *layout, Arg *args, int *n) { |
203 Widget ui_grid_container_prepare(UiContainerPrivate *ctn, UiLayout *layout, Arg *args, int *n) { |
| 204 UiGridContainer *grid = (UiGridContainer*)ctn; |
204 UiGridContainer *grid = (UiGridContainer*)ctn; |
| 205 if(ctn->container.newline) { |
205 if(ctn->container.newline) { |
| 273 Widget label = XmCreateLabel(frame, "frame_label", xargs, n); |
273 Widget label = XmCreateLabel(frame, "frame_label", xargs, n); |
| 274 XtManageChild(label); |
274 XtManageChild(label); |
| 275 XmStringFree(s); |
275 XmStringFree(s); |
| 276 } |
276 } |
| 277 |
277 |
| 278 UiContainerX *container = ui_frame_container(obj, frame); |
278 UiContainer *container = ui_frame_container(obj, frame); |
| 279 uic_object_push_container(obj, container); |
279 uic_object_push_container(obj, container); |
| 280 |
280 |
| 281 UiContainerArgs sub_args = { |
281 UiContainerArgs sub_args = { |
| 282 .spacing = args->spacing, |
282 .spacing = args->spacing, |
| 283 .columnspacing = args->columnspacing, |
283 .columnspacing = args->columnspacing, |
| 306 uic_widget_set_visibility_states(obj->ctx, frame, args->visibility_states); |
306 uic_widget_set_visibility_states(obj->ctx, frame, args->visibility_states); |
| 307 |
307 |
| 308 return frame; |
308 return frame; |
| 309 } |
309 } |
| 310 |
310 |
| 311 UiContainerX* ui_frame_container(UiObject *obj, Widget frame) { |
311 UiContainer* ui_frame_container(UiObject *obj, Widget frame) { |
| 312 UiContainerPrivate *ctn = ui_malloc(obj->ctx, sizeof(UiContainerPrivate)); |
312 UiContainerPrivate *ctn = ui_malloc(obj->ctx, sizeof(UiContainerPrivate)); |
| 313 memset(ctn, 0, sizeof(UiContainerPrivate)); |
313 memset(ctn, 0, sizeof(UiContainerPrivate)); |
| 314 ctn->prepare = ui_frame_container_prepare; |
314 ctn->prepare = ui_frame_container_prepare; |
| 315 ctn->add = ui_frame_container_add; |
315 ctn->add = ui_frame_container_add; |
| 316 ctn->widget = frame; |
316 ctn->widget = frame; |
| 317 return (UiContainerX*)ctn; |
317 return (UiContainer*)ctn; |
| 318 } |
318 } |
| 319 |
319 |
| 320 Widget ui_frame_container_prepare(UiContainerPrivate *ctn, UiLayout *layout, Arg *args, int *n) { |
320 Widget ui_frame_container_prepare(UiContainerPrivate *ctn, UiLayout *layout, Arg *args, int *n) { |
| 321 int a = *n; |
321 int a = *n; |
| 322 XtSetArg(args[a], XmNchildType, XmFRAME_WORKAREA_CHILD); |
322 XtSetArg(args[a], XmNchildType, XmFRAME_WORKAREA_CHILD); |
| 470 i->obj = tabview; |
470 i->obj = tabview; |
| 471 i->get = ui_tabview_get; |
471 i->get = ui_tabview_get; |
| 472 i->set = ui_tabview_set; |
472 i->set = ui_tabview_set; |
| 473 } |
473 } |
| 474 |
474 |
| 475 uic_object_push_container(obj, (UiContainerX*)ct); |
475 uic_object_push_container(obj, (UiContainer*)ct); |
| 476 |
476 |
| 477 uic_widget_set_visibility_states(obj->ctx, form, args->visibility_states); |
477 uic_widget_set_visibility_states(obj->ctx, form, args->visibility_states); |
| 478 |
478 |
| 479 return form; |
479 return form; |
| 480 } |
480 } |
| 554 Widget grid = XtCreateManagedWidget("vbox", gridClass, tabviewdata->content, args, n); |
554 Widget grid = XtCreateManagedWidget("vbox", gridClass, tabviewdata->content, args, n); |
| 555 |
555 |
| 556 UiObject *newobj = ui_calloc(tabviewdata->obj->ctx, 1, sizeof(UiObject)); |
556 UiObject *newobj = ui_calloc(tabviewdata->obj->ctx, 1, sizeof(UiObject)); |
| 557 newobj->ctx = tabviewdata->obj->ctx; |
557 newobj->ctx = tabviewdata->obj->ctx; |
| 558 newobj->widget = grid; |
558 newobj->widget = grid; |
| 559 UiContainerX *container = ui_box_container(newobj, grid, UI_BOX_VERTICAL); |
559 UiContainer *container = ui_box_container(newobj, grid, UI_BOX_VERTICAL); |
| 560 newobj->container_begin = container; |
560 newobj->container_begin = container; |
| 561 newobj->container_end = container; |
561 newobj->container_end = container; |
| 562 return newobj; |
562 return newobj; |
| 563 } else { |
563 } else { |
| 564 fprintf(stderr, "ui_tabview_select: widget is not a tabview\n"); |
564 fprintf(stderr, "ui_tabview_select: widget is not a tabview\n"); |
| 691 |
691 |
| 692 void ui_scrolledwindow_add(UiContainerPrivate *ctn, Widget widget) { |
692 void ui_scrolledwindow_add(UiContainerPrivate *ctn, Widget widget) { |
| 693 |
693 |
| 694 } |
694 } |
| 695 |
695 |
| 696 static UiContainerX* ui_scrolledwindow_container(UiObject *obj, Widget scrolledwindow) { |
696 static UiContainer* ui_scrolledwindow_container(UiObject *obj, Widget scrolledwindow) { |
| 697 UiContainerPrivate *ctn = ui_malloc(obj->ctx, sizeof(UiContainerPrivate)); |
697 UiContainerPrivate *ctn = ui_malloc(obj->ctx, sizeof(UiContainerPrivate)); |
| 698 memset(ctn, 0, sizeof(UiContainerPrivate)); |
698 memset(ctn, 0, sizeof(UiContainerPrivate)); |
| 699 ctn->prepare = ui_scrolledwindow_prepare; |
699 ctn->prepare = ui_scrolledwindow_prepare; |
| 700 ctn->add = ui_scrolledwindow_add; |
700 ctn->add = ui_scrolledwindow_add; |
| 701 ctn->widget = scrolledwindow; |
701 ctn->widget = scrolledwindow; |
| 702 return (UiContainerX*)ctn; |
702 return (UiContainer*)ctn; |
| 703 } |
703 } |
| 704 |
704 |
| 705 UIWIDGET ui_scrolledwindow_create(UiObject* obj, UiFrameArgs *args) { |
705 UIWIDGET ui_scrolledwindow_create(UiObject* obj, UiFrameArgs *args) { |
| 706 UiContainerPrivate *ctn = ui_obj_container(obj); |
706 UiContainerPrivate *ctn = ui_obj_container(obj); |
| 707 UiLayout layout = UI_ARGS2LAYOUT(args); |
707 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 719 |
719 |
| 720 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
720 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 721 Widget scrolledwindow = XmCreateScrolledWindow(parent, "scrolledwindow", xargs, n); |
721 Widget scrolledwindow = XmCreateScrolledWindow(parent, "scrolledwindow", xargs, n); |
| 722 ui_container_add(ctn, scrolledwindow); |
722 ui_container_add(ctn, scrolledwindow); |
| 723 |
723 |
| 724 UiContainerX *container = ui_scrolledwindow_container(obj, scrolledwindow); |
724 UiContainer *container = ui_scrolledwindow_container(obj, scrolledwindow); |
| 725 uic_object_push_container(obj, container); |
725 uic_object_push_container(obj, container); |
| 726 |
726 |
| 727 return scrolledwindow; |
727 return scrolledwindow; |
| 728 } |
728 } |
| 729 |
729 |