glade3 r2060 - in trunk: . gladeui plugins/gtk+



Author: tvb
Date: Tue Dec  9 18:46:04 2008
New Revision: 2060
URL: http://svn.gnome.org/viewvc/glade3?rev=2060&view=rev

Log:

	* configure.ac: Bumping gtk+ required version to 2.14

	* gladeui/glade-xml-utils.c, gladeui/glade-widget-adaptor.[ch],
	gladeui/glade-property-class.[ch], gladeui/glade-project.c: Added support
	for "builder-since" versioning (since builder supported this property/widget).

	* plugins/gtk+/gtk+.xml.in: Marked appropriate properties and objects "builder-since"
	and brought up to date new properties and signals introduced in 2.14.

	* gladeui/glade-base-editor.c: Plugged resource leak in finalize().



Modified:
   trunk/ChangeLog
   trunk/configure.ac
   trunk/gladeui/glade-base-editor.c
   trunk/gladeui/glade-project.c
   trunk/gladeui/glade-property-class.c
   trunk/gladeui/glade-property-class.h
   trunk/gladeui/glade-property.h
   trunk/gladeui/glade-widget-adaptor.c
   trunk/gladeui/glade-widget-adaptor.h
   trunk/gladeui/glade-xml-utils.h
   trunk/plugins/gtk+/gtk+.xml.in

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Tue Dec  9 18:46:04 2008
@@ -116,7 +116,7 @@
 dnl ================================================================
 dnl Check for gtk+
 dnl ================================================================
-PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.12.0  gthread-2.0 libxml-2.0 >= 2.4.0])
+PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.14.0  gthread-2.0 libxml-2.0 >= 2.4.0])
 AC_SUBST(GTK_LIBS)
 AC_SUBST(GTK_CFLAGS)
 

Modified: trunk/gladeui/glade-base-editor.c
==============================================================================
--- trunk/gladeui/glade-base-editor.c	(original)
+++ trunk/gladeui/glade-base-editor.c	Tue Dec  9 18:46:04 2008
@@ -113,6 +113,24 @@
 static void glade_base_editor_block_callbacks (GladeBaseEditor *editor,
 					       gboolean block);
 
