summaryrefslogtreecommitdiff
path: root/plugins/gtk+/glade-image-item-editor.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 20:19:58 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 20:19:58 +0900
commitbc939d5ff620e650ad4ff19b7b8387b44478d36e (patch)
tree23812a0e3385f86d208277e676e209ed280a4b01 /plugins/gtk+/glade-image-item-editor.c
parent7608035b9a6b312b6f7de084427ac9ddea18f09e (diff)
downloadglade-bc939d5ff620e650ad4ff19b7b8387b44478d36e.tar.gz
* ALL SOURCE FILES: Removed 8-space indentation, reformatted all code with:
indent \ --braces-after-if-line \ --case-brace-indentation0 \ --case-indentation2 \ --braces-after-struct-decl-line \ --line-length80 --no-tabs \ --dont-line-up-parentheses \ --continuation-indentation4 \ --continue-at-parentheses \ --honour-newlines --tab-size8 --indent-level2 -nbbo
Diffstat (limited to 'plugins/gtk+/glade-image-item-editor.c')
-rw-r--r--plugins/gtk+/glade-image-item-editor.c633
1 files changed, 326 insertions, 307 deletions
diff --git a/plugins/gtk+/glade-image-item-editor.c b/plugins/gtk+/glade-image-item-editor.c
index 531437fb..abbdb53b 100644
--- a/plugins/gtk+/glade-image-item-editor.c
+++ b/plugins/gtk+/glade-image-item-editor.c
@@ -1,4 +1,3 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2008 Tristan Van Berkom.
*
@@ -28,408 +27,428 @@
#include "glade-image-item-editor.h"
-static void glade_image_item_editor_finalize (GObject *object);
+static void glade_image_item_editor_finalize (GObject * object);
-static void glade_image_item_editor_editable_init (GladeEditableIface *iface);
+static void glade_image_item_editor_editable_init (GladeEditableIface * iface);
-static void glade_image_item_editor_grab_focus (GtkWidget *widget);
+static void glade_image_item_editor_grab_focus (GtkWidget * widget);
-G_DEFINE_TYPE_WITH_CODE (GladeImageItemEditor, glade_image_item_editor, GTK_TYPE_VBOX,
+G_DEFINE_TYPE_WITH_CODE (GladeImageItemEditor, glade_image_item_editor,
+ GTK_TYPE_VBOX,
G_IMPLEMENT_INTERFACE (GLADE_TYPE_EDITABLE,
glade_image_item_editor_editable_init));
static void
-glade_image_item_editor_class_init (GladeImageItemEditorClass *klass)
+glade_image_item_editor_class_init (GladeImageItemEditorClass * klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- object_class->finalize = glade_image_item_editor_finalize;
- widget_class->grab_focus = glade_image_item_editor_grab_focus;
+ object_class->finalize = glade_image_item_editor_finalize;
+ widget_class->grab_focus = glade_image_item_editor_grab_focus;
}
static void
-glade_image_item_editor_init (GladeImageItemEditor *self)
+glade_image_item_editor_init (GladeImageItemEditor * self)
{
}
static void
-project_changed (GladeProject *project,
- GladeCommand *command,
- gboolean execute,
- GladeImageItemEditor *item_editor)
+project_changed (GladeProject * project,
+ GladeCommand * command,
+ gboolean execute, GladeImageItemEditor * item_editor)
{
- if (item_editor->modifying ||
- !gtk_widget_get_mapped (GTK_WIDGET (item_editor)))
- return;
+ if (item_editor->modifying ||
+ !gtk_widget_get_mapped (GTK_WIDGET (item_editor)))
+ return;
- /* Reload on all commands */
- glade_editable_load (GLADE_EDITABLE (item_editor), item_editor->loaded_widget);
+ /* Reload on all commands */
+ glade_editable_load (GLADE_EDITABLE (item_editor),
+ item_editor->loaded_widget);
}
static void
-project_finalized (GladeImageItemEditor *item_editor,
- GladeProject *where_project_was)
+project_finalized (GladeImageItemEditor * item_editor,
+ GladeProject * where_project_was)
{
- item_editor->loaded_widget = NULL;
+ item_editor->loaded_widget = NULL;
- glade_editable_load (GLADE_EDITABLE (item_editor), NULL);
+ glade_editable_load (GLADE_EDITABLE (item_editor), NULL);
}
static GladeWidget *
-get_image_widget (GladeWidget *widget)
+get_image_widget (GladeWidget * widget)
{
- GtkWidget *image;
- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (widget->object));
- return image ? glade_widget_get_from_gobject (image) : NULL;
+ GtkWidget *image;
+ image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (widget->object));
+ return image ? glade_widget_get_from_gobject (image) : NULL;
}
static void
-glade_image_item_editor_load (GladeEditable *editable,
- GladeWidget *widget)
+glade_image_item_editor_load (GladeEditable * editable, GladeWidget * widget)
{
- GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (editable);
- GladeWidget *image_widget;
- GList *l;
- gboolean use_stock = FALSE;
-
- item_editor->loading = TRUE;
-
- /* Since we watch the project*/
- if (item_editor->loaded_widget)
- {
- g_signal_handlers_disconnect_by_func (G_OBJECT (item_editor->loaded_widget->project),
- G_CALLBACK (project_changed), item_editor);
-
- /* The widget could die unexpectedly... */
- g_object_weak_unref (G_OBJECT (item_editor->loaded_widget->project),
- (GWeakNotify)project_finalized,
- item_editor);
- }
-
- /* Mark our widget... */
- item_editor->loaded_widget = widget;
-
- if (item_editor->loaded_widget)
- {
- /* This fires for undo/redo */
- g_signal_connect (G_OBJECT (item_editor->loaded_widget->project), "changed",
- G_CALLBACK (project_changed), item_editor);
-
- /* The widget/project could die unexpectedly... */
- g_object_weak_ref (G_OBJECT (item_editor->loaded_widget->project),
- (GWeakNotify)project_finalized,
- item_editor);
- }
-
- /* load the embedded editable... */
- if (item_editor->embed)
- glade_editable_load (GLADE_EDITABLE (item_editor->embed), widget);
-
- if (item_editor->embed_image)
- {
- /* Finalize safe code here... */
- if (widget && (image_widget = get_image_widget (widget)))
- glade_editable_load (GLADE_EDITABLE (item_editor->embed_image), image_widget);
- else
- glade_editable_load (GLADE_EDITABLE (item_editor->embed_image), NULL);
- }
- for (l = item_editor->properties; l; l = l->next)
- glade_editor_property_load_by_widget (GLADE_EDITOR_PROPERTY (l->data), widget);
-
- if (widget)
- {
- glade_widget_property_get (widget, "use-stock", &use_stock);
-
- gtk_widget_set_sensitive (item_editor->embed_frame, !use_stock);
- gtk_widget_set_sensitive (item_editor->label_frame, !use_stock);
-
- if (use_stock)
- gtk_toggle_button_set_active
- (GTK_TOGGLE_BUTTON (item_editor->stock_radio), TRUE);
- else
- gtk_toggle_button_set_active
- (GTK_TOGGLE_BUTTON (item_editor->custom_radio), TRUE);
- }
- item_editor->loading = FALSE;
+ GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (editable);
+ GladeWidget *image_widget;
+ GList *l;
+ gboolean use_stock = FALSE;
+
+ item_editor->loading = TRUE;
+
+ /* Since we watch the project */
+ if (item_editor->loaded_widget)
+ {
+ g_signal_handlers_disconnect_by_func (G_OBJECT
+ (item_editor->loaded_widget->
+ project),
+ G_CALLBACK (project_changed),
+ item_editor);
+
+ /* The widget could die unexpectedly... */
+ g_object_weak_unref (G_OBJECT (item_editor->loaded_widget->project),
+ (GWeakNotify) project_finalized, item_editor);
+ }
+
+ /* Mark our widget... */
+ item_editor->loaded_widget = widget;
+
+ if (item_editor->loaded_widget)
+ {
+ /* This fires for undo/redo */
+ g_signal_connect (G_OBJECT (item_editor->loaded_widget->project),
+ "changed", G_CALLBACK (project_changed), item_editor);
+
+ /* The widget/project could die unexpectedly... */
+ g_object_weak_ref (G_OBJECT (item_editor->loaded_widget->project),
+ (GWeakNotify) project_finalized, item_editor);
+ }
+
+ /* load the embedded editable... */
+ if (item_editor->embed)
+ glade_editable_load (GLADE_EDITABLE (item_editor->embed), widget);
+
+ if (item_editor->embed_image)
+ {
+ /* Finalize safe code here... */
+ if (widget && (image_widget = get_image_widget (widget)))
+ glade_editable_load (GLADE_EDITABLE (item_editor->embed_image),
+ image_widget);
+ else
+ glade_editable_load (GLADE_EDITABLE (item_editor->embed_image), NULL);
+ }
+ for (l = item_editor->properties; l; l = l->next)
+ glade_editor_property_load_by_widget (GLADE_EDITOR_PROPERTY (l->data),
+ widget);
+
+ if (widget)
+ {
+ glade_widget_property_get (widget, "use-stock", &use_stock);
+
+ gtk_widget_set_sensitive (item_editor->embed_frame, !use_stock);
+ gtk_widget_set_sensitive (item_editor->label_frame, !use_stock);
+
+ if (use_stock)
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (item_editor->stock_radio), TRUE);
+ else
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (item_editor->custom_radio), TRUE);
+ }
+ item_editor->loading = FALSE;
}
static void
-glade_image_item_editor_set_show_name (GladeEditable *editable,
- gboolean show_name)
+glade_image_item_editor_set_show_name (GladeEditable * editable,
+ gboolean show_name)
{
- GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (editable);
+ GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (editable);
- glade_editable_set_show_name (GLADE_EDITABLE (item_editor->embed), show_name);
+ glade_editable_set_show_name (GLADE_EDITABLE (item_editor->embed), show_name);
}
static void
-glade_image_item_editor_editable_init (GladeEditableIface *iface)
+glade_image_item_editor_editable_init (GladeEditableIface * iface)
{
- iface->load = glade_image_item_editor_load;
- iface->set_show_name = glade_image_item_editor_set_show_name;
+ iface->load = glade_image_item_editor_load;
+ iface->set_show_name = glade_image_item_editor_set_show_name;
}
static void
-glade_image_item_editor_finalize (GObject *object)
+glade_image_item_editor_finalize (GObject * object)
{
- GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (object);
+ GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (object);
- if (item_editor->properties)
- g_list_free (item_editor->properties);
- item_editor->properties = NULL;
- item_editor->embed_image = NULL;
- item_editor->embed = NULL;
+ if (item_editor->properties)
+ g_list_free (item_editor->properties);
+ item_editor->properties = NULL;
+ item_editor->embed_image = NULL;
+ item_editor->embed = NULL;
- glade_editable_load (GLADE_EDITABLE (object), NULL);
+ glade_editable_load (GLADE_EDITABLE (object), NULL);
- G_OBJECT_CLASS (glade_image_item_editor_parent_class)->finalize (object);
+ G_OBJECT_CLASS (glade_image_item_editor_parent_class)->finalize (object);
}
static void
-glade_image_item_editor_grab_focus (GtkWidget *widget)
+glade_image_item_editor_grab_focus (GtkWidget * widget)
{
- GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (widget);
+ GladeImageItemEditor *item_editor = GLADE_IMAGE_ITEM_EDITOR (widget);
- gtk_widget_grab_focus (item_editor->embed);
+ gtk_widget_grab_focus (item_editor->embed);
}
static void
-stock_toggled (GtkWidget *widget,
- GladeImageItemEditor *item_editor)
+stock_toggled (GtkWidget * widget, GladeImageItemEditor * item_editor)
{
- GladeProperty *property;
- GladeWidget *image, *loaded;
+ GladeProperty *property;
+ GladeWidget *image, *loaded;
- if (item_editor->loading || !item_editor->loaded_widget)
- return;
+ if (item_editor->loading || !item_editor->loaded_widget)
+ return;
- if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (item_editor->stock_radio)))
- return;
+ if (!gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (item_editor->stock_radio)))
+ return;
- item_editor->modifying = TRUE;
- loaded = item_editor->loaded_widget;
+ item_editor->modifying = TRUE;
+ loaded = item_editor->loaded_widget;
- glade_command_push_group (_("Setting %s to use a stock item"), loaded->name);
+ glade_command_push_group (_("Setting %s to use a stock item"), loaded->name);
- property = glade_widget_get_property (loaded, "label");
- glade_command_set_property (property, NULL);
- property = glade_widget_get_property (loaded, "use-underline");
- glade_command_set_property (property, FALSE);
+ property = glade_widget_get_property (loaded, "label");
+ glade_command_set_property (property, NULL);
+ property = glade_widget_get_property (loaded, "use-underline");
+ glade_command_set_property (property, FALSE);
- /* Delete image... */
- if ((image = get_image_widget (loaded)) != NULL)
- {
- GList list = { 0, };
- list.data = image;
- glade_command_unlock_widget (image);
- glade_command_delete (&list);
- glade_project_selection_set (loaded->project, loaded->object, TRUE);
- }
+ /* Delete image... */
+ if ((image = get_image_widget (loaded)) != NULL)
+ {
+ GList list = { 0, };
+ list.data = image;
+ glade_command_unlock_widget (image);
+ glade_command_delete (&list);
+ glade_project_selection_set (loaded->project, loaded->object, TRUE);
+ }
- property = glade_widget_get_property (loaded, "use-stock");
- glade_command_set_property (property, TRUE);
+ property = glade_widget_get_property (loaded, "use-stock");
+ glade_command_set_property (property, TRUE);
- glade_command_pop_group ();
+ glade_command_pop_group ();
- item_editor->modifying = FALSE;
+ item_editor->modifying = FALSE;
- /* reload buttons and sensitivity and stuff... */
- glade_editable_load (GLADE_EDITABLE (item_editor), item_editor->loaded_widget);
+ /* reload buttons and sensitivity and stuff... */
+ glade_editable_load (GLADE_EDITABLE (item_editor),
+ item_editor->loaded_widget);
}
static void
-custom_toggled (GtkWidget *widget,
- GladeImageItemEditor *item_editor)
+custom_toggled (GtkWidget * widget, GladeImageItemEditor * item_editor)
{
- GladeProperty *property;
+ GladeProperty *property;
- if (item_editor->loading || !item_editor->loaded_widget)
- return;
+ if (item_editor->loading || !item_editor->loaded_widget)
+ return;
- if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (item_editor->custom_radio)))
- return;
+ if (!gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (item_editor->custom_radio)))
+ return;
- item_editor->modifying = TRUE;
+ item_editor->modifying = TRUE;
- glade_command_push_group (_("Setting %s to use a label and image"), item_editor->loaded_widget->name);
+ glade_command_push_group (_("Setting %s to use a label and image"),
+ item_editor->loaded_widget->name);
- /* First clear stock... */
- property = glade_widget_get_property (item_editor->loaded_widget, "stock");
- glade_command_set_property (property, NULL);
- property = glade_widget_get_property (item_editor->loaded_widget, "use-stock");
- glade_command_set_property (property, FALSE);
+ /* First clear stock... */
+ property = glade_widget_get_property (item_editor->loaded_widget, "stock");
+ glade_command_set_property (property, NULL);
+ property =
+ glade_widget_get_property (item_editor->loaded_widget, "use-stock");
+ glade_command_set_property (property, FALSE);
- /* Now setup default label and create image... */
- property = glade_widget_get_property (item_editor->loaded_widget, "label");
- glade_command_set_property (property, item_editor->loaded_widget->adaptor->generic_name);
- property = glade_widget_get_property (item_editor->loaded_widget, "use-underline");
- glade_command_set_property (property, FALSE);
+ /* Now setup default label and create image... */
+ property = glade_widget_get_property (item_editor->loaded_widget, "label");
+ glade_command_set_property (property,
+ item_editor->loaded_widget->adaptor->
+ generic_name);
+ property =
+ glade_widget_get_property (item_editor->loaded_widget, "use-underline");
+ glade_command_set_property (property, FALSE);
- /* There shouldnt be an image widget here... */
- if (!get_image_widget (item_editor->loaded_widget))
- {
- /* item_editor->loaded_widget may be set to NULL after the create_command. */
- GladeWidget *loaded = item_editor->loaded_widget;
- GladeWidget *image;
+ /* There shouldnt be an image widget here... */
+ if (!get_image_widget (item_editor->loaded_widget))
+ {
+ /* item_editor->loaded_widget may be set to NULL after the create_command. */
+ GladeWidget *loaded = item_editor->loaded_widget;
+ GladeWidget *image;
- property = glade_widget_get_property (loaded, "image");
+ property = glade_widget_get_property (loaded, "image");
- image = glade_command_create (glade_widget_adaptor_get_by_type (GTK_TYPE_IMAGE),
- NULL, NULL, glade_widget_get_project (loaded));
+ image =
+ glade_command_create (glade_widget_adaptor_get_by_type
+ (GTK_TYPE_IMAGE), NULL, NULL,
+ glade_widget_get_project (loaded));
- glade_command_set_property (property, image->object);
+ glade_command_set_property (property, image->object);
- /* Make sure nobody deletes this... */
- glade_command_lock_widget (loaded, image);
+ /* Make sure nobody deletes this... */
+ glade_command_lock_widget (loaded, image);
- /* reload widget by selection ;-) */
- glade_project_selection_set (loaded->project, loaded->object, TRUE);
- }
- glade_command_pop_group ();
+ /* reload widget by selection ;-) */
+ glade_project_selection_set (loaded->project, loaded->object, TRUE);
+ }
+ glade_command_pop_group ();
- item_editor->modifying = FALSE;
+ item_editor->modifying = FALSE;
- /* reload buttons and sensitivity and stuff... */
- glade_editable_load (GLADE_EDITABLE (item_editor),
- item_editor->loaded_widget);
+ /* reload buttons and sensitivity and stuff... */
+ glade_editable_load (GLADE_EDITABLE (item_editor),
+ item_editor->loaded_widget);
}
static void
-table_attach (GtkWidget *table,
- GtkWidget *child,
- gint pos, gint row)
+table_attach (GtkWidget * table, GtkWidget * child, gint pos, gint row)
{
- gtk_grid_attach (GTK_GRID (table), child,
- pos, row, 1, 1);
+ gtk_grid_attach (GTK_GRID (table), child, pos, row, 1, 1);
- if (pos)
- gtk_widget_set_hexpand (child, TRUE);
+ if (pos)
+ gtk_widget_set_hexpand (child, TRUE);
}
GtkWidget *
-glade_image_item_editor_new (GladeWidgetAdaptor *adaptor,
- GladeEditable *embed)
+glade_image_item_editor_new (GladeWidgetAdaptor * adaptor,
+ GladeEditable * embed)
{
- GladeImageItemEditor *item_editor;
- GladeEditorProperty *eprop;
- GtkWidget *label, *alignment, *frame, *main_table, *table, *vbox;
- gchar *str;
-
- g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL);
- g_return_val_if_fail (GLADE_IS_EDITABLE (embed), NULL);
-
- item_editor = g_object_new (GLADE_TYPE_IMAGE_ITEM_EDITOR, NULL);
- item_editor->embed = GTK_WIDGET (embed);
-
- /* Pack the parent on top... */
- gtk_box_pack_start (GTK_BOX (item_editor), GTK_WIDGET (embed), FALSE, FALSE, 0);
-
- /* Put a radio button to control use-stock here on top... */
- main_table = gtk_grid_new ();
- gtk_orientable_set_orientation (GTK_ORIENTABLE (main_table), GTK_ORIENTATION_VERTICAL);
- gtk_grid_set_row_spacing (GTK_GRID (main_table), 4);
- gtk_box_pack_start (GTK_BOX (item_editor), main_table, FALSE, FALSE, 8);
-
- item_editor->stock_radio = gtk_radio_button_new_with_label (NULL, _("Stock Item:"));
- table_attach (main_table, item_editor->stock_radio, 0, 0);
-
- alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
- gtk_grid_attach (GTK_GRID (main_table), alignment, 0, 1, 2, 1);
- gtk_widget_set_hexpand (alignment, TRUE);
-
- table = gtk_grid_new ();
- gtk_orientable_set_orientation (GTK_ORIENTABLE (table), GTK_ORIENTATION_VERTICAL);
- gtk_grid_set_row_spacing (GTK_GRID (table), 4);
- gtk_container_add (GTK_CONTAINER (alignment), table);
-
- /* The stock item */
- eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "stock", FALSE, TRUE);
- table_attach (table, eprop->item_label, 0, 0);
- table_attach (table, GTK_WIDGET (eprop), 1, 0);
- item_editor->properties = g_list_prepend (item_editor->properties, eprop);
-
- /* An accel group for the item's accelerator */
- eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "accel-group", FALSE, TRUE);
- table_attach (table, eprop->item_label, 0, 1);
- table_attach (table, GTK_WIDGET (eprop), 1, 1);
- item_editor->properties = g_list_prepend (item_editor->properties, eprop);
-
- /* Now put a radio button in the same table for the custom image editing */
- item_editor->custom_radio = gtk_radio_button_new_with_label_from_widget
- (GTK_RADIO_BUTTON (item_editor->stock_radio),
- _("Custom label and image:"));
- table_attach (main_table, item_editor->custom_radio, 0, 2);
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_grid_attach (GTK_GRID (main_table), vbox, 0, 3, 2, 1);
- gtk_widget_set_hexpand (vbox, TRUE);
-
- /* Label area frame... */
- str = g_strdup_printf ("<b>%s</b>", _("Edit Label"));
- label = gtk_label_new (str);
- gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
- g_free (str);
- frame = gtk_frame_new (NULL);
- gtk_frame_set_label_widget (GTK_FRAME (frame), label);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
- gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 12);
- item_editor->label_frame = frame;
-
- alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
- gtk_container_add (GTK_CONTAINER (frame), alignment);
-
- table = gtk_grid_new ();
- gtk_orientable_set_orientation (GTK_ORIENTABLE (table), GTK_ORIENTATION_VERTICAL);
- gtk_grid_set_row_spacing (GTK_GRID (table), 4);
- gtk_container_add (GTK_CONTAINER (alignment), table);
-
- /* The menu label... */
- eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "label", FALSE, TRUE);
- table_attach (table, eprop->item_label, 0, 0);
- table_attach (table, GTK_WIDGET (eprop), 1, 0);
- item_editor->properties = g_list_prepend (item_editor->properties, eprop);
-
- /* Whether to use-underline... */
- eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "use-underline", FALSE, TRUE);
- table_attach (table, eprop->item_label, 0, 1);
- table_attach (table, GTK_WIDGET (eprop), 1, 1);
- item_editor->properties = g_list_prepend (item_editor->properties, eprop);
-
- /* Internal Image area... */
- str = g_strdup_printf ("<b>%s</b>", _("Edit Image"));
- label = gtk_label_new (str);
- gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
- g_free (str);
- frame = gtk_frame_new (NULL);
- gtk_frame_set_label_widget (GTK_FRAME (frame), label);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
- gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 12);
- item_editor->embed_frame = frame;
-
- alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
- gtk_container_add (GTK_CONTAINER (frame), alignment);
-
- item_editor->embed_image = (GtkWidget *)glade_widget_adaptor_create_editable
- (glade_widget_adaptor_get_by_type (GTK_TYPE_IMAGE), GLADE_PAGE_GENERAL);
- glade_editable_set_show_name (GLADE_EDITABLE (item_editor->embed_image), FALSE);
- gtk_container_add (GTK_CONTAINER (alignment), item_editor->embed_image);
-
- /* Now hook up to our signals... */
- g_signal_connect (G_OBJECT (item_editor->stock_radio), "toggled",
- G_CALLBACK (stock_toggled), item_editor);
- g_signal_connect (G_OBJECT (item_editor->custom_radio), "toggled",
- G_CALLBACK (custom_toggled), item_editor);
-
-
- gtk_widget_show_all (GTK_WIDGET (item_editor));
-
- return GTK_WIDGET (item_editor);
+ GladeImageItemEditor *item_editor;
+ GladeEditorProperty *eprop;
+ GtkWidget *label, *alignment, *frame, *main_table, *table, *vbox;
+ gchar *str;
+
+ g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL);
+ g_return_val_if_fail (GLADE_IS_EDITABLE (embed), NULL);
+
+ item_editor = g_object_new (GLADE_TYPE_IMAGE_ITEM_EDITOR, NULL);
+ item_editor->embed = GTK_WIDGET (embed);
+
+ /* Pack the parent on top... */
+ gtk_box_pack_start (GTK_BOX (item_editor), GTK_WIDGET (embed), FALSE, FALSE,
+ 0);
+
+ /* Put a radio button to control use-stock here on top... */
+ main_table = gtk_grid_new ();
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (main_table),
+ GTK_ORIENTATION_VERTICAL);
+ gtk_grid_set_row_spacing (GTK_GRID (main_table), 4);
+ gtk_box_pack_start (GTK_BOX (item_editor), main_table, FALSE, FALSE, 8);
+
+ item_editor->stock_radio =
+ gtk_radio_button_new_with_label (NULL, _("Stock Item:"));
+ table_attach (main_table, item_editor->stock_radio, 0, 0);
+
+ alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
+ gtk_grid_attach (GTK_GRID (main_table), alignment, 0, 1, 2, 1);
+ gtk_widget_set_hexpand (alignment, TRUE);
+
+ table = gtk_grid_new ();
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (table),
+ GTK_ORIENTATION_VERTICAL);
+ gtk_grid_set_row_spacing (GTK_GRID (table), 4);
+ gtk_container_add (GTK_CONTAINER (alignment), table);
+
+ /* The stock item */
+ eprop =
+ glade_widget_adaptor_create_eprop_by_name (adaptor, "stock", FALSE, TRUE);
+ table_attach (table, eprop->item_label, 0, 0);
+ table_attach (table, GTK_WIDGET (eprop), 1, 0);
+ item_editor->properties = g_list_prepend (item_editor->properties, eprop);
+
+ /* An accel group for the item's accelerator */
+ eprop =
+ glade_widget_adaptor_create_eprop_by_name (adaptor, "accel-group", FALSE,
+ TRUE);
+ table_attach (table, eprop->item_label, 0, 1);
+ table_attach (table, GTK_WIDGET (eprop), 1, 1);
+ item_editor->properties = g_list_prepend (item_editor->properties, eprop);
+
+ /* Now put a radio button in the same table for the custom image editing */
+ item_editor->custom_radio = gtk_radio_button_new_with_label_from_widget
+ (GTK_RADIO_BUTTON (item_editor->stock_radio),
+ _("Custom label and image:"));
+ table_attach (main_table, item_editor->custom_radio, 0, 2);
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_grid_attach (GTK_GRID (main_table), vbox, 0, 3, 2, 1);
+ gtk_widget_set_hexpand (vbox, TRUE);
+
+ /* Label area frame... */
+ str = g_strdup_printf ("<b>%s</b>", _("Edit Label"));
+ label = gtk_label_new (str);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ g_free (str);
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 12);
+ item_editor->label_frame = frame;
+
+ alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
+ gtk_container_add (GTK_CONTAINER (frame), alignment);
+
+ table = gtk_grid_new ();
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (table),
+ GTK_ORIENTATION_VERTICAL);
+ gtk_grid_set_row_spacing (GTK_GRID (table), 4);
+ gtk_container_add (GTK_CONTAINER (alignment), table);
+
+ /* The menu label... */
+ eprop =
+ glade_widget_adaptor_create_eprop_by_name (adaptor, "label", FALSE, TRUE);
+ table_attach (table, eprop->item_label, 0, 0);
+ table_attach (table, GTK_WIDGET (eprop), 1, 0);
+ item_editor->properties = g_list_prepend (item_editor->properties, eprop);
+
+ /* Whether to use-underline... */
+ eprop =
+ glade_widget_adaptor_create_eprop_by_name (adaptor, "use-underline",
+ FALSE, TRUE);
+ table_attach (table, eprop->item_label, 0, 1);
+ table_attach (table, GTK_WIDGET (eprop), 1, 1);
+ item_editor->properties = g_list_prepend (item_editor->properties, eprop);
+
+ /* Internal Image area... */
+ str = g_strdup_printf ("<b>%s</b>", _("Edit Image"));
+ label = gtk_label_new (str);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ g_free (str);
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 12);
+ item_editor->embed_frame = frame;
+
+ alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
+ gtk_container_add (GTK_CONTAINER (frame), alignment);
+
+ item_editor->embed_image = (GtkWidget *) glade_widget_adaptor_create_editable
+ (glade_widget_adaptor_get_by_type (GTK_TYPE_IMAGE), GLADE_PAGE_GENERAL);
+ glade_editable_set_show_name (GLADE_EDITABLE (item_editor->embed_image),
+ FALSE);
+ gtk_container_add (GTK_CONTAINER (alignment), item_editor->embed_image);
+
+ /* Now hook up to our signals... */
+ g_signal_connect (G_OBJECT (item_editor->stock_radio), "toggled",
+ G_CALLBACK (stock_toggled), item_editor);
+ g_signal_connect (G_OBJECT (item_editor->custom_radio), "toggled",
+ G_CALLBACK (custom_toggled), item_editor);
+
+
+ gtk_widget_show_all (GTK_WIDGET (item_editor));
+
+ return GTK_WIDGET (item_editor);
}