Thu, 17 Jul 2025 22:01:52 +0200
simplify layout fill option, remove fill parameter from container add function (GTK)
| ui/gtk/button.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/container.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/container.h | file | annotate | diff | comparison | revisions | |
| ui/gtk/display.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/entry.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/graphics.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/image.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/list.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/range.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/text.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/webview.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/widget.c | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/button.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/button.c Thu Jul 17 22:01:52 2025 +0200 @@ -103,7 +103,7 @@ ui_set_name_and_style(button, args->name, args->style_class); ui_set_widget_groups(obj->ctx, button, args->groups); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, button, FALSE); + current->container->add(current->container, button); return button; } @@ -297,7 +297,7 @@ ui_set_widget_groups(obj->ctx, widget, args->groups); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget, FALSE); + current->container->add(current->container, widget); return widget; } @@ -361,7 +361,7 @@ ui_set_widget_groups(obj->ctx, widget, args->groups); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget, FALSE); + current->container->add(current->container, widget); return widget; } @@ -506,7 +506,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, rbutton, FALSE); + current->container->add(current->container, rbutton); return rbutton; }
--- a/ui/gtk/container.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/container.c Thu Jul 17 22:01:52 2025 +0200 @@ -120,12 +120,9 @@ return (UiContainer*)ct; } -void ui_box_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_box_container_add(UiContainer *ct, GtkWidget *widget) { UiBoxContainer *bc = (UiBoxContainer*)ct; - if(ct->layout.fill != UI_LAYOUT_UNDEFINED) { - fill = ui_lb2bool(ct->layout.fill); - } - + UiBool fill = ct->layout.fill; if(bc->has_fill && fill) { fprintf(stderr, "UiError: container has 2 filled widgets"); fill = FALSE; @@ -180,7 +177,7 @@ } #if GTK_MAJOR_VERSION >= 3 -void ui_grid_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_grid_container_add(UiContainer *ct, GtkWidget *widget) { UiGridContainer *grid = (UiGridContainer*)ct; if(ct->layout.newline) { @@ -208,9 +205,7 @@ } } - if(ct->layout.fill != UI_LAYOUT_UNDEFINED) { - fill = ui_lb2bool(ct->layout.fill); - } + UiBool fill = ct->layout.fill; if(ct->layout.hexpand) { hexpand = TRUE; hfill = TRUE; @@ -249,7 +244,7 @@ } #endif #ifdef UI_GTK2 -void ui_grid_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_grid_container_add(UiContainer *ct, GtkWidget *widget) { UiGridContainer *grid = (UiGridContainer*)ct; if(ct->layout.newline) { @@ -277,9 +272,7 @@ } } - if(ct->layout.fill != UI_LAYOUT_UNDEFINED) { - fill = ui_lb2bool(ct->layout.fill); - } + UiBool fill = ct->layout.fill; if(ct->layout.hexpand) { hexpand = TRUE; hfill = TRUE; @@ -340,7 +333,7 @@ return ct; } -void ui_frame_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_frame_container_add(UiContainer *ct, GtkWidget *widget) { FRAME_SET_CHILD(ct->widget, widget); } @@ -354,11 +347,11 @@ return ct; } -void ui_expander_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_expander_container_add(UiContainer *ct, GtkWidget *widget) { EXPANDER_SET_CHILD(ct->widget, widget); } -void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget) { // TODO: check if the widget implements GtkScrollable SCROLLEDWINDOW_SET_CHILD(ct->widget, widget); ui_reset_layout(ct->layout); @@ -385,7 +378,7 @@ return (UiContainer*)ct; } -void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget) { UiGtkTabView *data = ui_widget_get_tabview_data(ct->widget); if(!data) { fprintf(stderr, "UI Error: widget is not a tabview"); @@ -428,7 +421,7 @@ GtkWidget *box = type == UI_CONTAINER_VBOX ? ui_gtk_vbox_new(args->spacing) : ui_gtk_hbox_new(args->spacing); ui_set_name_and_style(box, args->name, args->style_class); GtkWidget *widget = args->margin > 0 ? ui_box_set_margin(box, args->margin) : box; - ct->add(ct, widget, TRUE); + ct->add(ct, widget); UiObject *newobj = uic_object_new(obj, box); newobj->container = ui_box_container(obj, box, type); @@ -466,7 +459,7 @@ GtkWidget *grid = ui_create_grid_widget(args->columnspacing, args->rowspacing); ui_set_name_and_style(grid, args->name, args->style_class); widget = ui_box_set_margin(grid, args->margin); - current->container->add(current->container, widget, TRUE); + current->container->add(current->container, widget); UiObject *newobj = uic_object_new(obj, grid); newobj->container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill); @@ -488,7 +481,7 @@ newobj->widget = frame; newobj->container = ui_frame_container(obj, frame); } - current->container->add(current->container, frame, FALSE); + current->container->add(current->container, frame); uic_obj_add(obj, newobj); return frame; @@ -508,7 +501,7 @@ newobj->widget = expander; newobj->container = ui_expander_container(obj, expander); } - current->container->add(current->container, expander, FALSE); + current->container->add(current->container, expander); uic_obj_add(obj, newobj); return expander; @@ -522,7 +515,7 @@ GtkWidget *sw = SCROLLEDWINDOW_NEW(); ui_set_name_and_style(sw, args->name, args->style_class); GtkWidget *widget = ui_box_set_margin(sw, args->margin); - current->container->add(current->container, widget, TRUE); + current->container->add(current->container, widget); UiObject *newobj = uic_object_new(obj, sw); GtkWidget *sub = ui_subcontainer_create(args->subcontainer, newobj, args->spacing, args->columnspacing, args->rowspacing, args->margin); @@ -817,7 +810,7 @@ data->subcontainer = args->subcontainer; UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget, TRUE); + current->container->add(current->container, widget); UiObject *newobj = uic_object_new(obj, widget); newobj->container = ui_tabview_container(obj, widget); @@ -934,7 +927,7 @@ GtkWidget *box = ui_gtk_hbox_new(args->alt_spacing); ui_set_name_and_style(box, args->name, args->style_class); - ct->add(ct, box, FALSE); + ct->add(ct, box); UiObject *newobj = uic_object_new(obj, box); newobj->container = ui_headerbar_fallback_container(obj, box); @@ -965,7 +958,7 @@ return (UiContainer*)ct; } -void ui_headerbar_fallback_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_headerbar_fallback_container_add(UiContainer *ct, GtkWidget *widget) { UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct; BOX_ADD(ct->widget, widget); } @@ -995,7 +988,7 @@ return (UiContainer*)ct; } -void ui_headerbar_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_headerbar_container_add(UiContainer *ct, GtkWidget *widget) { UiHeaderbarContainer *hb = (UiHeaderbarContainer*)ct; if(hb->part == 0) { UI_HEADERBAR_PACK_START(ct->widget, widget); @@ -1080,7 +1073,7 @@ GtkWidget *pane0 = create_paned(orientation); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, pane0, TRUE); + current->container->add(current->container, pane0); int max = args->max_panes == 0 ? 2 : args->max_panes; @@ -1113,7 +1106,7 @@ return (UiContainer*)ct; } -void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) { +void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget) { UiSplitPaneContainer *s = (UiSplitPaneContainer*)ct; if(s->nchildren >= s->max) { @@ -1206,7 +1199,7 @@ UiObject *item_obj = cxMapGet(ct->current_items, key); if(item_obj) { // re-add previously created widget - ui_box_container_add(ct->container, item_obj->widget, FALSE); + ui_box_container_add(ct->container, item_obj->widget); } else { // create new widget and object for this list element CxMempool *mp = cxMempoolCreateSimple(256); @@ -1221,7 +1214,7 @@ ct->columnspacing, ct->rowspacing, ct->margin); - ui_box_container_add(ct->container, obj->widget, FALSE); + ui_box_container_add(ct->container, obj->widget); if(ct->create_ui) { ct->create_ui(obj, index, elm, ct->userdata); } @@ -1250,7 +1243,7 @@ GtkWidget *box = args->container == UI_CONTAINER_VBOX ? ui_gtk_vbox_new(args->spacing) : ui_gtk_hbox_new(args->spacing); ui_set_name_and_style(box, args->name, args->style_class); GtkWidget *widget = args->margin > 0 ? ui_box_set_margin(box, args->margin) : box; - ct->add(ct, widget, TRUE); + ct->add(ct, widget); UiGtkItemListContainer *container = malloc(sizeof(UiGtkItemListContainer)); container->parent = obj; @@ -1295,7 +1288,7 @@ void ui_layout_fill(UiObject *obj, UiBool fill) { UiContainer *ct = uic_get_current_container(obj); - ct->layout.fill = ui_bool2lb(fill); + ct->layout.fill = fill; } void ui_layout_hexpand(UiObject *obj, UiBool expand) {
--- a/ui/gtk/container.h Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/container.h Thu Jul 17 22:01:52 2025 +0200 @@ -44,23 +44,15 @@ #endif #define ui_reset_layout(layout) memset(&(layout), 0, sizeof(UiLayout)) -#define ui_lb2bool(b) ((b) == UI_LAYOUT_TRUE ? TRUE : FALSE) -#define ui_bool2lb(b) ((b) ? UI_LAYOUT_TRUE : UI_LAYOUT_FALSE) -typedef void (*ui_container_add_f)(UiContainer*, GtkWidget*, UiBool); +typedef void (*ui_container_add_f)(UiContainer*, GtkWidget*); typedef struct UiDocumentView UiDocumentView; -typedef enum UiLayoutBool { - UI_LAYOUT_UNDEFINED = 0, - UI_LAYOUT_TRUE, - UI_LAYOUT_FALSE, -} UiLayoutBool; - typedef struct UiLayout UiLayout; struct UiLayout { - UiLayoutBool fill; + UiBool fill; UiBool newline; char *label; UiBool hexpand; @@ -78,7 +70,7 @@ UIMENU menu; GtkWidget *current; - void (*add)(UiContainer*, GtkWidget*, UiBool); + void (*add)(UiContainer*, GtkWidget*); UiLayout layout; int close; @@ -172,13 +164,13 @@ int margin); UiContainer* ui_frame_container(UiObject *obj, GtkWidget *frame); -void ui_frame_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_frame_container_add(UiContainer *ct, GtkWidget *widget); GtkWidget* ui_box_set_margin(GtkWidget *box, int margin); UIWIDGET ui_box_create(UiObject *obj, UiContainerArgs *args, UiSubContainerType type); UiContainer* ui_box_container(UiObject *obj, GtkWidget *box, UiSubContainerType type); -void ui_box_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_box_container_add(UiContainer *ct, GtkWidget *widget); GtkWidget* ui_create_grid_widget(int colspacing, int rowspacing); UiContainer* ui_grid_container( @@ -188,22 +180,22 @@ UiBool def_vexpand, UiBool def_hfill, UiBool def_vfill); -void ui_grid_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_grid_container_add(UiContainer *ct, GtkWidget *widget); UiContainer* ui_frame_container(UiObject *obj, GtkWidget *frame); -void ui_frame_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_frame_container_add(UiContainer *ct, GtkWidget *widget); UiContainer* ui_expander_container(UiObject *obj, GtkWidget *expander); -void ui_expander_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_expander_container_add(UiContainer *ct, GtkWidget *widget); UiContainer* ui_scrolledwindow_container(UiObject *obj, GtkWidget *scrolledwindow); -void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget); UiContainer* ui_tabview_container(UiObject *obj, GtkWidget *tabview); -void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget); UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max, int init); -void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget); UiGtkTabView* ui_widget_get_tabview_data(UIWIDGET tabview); @@ -212,11 +204,11 @@ #if GTK_CHECK_VERSION(3, 10, 0) UiContainer* ui_headerbar_container(UiObject *obj, GtkWidget *headerbar); -void ui_headerbar_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_headerbar_container_add(UiContainer *ct, GtkWidget *widget); #endif UiContainer* ui_headerbar_fallback_container(UiObject *obj, GtkWidget *headerbar); -void ui_headerbar_fallback_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); +void ui_headerbar_fallback_container_add(UiContainer *ct, GtkWidget *widget); #ifdef __cplusplus }
--- a/ui/gtk/display.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/display.c Thu Jul 17 22:01:52 2025 +0200 @@ -114,7 +114,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget, FALSE); + current->container->add(current->container, widget); return widget; } @@ -150,7 +150,7 @@ UIWIDGET ui_space_deprecated(UiObject *obj) { GtkWidget *widget = gtk_label_new(""); UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, widget, TRUE); + ct->add(ct, widget); return widget; } @@ -162,7 +162,7 @@ GtkWidget *widget = gtk_hseparator_new(); #endif UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, widget, FALSE); + ct->add(ct, widget); return widget; } @@ -201,7 +201,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, progressbar, FALSE); + current->container->add(current->container, progressbar); return progressbar; } @@ -243,7 +243,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, spinner, FALSE); + current->container->add(current->container, spinner); return spinner; }
--- a/ui/gtk/entry.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/entry.c Thu Jul 17 22:01:52 2025 +0200 @@ -130,7 +130,7 @@ event); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, spin, FALSE); + current->container->add(current->container, spin); return spin; }
--- a/ui/gtk/graphics.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/graphics.c Thu Jul 17 22:01:52 2025 +0200 @@ -45,7 +45,7 @@ } UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, widget, TRUE); + ct->add(ct, widget); return widget; }
--- a/ui/gtk/image.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/image.c Thu Jul 17 22:01:52 2025 +0200 @@ -188,7 +188,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, toplevel, TRUE); + current->container->add(current->container, toplevel); return toplevel; }
--- a/ui/gtk/list.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/list.c Thu Jul 17 22:01:52 2025 +0200 @@ -305,7 +305,7 @@ SCROLLEDWINDOW_SET_CHILD(scroll_area, view); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, scroll_area, FALSE); + current->container->add(current->container, scroll_area); // ct->current should point to view, not scroll_area, to make it possible // to add a context menu @@ -381,7 +381,7 @@ // add widget to parent UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, view, FALSE); + current->container->add(current->container, view); return view; } @@ -485,7 +485,7 @@ SCROLLEDWINDOW_SET_CHILD(scroll_area, view); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, scroll_area, FALSE); + current->container->add(current->container, scroll_area); // ct->current should point to view, not scroll_area, to make it possible // to add a context menu @@ -1835,7 +1835,7 @@ ui_set_name_and_style(listbox, args->name, args->style_class); ui_set_widget_groups(obj->ctx, listbox, args->groups); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, scroll_area, TRUE); + current->container->add(current->container, scroll_area); UiListBox *uilistbox = malloc(sizeof(UiListBox)); uilistbox->obj = obj;
--- a/ui/gtk/range.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/range.c Thu Jul 17 22:01:52 2025 +0200 @@ -77,7 +77,7 @@ } UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, scrollbar, FALSE); + ct->add(ct, scrollbar); return scrollbar; }
--- a/ui/gtk/text.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/text.c Thu Jul 17 22:01:52 2025 +0200 @@ -156,7 +156,7 @@ // add UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, scroll_area, TRUE); + current->container->add(current->container, scroll_area); // bind value if(var) { @@ -630,7 +630,7 @@ } UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, textfield, FALSE); + current->container->add(current->container, textfield); if(var) { UiString *value = var->value; @@ -946,7 +946,7 @@ gtk_widget_set_name(pathtf->stack, "path-textfield-box"); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, pathtf->stack, FALSE); + current->container->add(current->container, pathtf->stack); pathtf->entry_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); pathtf->entry = gtk_entry_new();
--- a/ui/gtk/webview.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/webview.c Thu Jul 17 22:01:52 2025 +0200 @@ -61,7 +61,7 @@ ui_set_widget_groups(obj->ctx, webview, args->groups); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, webview, FALSE); + current->container->add(current->container, webview); return webview; }
--- a/ui/gtk/widget.c Wed Jul 16 19:15:58 2025 +0200 +++ b/ui/gtk/widget.c Thu Jul 17 22:01:52 2025 +0200 @@ -37,7 +37,7 @@ UIWIDGET widget = create_widget(obj, args, userdata); UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget, FALSE); + current->container->add(current->container, widget); return widget; } @@ -47,7 +47,7 @@ GtkWidget *widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); ui_set_name_and_style(widget, args->name, args->style_class); UI_APPLY_LAYOUT1(current, (*args)); - current->container->add(current->container, widget, FALSE); + current->container->add(current->container, widget); return widget; }