+
+static void
+reset_child_types (GladeBaseEditor *editor)
+{
+	GList *l;
+	ChildTypeTab *tab;
+
+	for (l = editor->priv->child_types; l; l = l->next)
+	{
+		tab = l->data;
+		g_object_unref (tab->children);
+		g_free (tab);
+	}
+	g_list_free (editor->priv->child_types);
+	editor->priv->child_types = NULL;
+}
+
+
 static gint
 sort_type_by_hierarchy (ChildTypeTab *a, ChildTypeTab *b)
 {
@@ -1153,7 +1171,7 @@
 	
 	if (container == NULL)
 	{
-		/* XXX Destroy childtypetabs ...*/
+		reset_child_types (editor);
 
 		e->gcontainer = NULL;
 		e->project = NULL;
@@ -1203,14 +1221,13 @@
 }
 
 /*************************** GladeBaseEditor Class ****************************/
-
 static void
 glade_base_editor_finalize (GObject *object)
 {
 	GladeBaseEditor *cobj = GLADE_BASE_EDITOR (object);
 
-	/* XXX Free up ChildTypeTabs here... */
-	
+	reset_child_types (cobj);
+
 	/* Free private members, etc. */
 	glade_base_editor_project_disconnect (cobj);
 	

Modified: trunk/gladeui/glade-project.c
==============================================================================
--- trunk/gladeui/glade-project.c	(original)
+++ trunk/gladeui/glade-project.c	Tue Dec  9 18:46:04 2008
@@ -1548,6 +1548,88 @@
 /*******************************************************************
      Verify code here (versioning, incompatability checks)
  *******************************************************************/
+
+/* translators: reffers to a widget in toolkit version '%s %d.%d' and a project targeting toolkit version '%s %d.%d' */
+#define WIDGET_VERSION_CONFLICT_MSGFMT         _("This widget was introduced in %s %d.%d while project targets %s %d.%d")
+
+/* translators: reffers to a widget '[%s]' introduced in toolkit version '%s %d.%d' */
+#define WIDGET_VERSION_CONFLICT_FMT            _("[%s] Object class '%s' was introduced in %s %d.%d\n")
+
+/* translators: reffers to a widget in toolkit version '%s %d.%d' and a project targeting toolkit version '%s %d.%d' */
+#define WIDGET_BUILDER_VERSION_CONFLICT_MSGFMT _("This widget was made available in GtkBuilder format in %s %d.%d " \
+						 "while project targets %s %d.%d")
+
+/* translators: reffers to a widget '[%s]' introduced in toolkit version '%s %d.%d' */
+#define WIDGET_BUILDER_VERSION_CONFLICT_FMT    _("[%s] Object class '%s' was made available in GtkBuilder format " \
+						 "in %s %d.%d\n")
+
+#define WIDGET_LIBGLADE_ONLY_MSG               _("This widget is only supported in libglade format")
+
+/* translators: reffers to a widget '[%s]' loaded from toolkit version '%s %d.%d' */
+#define WIDGET_LIBGLADE_ONLY_FMT               _("[%s] Object class '%s' from %s %d.%d " \
+						 "is only supported in libglade format\n")
+
+#define WIDGET_LIBGLADE_UNSUPPORTED_MSG        _("This widget is not supported in libglade format")
+
+/* translators: reffers to a widget '[%s]' loaded from toolkit version '%s %d.%d' */
+#define WIDGET_LIBGLADE_UNSUPPORTED_FMT        _("[%s] Object class '%s' from %s %d.%d " \
+						 "is not supported in libglade format\n")
+
+#define WIDGET_DEPRECATED_MSG                  _("This widget is deprecated")
+
+/* translators: reffers to a widget '[%s]' loaded from toolkit version '%s %d.%d' */
+#define WIDGET_DEPRECATED_FMT                  _("[%s] Object class '%s' from %s %d.%d is deprecated\n")
+
+
+/* Defined here for pretty translator comments (bug in intl tools, for some reason
+ * you can only comment about the line directly following, forcing you to write
+ * ugly messy code with comments in line breaks inside function calls).
+ */
+#define PROP_LIBGLADE_UNSUPPORTED_MSG          _("This property is not supported in libglade format")
+
+/* translators: reffers to a property '%s' of widget '[%s]' */
+#define PROP_LIBGLADE_UNSUPPORTED_FMT          _("[%s] Property '%s' of object class '%s' is not " \
+						 "supported in libglade format\n")
+/* translators: reffers to a property '%s' of widget '[%s]' */
+#define PACK_PROP_LIBGLADE_UNSUPPORTED_FMT     _("[%s] Packing property '%s' of object class '%s' is not " \
+						 "supported in libglade format\n")
+
+#define PROP_LIBGLADE_ONLY_MSG                 _("This property is only supported in libglade format")
+
+/* translators: reffers to a property '%s' of widget '[%s]' */
+#define PROP_LIBGLADE_ONLY_FMT                 _("[%s] Property '%s' of object class '%s' is only " \
+						 "supported in libglade format\n")
+
+/* translators: reffers to a property '%s' of widget '[%s]' */
+#define PACK_PROP_LIBGLADE_ONLY_FMT            _("[%s] Packing property '%s' of object class '%s' is only " \
+						 "supported in libglade format\n")
+
+/* translators: reffers to a property in toolkit version '%s %d.%d' 
+ * and a project targeting toolkit version '%s %d.%d' */
+#define PROP_VERSION_CONFLICT_MSGFMT           _("This property was introduced in %s %d.%d while project targets %s %d.%d")
+
+/* translators: reffers to a property '%s' of widget '[%s]' in toolkit version '%s %d.%d' */
+#define PROP_VERSION_CONFLICT_FMT              _("[%s] Property '%s' of object class '%s' was introduced in %s %d.%d\n")
+
+/* translators: reffers to a property '%s' of widget '[%s]' in toolkit version '%s %d.%d' */
+#define PACK_PROP_VERSION_CONFLICT_FMT         _("[%s] Packing property '%s' of object class '%s' " \
+						 "was introduced in %s %d.%d\n")
+
+/* translators: reffers to a property in toolkit version '%s %d.%d' and a project targeting toolkit version '%s %d.%d' */
+#define PROP_BUILDER_VERSION_CONFLICT_MSGFMT   _("This property was made available in GtkBuilder format in %s %d.%d " \
+						 "while project targets %s %d.%d")
+
+/* translators: reffers to a property '%s' of widget '[%s]' in toolkit version '%s %d.%d' */
+#define PROP_BUILDER_VERSION_CONFLICT_FMT      _("[%s] Property '%s' of object class '%s' was " \
+						 "made available in GtkBuilder format in %s %d.%d\n")
+
+/* translators: reffers to a property '%s' of widget '[%s]' in toolkit version '%s %d.%d' */
+#define PACK_PROP_BUILDER_VERSION_CONFLICT_FMT _("[%s] Packing property '%s' of object class '%s' " \
+						 "was made available in GtkBuilder format in %s %d.%d\n")
+
+/* translators: reffers to a signal '%s' of widget '[%s]' in toolkit version '%s %d.%d' */
+#define SIGNAL_VERSION_CONFLICT_FMT            _("[%s] Signal '%s' of object class '%s' was introduced in %s %d.%d\n")
+
 static void
 glade_project_verify_property (GladeProject   *project,
 			       GladeProperty  *property, 
@@ -1575,40 +1657,30 @@
 	{
 		if (forwidget)
 			glade_property_set_support_warning
-				(property, TRUE, _("This property is not supported in libglade format"));
+				(property, TRUE, PROP_LIBGLADE_UNSUPPORTED_MSG);
 		else
-			/* translators: reffers to a property '%s' of widget '[%s]' 
-			 * introduced in toolkit version '%s %d.%d' */
-			g_string_append_printf
-				(string,
-				 property->klass->packing ?
-				 _("[%s] Packing property '%s' of object class '%s' is not "
-				   "supported in libglade format\n") :
-				 _("[%s] Property '%s' of object class '%s' is not "
-				   "supported in libglade format\n"),
-				 path_name,
-				 property->klass->name, 
-				 adaptor->title);
+			g_string_append_printf (string,
+						property->klass->packing ?
+						PACK_PROP_LIBGLADE_UNSUPPORTED_FMT :
+						PROP_LIBGLADE_UNSUPPORTED_FMT,
+						path_name,
+						property->klass->name, 
+						adaptor->title);
 	}
 	else if (project->priv->format == GLADE_PROJECT_FORMAT_GTKBUILDER &&
 		 property->klass->libglade_only)
 	{
 		if (forwidget)
 			glade_property_set_support_warning
-				(property, TRUE, _("This property is only supported in libglade format"));
+				(property, TRUE, PROP_LIBGLADE_ONLY_MSG);
 		else
-			/* translators: reffers to a property '%s' of widget '[%s]' 
-			 * introduced in toolkit version '%s %d.%d' */
-			g_string_append_printf
-				(string,
-				 property->klass->packing ?
-				 _("[%s] Packing property '%s' of object class '%s' is only "
-				   "supported in libglade format\n") :
-				 _("[%s] Property '%s' of object class '%s' is only "
-				   "supported in libglade format\n"),
-				 path_name,
-				 property->klass->name, 
-				 adaptor->title);
+			g_string_append_printf (string,
+						property->klass->packing ?
+						PACK_PROP_LIBGLADE_ONLY_FMT :
+						PROP_LIBGLADE_ONLY_FMT,
+						path_name,
+						property->klass->name, 
+						adaptor->title);
 	} 
 	else if (target_major < property->klass->version_since_major ||
 		 (target_major == property->klass->version_since_major &&
@@ -1616,36 +1688,54 @@
 	{
 		if (forwidget)
 		{
-			/* translators: reffers to a property introduced in toolkit
-			 * version '%s %d.%d' and a project targeting toolkit
-			 * version '%s %d.%d' */
-			tooltip = g_strdup_printf
-				(_("This property was introduced in %s %d.%d, "
-				   "project targets %s %d.%d"),
-				 catalog,
-				 property->klass->version_since_major,
-				 property->klass->version_since_minor,
-				 catalog,
-				 target_major, target_minor);
-
+			tooltip = g_strdup_printf (PROP_VERSION_CONFLICT_MSGFMT,
+						   catalog,
+						   property->klass->version_since_major,
+						   property->klass->version_since_minor,
+						   catalog,
+						   target_major, target_minor);
+			
+			glade_property_set_support_warning (property, FALSE, tooltip);
+			g_free (tooltip);
+		}
+		else
+			g_string_append_printf (string,
+						property->klass->packing ?
+						PACK_PROP_VERSION_CONFLICT_FMT :
+						PROP_VERSION_CONFLICT_FMT,
+						path_name,
+						property->klass->name, 
+						adaptor->title, catalog,
+						property->klass->version_since_major,
+						property->klass->version_since_minor);
+	} 
+	else if (project->priv->format == GLADE_PROJECT_FORMAT_GTKBUILDER &&
+		 (target_major < property->klass->builder_since_major ||
+		  (target_major == property->klass->builder_since_major &&
+		   target_minor < property->klass->builder_since_minor)))
+	{
+		if (forwidget)
+		{
+			tooltip = g_strdup_printf (PROP_BUILDER_VERSION_CONFLICT_MSGFMT,
+						   catalog,
+						   property->klass->builder_since_major,
+						   property->klass->builder_since_minor,
+						   catalog,
+						   target_major, target_minor);
+			
 			glade_property_set_support_warning (property, FALSE, tooltip);
 			g_free (tooltip);
 		}
 		else
-			/* translators: reffers to a property '%s' of widget '[%s]' 
-			 * introduced in toolkit version '%s %d.%d' */
-			g_string_append_printf
-				(string,
-				 property->klass->packing ?
-				 _("[%s] Packing property '%s' of object class '%s' was "
-				   "introduced in %s %d.%d\n") :
-				 _("[%s] Property '%s' of object class '%s' was "
-				   "introduced in %s %d.%d\n"),
-				 path_name,
-				 property->klass->name, 
-				 adaptor->title, catalog,
-				 property->klass->version_since_major,
-				 property->klass->version_since_minor);
+			g_string_append_printf (string,
+						property->klass->packing ?
+						PACK_PROP_BUILDER_VERSION_CONFLICT_FMT :
+						PROP_BUILDER_VERSION_CONFLICT_FMT,
+						path_name,
+						property->klass->name, 
+						adaptor->title, catalog,
+						property->klass->builder_since_major,
+						property->klass->builder_since_minor);
 	} 
 	else if (forwidget)
 		glade_property_set_support_warning (property, FALSE, NULL);
@@ -1722,18 +1812,14 @@
 	if (target_major < signal_class->version_since_major ||
 	    (target_major == signal_class->version_since_major &&
 	     target_minor < signal_class->version_since_minor))
-		/* translators: reffers to a signal '%s' of widget '[%s]' 
-		 * introduced in toolkit version '%s %d.%d' */
-		g_string_append_printf
-			(string, 
-			 _("[%s] Signal '%s' of object class '%s' was "
-			   "introduced in %s %d.%d\n"),
-			 path_name,
-			 signal->name,
-			 signal_class->adaptor->title, 
-			 catalog,
-			 signal_class->version_since_major,
-			 signal_class->version_since_minor);
+		g_string_append_printf (string, 
+					SIGNAL_VERSION_CONFLICT_FMT,
+					path_name,
+					signal->name,
+					signal_class->adaptor->title, 
+					catalog,
+					signal_class->version_since_major,
+					signal_class->version_since_minor);
 
 	g_free (catalog);
 }
@@ -1862,7 +1948,7 @@
 	gint                target_major, target_minor;
 	gchar              *catalog = NULL;
 
-	for (adaptor_iter = adaptor; adaptor_iter;
+	for (adaptor_iter = adaptor; adaptor_iter && support_mask == GLADE_SUPPORT_OK;
 	     adaptor_iter = glade_widget_adaptor_get_parent_adaptor (adaptor_iter))
 	{
 
@@ -1871,37 +1957,52 @@
 							  &target_major,
 							  &target_minor);
 
+		/* Only one versioning message (builder or otherwise)...
+		 */
 		if (target_major < GWA_VERSION_SINCE_MAJOR (adaptor_iter) ||
 		    (target_major == GWA_VERSION_SINCE_MAJOR (adaptor_iter) &&
 		     target_minor < GWA_VERSION_SINCE_MINOR (adaptor_iter)))
 		{
 			if (forwidget)
-			{
-				/* translators: reffers to a widget
-				 * introduced in toolkit version '%s %d.%d',
-				 * and a project targeting toolkit verion '%s %d.%d' */
-				g_string_append_printf
-					(string, 
-					 _("This widget was introduced in %s %d.%d "
-					   "project targets %s %d.%d"),
-					 catalog,
-					 GWA_VERSION_SINCE_MAJOR (adaptor_iter),
-					 GWA_VERSION_SINCE_MINOR (adaptor_iter),
-					 catalog, target_major, target_minor);
-			}
+				g_string_append_printf (string, 
+							WIDGET_VERSION_CONFLICT_MSGFMT,
+							catalog,
+							GWA_VERSION_SINCE_MAJOR (adaptor_iter),
+							GWA_VERSION_SINCE_MINOR (adaptor_iter),
+							catalog, target_major, target_minor);
+			else
+				g_string_append_printf (string, 
+							WIDGET_VERSION_CONFLICT_FMT,
+							path_name, adaptor_iter->title, catalog,
+							GWA_VERSION_SINCE_MAJOR (adaptor_iter),
+							GWA_VERSION_SINCE_MINOR (adaptor_iter));
+			
+			support_mask |= GLADE_SUPPORT_MISMATCH;
+		}
+		else if (project->priv->format == GLADE_PROJECT_FORMAT_GTKBUILDER &&
+			 (target_major < GWA_BUILDER_SINCE_MAJOR (adaptor_iter) ||
+			  (target_major == GWA_BUILDER_SINCE_MAJOR (adaptor_iter) &&
+			   target_minor < GWA_BUILDER_SINCE_MINOR (adaptor_iter))))
+		{
+			if (forwidget)
+				g_string_append_printf (string, 
+							WIDGET_BUILDER_VERSION_CONFLICT_MSGFMT,
+							catalog,
+							GWA_BUILDER_SINCE_MAJOR (adaptor_iter),
+							GWA_BUILDER_SINCE_MINOR (adaptor_iter),
+							catalog, target_major, target_minor);
 			else
-				/* translators: reffers to a widget '[%s]'  
-				 * introduced in toolkit version '%s %d.%d' */
-				g_string_append_printf
-					(string, 
-					 _("[%s] Object class '%s' was introduced in %s %d.%d\n"),
-					 path_name, adaptor_iter->title, catalog,
-					 GWA_VERSION_SINCE_MAJOR (adaptor_iter),
-					 GWA_VERSION_SINCE_MINOR (adaptor_iter));
+				g_string_append_printf (string, 
+							WIDGET_BUILDER_VERSION_CONFLICT_FMT,
+							path_name, adaptor_iter->title, catalog,
+							GWA_BUILDER_SINCE_MAJOR (adaptor_iter),
+							GWA_BUILDER_SINCE_MINOR (adaptor_iter));
 
 			support_mask |= GLADE_SUPPORT_MISMATCH;
 		}
 
+		/* Now accumulate some more messages...
+		 */
 		if (project->priv->format == GLADE_PROJECT_FORMAT_GTKBUILDER &&
 		    GWA_LIBGLADE_ONLY (adaptor_iter))
 		{
@@ -1909,19 +2010,13 @@
 			{
 				if (string->len)
 					g_string_append (string, "\n");
-				g_string_append_printf
-					(string,
-					 _("This widget is only supported in libglade format"));
+				g_string_append_printf (string, WIDGET_LIBGLADE_ONLY_MSG);
 			}
 			else
-				/* translators: reffers to a widget '[%s]'  
-				 * loaded from toolkit version '%s %d.%d' */
-				g_string_append_printf
-					(string,
-					 _("[%s] Object class '%s' from %s %d.%d "
-					   "is only supported in libglade format\n"),
-					 path_name, adaptor_iter->title, catalog,
-					 target_major, target_minor);
+				g_string_append_printf (string,
+							WIDGET_LIBGLADE_ONLY_FMT,
+							path_name, adaptor_iter->title, catalog,
+							target_major, target_minor);
 
 			support_mask |= GLADE_SUPPORT_LIBGLADE_ONLY;
 		}
@@ -1932,19 +2027,13 @@
 			{
 				if (string->len)
 					g_string_append (string, "\n");
-				g_string_append_printf
-					(string,
-					 _("This widget is not supported in libglade format"));
+
+				g_string_append_printf (string, WIDGET_LIBGLADE_UNSUPPORTED_MSG);
 			}
 			else
-				/* translators: reffers to a widget '[%s]'  
-				 * loaded from toolkit version '%s %d.%d' */
-				g_string_append_printf
-					(string,
-					 _("[%s] Object class '%s' from %s %d.%d "
-					   "is not supported in libglade format\n"),
-					 path_name, adaptor_iter->title, catalog,
-					 target_major, target_minor);
+				g_string_append_printf (string, WIDGET_LIBGLADE_UNSUPPORTED_FMT,
+							path_name, adaptor_iter->title, catalog,
+							target_major, target_minor);
 
 			support_mask |= GLADE_SUPPORT_LIBGLADE_UNSUPPORTED;
 		}
@@ -1955,18 +2044,13 @@
 			{
 				if (string->len)
 					g_string_append (string, "\n");
-				g_string_append_printf
-					(string, _("This widget is deprecated"));
+
+				g_string_append_printf (string, WIDGET_DEPRECATED_MSG);
 			}
 			else
-				/* translators: reffers to a widget '[%s]'  
-				 * loaded from toolkit version '%s %d.%d' */
-				g_string_append_printf
-					(string, 
-					 _("[%s] Object class '%s' from %s %d.%d "
-					   "is deprecated\n"),
-					 path_name, adaptor_iter->title, catalog,
-					 target_major, target_minor);
+				g_string_append_printf (string, WIDGET_DEPRECATED_FMT,
+							path_name, adaptor_iter->title, catalog,
+							target_major, target_minor);
 
 			support_mask |= GLADE_SUPPORT_DEPRECATED;
 		}
@@ -1974,6 +2058,7 @@
 	}
 	if (mask)
 		*mask = support_mask;
