# HG changeset patch # User Olaf Wintermann # Date 1730020939 -3600 # Node ID eae98e4f3f1f8b94a030cb0c0d171dc28d72bedc # Parent 4db3ecd4d1ea0da317c4bc0679cc7be7f677a34c add support for groups/states to text, list widgets (GTK) diff -r 4db3ecd4d1ea -r eae98e4f3f1f ui/gtk/entry.c --- a/ui/gtk/entry.c Sun Oct 27 09:38:21 2024 +0100 +++ b/ui/gtk/entry.c Sun Oct 27 10:22:19 2024 +0100 @@ -71,6 +71,7 @@ #endif GtkWidget *spin = gtk_spin_button_new_with_range(min, max, args.step); ui_set_name_and_style(spin, args.name, args.style_class); + ui_set_widget_groups(obj->ctx, spin, args.groups); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), args.digits); UiObserver **obs = NULL; if(var) { diff -r 4db3ecd4d1ea -r eae98e4f3f1f ui/gtk/list.c --- a/ui/gtk/list.c Sun Oct 27 09:38:21 2024 +0100 +++ b/ui/gtk/list.c Sun Oct 27 10:22:19 2024 +0100 @@ -162,6 +162,8 @@ // create treeview GtkWidget *view = gtk_tree_view_new(); + ui_set_name_and_style(view, args.name, args.style_class); + ui_set_widget_groups(obj->ctx, view, args.groups); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); @@ -589,6 +591,8 @@ UiVar* var = uic_widget_var(obj->ctx, current->ctx, args.list, args.varname, UI_VAR_LIST); GtkWidget *combobox = ui_create_combobox(obj, model, var, args.onactivate, args.onactivatedata); + ui_set_name_and_style(combobox, args.name, args.style_class); + ui_set_widget_groups(obj->ctx, combobox, args.groups); UI_APPLY_LAYOUT1(current, args); current->container->add(current->container, combobox, FALSE); current->container->current = combobox; @@ -597,7 +601,7 @@ GtkWidget* ui_create_combobox(UiObject *obj, UiModel *model, UiVar *var, ui_callback f, void *udata) { GtkWidget *combobox = gtk_combo_box_new(); - + UiListView *uicbox = malloc(sizeof(UiListView)); uicbox->obj = obj; uicbox->widget = combobox; diff -r 4db3ecd4d1ea -r eae98e4f3f1f ui/gtk/text.c --- a/ui/gtk/text.c Sun Oct 27 09:38:21 2024 +0100 +++ b/ui/gtk/text.c Sun Oct 27 10:22:19 2024 +0100 @@ -68,6 +68,7 @@ GtkWidget *text_area = gtk_text_view_new(); ui_set_name_and_style(text_area, args.name, args.style_class); + ui_set_widget_groups(obj->ctx, text_area, args.groups); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_area), GTK_WRAP_WORD_CHAR); g_signal_connect( @@ -529,6 +530,7 @@ static UIWIDGET create_textfield(UiObject *obj, UiBool frameless, UiBool password, UiTextFieldArgs args) { GtkWidget *textfield = gtk_entry_new(); ui_set_name_and_style(textfield, args.name, args.style_class); + ui_set_widget_groups(obj->ctx, textfield, args.groups); UiObject* current = uic_current_obj(obj); UiVar* var = uic_widget_var(obj->ctx, current->ctx, args.value, args.varname, UI_VAR_STRING); diff -r 4db3ecd4d1ea -r eae98e4f3f1f ui/ui/text.h --- a/ui/ui/text.h Sun Oct 27 09:38:21 2024 +0100 +++ b/ui/ui/text.h Sun Oct 27 10:22:19 2024 +0100 @@ -49,6 +49,8 @@ const char *varname; ui_callback onchange; void *onchangedata; + + const int *groups; } UiTextAreaArgs; typedef struct UiTextFieldArgs { @@ -65,6 +67,8 @@ const char *varname; ui_callback onchange; void *onchangedata; + + const int *groups; } UiTextFieldArgs; typedef struct UiPathElmRet { diff -r 4db3ecd4d1ea -r eae98e4f3f1f ui/ui/tree.h --- a/ui/ui/tree.h Sun Oct 27 09:38:21 2024 +0100 +++ b/ui/ui/tree.h Sun Oct 27 10:22:19 2024 +0100 @@ -105,6 +105,8 @@ UiBool vexpand; int colspan; int rowspan; + const char *name; + const char *style_class; UiList* list; const char* varname; @@ -121,6 +123,8 @@ ui_callback ondrop; void* ondropsdata; UiBool multiselection; + + const int *groups; }; UIEXPORT UiModel* ui_model(UiContext *ctx, ...);