]> git.plutz.net Git - gladerunner/commitdiff
allow merging multiple glade files from command line master
authorPaul Hänsch <paul@plutz.net>
Thu, 16 Jul 2026 14:47:51 +0000 (16:47 +0200)
committerPaul Hänsch <paul@plutz.net>
Thu, 16 Jul 2026 14:47:51 +0000 (16:47 +0200)
glade2.glade
gladerunner.c

index 847fa99b7ffa5afd722dba0e2f82f077e049726a..e1f9d38ef43b42106f812e68df38bd8f5ad08175 100644 (file)
             <property name="visible">True</property>
             <property name="can-focus">False</property>
             <child>
-              <object class="GtkToolButton" id="toolbut">
+              <object class="GtkToolButton" id="button">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes">B</property>
index fdc6d9edc6027123cc81955652ea3ee22bf57279..38852794174ca9777fccede5c612ff678d514afb 100644 (file)
@@ -297,23 +297,19 @@ int main(int argc, char *argv[]) {
   memcpy(gtkarg, argv, sizeof(char*) * argc);
   gtk_init(&arg, &gtkarg);
 
+  builder = gtk_builder_new();
+  GError *gerr = NULL;
+
   for (arg = 1; arg < argc; arg++) {
     if (strcmp(argv[arg], "--") == 0) {
       printf("chldopen\n");
       chldopen(&argv[arg + 1]);
       break;
-    } else if ( (testfd = open(argv[arg], O_RDONLY)) > 0 ) {
-      close(testfd);
-      builder = gtk_builder_new_from_file(argv[arg]);
-    } else {
-      dprintf(STDERR_FILENO, "Unknown argument: %s\n", argv[arg]);
-      exit(1);
+    } else if ( ! gtk_builder_add_from_file(builder, argv[arg], &gerr) ) {
+      dprintf(STDERR_FILENO, "%s\n", gerr->message);
+      free(gerr);
     }
   }
-  if (! builder) {
-    dprintf(STDERR_FILENO, "No .glade file given\n");
-    exit(1);
-  }
   widgets = gtk_builder_get_objects(builder);
   g_slist_foreach(widgets, *init_widgets, NULL);
   g_slist_free(widgets);