+
 }
 
 /**

Modified: trunk/gladeui/glade-property-class.c
==============================================================================
--- trunk/gladeui/glade-property-class.c	(original)
+++ trunk/gladeui/glade-property-class.c	Tue Dec  9 18:46:04 2008
@@ -104,6 +104,10 @@
 	/* Initialize them to the base version */
 	property_class->version_since_major = GWA_VERSION_SINCE_MAJOR (handle);
 	property_class->version_since_minor = GWA_VERSION_SINCE_MINOR (handle);
+
+	property_class->builder_since_major = GWA_BUILDER_SINCE_MAJOR (handle);
+	property_class->builder_since_minor = GWA_BUILDER_SINCE_MINOR (handle);
+
 	return property_class;
 }
 
@@ -1581,6 +1585,11 @@
 		 &klass->version_since_major,
 		 &klass->version_since_minor);
 
+	glade_xml_get_property_version
+		(node, GLADE_TAG_BUILDER_SINCE, 
+		 &klass->builder_since_major,
+		 &klass->builder_since_minor);
+
 	/* Get the Parameters */
 	if ((child = glade_xml_search_child (node, GLADE_TAG_PARAMETERS)) != NULL)
 		klass->parameters = glade_parameter_list_new_from_node (klass->parameters, child);

