--- a/ui/gtk/window.c Mon Jun 17 21:22:38 2024 +0200 +++ b/ui/gtk/window.c Sun Sep 15 20:19:52 2024 +0200 @@ -108,6 +108,9 @@ obj); GtkWidget *vbox = ui_gtk_vbox_new(0); +#if GTK_MAJOR_VERSION >= 4 + WINDOW_SET_CONTENT(obj->widget, vbox); +#else gtk_container_add(GTK_CONTAINER(obj->widget), vbox); if(!simple) { @@ -130,9 +133,12 @@ //GtkWidget *hb = ui_create_headerbar(obj); //gtk_window_set_titlebar(GTK_WINDOW(obj->widget), hb); } +#endif // window content // the content has a (TODO: not yet) configurable frame + // TODO: really? why + /* GtkWidget *frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); @@ -141,6 +147,10 @@ GtkWidget *content_box = ui_gtk_vbox_new(0); gtk_container_add(GTK_CONTAINER(frame), content_box); obj->container = ui_box_container(obj, content_box); + */ + GtkWidget *content_box = ui_gtk_vbox_new(0); + BOX_ADD(GTK_BOX(vbox), content_box); + obj->container = ui_box_container(obj, content_box); nwindows++; return obj; @@ -173,7 +183,7 @@ if(data->customdata) { GtkWidget *entry = data->customdata; - evt.eventdata = (void*)gtk_entry_get_text(GTK_ENTRY(entry)); + evt.eventdata = (void*)ENTRY_GET_TEXT(GTK_ENTRY(entry)); } @@ -186,7 +196,7 @@ data->callback(&evt, data->userdata); } - gtk_widget_destroy(GTK_WIDGET(self)); + WINDOW_DESTROY(GTK_WIDGET(self)); } void ui_dialog_create(UiObject *parent, UiDialogArgs args) { @@ -208,13 +218,13 @@ GtkWidget *content_area = gtk_dialog_get_content_area(dialog); if(args.content) { GtkWidget *label = gtk_label_new(args.content); - gtk_container_add(GTK_CONTAINER(content_area), label); + BOX_ADD(content_area, label); } GtkWidget *textfield = NULL; if(args.input) { textfield = gtk_entry_new(); - gtk_container_add(GTK_CONTAINER(content_area), textfield); + BOX_ADD(content_area, textfield); } UiEventData *event = malloc(sizeof(UiEventData)); @@ -229,7 +239,7 @@ G_CALLBACK(ui_dialog_response), event); - gtk_widget_show_all(GTK_WIDGET(dialog_w)); + WINDOW_SHOW(GTK_WIDGET(dialog_w)); } static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) {