]> Pileus Git - ~andy/gtk/blobdiff - tests/testmerge.c
ushe malce
[~andy/gtk] / tests / testmerge.c
index 05bbf3133b525575e71601535befc28b791e097a..6832f759d63fd8c972dab4dee83037d0aa56d5ea 100644 (file)
@@ -1,3 +1,22 @@
+/* testmerge.c
+ * Copyright (C) 2003 James Henstridge
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
 #include <config.h>
 
 #include <stdio.h>
@@ -51,7 +70,7 @@ dump_toplevels (GtkWidget    *button,
                                            GTK_UI_MANAGER_TOOLBAR |
                                            GTK_UI_MANAGER_POPUP);
 
-  g_slist_foreach (toplevels, (GFunc)print_toplevel, NULL);
+  g_slist_foreach (toplevels, (GFunc) print_toplevel, NULL);
   g_slist_free (toplevels);
 }
 
@@ -88,7 +107,6 @@ delayed_toggle_dynamic (GtkUIManager *merge)
                          "label", "Dynamic action 2",
                          "stock_id", GTK_STOCK_EXECUTE,
                          NULL);
-      g_object_set (dyn, "name", "dyn2", NULL);
       gtk_action_group_add_action (dynamic, dyn);
     }
   
@@ -106,8 +124,8 @@ delayed_toggle_dynamic (GtkUIManager *merge)
                             "dyn1menu", "dyn1", GTK_UI_MANAGER_MENU, 0);
       gtk_ui_manager_add_ui (merge, merge_id, "/menubar/EditMenu/dyn1menu", 
                             "dyn1", "dyn1", GTK_UI_MANAGER_MENUITEM, 0);
-      gtk_ui_manager_add_ui (merge, merge_id, "/menubar/EditMenu/dyn1menu", 
-                            "dyn2", "dyn2", GTK_UI_MANAGER_AUTO, TRUE);
+      gtk_ui_manager_add_ui (merge, merge_id, "/menubar/EditMenu/dyn1menu/dyn1", 
+                            "dyn2", "dyn2", GTK_UI_MANAGER_AUTO, FALSE);
     }
   else 
     {
@@ -122,7 +140,7 @@ static void
 toggle_dynamic (GtkWidget    *button, 
                GtkUIManager *merge)
 {
-  g_timeout_add (2000, delayed_toggle_dynamic, merge);
+  g_timeout_add (2000, (GSourceFunc)delayed_toggle_dynamic, merge);
 }
 
 static void
@@ -246,7 +264,7 @@ toggle_merge (GtkWidget    *button,
                                           "could not merge %s: %s", merge_ids[mergenum].filename,
                                           err->message);
 
-         g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (gtk_object_destroy), NULL);
+         g_signal_connect (dialog, "response", G_CALLBACK (gtk_object_destroy), NULL);
          gtk_widget_show (dialog);
 
          g_clear_error (&err);
@@ -271,8 +289,8 @@ set_name_func (GtkTreeViewColumn *tree_column,
   char *name;
   
   gtk_tree_model_get (tree_model, iter, 0, &action, -1);
-  g_object_get (G_OBJECT (action), "name", &name, NULL);
-  g_object_set (G_OBJECT (cell), "text", name, NULL);
+  g_object_get (action, "name", &name, NULL);
+  g_object_set (cell, "text", name, NULL);
   g_free (name);
   g_object_unref (action);
 }
@@ -288,8 +306,8 @@ set_sensitive_func (GtkTreeViewColumn *tree_column,
   gboolean sensitive;
   
   gtk_tree_model_get (tree_model, iter, 0, &action, -1);
-  g_object_get (G_OBJECT (action), "sensitive", &sensitive, NULL);
-  g_object_set (G_OBJECT (cell), "active", sensitive, NULL);
+  g_object_get (action, "sensitive", &sensitive, NULL);
+  g_object_set (cell, "active", sensitive, NULL);
   g_object_unref (action);
 }
 
@@ -305,8 +323,8 @@ set_visible_func (GtkTreeViewColumn *tree_column,
   gboolean visible;
   
   gtk_tree_model_get (tree_model, iter, 0, &action, -1);
-  g_object_get (G_OBJECT (action), "visible", &visible, NULL);
-  g_object_set (G_OBJECT (cell), "active", visible, NULL);
+  g_object_get (action, "visible", &visible, NULL);
+  g_object_set (cell, "active", visible, NULL);
   g_object_unref (action);
 }
 
@@ -324,8 +342,8 @@ sensitivity_toggled (GtkCellRendererToggle *cell,
   gtk_tree_model_get_iter (model, &iter, path);
 
   gtk_tree_model_get (model, &iter, 0, &action, -1);
-  g_object_get (G_OBJECT (action), "sensitive", &sensitive, NULL);
-  g_object_set (G_OBJECT (action), "sensitive", !sensitive, NULL);
+  g_object_get (action, "sensitive", &sensitive, NULL);
+  g_object_set (action, "sensitive", !sensitive, NULL);
   gtk_tree_model_row_changed (model, path, &iter);
   gtk_tree_path_free (path);
 }
@@ -344,8 +362,8 @@ visibility_toggled (GtkCellRendererToggle *cell,
   gtk_tree_model_get_iter (model, &iter, path);
 
   gtk_tree_model_get (model, &iter, 0, &action, -1);
-  g_object_get (G_OBJECT (action), "visible", &visible, NULL);
-  g_object_set (G_OBJECT (action), "visible", !visible, NULL);
+  g_object_get (action, "visible", &visible, NULL);
+  g_object_set (action, "visible", !visible, NULL);
   gtk_tree_model_row_changed (model, path, &iter);
   gtk_tree_path_free (path);
 }
@@ -509,7 +527,7 @@ set_tip (GtkWidget *widget)
   
   if (data) 
     {
-      g_object_get (G_OBJECT (data->action), "tooltip", &tooltip, NULL);
+      g_object_get (data->action, "tooltip", &tooltip, NULL);
       
       gtk_statusbar_push (GTK_STATUSBAR (data->statusbar), 0, 
                          tooltip ? tooltip : "");
@@ -558,8 +576,8 @@ connect_proxy (GtkUIManager *merge,
          g_object_set_data_full (G_OBJECT (proxy), "action-status", 
                                  data, action_status_destroy);
          
-         g_signal_connect (proxy, "select",  G_CALLBACK (set_tip), 0);
-         g_signal_connect (proxy, "deselect", G_CALLBACK (unset_tip), 0);
+         g_signal_connect (proxy, "select",  G_CALLBACK (set_tip), NULL);
+         g_signal_connect (proxy, "deselect", G_CALLBACK (unset_tip), NULL);
        }
     }
 }
@@ -581,9 +599,9 @@ main (int argc, char **argv)
                                entries, n_entries, 
                                NULL);
   action = gtk_action_group_get_action (action_group, "EmptyMenu1Action");
-  g_object_set (G_OBJECT (action), "hide_if_empty", FALSE, NULL);
+  g_object_set (action, "hide_if_empty", FALSE, NULL);
   action = gtk_action_group_get_action (action_group, "EmptyMenu2Action");
-  g_object_set (G_OBJECT (action), "hide_if_empty", TRUE, NULL);
+  g_object_set (action, "hide_if_empty", TRUE, NULL);
   gtk_action_group_add_toggle_actions (action_group, 
                                       toggle_entries, n_toggle_entries, 
                                       NULL);
@@ -690,8 +708,41 @@ main (int argc, char **argv)
   gtk_widget_show_all (window);
   gtk_main ();
 
-  g_object_unref (action_group);
+#ifdef DEBUG_UI_MANAGER
+  {
+    GList *action;
+    
+    g_print ("\n> before unreffing the ui manager <\n");
+    for (action = gtk_action_group_list_actions (action_group);
+        action; 
+        action = action->next)
+      {
+       GtkAction *a = action->data;
+       g_print ("  action %s ref count %d\n", 
+                gtk_action_get_name (a), G_OBJECT (a)->ref_count);
+      }
+  }
+#endif
+
   g_object_unref (merge);
 
+#ifdef DEBUG_UI_MANAGER
+  {
+    GList *action;
+
+    g_print ("\n> after unreffing the ui manager <\n");
+    for (action = gtk_action_group_list_actions (action_group);
+        action; 
+        action = action->next)
+      {
+       GtkAction *a = action->data;
+       g_print ("  action %s ref count %d\n", 
+                gtk_action_get_name (a), G_OBJECT (a)->ref_count);
+      }
+  }
+#endif
+
+  g_object_unref (action_group);
+
   return 0;
 }