Modified: trunk/gladeui/glade-property-class.h
==============================================================================
--- trunk/gladeui/glade-property-class.h	(original)
+++ trunk/gladeui/glade-property-class.h	Tue Dec  9 18:46:04 2008
@@ -46,10 +46,12 @@
 			     * was created for.
 			     */
 
-	gint        version_since_major; /* Version in which this property was
-					  * introduced
-					  */
-	gint        version_since_minor; 
+
+	guint16     version_since_major; /* Version in which this property was */
+	guint16     version_since_minor; /* introduced.                       */
+
+	guint16     builder_since_major; /* Version in which this property became */
+	guint16     builder_since_minor; /* available in GtkBuilder format        */
 
 	/* For catalogs that support libglade: */
 	gboolean    libglade_only;       /* Mark special libglade virtual properties */

Modified: trunk/gladeui/glade-property.h
==============================================================================
--- trunk/gladeui/glade-property.h	(original)
+++ trunk/gladeui/glade-property.h	Tue Dec  9 18:46:04 2008
@@ -43,9 +43,6 @@
 	GValue             *value;     /* The value of the property
 					*/
 
-	gboolean            sensitive; /* Whether this property is sensitive (if the
-					* property is "optional" this takes precedence).
-					*/
 	gchar              *insensitive_tooltip; /* Tooltip to display when in insensitive state
 						  * (used to explain why the property is 
 						  *  insensitive)
@@ -56,34 +53,37 @@
 					      * (used to explain why the property is 
 					      *  insensitive)
 					      */
-	gboolean            support_disabled; /* Whether this property is disabled due
-					       * to format conflicts
-					       */
-
-	gboolean            enabled;   /* Enabled is a flag that is used for GladeProperties
-					* that have the optional flag set to let us know
-					* if this widget has this setting enabled or
-					* not. (Like default size, it can be specified or
-					* unspecified). This flag also sets the state
-					* of the property->input state for the loaded
-					* widget.
-					*/
-
-	gboolean            save_always; /* Used to make a special case exception and always
-					  * save this property regardless of what the default
-					  * value is (used for some special cases like properties
-					  * that are assigned initial values in composite widgets
-					  * or derived widget code).
-					  */
+	guint               support_disabled : 1; /* Whether this property is disabled due
+						   * to format conflicts
+						   */
+
+	guint               sensitive : 1; /* Whether this property is sensitive (if the
+					    * property is "optional" this takes precedence).
+					    */
+
+	guint               enabled : 1;   /* Enabled is a flag that is used for GladeProperties
+					    * that have the optional flag set to let us know
+					    * if this widget has this setting enabled or
+					    * not. (Like default size, it can be specified or
+					    * unspecified). This flag also sets the state
+					    * of the property->input state for the loaded
+					    * widget.
+					    */
+
+	guint               save_always : 1; /* Used to make a special case exception and always
+					      * save this property regardless of what the default
+					      * value is (used for some special cases like properties
+					      * that are assigned initial values in composite widgets
+					      * or derived widget code).
+					      */
 
 	/* Used only for translatable strings. */
