# HG changeset patch # User Olaf Wintermann <olaf.wintermann@gmail.com> # Date 1740601194 -3600 # Node ID bead55b1e6ca4a8c0f36204a92895087bbe2db33 # Parent 7dfd5e546b992ea0234859b1f22c8a5748b26f5e add separator (Motif) diff -r 7dfd5e546b99 -r bead55b1e6ca application/main.c --- a/application/main.c Wed Feb 26 21:14:24 2025 +0100 +++ b/application/main.c Wed Feb 26 21:19:54 2025 +0100 @@ -691,6 +691,8 @@ ui_tab(obj, "Tab 2") { ui_combobox(obj, .list = wdata->list); + ui_label(obj, .label = "Test"); + ui_separator(obj, .name = "s1"); } ui_tab(obj, "Tab 3") { diff -r 7dfd5e546b99 -r bead55b1e6ca ui/motif/widget.c --- a/ui/motif/widget.c Wed Feb 26 21:14:24 2025 +0100 +++ b/ui/motif/widget.c Wed Feb 26 21:19:54 2025 +0100 @@ -52,3 +52,20 @@ return widget; } + +UIEXPORT UIWIDGET ui_separator_create(UiObject *obj, UiWidgetArgs *args) { + Arg xargs[64]; + int n = 0; + UiWidgetArgs a = *args; + + UiContainerPrivate *ctn = ui_obj_container(obj); + UI_APPLY_LAYOUT(ctn->layout, a); + + char *name = a.name ? (char*)a.name : "separator"; + Widget parent = ctn->prepare(ctn, xargs, &n); + Widget widget = XmCreateSeparator(parent, name, xargs, n); + XtManageChild(widget); + ctn->add(ctn, widget); + + return widget; +} diff -r 7dfd5e546b99 -r bead55b1e6ca ui/ui/ui.h --- a/ui/ui/ui.h Wed Feb 26 21:14:24 2025 +0100 +++ b/ui/ui/ui.h Wed Feb 26 21:19:54 2025 +0100 @@ -30,6 +30,7 @@ #define UI_H #include "toolkit.h" +#include "widget.h" #include "container.h" #include "menu.h" #include "toolbar.h" diff -r 7dfd5e546b99 -r bead55b1e6ca ui/ui/widget.h --- a/ui/ui/widget.h Wed Feb 26 21:14:24 2025 +0100 +++ b/ui/ui/widget.h Wed Feb 26 21:19:54 2025 +0100 @@ -61,7 +61,9 @@ #define ui_customwidget(obj, create_widget, userdata, ...) ui_customwidget_create(obj, create_widget, userdata, (UiWidgetArgs) { __VA_ARGS__ }) +UIEXPORT UIWIDGET ui_separator_create(UiObject *obj, UiWidgetArgs *args); +#define ui_separator(obj, ...) ui_separator_create(obj, &(UiWidgetArgs){ __VA_ARGS__ } ) #ifdef __cplusplus