]> git.plutz.net Git - gladerunner/commitdiff
throw event, when window close button is pressed
authorPaul Hänsch <paul@plutz.net>
Wed, 15 Jul 2026 14:23:28 +0000 (16:23 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 15 Jul 2026 14:23:28 +0000 (16:23 +0200)
gladerunner.c

index 5abc76860f1d2a8d9ff4cc48279db35ad707d53a..ac12914d20ae35b7fcdc4081ce6bfbd2cb73cfda 100644 (file)
@@ -25,6 +25,13 @@ void e_si_activate(GtkWidget *wdg, gpointer d) {
   printf("%s ACTIVATE\n", (char*) d);
 }
 
+void e_window_close(GtkWidget *wdg, gpointer d) {
+  printf(
+    "%s CLOSE\n",
+    gtk_buildable_get_name(GTK_BUILDABLE(wdg))
+  );
+}
+
 void e_widget_clicked(GtkWidget *wdg, gpointer d) {
   printf(
     "%s CLICKED\n",
@@ -90,10 +97,6 @@ void e_entry_changed(GtkWidget *wdg, gpointer user_data) {
   );
 }
 
-void app_quit(GtkWidget *wdg, gpointer user_data) {
-  exit(0);
-}
-
 // ====== CLI ACTIONS ======
 
 void a_text_view_set(GtkTextView *v, char *c) {
@@ -150,11 +153,6 @@ int a_entry(GtkEntry *w, char *cmd, char *args) {
   else return 0;
   return 1;
 }
-int a_window(GtkWindow *w, char *cmd, char *args) {
-  if (!w || !cmd || !cmd[0]) return 0;
-  else return 0;
-  return 1;
-}
 int a_text_view(GtkTextView *w, char *cmd, char *args) {
   if (!w || !cmd || !cmd[0]) return 0;
   else if (!strcmp(cmd, "set"))      a_text_view_set(w, args);
@@ -176,7 +174,6 @@ int action(char *cli) {
   || (GTK_IS_CHECK_MENU_ITEM(wdg)    &&    a_cmi(GTK_CHECK_MENU_ITEM(wdg), cmd, args))
   || (GTK_IS_TOGGLE_TOOL_BUTTON(wdg) && a_ttb(GTK_TOGGLE_TOOL_BUTTON(wdg), cmd, args))
   || (GTK_IS_ENTRY(wdg)     &&     a_entry(GTK_ENTRY(wdg),     cmd, args))
-  || (GTK_IS_WINDOW(wdg)    &&    a_window(GTK_WINDOW(wdg),    cmd, args))
   || (GTK_IS_TEXT_VIEW(wdg) && a_text_view(GTK_TEXT_VIEW(wdg), cmd, args))
   || (GTK_IS_EDITABLE(wdg)  &&  a_editable(GTK_EDITABLE(wdg),  cmd, args))
   || (GTK_IS_BUTTON(wdg)    &&    a_button(GTK_BUTTON(wdg),    cmd, args))
@@ -244,11 +241,11 @@ void init_widgets(gpointer wp, gpointer data) {
     else if (GTK_IS_TOGGLE_BUTTON(wdg))      g_signal_connect(wdg, "toggled", G_CALLBACK(e_tb_toggled),  NULL);
     else if (GTK_IS_CHECK_MENU_ITEM(wdg))    g_signal_connect(wdg, "toggled", G_CALLBACK(e_cmi_toggled), NULL);
     else if (GTK_IS_TOGGLE_TOOL_BUTTON(wdg)) g_signal_connect(wdg, "toggled", G_CALLBACK(e_ttb_toggled), NULL);
+    else if (GTK_IS_MENU_ITEM(wdg))       g_signal_connect(wdg, "activate",G_CALLBACK(e_mi_activate),    NULL);
     else if (GTK_IS_ENTRY(wdg) )          g_signal_connect(wdg, "changed", G_CALLBACK(e_entry_changed),  NULL);
-    else if (GTK_IS_WINDOW(wdg))          g_signal_connect(wdg, "destroy", G_CALLBACK(app_quit),         NULL);
     else if (GTK_IS_TOOL_BUTTON(wdg))     g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
-    else if (GTK_IS_MENU_ITEM(wdg))       g_signal_connect(wdg, "activate",G_CALLBACK(e_mi_activate),    NULL);
     else if (GTK_IS_BUTTON(wdg))          g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
+    else if (GTK_IS_WINDOW(wdg))          g_signal_connect(wdg, "delete-event", G_CALLBACK(e_window_close), NULL);
     else { printf("%s unknown\n", name); return; }
     printf("%s loaded\n", name);