-	gboolean  i18n_translatable;
-	gboolean  i18n_has_context;
+	guint     i18n_translatable : 1;
+	guint     i18n_has_context : 1;
 	gchar    *i18n_context;
 	gchar    *i18n_comment;
 		
-	gint      syncing;    /* Avoid recursion while synchronizing object with value.
-			       */
+	gint      syncing;  /* Avoid recursion while synchronizing object with value */
 	gint      sync_tolerance;
 };
 

Modified: trunk/gladeui/glade-widget-adaptor.c
==============================================================================
--- trunk/gladeui/glade-widget-adaptor.c	(original)
+++ trunk/gladeui/glade-widget-adaptor.c	Tue Dec  9 18:46:04 2008
@@ -387,9 +387,14 @@
 			/* Reset versioning in derived catalogs just once */
 			if (strcmp (adaptor->priv->catalog, 
 				    parent_adaptor->priv->catalog))
+			{
 				pclass->version_since_major =
 					pclass->version_since_major = 0;
 
+				pclass->builder_since_major =
+					pclass->builder_since_major = 0;
+
+			}
 			properties = g_list_prepend (properties, pclass);
 		}
 	}
@@ -602,9 +607,14 @@
 	/* Reset version numbering if we're in a new catalog just once */
 	if (parent_adaptor &&
 	    strcmp (adaptor->priv->catalog, parent_adaptor->priv->catalog))
+	{
 		GLADE_WIDGET_ADAPTOR_GET_CLASS(adaptor)->version_since_major = 
 			GLADE_WIDGET_ADAPTOR_GET_CLASS(adaptor)->version_since_minor = 0;
 
+		GLADE_WIDGET_ADAPTOR_GET_CLASS(adaptor)->builder_since_major = 
+			GLADE_WIDGET_ADAPTOR_GET_CLASS(adaptor)->builder_since_minor = 0;
+	}
+
 	/* Copy parent actions */
 	if (parent_adaptor)
 	{
@@ -1489,6 +1499,11 @@
 	if (module) gwa_extend_with_node_load_sym (adaptor_class, node, module);
 
 	glade_xml_get_property_version
+		(node, GLADE_TAG_BUILDER_SINCE, 
+		 &adaptor_class->builder_since_major,
+		 &adaptor_class->builder_since_minor);
+
+	glade_xml_get_property_version
 		(node, GLADE_TAG_VERSION_SINCE, 
 		 &adaptor_class->version_since_major,
 		 &adaptor_class->version_since_minor);

Modified: trunk/gladeui/glade-widget-adaptor.h
==============================================================================
--- trunk/gladeui/glade-widget-adaptor.h	(original)
+++ trunk/gladeui/glade-widget-adaptor.h	Tue Dec  9 18:46:04 2008
@@ -67,8 +67,8 @@
  *
  * Checks major version in which this widget was introduced
  */
-#define GWA_VERSION_SINCE_MAJOR(obj)						\
-        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_major : FALSE)
+#define GWA_VERSION_SINCE_MAJOR(obj) \
+        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_major : 0)
 
 /**
  * GWA_VERSION_SINCE_MINOR:
@@ -76,8 +76,27 @@
  *
  * Checks minor version in which this widget was introduced
  */
-#define GWA_VERSION_SINCE_MINOR(obj)						\
-        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_minor : FALSE)
+#define GWA_VERSION_SINCE_MINOR(obj) \
+        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_minor : 0)
+
+/**
+ * GWA_BUILDER_SINCE_MAJOR:
+ * @obj: A #GladeWidgetAdaptor
+ *
+ * Checks major version in which this widget introduced gtkbuilder support
+ */
+#define GWA_BUILDER_SINCE_MAJOR(obj) \
+        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->builder_since_major : 0)
+
+/**
+ * GWA_BUILDER_SINCE_MINOR:
+ * @obj: A #GladeWidgetAdaptor
+ *
+ * Checks minor version in which this widget introduced gtkbuilder support
+ */
+#define GWA_BUILDER_SINCE_MINOR(obj) \
+        ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->builder_since_minor : 0)
+
 
 /**
  * GWA_IS_TOPLEVEL:
@@ -590,29 +609,31 @@
 {
 	GObjectClass               parent_class;
 
-	gint                       version_since_major; /* Version in which this widget was
-							 * introduced
-							 */
-	gint                       version_since_minor;
-
-	gboolean                   deprecated;     /* If this widget is currently
-						    * deprecated
-						    */
-	gboolean                   libglade_unsupported; /* If this widget is not supported
-							  * by libglade
-							  */
-	gboolean                   libglade_only; /* If this widget is only supported
-						   * by libglade
-						   */
+	guint16                    version_since_major; /* Version in which this widget was */
+	guint16                    version_since_minor; /* introduced.                      */
 
-	gboolean                   fixed;      /* If this is a GtkContainer, use free-form
-						* placement with drag/resize/paste at mouse...
-						*/
-	gboolean                   toplevel;   /* If this class is toplevel */
+	guint16                    builder_since_major; /* Version in which this widget became */
+	guint16                    builder_since_minor; /* available in GtkBuilder format      */
 
