[glade3] * plugins/gtk+/glade-gtk.c, plugins/gtk+/gtk+.xml.in: Write GtkToolButton menu children out as "me



commit 233a3b42ae35c9a6915c835a7d077203ebaf9a7e
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Sun Jan 9 13:14:09 2011 +0900

    	* plugins/gtk+/glade-gtk.c, plugins/gtk+/gtk+.xml.in: Write GtkToolButton menu children
    	out as "menu" special child type.

 ChangeLog                |    3 +++
 plugins/gtk+/glade-gtk.c |   12 ++++++++++--
 plugins/gtk+/gtk+.xml.in |    2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 4656f1f..907b820 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,9 @@
 	parentless widget references (i.e. you can add a parent to a GtkToolItemGroup's label widget
 	or a GtkButton's image widget, or remove the parent of a child of a label-widget, etc).
 
+	* plugins/gtk+/glade-gtk.c, plugins/gtk+/gtk+.xml.in: Write GtkToolButton menu children
+	out as "menu" special child type.
+
 2011-01-08  Tristan Van Berkom <tristanvb openismus com>
 
 	* gladeui/glade-utils.[ch], gladeui/glade-widget.c, gladeui/glade-builtins.c,
diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c
index 082c27e..0548d6e 100644
--- a/plugins/gtk+/glade-gtk.c
+++ b/plugins/gtk+/glade-gtk.c
@@ -6658,6 +6658,8 @@ glade_gtk_menu_item_remove_child (GladeWidgetAdaptor * adaptor,
   g_return_if_fail (GTK_IS_MENU_ITEM (object));
   g_return_if_fail (GTK_IS_MENU (child));
 
+  g_object_set_data (child, "special-child-type", NULL);
+
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (object), NULL);
 }
 
@@ -7880,8 +7882,12 @@ glade_gtk_menu_tool_button_add_child (GladeWidgetAdaptor * adaptor,
                                       GObject * object, GObject * child)
 {
   if (GTK_IS_MENU (child))
-    gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (object),
-				   GTK_WIDGET (child));
+    {
+      g_object_set_data (child, "special-child-type", "menu");
+
+      gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (object),
+				     GTK_WIDGET (child));
+    }
   else
     GWA_GET_CLASS (GTK_TYPE_TOOL_BUTTON)->add (adaptor, object, child);
 }
@@ -7893,6 +7899,8 @@ glade_gtk_menu_tool_button_remove_child (GladeWidgetAdaptor * adaptor,
   if (GTK_IS_MENU (child))
     {
       gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (object), NULL);
+
+      g_object_set_data (child, "special-child-type", NULL);
     }
   else
     GWA_GET_CLASS (GTK_TYPE_TOOL_BUTTON)->remove (adaptor, object, child);
diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in
index 6733d93..5ba03cf 100644
--- a/plugins/gtk+/gtk+.xml.in
+++ b/plugins/gtk+/gtk+.xml.in
@@ -742,9 +742,9 @@ embedded in another object</_tooltip>
       <add-child-function>glade_gtk_menu_tool_button_add_child</add-child-function>
       <remove-child-function>glade_gtk_menu_tool_button_remove_child</remove-child-function>
       <get-children-function>glade_gtk_menu_tool_button_get_children</get-children-function>
+      <special-child-type>menu</special-child-type>
     </glade-widget-class>
 
-
     <glade-widget-class name="GtkHandleBox" generic-name="handlebox" _title="Handle Box">
       <properties>
       	<property id="handle-position">



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]