+ g_signal_connect (G_OBJECT(label), "selection_changed",
+ G_CALLBACK(selection_changed_cb), editor);
+ g_signal_connect (G_OBJECT (label), "size_changed",
+ G_CALLBACK (label_changed_cb), editor);
+ g_signal_connect (G_OBJECT (label), "merge_changed",
+ G_CALLBACK (merge_changed_cb), editor);
+
+ gl_debug (DEBUG_EDITOR, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Private. Set object. */
+/*--------------------------------------------------------------------------*/
+static void
+set_object (glObjectEditor *editor,
+ glLabelObject *object)
+{
+ gchar *image;
+ gchar *title;
+ gchar *s;
+ GtkTextBuffer *buffer;
+ gint old_page, new_page;
+
+ gl_debug (DEBUG_EDITOR, "START");
+
+ if ( editor->priv->object != NULL )
+ {
+ g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+ object_changed_cb, editor);
+ g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+ object_moved_cb, editor);
+ g_object_unref (editor->priv->object);
+ }
+
+ if (object)
+ {
+ editor->priv->object = g_object_ref (object);
+
+ old_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (editor->priv->notebook));
+
+ if (GL_IS_LABEL_BOX (object))
+ {
+ image = "glabels-box";
+ title = _("Box object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_show_all (editor->priv->size_page_vbox);
+ gtk_widget_hide (editor->priv->lsize_page_vbox);
+ gtk_widget_show_all (editor->priv->fill_page_vbox);
+ gtk_widget_show_all (editor->priv->line_page_vbox);
+ gtk_widget_hide (editor->priv->img_page_vbox);
+ gtk_widget_hide (editor->priv->text_page_vbox);
+ gtk_widget_hide (editor->priv->edit_page_vbox);
+ gtk_widget_hide (editor->priv->bc_page_vbox);
+ gtk_widget_hide (editor->priv->data_page_vbox);
+ gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+ gtk_widget_hide (editor->priv->size_reset_image_button);
+ }
+ else if (GL_IS_LABEL_ELLIPSE (object))
+ {
+ image = "glabels-ellipse";
+ title = _("Ellipse object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_show_all (editor->priv->size_page_vbox);
+ gtk_widget_hide (editor->priv->lsize_page_vbox);
+ gtk_widget_show_all (editor->priv->fill_page_vbox);
+ gtk_widget_show_all (editor->priv->line_page_vbox);
+ gtk_widget_hide (editor->priv->img_page_vbox);
+ gtk_widget_hide (editor->priv->text_page_vbox);
+ gtk_widget_hide (editor->priv->edit_page_vbox);
+ gtk_widget_hide (editor->priv->bc_page_vbox);
+ gtk_widget_hide (editor->priv->data_page_vbox);
+ gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+ gtk_widget_hide (editor->priv->size_reset_image_button);
+ }
+ else if (GL_IS_LABEL_LINE (object))
+ {
+ image = "glabels-line";
+ title = _("Line object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_hide (editor->priv->size_page_vbox);
+ gtk_widget_show_all (editor->priv->lsize_page_vbox);
+ gtk_widget_hide (editor->priv->fill_page_vbox);
+ gtk_widget_show_all (editor->priv->line_page_vbox);
+ gtk_widget_hide (editor->priv->img_page_vbox);
+ gtk_widget_hide (editor->priv->text_page_vbox);
+ gtk_widget_hide (editor->priv->edit_page_vbox);
+ gtk_widget_hide (editor->priv->bc_page_vbox);
+ gtk_widget_hide (editor->priv->data_page_vbox);
+ gtk_widget_show_all (editor->priv->shadow_page_vbox);
+ }
+ else if (GL_IS_LABEL_IMAGE (object))
+ {
+ image = "glabels-image";
+ title = _("Image object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_show_all (editor->priv->size_page_vbox);
+ gtk_widget_hide (editor->priv->lsize_page_vbox);
+ gtk_widget_hide (editor->priv->fill_page_vbox);
+ gtk_widget_hide (editor->priv->line_page_vbox);
+ gtk_widget_show_all (editor->priv->img_page_vbox);
+ gtk_widget_hide (editor->priv->text_page_vbox);
+ gtk_widget_hide (editor->priv->edit_page_vbox);
+ gtk_widget_hide (editor->priv->bc_page_vbox);
+ gtk_widget_hide (editor->priv->data_page_vbox);
+ gtk_widget_show_all (editor->priv->shadow_page_vbox);
+ }
+ else if (GL_IS_LABEL_TEXT (object))
+ {
+ image = "glabels-text";
+ title = _("Text object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_show_all (editor->priv->size_page_vbox);
+ gtk_widget_hide (editor->priv->lsize_page_vbox);
+ gtk_widget_hide (editor->priv->fill_page_vbox);
+ gtk_widget_hide (editor->priv->line_page_vbox);
+ gtk_widget_hide (editor->priv->img_page_vbox);
+ gtk_widget_show_all (editor->priv->text_page_vbox);
+ gtk_widget_show_all (editor->priv->edit_page_vbox);
+ gtk_widget_hide (editor->priv->bc_page_vbox);
+ gtk_widget_hide (editor->priv->data_page_vbox);
+ gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+ gtk_widget_hide (editor->priv->size_reset_image_button);
+
+ buffer = gl_label_text_get_buffer (GL_LABEL_TEXT(object));
+ gl_object_editor_set_text_buffer (editor, buffer);
+ }
+ else if (GL_IS_LABEL_BARCODE (object))
+ {
+ image = "glabels-barcode";
+ title = _("Barcode object properties");
+
+ gtk_widget_show_all (editor->priv->pos_page_vbox);
+ gtk_widget_show_all (editor->priv->size_page_vbox);
+ gtk_widget_hide (editor->priv->lsize_page_vbox);
+ gtk_widget_hide (editor->priv->fill_page_vbox);
+ gtk_widget_hide (editor->priv->line_page_vbox);
+ gtk_widget_hide (editor->priv->img_page_vbox);
+ gtk_widget_hide (editor->priv->text_page_vbox);
+ gtk_widget_hide (editor->priv->edit_page_vbox);
+ gtk_widget_show_all (editor->priv->bc_page_vbox);
+ gtk_widget_show_all (editor->priv->data_page_vbox);
+ gtk_widget_hide (editor->priv->shadow_page_vbox);
+
+ gtk_widget_hide (editor->priv->size_reset_image_button);
+ }
+
+ gtk_image_set_from_icon_name (GTK_IMAGE(editor->priv->title_image),
+ image,
+ GTK_ICON_SIZE_LARGE_TOOLBAR);