-	gboolean                   use_placeholders; /* Whether or not to use placeholders
-						      * to interface with child widgets.
-						      */
+
+	guint                      deprecated : 1;          /* If this widget is currently
+							     * deprecated
+							     */
+	guint                      libglade_unsupported : 1; /* If this widget is not supported
+							      * by libglade
+							      */
+	guint                      libglade_only : 1;        /* If this widget is only supported
+							      * by libglade
+							      */
+
+	guint                      fixed : 1;                /* If this is a Container, use free-form
+							      * placement with drag/resize/paste at mouse...
+							      */
+	guint                      toplevel : 1;             /* If this class is toplevel */
+
+	guint                      use_placeholders : 1;     /* Whether or not to use placeholders
+							      * to interface with child widgets.
+							      */
 
 	gint                       default_width;  /* Default width in GladeDesignLayout */
 	gint                       default_height; /* Default height in GladeDesignLayout */
@@ -673,12 +694,12 @@
 	GladeChildSetPropertyFunc    child_set_property; /* Sets/Gets a packing property */
 	GladeChildGetPropertyFunc    child_get_property; /* for this child */
 	
-	GladeReplaceChildFunc      replace_child;  /* This method replaces a 
-						    * child widget with
-						    * another one: it's used to
-						    * replace a placeholder with
-						    * a widget and viceversa.
-						    */
+	GladeReplaceChildFunc        replace_child;  /* This method replaces a 
+						      * child widget with
+						      * another one: it's used to
+						      * replace a placeholder with
+						      * a widget and viceversa.
+						      */
 	
 	GladeActionActivateFunc      action_activate;       /* This method is used to catch actions */
 	GladeChildActionActivateFunc child_action_activate; /* This method is used to catch packing actions */

Modified: trunk/gladeui/glade-xml-utils.h
==============================================================================
--- trunk/gladeui/glade-xml-utils.h	(original)
+++ trunk/gladeui/glade-xml-utils.h	Tue Dec  9 18:46:04 2008
@@ -89,6 +89,7 @@
 #define GLADE_TAG_VERSION                         "version"
 #define GLADE_TAG_TARGETABLE                      "targetable"
 #define GLADE_TAG_VERSION_SINCE                   "since"
+#define GLADE_TAG_BUILDER_SINCE                   "gtkbuilder-since"
 #define GLADE_TAG_DEPRECATED                      "deprecated"
 
 #define GLADE_TAG_LIBGLADE_ONLY                   "libglade-only"

Modified: trunk/plugins/gtk+/gtk+.xml.in
==============================================================================
--- trunk/plugins/gtk+/gtk+.xml.in	(original)
+++ trunk/plugins/gtk+/gtk+.xml.in	Tue Dec  9 18:46:04 2008
@@ -1,6 +1,6 @@
 <glade-catalog name="gtk+"
-	       version="2.14"
-	       targetable="2.12,2.10,2.8"
+	       version="2.16"
+	       targetable="2.14,2.12,2.10,2.8"
 	       supports="libglade,gtkbuilder"
                icon-prefix="gtk"
                library="gladegtk"
@@ -26,6 +26,7 @@
 	<signal id="drag-failed" since="2.12"/>
 	<signal id="keynav-failed" since="2.12"/>
 	<signal id="query-tooltip" since="2.12"/>
+	<signal id="damage-event" since="2.14"/>
       </signals>
 
       <actions>
@@ -104,6 +105,7 @@
 	  </displayable-values>
 	</property>
 
+	<property id="window" disabled="True" since="2.14"/>
 	<property id="name" disabled="True"/>
 	<property id="parent" disabled="True"/>
 	<property id="style" disabled="True"/>
@@ -412,7 +414,7 @@
       </properties>
     </glade-widget-class>
 
-    <glade-widget-class name="GtkMenuShell" _title="Menu Shell" use-placeholders="False">
+    <glade-widget-class name="GtkMenuShell" _title="Menu Shell" use-placeholders="False" gtkbuilder-since="2.16">
       <post-create-function>empty</post-create-function>
       <add-child-function>glade_gtk_menu_shell_add_child</add-child-function>
       <remove-child-function>glade_gtk_menu_shell_remove_child</remove-child-function>
@@ -435,7 +437,8 @@
       </packing-properties>
     </glade-widget-class>
 
-    <glade-widget-class name="GtkMenuItem" generic-name="menuitem" _title="Menu Item" use-placeholders="False">
+    <glade-widget-class name="GtkMenuItem" generic-name="menuitem" _title="Menu Item" use-placeholders="False"
+			 gtkbuilder-since="2.16">
       <constructor-function>glade_gtk_menu_item_constructor</constructor-function>
       <post-create-function>glade_gtk_menu_item_post_create</post-create-function>
       <get-children-function>glade_gtk_menu_item_get_children</get-children-function>
@@ -450,6 +453,9 @@
         <action id="launch_editor" _name="Edit&#8230;" stock="gtk-edit" important="True"/>
       </actions>
       <properties>
+        <property id="accel-path" since="2.14"/>
+        <property id="right-justified" since="2.14"/>
+        <property id="width-chars" since="2.14"/>
         <property id="label" _name="Label" translatable="True">
 	  <parameter-spec>
 	    <type>GParamString</type>
