glade3 r1955 - in trunk: . gladeui plugins/gtk+
- From: tvb svn gnome org
- To: svn-commits-list gnome org
- Subject: glade3 r1955 - in trunk: . gladeui plugins/gtk+
- Date: Mon, 22 Sep 2008 17:54:58 +0000 (UTC)
Author: tvb
Date: Mon Sep 22 17:54:58 2008
New Revision: 1955
URL: http://svn.gnome.org/viewvc/glade3?rev=1955&view=rev
Log:
* gladeui/glade-editor-property.c: Fixed adjustments when values are null in
libglade mode
* plugins/gtk+/gtk+.xml.in: Reorganized groups, added some more metadatas
* plugins/gtk+/glade-convert.c:
- Convert "text" property of TextView to a textbuffer and text property
in builder format.
- Convert "tooltip" <--> "tooltip-text"
* gladeui/glade-popup.c, gladeui/glade-inspector.c: enhanced menu for
inspector empty spots (paste toplevels)
* gladeui/glade-editor-property.c: Adjustments in libglade had bugs, hardcoded
default values here and made sure object is NULL on default.
* gladeui/glade-widget.[ch]: Removed glade_widget_project_notify()
* gladeui/glade-command.c:
- glade_command_remove() implicitly makes commands to unset any properties
reffering to the object being removed from the project.
- project conversions now cleanup unsupported widgets/properties
* gladeui/glade-palette.c, gladeui/glade-app.c: Moved toplevel widget creation
code from gladeapp to gladepalette.
Modified:
trunk/ChangeLog
trunk/gladeui/glade-app.c
trunk/gladeui/glade-app.h
trunk/gladeui/glade-command.c
trunk/gladeui/glade-editor-property.c
trunk/gladeui/glade-inspector.c
trunk/gladeui/glade-inspector.h
trunk/gladeui/glade-palette.c
trunk/gladeui/glade-popup.c
trunk/gladeui/glade-project.c
trunk/gladeui/glade-property.c
trunk/gladeui/glade-property.h
trunk/gladeui/glade-widget.c
trunk/gladeui/glade-widget.h
trunk/plugins/gtk+/glade-convert.c
trunk/plugins/gtk+/glade-gtk.c
trunk/plugins/gtk+/gtk+.xml.in
Modified: trunk/gladeui/glade-app.c
==============================================================================
--- trunk/gladeui/glade-app.c (original)
+++ trunk/gladeui/glade-app.c Mon Sep 22 17:54:58 2008
@@ -288,29 +288,6 @@
glade_app_refresh_undo_redo_button (app, list->data, FALSE);
}
-static void
-on_palette_button_clicked (GladePalette *palette, GladeApp *app)
-{
- GladeWidgetAdaptor *adaptor;
- GladeWidget *widget;
-
- g_return_if_fail (GLADE_IS_PALETTE (palette));
- adaptor = glade_palette_get_current_item (palette);
-
- /* class may be NULL if the selector was pressed */
- if (adaptor && GWA_IS_TOPLEVEL (adaptor))
- {
- widget = glade_palette_create_root_widget (palette, adaptor);
-
- /* if this is a top level widget set the accel group */
- if (widget && app->priv->accel_group && GTK_IS_WINDOW (widget->object))
- {
- gtk_window_add_accel_group (GTK_WINDOW (widget->object),
- app->priv->accel_group);
- }
- }
-}
-
static gboolean
clipboard_view_on_delete_cb (GtkWidget *clipboard_view, GdkEvent *e, GladeApp *app)
{
@@ -441,9 +418,6 @@
app->priv->palette = (GladePalette *) glade_palette_new (app->priv->catalogs);
g_object_ref_sink (app->priv->palette);
- g_signal_connect (G_OBJECT (app->priv->palette), "toggled",
- G_CALLBACK (on_palette_button_clicked), app);
-
/* Create Editor */
app->priv->editor = GLADE_EDITOR (glade_editor_new ());
g_object_ref_sink (GTK_OBJECT (app->priv->editor));
@@ -1259,11 +1233,19 @@
clipboard = glade_app_get_clipboard ();
/* If there is a selection, paste in to the selected widget, otherwise
- * paste into the placeholder's parent.
+ * paste into the placeholder's parent, or at the toplevel
*/
parent = list ? glade_widget_get_from_gobject (list->data) :
(placeholder) ? glade_placeholder_get_parent (placeholder) : NULL;
-
+
+ widget = clipboard->selection ? clipboard->selection->data : NULL;
+
+ /* Ignore parent argument if we are pasting a toplevel
+ */
+ if (g_list_length (clipboard->selection) == 1 &&
+ widget && GWA_IS_TOPLEVEL (widget->adaptor))
+ parent = NULL;
+
if (parent && GLADE_IS_FIXED (parent)) fixed = GLADE_FIXED (parent);
/* Check if parent is actually a container of any sort */
@@ -1483,6 +1465,12 @@
app->priv->accel_group = accel_group;
}
+GtkAccelGroup *
+glade_app_get_accel_group (void)
+{
+ return glade_app_get()->priv->accel_group;
+}
+
static gboolean
glade_app_undo_button_destroyed (GtkWidget *button, GladeApp *app)
{
Modified: trunk/gladeui/glade-app.h
==============================================================================
--- trunk/gladeui/glade-app.h (original)
+++ trunk/gladeui/glade-app.h Mon Sep 22 17:54:58 2008
@@ -45,8 +45,6 @@
typedef struct _GladeApp GladeApp;
typedef struct _GladeAppPrivate GladeAppPrivate;
typedef struct _GladeAppClass GladeAppClass;
-typedef enum _GladePointerMode GladePointerMode;
-
/**
* GladePointerMode:
@@ -63,6 +61,8 @@
GLADE_POINTER_ADD_WIDGET,
GLADE_POINTER_DRAG_RESIZE
};
+typedef enum _GladePointerMode GladePointerMode;
+
struct _GladeApp
{
@@ -162,6 +162,8 @@
GtkWindow *glade_app_get_transient_parent (void);
void glade_app_set_accel_group (GtkAccelGroup *accel_group);
+
+GtkAccelGroup *glade_app_get_accel_group (void);
void glade_app_update_instance_count (GladeProject *project);
Modified: trunk/gladeui/glade-command.c
==============================================================================
--- trunk/gladeui/glade-command.c (original)
+++ trunk/gladeui/glade-command.c Mon Sep 22 17:54:58 2008
@@ -1043,6 +1043,21 @@
} /* end of glade_command_add() */
+
+
+static void
+glade_command_delete_prop_refs (GladeWidget *widget)
+{
+ GladeProperty *property;
+
+ while (widget->prop_refs)
+ {
+ property = GLADE_PROPERTY (widget->prop_refs->data);
+ glade_command_set_property (property, NULL);
+ }
+}
+
+
/**
* glade_command_remove:
* @widgets: a #GList of #GladeWidgets
@@ -1058,6 +1073,7 @@
CommandData *cdata;
GtkWidget *placeholder;
GList *list, *l;
+ gchar *desc;
g_return_if_fail (widgets != NULL);
@@ -1079,6 +1095,16 @@
}
me->project = glade_widget_get_project (widget);
+ GLADE_COMMAND (me)->description = g_strdup ("dummy");
+
+ if (g_list_length (widgets) == 1)
+ desc = g_strdup_printf (_("Remove %s"),
+ GLADE_WIDGET (widgets->data)->name);
+ else
+ desc = g_strdup_printf (_("Remove multiple"));
+
+ glade_command_push_group (desc);
+ g_free (desc);
for (list = widgets; list && list->data; list = list->next)
{
@@ -1088,6 +1114,9 @@
cdata->widget = g_object_ref (G_OBJECT (widget));
cdata->parent = glade_widget_get_parent (widget);
cdata->project = glade_widget_get_project (widget);
+
+ /* Undoably unset any object properties that may point to the removed object */
+ glade_command_delete_prop_refs (widget);
if (widget->internal)
g_critical ("Internal widget in Remove");
@@ -1118,14 +1147,6 @@
}
}
- if (g_list_length (widgets) == 1)
- GLADE_COMMAND (me)->description =
- g_strdup_printf (_("Remove %s"),
- GLADE_WIDGET (widgets->data)->name);
- else
- GLADE_COMMAND (me)->description =
- g_strdup_printf (_("Remove multiple"));
-
g_assert (widget);
glade_command_check_group (GLADE_COMMAND (me));
@@ -1135,6 +1156,7 @@
else
g_object_unref (G_OBJECT (me));
+ glade_command_pop_group ();
} /* end of glade_command_remove() */
static void
@@ -1192,13 +1214,10 @@
g_strdup (cdata->special_type),
g_free);
}
- }
- /* Only transfer properties when they are from the clipboard,
- * otherwise prioritize packing defaults.
- */
- if (me->from_clipboard)
- {
+ /* Only transfer properties when they are from the clipboard,
+ * otherwise prioritize packing defaults.
+ */
saved_props =
glade_widget_dup_properties (cdata->widget->packing_properties, FALSE);
@@ -2173,6 +2192,73 @@
/* no unify/collapse */
}
+
+static void
+glade_command_convert_cleanup_props (GList *properties,
+ GladeProjectFormat fmt)
+{
+ GladeProperty *property;
+ GList *list;
+
+ for (list = properties; list; list = list->next)
+ {
+ property = list->data;
+
+ if (glade_property_original_default (property))
+ continue;
+
+ /* Reset any unsupported properties to thier defaults */
+ if ((fmt == GLADE_PROJECT_FORMAT_GTKBUILDER &&
+ property->klass->libglade_only) ||
+ (fmt == GLADE_PROJECT_FORMAT_LIBGLADE &&
+ property->klass->libglade_unsupported))
+ {
+ GValue value = { 0, };
+
+ glade_property_get_default (property, &value);
+ glade_command_set_property (property, &value);
+ g_value_unset (&value);
+ }
+ }
+}
+
+
+static void
+glade_command_convert_cleanup (GladeProject *project,
+ GladeProjectFormat fmt)
+{
+ GladeWidget *widget;
+ const GList *objects;
+
+ for (objects = glade_project_get_objects (project); objects; objects = objects->next)
+ {
+ widget = glade_widget_get_from_gobject (objects->data);
+
+ /* If libglade-only widget going in builder format ... */
+ if ((fmt == GLADE_PROJECT_FORMAT_GTKBUILDER &&
+ GWA_LIBGLADE_ONLY (widget->adaptor)) ||
+ /* If going in libglade format... */
+ (fmt == GLADE_PROJECT_FORMAT_LIBGLADE &&
+ /* ... and widget is unsupported by libglade */
+ (GWA_LIBGLADE_UNSUPPORTED (widget->adaptor) ||
+ /* ... and widget is a non GtkWidget object */
+ !GTK_IS_WIDGET (widget->object) ||
+ /* ... and its a non-window toplevel */
+ (!widget->parent && !GTK_IS_WINDOW (widget->object)))))
+ {
+ GList delete = { 0, };
+ delete.data = widget;
+ glade_command_delete (&delete);
+ }
+ else
+ {
+ glade_command_convert_cleanup_props (widget->properties, fmt);
+ glade_command_convert_cleanup_props (widget->packing_properties, fmt);
+ }
+ }
+}
+
+
/**
* glade_command_set_project_format:
* @project: a #GladeProject
@@ -2219,6 +2305,8 @@
catalog = glade_app_get_catalog (cat_name);
glade_catalog_convert_project (catalog, project, fmt);
+
+ glade_command_convert_cleanup (project, fmt);
g_free (cat_name);
}
Modified: trunk/gladeui/glade-editor-property.c
==============================================================================
--- trunk/gladeui/glade-editor-property.c (original)
+++ trunk/gladeui/glade-editor-property.c Mon Sep 22 17:54:58 2008
@@ -2630,10 +2630,13 @@
project = glade_widget_get_project (eprop->property->widget);
parent = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
- if (eprop->property->klass->create_type)
- create_adaptor = glade_widget_adaptor_get_by_name (eprop->property->klass->create_type);
- if (!create_adaptor)
- create_adaptor = glade_widget_adaptor_get_by_type (eprop->klass->pspec->value_type);
+ if (glade_project_get_format (project) != GLADE_PROJECT_FORMAT_LIBGLADE)
+ {
+ if (eprop->property->klass->create_type)
+ create_adaptor = glade_widget_adaptor_get_by_name (eprop->property->klass->create_type);
+ if (!create_adaptor)
+ create_adaptor = glade_widget_adaptor_get_by_type (eprop->klass->pspec->value_type);
+ }
if (create_adaptor)
{
@@ -3128,8 +3131,8 @@
GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (eprop);
GladeProjectFormat fmt;
GObject *object;
- GtkAdjustment *adj;
-
+ GtkAdjustment *adj = NULL;
+
/* Chain up first */
editor_property_class->load (eprop, property);
@@ -3140,9 +3143,9 @@
if (fmt == GLADE_PROJECT_FORMAT_LIBGLADE)
{
object = g_value_get_object (property->value);
- if (object == NULL) return;
-
- adj = GTK_ADJUSTMENT (object);
+
+ if (object)
+ adj = GTK_ADJUSTMENT (object);
/* Keep track of external adjustment changes */
g_signal_connect (object, "value-changed",
@@ -3150,11 +3153,12 @@
eprop);
/* Update adjustment's values */
- eprop_adj->value_adj->lower = adj->lower;
- eprop_adj->value_adj->upper = adj->upper;
- eprop_adj->value_adj->step_increment = adj->step_increment;
- eprop_adj->value_adj->page_increment = adj->page_increment;
- eprop_adj->value_adj->page_size = adj->page_size;
+ eprop_adj->value_adj->value = adj ? adj->value : 0.0;
+ eprop_adj->value_adj->lower = adj ? adj->lower : 0.0;
+ eprop_adj->value_adj->upper = adj ? adj->upper : 100.0;
+ eprop_adj->value_adj->step_increment = adj ? adj->step_increment : 1;
+ eprop_adj->value_adj->page_increment = adj ? adj->page_increment : 10;
+ eprop_adj->value_adj->page_size = adj ? adj->page_size : 10;
/* Block Handlers */
g_signal_handler_block (eprop_adj->value, eprop_adj->ids.value);
@@ -3165,12 +3169,14 @@
g_signal_handler_block (eprop_adj->page_size, eprop_adj->ids.page_size);
/* Update spinbuttons values */
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->value), adj->value);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->lower), adj->lower);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->upper), adj->upper);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->step_increment), adj->step_increment);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_increment), adj->page_increment);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_size), adj->page_size);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->value), eprop_adj->value_adj->value);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->lower), eprop_adj->value_adj->lower);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->upper), eprop_adj->value_adj->upper);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->step_increment),
+ eprop_adj->value_adj->step_increment);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_increment),
+ eprop_adj->value_adj->page_increment);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_size), eprop_adj->value_adj->page_size);
/* Unblock Handlers */
g_signal_handler_unblock (eprop_adj->value, eprop_adj->ids.value);
@@ -3180,9 +3186,8 @@
g_signal_handler_unblock (eprop_adj->page_increment, eprop_adj->ids.page_increment);
g_signal_handler_unblock (eprop_adj->page_size, eprop_adj->ids.page_size);
- gtk_notebook_set_page (GTK_NOTEBOOK (eprop_adj->notebook), 0);
-
gtk_widget_show (eprop_adj->libglade);
+ gtk_notebook_set_page (GTK_NOTEBOOK (eprop_adj->notebook), 0);
}
else
{
@@ -3214,7 +3219,9 @@
GObject *object;
object = g_value_get_object (eprop->property->value);
- if (object == NULL) return NULL;
+ if (object == NULL)
+ return GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 100.0,
+ 1.0, 10.0, 10.0));
adj = GTK_ADJUSTMENT (object);
@@ -3233,8 +3240,20 @@
GValue value = {0, };
g_value_init (&value, GTK_TYPE_ADJUSTMENT);
- g_value_set_object (&value, G_OBJECT (adjustment));
+ if (adjustment->value == 0.00 &&
+ adjustment->lower == 0.00 &&
+ adjustment->upper == 100.00 &&
+ adjustment->step_increment == 1.00 &&
+ adjustment->page_increment == 10.00 &&
+ adjustment->page_size == 10.00)
+ {
+ gtk_object_destroy (GTK_OBJECT (adjustment));
+ g_value_set_object (&value, NULL);
+ }
+ else
+ g_value_set_object (&value, G_OBJECT (adjustment));
+
glade_editor_property_commit_no_callback (eprop, &value);
g_value_unset (&value);
Modified: trunk/gladeui/glade-inspector.c
==============================================================================
--- trunk/gladeui/glade-inspector.c (original)
+++ trunk/gladeui/glade-inspector.c Mon Sep 22 17:54:58 2008
@@ -544,7 +544,8 @@
GtkTreePath *path = NULL;
gboolean handled = FALSE;
- if (event->window == gtk_tree_view_get_bin_window (view))
+ if (event->button == 3 &&
+ event->window == gtk_tree_view_get_bin_window (view))
{
if (gtk_tree_view_get_path_at_pos (view, (gint) event->x, (gint) event->y,
&path, NULL,
@@ -559,16 +560,21 @@
*/
gtk_tree_model_get (GTK_TREE_MODEL (inspector->priv->model), &iter,
WIDGET_COLUMN, &widget, -1);
- if (widget != NULL && event->button == 3)
- {
- glade_popup_widget_pop (widget, event, FALSE);
+ if (widget != NULL)
+ glade_popup_widget_pop (widget, event, FALSE);
+ else
+ glade_popup_simple_pop (event);
+
handled = TRUE;
- }
+
gtk_tree_path_free (path);
}
}
else
+ {
glade_popup_simple_pop (event);
+ handled = TRUE;
+ }
}
return handled;
}
Modified: trunk/gladeui/glade-inspector.h
==============================================================================
--- trunk/gladeui/glade-inspector.h (original)
+++ trunk/gladeui/glade-inspector.h Mon Sep 22 17:54:58 2008
@@ -30,9 +30,7 @@
#include <gtk/gtkvbox.h>
-/* forward declaration */
-/* btw, this makes gtkdoc list GladeProject twice in gladeui-sections.txt wich gives a warning. */
-struct GladeProject;
+#include <gladeui/glade-xml-utils.h>
G_BEGIN_DECLS
Modified: trunk/gladeui/glade-palette.c
==============================================================================
--- trunk/gladeui/glade-palette.c (original)
+++ trunk/gladeui/glade-palette.c Mon Sep 22 17:54:58 2008
@@ -323,6 +323,33 @@
}
static void
+glade_palette_toggled (GladePalette *palette)
+{
+ GladeProject *project;
+ GladeWidgetAdaptor *adaptor;
+ GladeWidget *widget;
+
+ g_return_if_fail (GLADE_IS_PALETTE (palette));
+ adaptor = glade_palette_get_current_item (palette);
+
+ /* class may be NULL if the selector was pressed */
+ if (adaptor && GWA_IS_TOPLEVEL (adaptor))
+ {
+ /* Inappropriate toplevel classes for libglade are
+ * disabled so no chance of creating a non-window toplevel here
+ */
+ widget = glade_palette_create_root_widget (palette, adaptor);
+
+ /* if this is a top level widget set the accel group */
+ if (widget && glade_app_get_accel_group () && GTK_IS_WINDOW (widget->object))
+ {
+ gtk_window_add_accel_group (GTK_WINDOW (widget->object),
+ glade_app_get_accel_group ());
+ }
+ }
+}
+
+static void
glade_palette_class_init (GladePaletteClass *klass)
{
GObjectClass *object_class;
@@ -331,7 +358,7 @@
object_class = G_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass);
- klass->toggled = NULL;
+ klass->toggled = glade_palette_toggled;
object_class->get_property = glade_palette_get_property;
object_class->set_property = glade_palette_set_property;
@@ -475,6 +502,7 @@
g_signal_emit (G_OBJECT (palette), glade_palette_signals[TOGGLED], 0);
}
+
static GtkWidget*
glade_palette_new_item (GladePalette *palette, GladeWidgetAdaptor *adaptor)
{
Modified: trunk/gladeui/glade-popup.c
==============================================================================
--- trunk/gladeui/glade-popup.c (original)
+++ trunk/gladeui/glade-popup.c Mon Sep 22 17:54:58 2008
@@ -144,7 +144,10 @@
glade_util_clear_selection ();
/* The selected widget is the paste destination */
- glade_app_selection_set (glade_widget_get_object (widget), FALSE);
+ if (widget)
+ glade_app_selection_set (glade_widget_get_object (widget), FALSE);
+ else
+ glade_app_selection_clear (FALSE);
glade_app_command_paste (NULL);
}
@@ -412,15 +415,22 @@
GladePlaceholder *placeholder,
gboolean packing)
{
+ GladeProjectFormat fmt;
+ GladeProject *project;
GtkWidget *popup_menu;
- gboolean sensitive;
+ GtkWidget *separator;
+ GList *list;
+ gboolean sensitive, non_window;
GladePlaceholder *tmp_placeholder;
gchar *book;
sensitive = glade_palette_get_current_item (glade_app_get_palette ()) != NULL;
- if (!sensitive && !widget)
- return NULL;
+ /* Resolve project format first... */
+ project = widget ? glade_widget_get_project (widget) :
+ placeholder ? glade_placeholder_get_project (placeholder) : glade_app_get_project ();
+ fmt = glade_project_get_format (project);
+
popup_menu = gtk_menu_new ();
@@ -431,44 +441,53 @@
tmp_placeholder = find_placeholder (glade_widget_get_object (widget));
glade_popup_append_item (popup_menu, NULL, _("_Add widget here"), NULL, tmp_placeholder != NULL,
glade_popup_placeholder_add_cb, tmp_placeholder);
- glade_popup_append_item (popup_menu, NULL, _("Add widget as _toplevel"), NULL, TRUE,
+ glade_popup_append_item (popup_menu, NULL, _("Add widget as _toplevel"), NULL,
+ fmt != GLADE_PROJECT_FORMAT_LIBGLADE,
glade_popup_root_add_cb, NULL);
- }
- if (!widget)
- return popup_menu;
-
- if (sensitive)
- {
- GtkWidget *separator = gtk_menu_item_new ();
+ separator = gtk_menu_item_new ();
gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), separator);
gtk_widget_show (separator);
}
- glade_popup_append_item (popup_menu, NULL, _("_Select"), NULL, TRUE,
+ sensitive = (widget != NULL);
+
+ glade_popup_append_item (popup_menu, NULL, _("_Select"), NULL, sensitive,
glade_popup_select_cb, widget);
- glade_popup_append_item (popup_menu, GTK_STOCK_CUT, NULL, NULL, TRUE,
+ glade_popup_append_item (popup_menu, GTK_STOCK_CUT, NULL, NULL, sensitive,
glade_popup_cut_cb, widget);
- glade_popup_append_item (popup_menu, GTK_STOCK_COPY, NULL, NULL, TRUE,
+ glade_popup_append_item (popup_menu, GTK_STOCK_COPY, NULL, NULL, sensitive,
glade_popup_copy_cb, widget);
/* paste is placholder specific when the popup is on a placeholder */
sensitive = glade_clipboard_get_has_selection (glade_app_get_clipboard ());
+ non_window = FALSE;
+ for (list = glade_app_get_clipboard ()->selection; list; list = list->next)
+ if (!GTK_IS_WINDOW (GLADE_WIDGET (list->data)->object))
+ non_window = TRUE;
+
if (placeholder)
glade_popup_append_item (popup_menu, GTK_STOCK_PASTE, NULL, NULL, sensitive,
glade_popup_placeholder_paste_cb, placeholder);
- else
+ else if (widget)
glade_popup_append_item (popup_menu, GTK_STOCK_PASTE, NULL, NULL, sensitive,
glade_popup_paste_cb, widget);
+ else
+ /* No toplevel non-GtkWindow pastes in libglade */
+ glade_popup_append_item (popup_menu, GTK_STOCK_PASTE, NULL, NULL,
+ sensitive && !(non_window && (fmt == GLADE_PROJECT_FORMAT_LIBGLADE)),
+ glade_popup_paste_cb, NULL);
- glade_popup_append_item (popup_menu, GTK_STOCK_DELETE, NULL, NULL, TRUE,
+
+
+ glade_popup_append_item (popup_menu, GTK_STOCK_DELETE, NULL, NULL, (widget != NULL),
glade_popup_delete_cb, widget);
/* packing actions are a little different on placholders */
if (placeholder)
{
- if (widget->actions)
+ if (widget && widget->actions)
{
GtkWidget *separator = gtk_menu_item_new ();
gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), separator);
@@ -496,7 +515,7 @@
placeholder);
}
}
- else if (widget->actions || (packing && widget->packing_actions))
+ else if (widget && (widget->actions || (packing && widget->packing_actions)))
{
GtkWidget *separator = gtk_menu_item_new ();
gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), separator);
@@ -505,20 +524,21 @@
glade_popup_action_populate_menu (popup_menu, widget, NULL, packing);
}
-
- g_object_get (widget->adaptor, "book", &book, NULL);
- if (book)
+ if (widget)
{
- GtkWidget *icon = glade_util_get_devhelp_icon (GTK_ICON_SIZE_MENU);
- GtkWidget *separator = gtk_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), separator);
- gtk_widget_show (separator);
-
- glade_popup_append_item (popup_menu, NULL, _("Read _documentation"), icon, TRUE,
- glade_popup_docs_cb, widget->adaptor);
+ g_object_get (widget->adaptor, "book", &book, NULL);
+ if (book)
+ {
+ GtkWidget *icon = glade_util_get_devhelp_icon (GTK_ICON_SIZE_MENU);
+ GtkWidget *separator = gtk_menu_item_new ();
+ gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), separator);
+ gtk_widget_show (separator);
+
+ glade_popup_append_item (popup_menu, NULL, _("Read _documentation"), icon, TRUE,
+ glade_popup_docs_cb, widget->adaptor);
+ }
+ g_free (book);
}
- g_free (book);
-
return popup_menu;
}
@@ -631,6 +651,8 @@
glade_popup_palette_pop (GladeWidgetAdaptor *adaptor,
GdkEventButton *event)
{
+ GladeProjectFormat fmt;
+ GladeProject *project;
GtkWidget *popup_menu;
gchar *book = NULL;
gint button;
@@ -639,11 +661,14 @@
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
popup_menu = gtk_menu_new ();
+
+ project = glade_app_get_project ();
+ fmt = glade_project_get_format (project);
- glade_popup_append_item (popup_menu, NULL, _("Add widget as _toplevel"), NULL, TRUE,
+ glade_popup_append_item (popup_menu, NULL, _("Add widget as _toplevel"), NULL,
+ (fmt != GLADE_PROJECT_FORMAT_LIBGLADE),
glade_popup_root_add_cb, adaptor);
-
g_object_get (adaptor, "book", &book, NULL);
if (book)
{
Modified: trunk/gladeui/glade-project.c
==============================================================================
--- trunk/gladeui/glade-project.c (original)
+++ trunk/gladeui/glade-project.c Mon Sep 22 17:54:58 2008
@@ -1,6 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2001 Ximian, Inc.
+ * Copyright (C) 2008 Tristan Van Berkom
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -18,6 +19,7 @@
*
* Authors:
* Chema Celorio <chema celorio com>
+ * Tristan Van Berkom <tvb gnome org>
*/
#include <config.h>
@@ -1661,13 +1663,14 @@
glade_project_verify_property (widget->project, property, path_name, string, forwidget);
}
- for (list = widget->packing_properties; list; list = list->next)
+ /* Sometimes widgets on the clipboard have packing props with no parent */
+ if (widget->parent)
{
- property = list->data;
-
- g_assert (widget->parent);
- property = list->data;
- glade_project_verify_property (widget->project, property, path_name, string, forwidget);
+ for (list = widget->packing_properties; list; list = list->next)
+ {
+ property = list->data;
+ glade_project_verify_property (widget->project, property, path_name, string, forwidget);
+ }
}
}
@@ -2013,9 +2016,6 @@
/* Update user visible compatability info */
glade_project_verify_properties (gwidget);
- /* Notify widget it was added to the project */
- glade_widget_project_notify (gwidget, project);
-
/* Run this once at the end for every recursive call */
if (--reentrancy_count == 0)
{
@@ -2121,9 +2121,6 @@
/* Code body starts here */
reentrancy_count++;
-
- /* Notify widget is being removed from the project */
- glade_widget_project_notify (gwidget, NULL);
if ((children =
glade_widget_adaptor_get_children (gwidget->adaptor,
Modified: trunk/gladeui/glade-property.c
==============================================================================
--- trunk/gladeui/glade-property.c (original)
+++ trunk/gladeui/glade-property.c Mon Sep 22 17:54:58 2008
@@ -321,14 +321,6 @@
}
static void
-glade_property_get_default_impl (GladeProperty *property, GValue *value)
-{
-
- g_value_init (value, property->klass->pspec->value_type);
- g_value_copy (property->klass->def, value);
-}
-
-static void
glade_property_sync_impl (GladeProperty *property)
{
@@ -378,12 +370,13 @@
property->klass->virt ||
property->klass->packing ||
property->klass->ignore ||
- !(property->klass->pspec->flags & G_PARAM_READABLE))
+ !(property->klass->pspec->flags & G_PARAM_READABLE) ||
+ G_IS_PARAM_SPEC_OBJECT(property->klass->pspec))
return;
object = glade_widget_get_object (property->widget);
oclass = G_OBJECT_GET_CLASS (object);
-
+
if (g_object_class_find_property (oclass, property->klass->id))
glade_widget_object_get_property (property->widget, property->klass->id, property->value);
}
@@ -507,7 +500,6 @@
prop_class->equals_value = glade_property_equals_value_impl;
prop_class->set_value = glade_property_set_value_impl;
prop_class->get_value = glade_property_get_value_impl;
- prop_class->get_default = glade_property_get_default_impl;
prop_class->sync = glade_property_sync_impl;
prop_class->load = glade_property_load_impl;
prop_class->value_changed = NULL;
@@ -891,7 +883,9 @@
{
g_return_if_fail (GLADE_IS_PROPERTY (property));
g_return_if_fail (value != NULL);
- GLADE_PROPERTY_GET_KLASS (property)->get_default (property, value);
+
+ g_value_init (value, property->klass->pspec->value_type);
+ g_value_copy (property->klass->def, value);
}
/**
@@ -1143,6 +1137,13 @@
if (!property->klass->save || !property->enabled)
return;
+ /* Dont write unsupported properties */
+ if ((fmt == GLADE_PROJECT_FORMAT_GTKBUILDER &&
+ property->klass->libglade_only) ||
+ (fmt == GLADE_PROJECT_FORMAT_LIBGLADE &&
+ property->klass->libglade_unsupported))
+ return;
+
g_assert (property->klass->orig_def);
g_assert (property->klass->def);
Modified: trunk/gladeui/glade-property.h
==============================================================================
--- trunk/gladeui/glade-property.h (original)
+++ trunk/gladeui/glade-property.h Mon Sep 22 17:54:58 2008
@@ -95,7 +95,6 @@
gboolean (* equals_value) (GladeProperty *, const GValue *);
gboolean (* set_value) (GladeProperty *, const GValue *);
void (* get_value) (GladeProperty *, GValue *);
- void (* get_default) (GladeProperty *, GValue *);
void (* sync) (GladeProperty *);
void (* load) (GladeProperty *);
Modified: trunk/gladeui/glade-widget.c
==============================================================================
--- trunk/gladeui/glade-widget.c (original)
+++ trunk/gladeui/glade-widget.c Mon Sep 22 17:54:58 2008
@@ -1,5 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
+ * Copyright (C) 2008 Tristan Van Berkom
* Copyright (C) 2004 Joaquin Cuenca Abela
* Copyright (C) 2001, 2002, 2003 Ximian, Inc.
*
@@ -941,7 +942,6 @@
widget->properties = NULL;
widget->packing_properties = NULL;
widget->prop_refs = NULL;
- widget->prop_refs_readonly = FALSE;
widget->signals = g_hash_table_new_full
(g_str_hash, g_str_equal,
(GDestroyNotify) g_free,
@@ -1929,8 +1929,8 @@
*
* Adds @property to @widget 's list of referenced properties.
*
- * Note: this is used to track object reference properties that
- * go in and out of the project.
+ * Note: this is used to track properties on other objects that
+ * reffer to this object.
*/
void
glade_widget_add_prop_ref (GladeWidget *widget, GladeProperty *property)
@@ -1938,8 +1938,7 @@
g_return_if_fail (GLADE_IS_WIDGET (widget));
g_return_if_fail (GLADE_IS_PROPERTY (property));
- if (property && !widget->prop_refs_readonly &&
- !g_list_find (widget->prop_refs, property))
+ if (!g_list_find (widget->prop_refs, property))
widget->prop_refs = g_list_prepend (widget->prop_refs, property);
}
@@ -1950,8 +1949,8 @@
*
* Removes @property from @widget 's list of referenced properties.
*
- * Note: this is used to track object reference properties that
- * go in and out of the project.
+ * Note: this is used to track properties on other objects that
+ * reffer to this object.
*/
void
glade_widget_remove_prop_ref (GladeWidget *widget, GladeProperty *property)
@@ -1959,8 +1958,7 @@
g_return_if_fail (GLADE_IS_WIDGET (widget));
g_return_if_fail (GLADE_IS_PROPERTY (property));
- if (!widget->prop_refs_readonly)
- widget->prop_refs = g_list_remove (widget->prop_refs, property);
+ widget->prop_refs = g_list_remove (widget->prop_refs, property);
}
GladeProperty *
@@ -1982,42 +1980,6 @@
return NULL;
}
-/**
- * glade_widget_project_notify:
- * @widget: A #GladeWidget
- * @project: The #GladeProject (or %NULL)
- *
- * Notifies @widget that it is now in @project.
- *
- * Note that this doesnt really set the project; the project is saved
- * for internal reasons even when the widget is on the clipboard.
- * (also used for property references).
- */
-void
-glade_widget_project_notify (GladeWidget *widget, GladeProject *project)
-{
- GList *l;
- GladeProperty *property;
-
- g_return_if_fail (GLADE_IS_WIDGET (widget));
-
- /* Since glade_property_set() will try to modify list,
- * we protect it with the 'prop_refs_readonly' flag.
- */
- widget->prop_refs_readonly = TRUE;
- for (l = widget->prop_refs; l && l->data; l = l->next)
- {
- property = GLADE_PROPERTY (l->data);
-
- if (project != NULL &&
- project == property->widget->project)
- glade_property_add_object (property, widget->object);
- else
- glade_property_remove_object (property, widget->object);
- }
- widget->prop_refs_readonly = FALSE;
-}
-
static void
glade_widget_accum_signal_foreach (const gchar *key,
GPtrArray *signals,
Modified: trunk/gladeui/glade-widget.h
==============================================================================
--- trunk/gladeui/glade-widget.h (original)
+++ trunk/gladeui/glade-widget.h Mon Sep 22 17:54:58 2008
@@ -82,8 +82,6 @@
* since the objects copy may be invalid due to a rebuild.
*/
-
- gboolean prop_refs_readonly; /* Whether this list is currently readonly */
GList *prop_refs; /* List of properties in the project who's value are `this object'
* (this is used to set/unset those properties when the object is
* added/removed from the project).
@@ -257,9 +255,6 @@
Project, object property references
*******************************************************************************/
-void glade_widget_project_notify (GladeWidget *widget,
- GladeProject *project);
-
void glade_widget_add_prop_ref (GladeWidget *widget,
GladeProperty *property);
Modified: trunk/plugins/gtk+/glade-convert.c
==============================================================================
--- trunk/plugins/gtk+/glade-convert.c (original)
+++ trunk/plugins/gtk+/glade-convert.c Mon Sep 22 17:54:58 2008
@@ -38,9 +38,15 @@
} AdjustmentData;
typedef struct {
+ GladeWidget *widget;
+ gchar *text;
+} TextData;
+
+typedef struct {
/* List of newly created objects to set */
GList *adjustments;
-
+ GList *textviews;
+ GList *tooltips;
} ConvertData;
/*****************************************
@@ -74,7 +80,7 @@
NULL);
/* Cant cancel an adjustment.... */
- widget = glade_command_create (adaptor, NULL, NULL, glade_app_get_project ());
+ widget = glade_command_create (adaptor, NULL, NULL, project);
/* Initial properties on the new adjustment dont need command history */
glade_widget_property_set (widget, "value", value);
@@ -98,6 +104,8 @@
g_free (adata);
}
+
+ g_list_free (data->adjustments);
}
static void
@@ -176,6 +184,176 @@
}
}
+/*****************************************
+ * TextViews *
+ *****************************************/
+static void
+convert_textviews_finished (GladeProject *project,
+ ConvertData *data)
+{
+ GladeProjectFormat new_format = glade_project_get_format (project);
+ GladeWidgetAdaptor *adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_TEXT_BUFFER);
+ GladeProperty *property;
+ GladeWidget *widget;
+ TextData *tdata;
+ GList *list;
+
+ for (list = data->textviews; list; list = list->next)
+ {
+ tdata = list->data;
+
+ if (new_format == GLADE_PROJECT_FORMAT_GTKBUILDER)
+ {
+ property = glade_widget_get_property (tdata->widget, "buffer");
+
+ /* Cant cancel a textbuffer.... */
+ widget = glade_command_create (adaptor, NULL, NULL, project);
+
+ glade_command_set_property (property, widget->object);
+
+ property = glade_widget_get_property (widget, "text");
+ glade_property_set (property, tdata->text);
+ }
+ else
+ {
+ property = glade_widget_get_property (tdata->widget, "text");
+ glade_command_set_property (property, tdata->text);
+ }
+ g_free (tdata->text);
+ g_free (tdata);
+ }
+
+ g_list_free (data->textviews);
+}
+
+static void
+convert_textviews (GladeProject *project,
+ GladeProjectFormat new_format,
+ ConvertData *data)
+{
+ GladeWidget *widget, *gbuffer;
+ GladeProperty *property;
+ TextData *tdata;
+ GtkTextBuffer *buffer;
+ const GList *objects;
+ gchar *text;
+
+ for (objects = glade_project_get_objects (project); objects; objects = objects->next)
+ {
+ widget = glade_widget_get_from_gobject (objects->data);
+ if (!GTK_IS_TEXT_VIEW (widget->object))
+ continue;
+
+ if (new_format == GLADE_PROJECT_FORMAT_GTKBUILDER)
+ {
+ text = NULL;
+ property = glade_widget_get_property (widget, "text");
+ glade_property_get (property, &text);
+
+ if (text)
+ {
+ tdata = g_new0 (TextData, 1);
+ tdata->widget = widget;
+ tdata->text = g_strdup (text);
+ data->textviews = g_list_prepend (data->textviews, tdata);
+
+ glade_command_set_property (property, NULL);
+ }
+ }
+ else
+ {
+ text = NULL;
+ gbuffer = NULL;
+ buffer = NULL;
+ property = glade_widget_get_property (widget, "buffer");
+ glade_property_get (property, &buffer);
+
+ if (buffer && (gbuffer = glade_widget_get_from_gobject (buffer)))
+ glade_widget_property_get (gbuffer, "text", &text);
+
+ if (text)
+ {
+ GList delete = { 0, };
+ delete.data = gbuffer;
+
+ tdata = g_new0 (TextData, 1);
+ tdata->widget = widget;
+ tdata->text = g_strdup (text);
+ data->textviews = g_list_prepend (data->textviews, tdata);
+
+ /* This will take care of unsetting the buffer property as well */
+ glade_command_delete (&delete);
+ }
+ }
+ }
+}
+
+/*****************************************
+ * Tooltips *
+ *****************************************/
+static void
+convert_tooltips_finished (GladeProject *project,
+ ConvertData *data)
+{
+ GladeProjectFormat new_format = glade_project_get_format (project);
+ GladeProperty *property;
+ GList *list;
+ TextData *tdata;
+
+ for (list = data->tooltips; list; list = list->next)
+ {
+ tdata = list->data;
+
+ if (new_format == GLADE_PROJECT_FORMAT_GTKBUILDER)
+ property = glade_widget_get_property (tdata->widget, "tooltip-text");
+ else
+ property = glade_widget_get_property (tdata->widget, "tooltip");
+
+ glade_command_set_property (property, tdata->text);
+
+ g_free (tdata->text);
+ g_free (tdata);
+ }
+
+ g_list_free (data->tooltips);
+}
+
+static void
+convert_tooltips (GladeProject *project,
+ GladeProjectFormat new_format,
+ ConvertData *data)
+{
+ GladeWidget *widget;
+ GladeProperty *property;
+ TextData *tdata;
+ const GList *objects;
+ gchar *text;
+
+ for (objects = glade_project_get_objects (project); objects; objects = objects->next)
+ {
+ widget = glade_widget_get_from_gobject (objects->data);
+ if (!GTK_IS_WIDGET (widget->object))
+ continue;
+
+ if (new_format == GLADE_PROJECT_FORMAT_GTKBUILDER)
+ property = glade_widget_get_property (widget, "tooltip");
+ else
+ property = glade_widget_get_property (widget, "tooltip-text");
+
+
+ text = NULL;
+ glade_property_get (property, &text);
+ if (text)
+ {
+ tdata = g_new0 (TextData, 1);
+ tdata->widget = widget;
+ tdata->text = g_strdup (text);
+ data->tooltips = g_list_prepend (data->tooltips, tdata);
+
+ glade_command_set_property (property, NULL);
+ }
+ }
+}
/*****************************************
* Main entry point *
@@ -185,6 +363,8 @@
ConvertData *data)
{
convert_adjustments_finished (project, data);
+ convert_textviews_finished (project, data);
+ convert_tooltips_finished (project, data);
/* Once per conversion */
g_signal_handlers_disconnect_by_func (G_OBJECT (project),
@@ -199,8 +379,9 @@
{
ConvertData *data = g_new0 (ConvertData, 1);
- /* Convert GtkAdjustments ... */
convert_adjustments (project, new_format, data);
+ convert_textviews (project, new_format, data);
+ convert_tooltips (project, new_format, data);
/* Clean up after the new_format is in effect */
g_signal_connect (G_OBJECT (project), "convert-finished",
Modified: trunk/plugins/gtk+/glade-gtk.c
==============================================================================
--- trunk/plugins/gtk+/glade-gtk.c (original)
+++ trunk/plugins/gtk+/glade-gtk.c Mon Sep 22 17:54:58 2008
@@ -7592,10 +7592,15 @@
GtkTextBuffer *buffy;
GladeWidget *gtext;
const gchar *text;
+ GladeProject *project;
g_return_if_fail (GTK_IS_TEXT_VIEW (object));
gtext = glade_widget_get_from_gobject (object);
g_return_if_fail (GLADE_IS_WIDGET (gtext));
+
+ project = glade_widget_get_project (gtext);
+ if (glade_project_get_format (project) != GLADE_PROJECT_FORMAT_LIBGLADE)
+ return;
buffy = gtk_text_view_get_buffer (GTK_TEXT_VIEW (object));
Modified: trunk/plugins/gtk+/gtk+.xml.in
==============================================================================
--- trunk/plugins/gtk+/gtk+.xml.in (original)
+++ trunk/plugins/gtk+/gtk+.xml.in Mon Sep 22 17:54:58 2008
@@ -47,14 +47,17 @@
</actions>
<properties>
- <property id="tooltip-text" since="2.12"/>
- <property id="tooltip-markup" since="2.12"/>
+ <!-- Disable tooltip-text & tooltip-markup in libglade since we do
+ conversions of the "tooltip" fake property -->
+ <property id="tooltip-text" since="2.12" weight="4.2" libglade-unsupported="True"/>
+ <property id="tooltip-markup" since="2.12" weight="4.1" libglade-unsupported="True"/>
<property id="visible" default="True" common="True" ignore="True"/>
<property id="width-request" common="True" optional="True" optional-default="False" default="0"/>
<property id="height-request" common="True" optional="True" optional-default="False" default="0"/>
<property id="no-show-all" weight="4.6" ignore="True"/>
- <property common="True" id="tooltip" _name="Tooltip" default="" translatable="True" weight="4.5">
+ <property common="True" id="tooltip" _name="Tooltip" default="" translatable="True" weight="4.5"
+ libglade-only="True">
<spec>glade_standard_string_spec</spec>
<_tooltip>A tooltip text for this widget</_tooltip>
</property>
@@ -1647,7 +1650,7 @@
<glade-widget-class name="GtkGammaCurve" generic-name="gammacurve" _title="Gamma Curve"/>
<glade-widget-class name="GtkFileSelection" generic-name="fileselection" _title="File Selection" deprecated="True" libglade-only="True"/>
- <glade-widget-class name="Custom" generic-name="custom" _title="Custom widget">
+ <glade-widget-class name="Custom" generic-name="custom" _title="Custom widget" deprecated="True" libglade-only="True">
<properties>
<property id="creation-function"/>
<property id="string1"/>
@@ -1739,7 +1742,7 @@
</glade-widget-class>
<!-- Objects -->
- <glade-widget-class name="GtkSizeGroup" generic-name="sizegroup" _title="Size Group" libglade-unsupported="True">
+ <glade-widget-class name="GtkSizeGroup" generic-name="sizegroup" _title="Size Group" libglade-unsupported="True" toplevel="True">
<read-widget-function>glade_gtk_size_group_read_widget</read-widget-function>
<write-widget-function>glade_gtk_size_group_write_widget</write-widget-function>
<set-property-function>glade_gtk_size_group_set_property</set-property-function>
@@ -1751,34 +1754,68 @@
</properties>
</glade-widget-class>
- <glade-widget-class name="GtkWindowGroup" generic-name="windowgroup" _title="Window Group" libglade-unsupported="True"/>
- <glade-widget-class name="GtkAdjustment" generic-name="adjustment" _title="Adjustment" libglade-unsupported="True"/>
-
-
- <glade-widget-class name="GtkAction" generic-name="action" _title="Action" libglade-unsupported="True"/>
- <glade-widget-class name="GtkToggleAction" generic-name="toggleaction" _title="Toggle Action" libglade-unsupported="True"/>
- <glade-widget-class name="GtkRadioAction" generic-name="radioaction" _title="Radio Action" libglade-unsupported="True"/>
- <glade-widget-class name="GtkRecentAction" generic-name="recentaction" _title="Recent Action" libglade-unsupported="True" since="2.12"/>
- <glade-widget-class name="GtkActionGroup" generic-name="actiongroup" _title="Action Group" libglade-unsupported="True"/>
- <glade-widget-class name="GtkEntryCompletion" generic-name="entrycompletion" _title="Entry Completion" libglade-unsupported="True"/>
- <glade-widget-class name="GtkIconFactory" generic-name="iconfactory" _title="Icon Factory" libglade-unsupported="True"/>
-
- <glade-widget-class name="GtkListStore" generic-name="liststore" _title="List Store" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTreeStore" generic-name="treestore" _title="Tree Store" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTreeModelFilter" generic-name="treemodelfilter" _title="Tree Model Filter" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTreeModelSort" generic-name="treemodelsort" _title="Tree Model Sort" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTreeSelection" generic-name="treeselection" _title="Tree Selection" libglade-unsupported="True"/>
+ <glade-widget-class name="GtkWindowGroup" generic-name="windowgroup"
+ _title="Window Group" libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkAdjustment" generic-name="adjustment"
+ _title="Adjustment" libglade-unsupported="True" toplevel="True">
+ <properties>
+ <property id="value" default="0.0"/>
+ <property id="lower" default="0.0"/>
+ <property id="upper" default="100.0"/>
+ <property id="page-increment" default="10.0"/>
+ <property id="step-increment" default="1.0"/>
+ <property id="page-size" default="10.0"/>
+ </properties>
+ </glade-widget-class>
+ <glade-widget-class name="GtkAction" generic-name="action" _title="Action"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkToggleAction" generic-name="toggleaction" _title="Toggle Action"
+ libglade-unsupported="True"/>
+ <glade-widget-class name="GtkRadioAction" generic-name="radioaction" _title="Radio Action"
+ libglade-unsupported="True"/>
+ <glade-widget-class name="GtkRecentAction" generic-name="recentaction" _title="Recent Action"
+ libglade-unsupported="True" since="2.12"/>
+ <glade-widget-class name="GtkActionGroup" generic-name="actiongroup" _title="Action Group"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkEntryCompletion" generic-name="entrycompletion" _title="Entry Completion"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkIconFactory" generic-name="iconfactory" _title="Icon Factory"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkUIManager" generic-name="uimanager" _title="UI Manager"
+ libglade-unsupported="True" toplevel="True"/>
+
+ <glade-widget-class name="GtkListStore" generic-name="liststore" _title="List Store"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTreeStore" generic-name="treestore" _title="Tree Store"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTreeModelFilter" generic-name="treemodelfilter" _title="Tree Model Filter"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTreeModelSort" generic-name="treemodelsort" _title="Tree Model Sort"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTreeSelection" generic-name="treeselection" _title="Tree Selection"
+ libglade-unsupported="True" toplevel="True"/>
- <glade-widget-class name="GtkStatusIcon" generic-name="statusicon" _title="Status Icon" libglade-unsupported="True"/>
+ <glade-widget-class name="GtkStatusIcon" generic-name="statusicon" _title="Status Icon"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTextBuffer" generic-name="textbuffer" _title="Text Buffer"
+ libglade-unsupported="True" toplevel="True">
+ <properties>
+ <property id="text" translatable="True">
+ <visible-lines>2</visible-lines>
+ </property>
+ </properties>
+ </glade-widget-class>
- <glade-widget-class name="GtkTextBuffer" generic-name="textbuffer" _title="Text Buffer" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTextTag" generic-name="texttag" _title="Text Tag" libglade-unsupported="True"/>
- <glade-widget-class name="GtkTextTagTable" generic-name="texttagtable" _title="Text Tag Table" libglade-unsupported="True"/>
- <glade-widget-class name="GtkFileFilter" generic-name="filefilter" _title="File Filter" libglade-unsupported="True"/>
+ <glade-widget-class name="GtkTextTag" generic-name="texttag" _title="Text Tag"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkTextTagTable" generic-name="texttagtable" _title="Text Tag Table"
+ libglade-unsupported="True" toplevel="True"/>
+ <glade-widget-class name="GtkFileFilter" generic-name="filefilter" _title="File Filter"
+ libglade-unsupported="True" toplevel="True"/>
</glade-widget-classes>
<glade-widget-group name="gtk-toplevels" _title="Toplevels">
@@ -1816,7 +1853,7 @@
<glade-widget-class-ref name="GtkAlignment"/>
</glade-widget-group>
- <glade-widget-group name="gtk-control-display" title="Control and Display">
+ <glade-widget-group name="gtk-control-display" _title="Control and Display">
<glade-widget-class-ref name="GtkButton"/>
<glade-widget-class-ref name="GtkToggleButton"/>
@@ -1857,38 +1894,59 @@
<glade-widget-class-ref name="GtkVSeparator"/>
<glade-widget-class-ref name="GtkArrow"/>
<glade-widget-class-ref name="GtkDrawingArea"/>
-
+ </glade-widget-group>
+
+ <glade-widget-group name="gtk-composite" _title="Composite Widgets">
+
+ <default-palette-state expanded="False"/>
+
<glade-widget-class-ref name="GtkColorSelection"/>
<glade-widget-class-ref name="GtkFontSelection"/>
<glade-widget-class-ref name="GtkRecentChooserWidget"/>
<glade-widget-class-ref name="GtkFileChooserWidget"/>
</glade-widget-group>
- <glade-widget-group name="gtk-objects" title="Objects">
- <glade-widget-class-ref name="GtkSizeGroup"/>
- <glade-widget-class-ref name="GtkWindowGroup"/>
-
- <glade-widget-class-ref name="GtkAdjustment"/>
+ <glade-widget-group name="gtk-actions" _title="Actions">
+ <glade-widget-class-ref name="GtkActionGroup"/>
<glade-widget-class-ref name="GtkAction"/>
<glade-widget-class-ref name="GtkToggleAction"/>
<glade-widget-class-ref name="GtkRadioAction"/>
<glade-widget-class-ref name="GtkRecentAction"/>
- <glade-widget-class-ref name="GtkActionGroup"/>
- <glade-widget-class-ref name="GtkEntryCompletion"/>
- <glade-widget-class-ref name="GtkIconFactory"/>
+ </glade-widget-group>
+
+ <glade-widget-group name="gtk-mvc" title="Tree Model">
+
+ <default-palette-state expanded="False"/>
<glade-widget-class-ref name="GtkListStore"/>
<glade-widget-class-ref name="GtkTreeStore"/>
<glade-widget-class-ref name="GtkTreeModelFilter"/>
<glade-widget-class-ref name="GtkTreeModelSort"/>
<glade-widget-class-ref name="GtkTreeSelection"/>
- <glade-widget-class-ref name="GtkStatusIcon"/>
+ </glade-widget-group>
+
+ <glade-widget-group name="gtk-text" _title="Text Manipulation">
+
+ <default-palette-state expanded="False"/>
<glade-widget-class-ref name="GtkTextBuffer"/>
<glade-widget-class-ref name="GtkTextTag"/>
<glade-widget-class-ref name="GtkTextTagTable"/>
+ </glade-widget-group>
+
+
+ <glade-widget-group name="gtk-objects" title="Miscellaneous">
+ <default-palette-state expanded="False"/>
+
+ <glade-widget-class-ref name="GtkSizeGroup"/>
+ <glade-widget-class-ref name="GtkWindowGroup"/>
+ <glade-widget-class-ref name="GtkAdjustment"/>
+ <glade-widget-class-ref name="GtkEntryCompletion"/>
+ <glade-widget-class-ref name="GtkUIManager"/>
+ <glade-widget-class-ref name="GtkIconFactory"/>
+ <glade-widget-class-ref name="GtkStatusIcon"/>
<glade-widget-class-ref name="GtkFileFilter"/>
</glade-widget-group>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]