Commit 1934d006 authored by Tristan Van Berkom's avatar Tristan Van Berkom

Set project properly in glade_command_remove() (this fixes undo/redo of


	* gladeui/glade-command.c: Set project properly in glade_command_remove()
	  (this fixes undo/redo of add/remove commands in the menueditor... along
	  with the following fixes).

	* gladeui/glade-widget-adaptor.[ch], gladeui/glade-xml-utils.h: 
	  Added GWA_USE_PLACEHOLDERS(), a boolean on the GWA that is loaded 
	  from the catalog.

	* gladeui/glade-utils.[ch]: Removed glade_util_[any_]container_relation.

	* gladeui/glade-widget.[ch]: Added glade_widget_placeholder_relation

	* gladeui/glade-app.c, gladeui/glade-fixed.c: Adjusted callers for new
	  glade-widget api.

	* gladeui/glade-fixed.[ch]: Removed the "use-placehodlers" property
	  since it is now redundant with the new GWA_USE_PLACEHOLDERS (this
	  simplifies things a little).

	* gladeui/glade-binding.c: Fixed obnoxious startup errors (bug 399178),
	  glade_binding_get_all(), use g_list_prepend()/g_list_reverse() instead
	  of g_list_append() to build a list.

	* gladeui/glade-base-editor.c: Use the right adaptor for gwa_get_children
	  in glade_base_editor_change_type () (was using adaptor for the destination
	  type).
	
	* plugins/gtk/glade-gtk.c: Remove use of "use-placeholders" property
	  on GladeFixed objects.

	* plugins/gtk/gtk+.xml.in: Setup the "use-placeholders" attribute properly
	  (TRUE on GtkContainer, FALSE on GtkMenuShell, GtkMenuItem, GtkToolBar,
	  GtkFixed, GtkLayout).


svn path=/trunk/; revision=1057
parent cbf167ca
2007-01-27 Tristan Van Berkom <tvb@gnome.org>
* gladeui/glade-command.c: Set project properly in glade_command_remove()
(this fixes undo/redo of add/remove commands in the menueditor... along
with the following fixes).
* gladeui/glade-widget-adaptor.[ch], gladeui/glade-xml-utils.h:
Added GWA_USE_PLACEHOLDERS(), a boolean on the GWA that is loaded
from the catalog.
* gladeui/glade-utils.[ch]: Removed glade_util_[any_]container_relation.
* gladeui/glade-widget.[ch]: Added glade_widget_placeholder_relation
* gladeui/glade-app.c, gladeui/glade-fixed.c: Adjusted callers for new
glade-widget api.
* gladeui/glade-fixed.[ch]: Removed the "use-placehodlers" property
since it is now redundant with the new GWA_USE_PLACEHOLDERS (this
simplifies things a little).
* gladeui/glade-binding.c: Fixed obnoxious startup errors (bug 399178),
glade_binding_get_all(), use g_list_prepend()/g_list_reverse() instead
of g_list_append() to build a list.
* gladeui/glade-base-editor.c: Use the right adaptor for gwa_get_children
in glade_base_editor_change_type () (was using adaptor for the destination
type).
* plugins/gtk/glade-gtk.c: Remove use of "use-placeholders" property
on GladeFixed objects.
* plugins/gtk/gtk+.xml.in: Setup the "use-placeholders" attribute properly
(TRUE on GtkContainer, FALSE on GtkMenuShell, GtkMenuItem, GtkToolBar,
GtkFixed, GtkLayout).
2007-01-25 Christian Persch <chpe@svn.gnome.org>
* help/Makefile.am: Correct DOC_LINGUAS.
......
......@@ -1072,7 +1072,7 @@ glade_app_command_paste (GladePlaceholder *placeholder)
GladeClipboard *clipboard;
GList *list;
GladeWidget *widget = NULL, *parent;
gint gtkcontainer_relations = 0;
gint placeholder_relations = 0;
GladeFixed *fixed = NULL;
app = glade_app_get();
......@@ -1089,6 +1089,16 @@ glade_app_command_paste (GladePlaceholder *placeholder)
(placeholder) ? glade_placeholder_get_parent (placeholder) : NULL;
if (parent && GLADE_IS_FIXED (parent)) fixed = GLADE_FIXED (parent);
/* Check if parent is actually a container of any sort */
if (parent &&
!glade_widget_adaptor_is_container (parent->adaptor))
{
glade_util_ui_message (glade_app_get_window(),
GLADE_UI_INFO,
_("Unable to paste to the selected parent"));
return;
}
/* Check if selection is good */
if ((list = glade_app_get_selection ()) != NULL)
......@@ -1118,33 +1128,35 @@ glade_app_command_paste (GladePlaceholder *placeholder)
{
widget = list->data;
if (GTK_WIDGET_TOPLEVEL (widget->object) == FALSE && parent)
if (!GWA_IS_TOPLEVEL (widget->adaptor) && parent)
{
/* Ensure a paste is supported
/* Count placeholder relations
*/
if (glade_util_widget_pastable (widget, parent) == FALSE)
{
glade_util_ui_message (glade_app_get_window (),
GLADE_UI_ERROR,
_("Unable to paste widget %s to parent %s"),
widget->name, parent->name);
return;
}
if (glade_widget_placeholder_relation (parent, widget))
placeholder_relations++;
}
/* Count gtk container relations
*/
if (glade_util_gtkcontainer_relation (parent, widget))
gtkcontainer_relations++;
/* Check if there is no parent and at least on of the pasted
* widgets is not a toplevel
*/
else if (!GWA_IS_TOPLEVEL (widget->adaptor) && !parent)
{
glade_util_ui_message (glade_app_get_window (),
GLADE_UI_INFO,
_("Unable to paste widget %s without a parent"),
widget->name);
return;
}
}
g_assert (widget);
/* Check that GladeFixed will cope...
/* A GladeFixed that doesnt use placeholders can only paste one
* at a time
*/
if (GTK_WIDGET_TOPLEVEL (widget->object) == FALSE &&
parent && fixed && fixed->use_placeholders == FALSE &&
gtkcontainer_relations != 1)
parent && fixed && !GWA_USE_PLACEHOLDERS (parent->adaptor) &&
g_list_length (clipboard->selection) != 1)
{
glade_util_ui_message (glade_app_get_window (),
GLADE_UI_INFO,
......@@ -1154,8 +1166,9 @@ glade_app_command_paste (GladePlaceholder *placeholder)
}
/* Check that enough placeholders are available */
if (parent && (fixed == NULL || fixed->use_placeholders) &&
glade_util_count_placeholders (parent) < gtkcontainer_relations)
if (parent &&
GWA_USE_PLACEHOLDERS (parent->adaptor) &&
glade_util_count_placeholders (parent) < placeholder_relations)
{
glade_util_ui_message (glade_app_get_window (),
GLADE_UI_INFO,
......
......@@ -697,7 +697,7 @@ glade_base_editor_delete_child (GladeBaseEditor *e)
GtkTreeIter iter, parent;
gboolean retval;
if (glade_base_editor_get_child_selected (e, &iter) == FALSE) return;
if (!glade_base_editor_get_child_selected (e, &iter)) return;
gtk_tree_model_get (e->priv->model, &iter,
GLADE_BASE_EDITOR_MENU_GWIDGET, &child, -1);
......@@ -1080,7 +1080,7 @@ glade_base_editor_change_type (GladeBaseEditor *editor,
child_new = glade_widget_get_object (gchild_new);
/* Cut and Paste childrens */
if ((children = glade_widget_adaptor_get_children (adaptor, child)))
if ((children = glade_widget_adaptor_get_children (gchild->adaptor, child)))
{
GList *gchildren = NULL;
......
......@@ -303,7 +303,7 @@ static void
glade_binding_get_all_foreach (gpointer key, gpointer value, gpointer user_data)
{
GList **l = user_data;
*l = g_list_append (*l, value);
*l = g_list_prepend (*l, value);
}
/**
......@@ -316,10 +316,11 @@ GList *
glade_binding_get_all (void)
{
GList *l = NULL;
if (bindings)
g_hash_table_foreach (bindings, glade_binding_get_all_foreach, &l);
g_hash_table_foreach (bindings, glade_binding_get_all_foreach, &l);
return l;
return g_list_reverse (l);
}
/**
......
......@@ -921,7 +921,8 @@ glade_command_add (GList *widgets, GladeWidget *parent, GladePlaceholder *placeh
{
glade_command_placeholder_connect (cdata, placeholder);
}
else if (cdata->parent && glade_util_gtkcontainer_relation (cdata->parent, widget))
else if (cdata->parent &&
glade_widget_placeholder_relation (cdata->parent, widget))
{
GtkContainer *cont = GTK_CONTAINER (cdata->parent->object);
......@@ -1011,6 +1012,8 @@ glade_command_remove (GList *widgets)
}
}
me->project = glade_widget_get_project (widget);
for (list = widgets; list && list->data; list = list->next)
{
widget = list->data;
......@@ -1018,14 +1021,13 @@ glade_command_remove (GList *widgets)
cdata = g_new0 (CommandData, 1);
cdata->widget = g_object_ref (G_OBJECT (widget));
cdata->parent = glade_widget_get_parent (widget);
cdata->project = glade_widget_get_project (widget);
if (widget->internal)
g_critical ("Internal widget in Remove");
/* !fixed here */
if (cdata->parent != NULL &&
GLADE_IS_FIXED (cdata->parent) == FALSE &&
glade_util_gtkcontainer_relation
glade_widget_placeholder_relation
(cdata->parent, cdata->widget))
{
glade_command_placeholder_connect
......@@ -1085,7 +1087,7 @@ glade_command_transfer_props (GladeWidget *gnew, GList *saved_props)
}
}
static gboolean
gboolean
glade_command_add_execute (GladeCommandAddRemove *me)
{
GladeProject *active_project = glade_app_get_project ();
......@@ -1095,6 +1097,9 @@ glade_command_add_execute (GladeCommandAddRemove *me)
if (me->widgets)
{
/* XXX FIXME: Selection here should be specific to the project
* related to this command
*/
glade_app_selection_clear (FALSE);
for (list = me->widgets; list && list->data; list = list->next)
......
......@@ -45,8 +45,7 @@ enum {
PROP_Y_PROP,
PROP_WIDTH_PROP,
PROP_HEIGHT_PROP,
PROP_CAN_RESIZE,
PROP_USE_PLACEHOLDERS
PROP_CAN_RESIZE
};
/* signals */
......@@ -686,12 +685,6 @@ glade_fixed_add_child_impl (GladeWidget *gwidget_fixed,
/* Chain up for the basic parenting */
GLADE_WIDGET_CLASS (parent_class)->add_child
(GLADE_WIDGET (fixed), child, at_mouse);
/* Could be a delagate object that is not a widget or a special
* relationship like menushell->menuitem
*/
if (!glade_util_gtkcontainer_relation (GLADE_WIDGET (fixed), child))
return;
gtk_widget_add_events (GTK_WIDGET (child->object),
GDK_POINTER_MOTION_MASK |
......@@ -956,9 +949,6 @@ glade_fixed_set_property (GObject *object,
case PROP_CAN_RESIZE:
fixed->can_resize = g_value_get_boolean (value);
break;
case PROP_USE_PLACEHOLDERS:
fixed->use_placeholders = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -980,7 +970,6 @@ glade_fixed_get_property (GObject *object,
case PROP_WIDTH_PROP: g_value_set_string (value, fixed->width_prop); break;
case PROP_HEIGHT_PROP: g_value_set_string (value, fixed->height_prop); break;
case PROP_CAN_RESIZE: g_value_set_boolean (value, fixed->can_resize); break;
case PROP_USE_PLACEHOLDERS: g_value_set_boolean (value, fixed->use_placeholders); break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -1058,13 +1047,6 @@ glade_fixed_class_init (GladeFixedClass *fixed_class)
_("Whether this container supports resizes of child widgets"),
TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property
(gobject_class, PROP_USE_PLACEHOLDERS,
g_param_spec_boolean
("use_placeholders", _("Use Placeholders"),
_("Whether this container use placeholders, the backend is responsable for setting up this property"),
FALSE, G_PARAM_READWRITE));
/**
* GladeFixed::configure-child:
* @gladewidget: the #GladeFixed which received the signal.
......
......@@ -53,7 +53,6 @@ struct _GladeFixed {
gboolean can_resize; /* whether the container supports child resizes or only
* drags.
*/
gboolean use_placeholders;
/* State machine used to commit properties at the end
* of a drag or a resize (i.e. a "configure").
......
......@@ -1005,63 +1005,7 @@ glade_util_container_get_all_children (GtkContainer *container)
}
/**
* glade_util_gtkcontainer_relation:
* @widget: a GladeWidget
* @parent: a GladeWidget
*
*
* Returns whether this widget is parented by a GtkContainer
* and that it is parented through the GtkContainer interface.
*/
gboolean
glade_util_gtkcontainer_relation (GladeWidget *parent, GladeWidget *widget)
{
g_return_val_if_fail (GLADE_IS_WIDGET (parent), FALSE);
g_return_val_if_fail (GLADE_IS_WIDGET (widget), FALSE);
return (GTK_IS_CONTAINER (parent->object) &&
GTK_IS_WIDGET (widget->object));
}
/**
* glade_util_any_gtkcontainer_relation:
* @widgets: a #GList of #GladeWidgets
* @parent: the parent #GladeWidget
*
* Returns: whether any of these widgets are parented by a GtkContainer
* through the GtkContainer interface.
*/
gboolean
glade_util_any_gtkcontainer_relation (GladeWidget *parent, GList *widgets)
{
GList *list;
for (list = widgets; list && list->data; list = list->next)
if (glade_util_gtkcontainer_relation
(parent, GLADE_WIDGET (list->data)))
return TRUE;
return FALSE;
}
/**
* glade_util_widget_pastable:
* @child: a GladeWidget
* @widget: a GladeWidget
*
* Returns whether this parent widget has an implementation to parent child.
*/
gboolean
glade_util_widget_pastable (GladeWidget *child,
GladeWidget *parent)
{
g_return_val_if_fail (GLADE_IS_WIDGET (child), FALSE);
g_return_val_if_fail (GLADE_IS_WIDGET (parent), FALSE);
/* FIXME: what to do now ? */
return TRUE;
}
/**
* glade_util_widget_pastable:
* glade_util_count_placeholders:
* @parent: a #GladeWidget
*
* Returns the amount of #GladePlaceholders parented by @parent
......
......@@ -79,16 +79,6 @@ GladeWidget *glade_util_get_parent (GtkWidget *w);
LIBGLADEUI_API
GList *glade_util_container_get_all_children (GtkContainer *container);
LIBGLADEUI_API
gboolean glade_util_gtkcontainer_relation (GladeWidget *parent,
GladeWidget *widget);
LIBGLADEUI_API
gboolean glade_util_any_gtkcontainer_relation (GladeWidget *parent,
GList *widgets);
LIBGLADEUI_API
gboolean glade_util_widget_pastable (GladeWidget *child,
GladeWidget *parent);
LIBGLADEUI_API
gint glade_util_count_placeholders (GladeWidget *parent);
......
......@@ -1483,6 +1483,11 @@ gwa_extend_with_node (GladeWidgetAdaptor *adaptor,
glade_xml_get_property_boolean
(node, GLADE_TAG_TOPLEVEL, adaptor_class->toplevel);
/* Check if this class uses placeholders for child widgets */
adaptor_class->use_placeholders =
glade_xml_get_property_boolean
(node, GLADE_TAG_USE_PLACEHOLDERS, adaptor_class->use_placeholders);
/* Override the special-child-type here */
if ((child_type =
glade_xml_get_value_string (node, GLADE_TAG_SPECIAL_CHILD_TYPE)) != NULL)
......@@ -2418,6 +2423,8 @@ glade_widget_adaptor_query (GladeWidgetAdaptor *adaptor)
GladePropertyClass *pclass;
GList *l;
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), FALSE);
for (l = adaptor->properties; l; l = l->next)
{
pclass = l->data;
......@@ -2447,6 +2454,9 @@ glade_widget_adaptor_get_packing_default (GladeWidgetAdaptor *child_adaptor,
{
GladeChildPacking *packing = NULL;
GList *l;
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (child_adaptor), NULL);
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (container_adaptor), NULL);
if ((packing =
glade_widget_adaptor_get_child_packing (child_adaptor,
......@@ -2497,3 +2507,26 @@ glade_widget_adaptor_action_activate (GladeWidget *widget, const gchar *action_i
return;
}
}
/**
* glade_widget_adaptor_is_container:
* @adaptor: A #GladeWidgetAdaptor
*
* Checks whether or not this adaptor has support
* to interface with child objects.
*
* Returns whether or not @adaptor is a container
*/
gboolean
glade_widget_adaptor_is_container (GladeWidgetAdaptor *adaptor)
{
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), FALSE);
/* A GWA container must at least implement add/remove/get_children
*/
return (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->add &&
GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->remove &&
GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->get_children);
}
......@@ -47,6 +47,15 @@ typedef struct _GladeSignalClass GladeSignalClass;
#define GWA_IS_TOPLEVEL(obj) \
((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->toplevel : FALSE)
/**
* GWA_USE_PLACEHOLDERS:
* @obj: A #GladeWidgetAdaptor
*
* Checks whether this widget class has been marked to
* use placeholders in child widget operations
*/
#define GWA_USE_PLACEHOLDERS(obj) \
((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->use_placeholders : FALSE)
/**
* GWA_GET_CLASS:
......@@ -357,15 +366,18 @@ struct _GladeWidgetAdaptorClass
*/
gboolean toplevel; /* If this class is toplevel */
gboolean use_placeholders; /* Whether or not to use placeholders
* to interface with child widgets.
*/
GladePostCreateFunc post_create; /* Executed after widget creation:
* plugins use this to setup various
* support codes.
*/
* plugins use this to setup various
* support codes.
*/
GladeGetInternalFunc get_internal_child; /* Retrieves the the internal child
* of the given name.
*/
* of the given name.
*/
GladeEditorLaunchFunc launch_editor; /* Entry point for custom editors. */
......@@ -540,6 +552,10 @@ gchar *glade_widget_adaptor_get_packing_default(GladeWidgetAdaptor
LIBGLADEUI_API
void glade_widget_adaptor_action_activate (GladeWidget *widget,
const gchar *action_id);
LIBGLADEUI_API
gboolean glade_widget_adaptor_is_container (GladeWidgetAdaptor *adaptor);
G_END_DECLS
#endif /* __GLADE_WIDGET_ADAPTOR_H__ */
......@@ -4321,3 +4321,29 @@ glade_widget_embed_using_signals (GladeWidget *widget)
g_object_set_qdata (G_OBJECT (widget),
glade_embedded_window_quark, GINT_TO_POINTER (TRUE));
}
/**
* glade_widget_placeholder_relation:
* @parent: A #GladeWidget
* @widget: The child #GladeWidget
*
* Returns whether placeholders should be used
* in operations concerning this parent & child.
*
* Currently that criteria is whether @parent is a
* GtkContainer, @widget is a GtkWidget and the parent
* adaptor has been marked to use placeholders.
*
* Returns: whether to use placeholders for this relationship.
*/
gboolean
glade_widget_placeholder_relation (GladeWidget *parent,
GladeWidget *widget)
{
g_return_val_if_fail (GLADE_IS_WIDGET (parent), FALSE);
g_return_val_if_fail (GLADE_IS_WIDGET (widget), FALSE);
return (GTK_IS_CONTAINER (parent->object) &&
GTK_IS_WIDGET (widget->object) &&
GWA_USE_PLACEHOLDERS (parent->adaptor));
}
......@@ -188,6 +188,10 @@ gboolean glade_widget_has_decendant (GladeWidget *w
LIBGLADEUI_API
GladeWidget *glade_widget_event_widget (void);
LIBGLADEUI_API
gboolean glade_widget_placeholder_relation (GladeWidget *parent,
GladeWidget *widget);
/*******************************************************************************
Project, object property references
*******************************************************************************/
......
......@@ -102,6 +102,7 @@ typedef struct _GladeXmlDoc GladeXmlDoc;
#define GLADE_TAG_STOCK "stock"
#define GLADE_TAG_GET_TYPE_FUNCTION "get-type-function"
#define GLADE_TAG_TOPLEVEL "toplevel"
#define GLADE_TAG_USE_PLACEHOLDERS "use-placeholders"
#define GLADE_TAG_EVENT_HANDLER_CONNECTED "EventHandlerConnected"
#define GLADE_TAG_FALSE "False"
#define GLADE_TAG_TRUE "True"
......@@ -109,6 +110,7 @@ typedef struct _GladeXmlDoc GladeXmlDoc;
#define GLADE_TAG_NO "No"
#define GLADE_ENUM_DATA_TAG "GladeEnumDataTag"
/* search child */
GladeXmlNode * glade_xml_search_child (GladeXmlNode * node, const gchar *name);
GladeXmlNode * glade_xml_search_child_required (GladeXmlNode * tree, const gchar* name);
......
......@@ -613,7 +613,6 @@ glade_gtk_box_post_create (GladeWidgetAdaptor *adaptor,
*/
g_object_set (gwidget,
"can-resize", FALSE,
"use-placeholders", TRUE,
NULL);
g_signal_connect (G_OBJECT (gwidget), "configure-child",
......@@ -1436,8 +1435,6 @@ glade_gtk_table_post_create (GladeWidgetAdaptor *adaptor,
{
GladeWidget *gwidget =
glade_widget_get_from_gobject (container);
g_object_set (gwidget, "use-placeholders", TRUE, NULL);
g_signal_connect (G_OBJECT (gwidget), "configure-child",
G_CALLBACK (glade_gtk_table_configure_child), container);
......@@ -2953,7 +2950,7 @@ glade_gtk_fixed_layout_remove_child (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GTK_IS_CONTAINER (object));
g_return_if_fail (GTK_IS_WIDGET (child));
gtk_container_add (GTK_CONTAINER (object), GTK_WIDGET (child));
gtk_container_remove (GTK_CONTAINER (object), GTK_WIDGET (child));
}
/* ----------------------------- GtkWindow ------------------------------ */
......
......@@ -75,7 +75,7 @@
</glade-widget-class>
<glade-widget-class name="GtkContainer" _title="Container">
<glade-widget-class name="GtkContainer" _title="Container" use-placeholders="True">
<post-create-function>glade_gtk_container_post_create</post-create-function>
<add-child-function>glade_gtk_container_add_child</add-child-function>
......@@ -196,7 +196,7 @@
</properties>
</glade-widget-class>
<glade-widget-class name="GtkMenuShell" _title="Menu Shell">
<glade-widget-class name="GtkMenuShell" _title="Menu Shell" use-placeholders="False">
<post-create-function>empty</post-create-function>
<add-child-function>glade_gtk_menu_shell_add_item</add-child-function>
<remove-child-function>glade_gtk_menu_shell_remove_item</remove-child-function>
......@@ -210,7 +210,7 @@
</packing-properties>
</glade-widget-class>
<glade-widget-class name="GtkMenuItem" generic-name="menuitem" _title="Menu Item">
<glade-widget-class name="GtkMenuItem" generic-name="menuitem" _title="Menu Item" use-placeholders="False">
<post-create-function>glade_gtk_menu_item_post_create</post-create-function>
<get-children-function>glade_gtk_menu_item_get_submenu</get-children-function>
<set-property-function>glade_gtk_menu_item_set_property</set-property-function>
......@@ -302,7 +302,7 @@
</packing-defaults>
</glade-widget-class>
<glade-widget-class name="GtkToolbar" generic-name="toolbar" _title="Tool Bar">
<glade-widget-class name="GtkToolbar" generic-name="toolbar" _title="Tool Bar" use-placeholders="False">
<post-create-function>empty</post-create-function>
<launch-editor-function>glade_gtk_toolbar_launch_editor</launch-editor-function>
<add-child-function>glade_gtk_toolbar_add_child</add-child-function>
......@@ -989,7 +989,7 @@
</properties>
</glade-widget-class>
<glade-widget-class name="GtkLayout" generic-name="layout" _title="Layout" fixed="True">
<glade-widget-class name="GtkLayout" generic-name="layout" _title="Layout" fixed="True" use-placeholders="False">
<post-create-function>glade_gtk_fixed_layout_post_create</post-create-function>
<add-child-function>glade_gtk_fixed_layout_add_child</add-child-function>
<remove-child-function>glade_gtk_fixed_layout_remove_child</remove-child-function>
......@@ -999,7 +999,7 @@
</properties>
</glade-widget-class>
<glade-widget-class name="GtkFixed" generic-name="fixed" _title="Fixed" fixed="True">
<glade-widget-class name="GtkFixed" generic-name="fixed" _title="Fixed" fixed="True" use-placeholders="False">
<post-create-function>glade_gtk_fixed_layout_post_create</post-create-function>
<add-child-function>glade_gtk_fixed_layout_add_child</add-child-function>
<remove-child-function>glade_gtk_fixed_layout_remove_child</remove-child-function>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment