ui/gtk/window.c

branch
newapi
changeset 296
a362c76dbf99
parent 281
2533cdebf6ef
child 297
a73c60adf188
--- 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) {

mercurial