@@ -730,7 +736,8 @@
       	<property id="label" default="label" translatable="True" custom-layout="True">
             <visible-lines>2</visible-lines>
         </property>
-	<property id="glade-attributes" _name="Attributes" save="False" custom-layout="True">
+	<property id="glade-attributes" _name="Attributes" save="False" custom-layout="True" 
+		  libglade-unsupported="True" gtkbuilder-since="2.16">
 	  <parameter-spec>
 	    <type>GParamBoxed</type>
 	    <value-type>GladeAttrGList</value-type>
@@ -958,14 +965,18 @@
       </properties>
     </glade-widget-class>
 
-    <glade-widget-class name="GtkScaleButton" generic-name="scalebutton" _title="Scale Button" since="2.12"/>
+    <glade-widget-class name="GtkScaleButton" generic-name="scalebutton" _title="Scale Button" since="2.12">
+      <properties>
+        <property id="orientation" since="2.14"/>
+      </properties>
+    </glade-widget-class>
 
     <glade-widget-class name="GtkVolumeButton" generic-name="volumebutton" _title="Volume Button"/>
 
     <glade-widget-class name="GtkFileChooserWidget" generic-name="filechooserwidget" _title="File Chooser Widget">
       <post-create-function>glade_gtk_file_chooser_widget_post_create</post-create-function>
       <properties>
-        <property id="size" default="1"  query="False" />
+        <property id="size" default="1" query="False" />
 	<property id="extra-widget" parentless-widget="True" libglade-unsupported="True"/>
 	<property id="preview-widget" parentless-widget="True" libglade-unsupported="True"/>
 	<property id="filter" libglade-unsupported="True"/>
@@ -1076,6 +1087,10 @@
 	    <value id="GTK_PROGRESS_DISCRETE" _name="Discrete"/>
 	  </displayable-values>
 	</property>
+        <property id="min-horizontal-bar-height" since="2.14"/>
+        <property id="min-horizontal-bar-width" since="2.14"/>
+        <property id="min-vertical-bar-height" since="2.14"/>
+        <property id="min-vertical-bar-width" since="2.14"/>
       </properties>
     </glade-widget-class>
 
@@ -1290,7 +1305,13 @@
     
     <glade-widget-class name="GtkVScale" generic-name="vscale" _title="Vertical Scale"/>
 
-    <glade-widget-class name="GtkCalendar" generic-name="calendar" _title="Calendar"/>
+    <glade-widget-class name="GtkCalendar" generic-name="calendar" _title="Calendar">
+      <properties>
+        <property id="detail-height-rows" since="2.14"/>
+        <property id="detail-width-chars" since="2.14"/>
+        <property id="show-details" since="2.14"/>
+      </properties>
+    </glade-widget-class>
     
     <glade-widget-class name="GtkMenu" generic-name="menu" _title="Popup Menu" toplevel="True">
       <constructor-function>glade_gtk_menu_constructor</constructor-function>
@@ -1301,7 +1322,16 @@
       <actions>
         <action id="launch_editor" _name="Edit&#8230;" stock="gtk-edit" important="True"/>
       </actions>
-   </glade-widget-class>
+
+      <properties>
+        <property id="accel-group" since="2.14"/>
+        <property id="accel-path" since="2.14"/>
+        <property id="active" disabled="True" since="2.14"/>
+        <property id="attach-widget" disabled="True" since="2.14"/>
+        <property id="monitor" disabled="True" since="2.14"/>
+      </properties>
+
+    </glade-widget-class>
     
     <glade-widget-class name="GtkHScrollbar" generic-name="hscrollbar" _title="Horizontal Scrollbar"/>
 
@@ -1692,9 +1722,10 @@
     
     <glade-widget-class name="GtkLinkButton" generic-name="linkbutton" _title="Link Button">
       <properties>
-        <!-- The pspec of this prop says that the default is http://www.gtk.org but gtk_link_button_init() does not set it up
-               do we need to override it to avoid seting a NULL value. -->
+        <!-- The pspec of this prop says that the default is http://www.gtk.org but gtk_link_button_init() does
+	     not set it up... do we need to override it to avoid seting a NULL value ? -->
         <property id="uri" default="http://glade.gnome.org"; since="2.10"/>
+        <property id="visited" since="2.14"/>
       </properties>
    </glade-widget-class>
 
@@ -2606,6 +2637,11 @@
 
     <glade-widget-class name="GtkCellRendererCombo" generic-name="cellrenderercombo" _title="Combo Renderer" 
 			libglade-unsupported="True">
+
+      <signals>
+	<signal id="changed" since="2.14"/>
+      </signals>
+
       <properties>
         <property id="has-entry" save="False" custom-layout="True"/>
         <property id="attr-has-entry" _name="Has Entry column" save="False" default="-1" custom-layout="True">
@@ -2989,7 +3025,11 @@
 
 
     <glade-widget-class name="GtkStatusIcon" generic-name="statusicon" _title="Status Icon" 
-			libglade-unsupported="True" toplevel="True"/>
+			libglade-unsupported="True" toplevel="True">
+      <properties>
+	<property id="gicon" disabled="True" since="2.14"/>
+      </properties>
+    </glade-widget-class>
 
     <glade-widget-class name="GtkTextBuffer" generic-name="textbuffer" _title="Text Buffer" 
 			libglade-unsupported="True" toplevel="True">



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