diff options
| author | Andrew Higginson <at.higginson@gmail.com> | 2011-12-27 21:04:47 +0000 |
|---|---|---|
| committer | Andrew <at.higginson@gmail.com> | 2011-12-27 21:04:47 +0000 |
| commit | 80960b623a99aae1402ab651b2974ef544ed3b03 (patch) | |
| tree | ba49d42c2789e9e11f805e2d5263e10f9fedeef8 /src/dialogs/item-properties.cpp | |
| parent | try to fix bug (diff) | |
| parent | GDL: Cherry-pick upstream patch 73852 (2011-03-23) - Add missing return value. (diff) | |
| download | inkscape-80960b623a99aae1402ab651b2974ef544ed3b03.tar.gz inkscape-80960b623a99aae1402ab651b2974ef544ed3b03.zip | |
merged with trunk so I can build again...
(bzr r10092.1.36)
Diffstat (limited to 'src/dialogs/item-properties.cpp')
| -rw-r--r-- | src/dialogs/item-properties.cpp | 244 |
1 files changed, 114 insertions, 130 deletions
diff --git a/src/dialogs/item-properties.cpp b/src/dialogs/item-properties.cpp index 94b8b1e98..2e805c14e 100644 --- a/src/dialogs/item-properties.cpp +++ b/src/dialogs/item-properties.cpp @@ -1,13 +1,15 @@ -/** @file - * @brief Object properties dialog +/** + * @file + * Object properties dialog. */ /* Authors: * Lauris Kaplinski <lauris@kaplinski.com> * bulia byak <buliabyak@users.sf.net> * Johan Engelen <goejendaagh@zonnet.nl> * Abhishek Sharma + * Kris De Gussem <Kris.DeGussem@gmail.com> * - * Copyright (C) 1999-2006 Authors + * Copyright (C) 1999-2011 Authors * Copyright (C) 2001 Ximian, Inc. * * Released under GNU GPL, read the file 'COPYING' for more information @@ -16,21 +18,12 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif -#include <gtk/gtkvbox.h> -#include <gtk/gtkhbox.h> -#include <gtk/gtktable.h> -#include <gtk/gtkcheckbutton.h> #include <gtk/gtk.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkframe.h> -#include <gtk/gtkexpander.h> -#include <gtk/gtktextview.h> -#include <gtk/gtktooltips.h> +#include <glibmm/i18n.h> #include "../desktop-handles.h" #include "dialog-events.h" #include "../document.h" -#include <glibmm/i18n.h> #include "../helper/window.h" #include "../inkscape.h" #include "../interface.h" @@ -47,6 +40,7 @@ using Inkscape::DocumentUndo; #define MIN_ONSCREEN_DISTANCE 50 static GtkWidget *dlg = NULL; +static SPAttributeTable* attrTable = NULL; static win_data wd; // impossible original values to make sure they are read from prefs @@ -60,16 +54,18 @@ static void sp_item_widget_sensitivity_toggled (GtkWidget *widget, SPWidget *spw static void sp_item_widget_hidden_toggled (GtkWidget *widget, SPWidget *spw); static void sp_item_widget_label_changed (GtkWidget *widget, SPWidget *spw); -static void -sp_item_dialog_destroy( GtkObject */*object*/, gpointer /*data*/ ) +static void sp_item_dialog_destroy( GtkObject */*object*/, gpointer /*data*/ ) { + if (attrTable) + { + delete attrTable; + } sp_signal_disconnect_by_data (INKSCAPE, dlg); wd.win = dlg = NULL; wd.stop = 0; } -static gboolean -sp_item_dialog_delete( GtkObject */*object*/, GdkEvent */*event*/, gpointer /*data*/ ) +static gboolean sp_item_dialog_delete( GtkObject */*object*/, GdkEvent */*event*/, gpointer /*data*/ ) { gtk_window_get_position ((GtkWindow *) dlg, &x, &y); gtk_window_get_size ((GtkWindow *) dlg, &w, &h); @@ -88,25 +84,21 @@ sp_item_dialog_delete( GtkObject */*object*/, GdkEvent */*event*/, gpointer /*da } /** - * \brief Creates new instance of item properties widget - * + * Creates new instance of item properties widget. */ -GtkWidget * -sp_item_widget_new (void) +GtkWidget *sp_item_widget_new(void) { GtkWidget *spw, *vb, *t, *cb, *l, *f, *tf, *pb, *int_expander, *int_label; GtkTextBuffer *desc_buffer; - GtkTooltips *tt = gtk_tooltips_new(); - /* Create container widget */ spw = sp_widget_new_global (INKSCAPE); - gtk_signal_connect ( GTK_OBJECT (spw), "modify_selection", - GTK_SIGNAL_FUNC (sp_item_widget_modify_selection), + g_signal_connect ( G_OBJECT (spw), "modify_selection", + G_CALLBACK (sp_item_widget_modify_selection), spw ); - gtk_signal_connect ( GTK_OBJECT (spw), "change_selection", - GTK_SIGNAL_FUNC (sp_item_widget_change_selection), + g_signal_connect ( G_OBJECT (spw), "change_selection", + G_CALLBACK (sp_item_widget_change_selection), spw ); vb = gtk_vbox_new (FALSE, 0); @@ -125,16 +117,16 @@ sp_item_widget_new (void) gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 0, 1, (GtkAttachOptions)( GTK_SHRINK | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "id_label", l); + g_object_set_data (G_OBJECT (spw), "id_label", l); /* Create the entry box for the object id */ tf = gtk_entry_new (); - gtk_tooltips_set_tip (tt, tf, _("The id= attribute (only letters, digits, and the characters .-_: allowed)"), NULL); + gtk_widget_set_tooltip_text (tf, _("The id= attribute (only letters, digits, and the characters .-_: allowed)")); gtk_entry_set_max_length (GTK_ENTRY (tf), 64); gtk_table_attach ( GTK_TABLE (t), tf, 1, 2, 0, 1, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "id", tf); + g_object_set_data (G_OBJECT (spw), "id", tf); gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf); // pressing enter in the id field is the same as clicking Set: @@ -142,31 +134,22 @@ sp_item_widget_new (void) // focus is in the id field initially: gtk_widget_grab_focus (GTK_WIDGET (tf)); - /* Button for setting the object's id, label, title and description. */ - pb = gtk_button_new_with_mnemonic (_("_Set")); - gtk_table_attach ( GTK_TABLE (t), pb, 2, 3, 0, 1, - (GtkAttachOptions)( GTK_SHRINK | GTK_FILL ), - (GtkAttachOptions)0, 0, 0 ); - gtk_signal_connect ( GTK_OBJECT (pb), "clicked", - GTK_SIGNAL_FUNC (sp_item_widget_label_changed), - spw ); - /* Create the label for the object label */ l = gtk_label_new_with_mnemonic (_("_Label:")); gtk_misc_set_alignment (GTK_MISC (l), 1, 0.5); gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 1, 2, (GtkAttachOptions)( GTK_SHRINK | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "label_label", l); + g_object_set_data (G_OBJECT (spw), "label_label", l); /* Create the entry box for the object label */ tf = gtk_entry_new (); - gtk_tooltips_set_tip (tt, tf, _("A freeform label for the object"), NULL); + gtk_widget_set_tooltip_text (tf, _("A freeform label for the object")); gtk_entry_set_max_length (GTK_ENTRY (tf), 256); gtk_table_attach ( GTK_TABLE (t), tf, 1, 2, 1, 2, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "label", tf); + g_object_set_data (G_OBJECT (spw), "label", tf); gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf); // pressing enter in the label field is the same as clicking Set: @@ -178,7 +161,7 @@ sp_item_widget_new (void) gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 2, 3, (GtkAttachOptions)( GTK_SHRINK | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "title_label", l); + g_object_set_data (G_OBJECT (spw), "title_label", l); /* Create the entry box for the object title */ tf = gtk_entry_new (); @@ -187,7 +170,7 @@ sp_item_widget_new (void) gtk_table_attach ( GTK_TABLE (t), tf, 1, 3, 2, 3, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_object_set_data (GTK_OBJECT (spw), "title", tf); + g_object_set_data (G_OBJECT (spw), "title", tf); gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf); /* Create the frame for the object description */ @@ -204,14 +187,14 @@ sp_item_widget_new (void) gtk_widget_set_sensitive (GTK_WIDGET (textframe), FALSE); gtk_container_add (GTK_CONTAINER (f), textframe); gtk_frame_set_shadow_type (GTK_FRAME (textframe), GTK_SHADOW_IN); - gtk_object_set_data(GTK_OBJECT(spw), "desc_frame", textframe); + g_object_set_data(G_OBJECT(spw), "desc_frame", textframe); tf = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tf), GTK_WRAP_WORD); desc_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tf)); gtk_text_buffer_set_text(desc_buffer, "", -1); gtk_container_add (GTK_CONTAINER (textframe), tf); - gtk_object_set_data (GTK_OBJECT (spw), "desc", tf); + g_object_set_data (G_OBJECT (spw), "desc", tf); gtk_label_set_mnemonic_widget (GTK_LABEL (gtk_frame_get_label_widget (GTK_FRAME (f))), tf); /* Check boxes */ @@ -223,30 +206,37 @@ sp_item_widget_new (void) /* Hide */ cb = gtk_check_button_new_with_mnemonic (_("_Hide")); - gtk_tooltips_set_tip (tt, cb, _("Check to make the object invisible"), NULL); + gtk_widget_set_tooltip_text (cb, _("Check to make the object invisible")); gtk_table_attach ( GTK_TABLE (t), cb, 0, 1, 0, 1, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); g_signal_connect (G_OBJECT(cb), "toggled", G_CALLBACK(sp_item_widget_hidden_toggled), spw); - gtk_object_set_data(GTK_OBJECT(spw), "hidden", cb); + g_object_set_data(G_OBJECT(spw), "hidden", cb); + + /* Button for setting the object's id, label, title and description. */ + pb = gtk_button_new_with_mnemonic (_("_Set")); + gtk_box_pack_start (GTK_BOX (hb_cb), pb, TRUE, TRUE, 10); + g_signal_connect ( G_OBJECT (pb), "clicked", + G_CALLBACK (sp_item_widget_label_changed), + spw ); /* Lock */ // TRANSLATORS: "Lock" is a verb here cb = gtk_check_button_new_with_mnemonic (_("L_ock")); - gtk_tooltips_set_tip (tt, cb, _("Check to make the object insensitive (not selectable by mouse)"), NULL); + gtk_widget_set_tooltip_text (cb, _("Check to make the object insensitive (not selectable by mouse)")); gtk_table_attach ( GTK_TABLE (t), cb, 1, 2, 0, 1, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), (GtkAttachOptions)0, 0, 0 ); - gtk_signal_connect ( GTK_OBJECT (cb), "toggled", - GTK_SIGNAL_FUNC (sp_item_widget_sensitivity_toggled), + g_signal_connect ( G_OBJECT (cb), "toggled", + G_CALLBACK (sp_item_widget_sensitivity_toggled), spw ); - gtk_object_set_data (GTK_OBJECT (spw), "sensitive", cb); + g_object_set_data (G_OBJECT (spw), "sensitive", cb); /* Create the frame for interactivity options */ int_label = gtk_label_new_with_mnemonic (_("_Interactivity")); int_expander = gtk_expander_new (NULL); gtk_expander_set_label_widget (GTK_EXPANDER (int_expander),int_label); - gtk_object_set_data (GTK_OBJECT (spw), "interactivity", int_expander); + g_object_set_data (G_OBJECT (spw), "interactivity", int_expander); gtk_box_pack_start (GTK_BOX (vb), int_expander, FALSE, FALSE, 0); @@ -260,8 +250,7 @@ sp_item_widget_new (void) -static void -sp_item_widget_modify_selection( SPWidget *spw, +static void sp_item_widget_modify_selection( SPWidget *spw, Inkscape::Selection *selection, guint /*flags*/, GtkWidget */*itemw*/ ) @@ -271,8 +260,7 @@ sp_item_widget_modify_selection( SPWidget *spw, -static void -sp_item_widget_change_selection ( SPWidget *spw, +static void sp_item_widget_change_selection ( SPWidget *spw, Inkscape::Selection *selection, GtkWidget */*itemw*/ ) { @@ -281,14 +269,13 @@ sp_item_widget_change_selection ( SPWidget *spw, /** -* \param selection Selection to use; should not be NULL. -*/ -static void -sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection ) + * @param selection Selection to use; should not be NULL. + */ +static void sp_item_widget_setup( SPWidget *spw, Inkscape::Selection *selection ) { g_assert (selection != NULL); - if (gtk_object_get_data (GTK_OBJECT (spw), "blocked")) + if (g_object_get_data(G_OBJECT (spw), "blocked")) return; if (!selection->singleItem()) { @@ -298,51 +285,51 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection ) gtk_widget_set_sensitive (GTK_WIDGET (spw), TRUE); } - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); SPItem *item = selection->singleItem(); /* Sensitive */ - GtkWidget *w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "sensitive")); + GtkWidget *w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "sensitive")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), item->isLocked()); /* Hidden */ - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "hidden")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "hidden")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), item->isExplicitlyHidden()); if (item->cloned) { /* ID */ - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id")); gtk_entry_set_text (GTK_ENTRY (w), ""); gtk_widget_set_sensitive (w, FALSE); - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label")); gtk_label_set_text (GTK_LABEL (w), _("Ref")); /* Label */ - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label")); gtk_entry_set_text (GTK_ENTRY (w), ""); gtk_widget_set_sensitive (w, FALSE); - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label_label")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label_label")); gtk_label_set_text (GTK_LABEL (w), _("Ref")); } else { SPObject *obj = (SPObject*)item; /* ID */ - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id")); gtk_entry_set_text (GTK_ENTRY (w), obj->getId()); gtk_widget_set_sensitive (w, TRUE); - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (w), _("_ID:")); /* Label */ - w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label")); gtk_entry_set_text (GTK_ENTRY (w), obj->defaultLabel()); gtk_widget_set_sensitive (w, TRUE); /* Title */ - w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "title")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "title")); gchar *title = obj->title(); if (title) { gtk_entry_set_text(GTK_ENTRY(w), title); @@ -352,7 +339,7 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection ) gtk_widget_set_sensitive(w, TRUE); /* Description */ - w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "desc")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "desc")); GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)); gchar *desc = obj->desc(); if (desc) { @@ -361,87 +348,90 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection ) } else { gtk_text_buffer_set_text(buf, "", 0); } - w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "desc_frame")); + w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "desc_frame")); gtk_widget_set_sensitive(w, TRUE); - w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "interactivity")); - - GtkWidget* int_table = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "interactivity_table")); - if (int_table){ - gtk_container_remove(GTK_CONTAINER(w), int_table); + w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "interactivity")); + + GtkWidget* int_table = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "interactivity_table")); + + std::vector<Glib::ustring> int_labels; + int_labels.push_back("onclick"); + int_labels.push_back("onmouseover"); + int_labels.push_back("onmouseout"); + int_labels.push_back("onmousedown"); + int_labels.push_back("onmouseup"); + int_labels.push_back("onmousemove"); + int_labels.push_back("onfocusin"); + int_labels.push_back("onfocusout"); + int_labels.push_back("onfocusout"); + int_labels.push_back("onload"); + + if (attrTable) + { + delete(attrTable); } - - const gchar* int_labels[10] = {"onclick", "onmouseover", "onmouseout", "onmousedown", "onmouseup", "onmousemove","onfocusin", "onfocusout", "onactivate", "onload"}; - - int_table = sp_attribute_table_new (obj, 10, int_labels, int_labels); - gtk_widget_show_all (int_table); - gtk_object_set_data(GTK_OBJECT(spw), "interactivity_table", int_table); - - gtk_container_add (GTK_CONTAINER (w), int_table); - + attrTable = new SPAttributeTable (obj, int_labels, int_labels, w); + attrTable->show_all(); + g_object_set_data(G_OBJECT(spw), "interactivity_table", (GtkWidget*) attrTable->gobj()); } - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); - - + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); } // end of sp_item_widget_setup() -static void -sp_item_widget_sensitivity_toggled (GtkWidget *widget, SPWidget *spw) +static void sp_item_widget_sensitivity_toggled (GtkWidget *widget, SPWidget *spw) { - if (gtk_object_get_data (GTK_OBJECT (spw), "blocked")) + if (g_object_get_data(G_OBJECT (spw), "blocked")) return; SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem(); g_return_if_fail (item != NULL); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); item->setLocked(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))? _("Lock object") : _("Unlock object")); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); } -void -sp_item_widget_hidden_toggled(GtkWidget *widget, SPWidget *spw) +void sp_item_widget_hidden_toggled(GtkWidget *widget, SPWidget *spw) { - if (gtk_object_get_data (GTK_OBJECT (spw), "blocked")) + if (g_object_get_data(G_OBJECT (spw), "blocked")) return; SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem(); g_return_if_fail (item != NULL); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); item->setExplicitlyHidden(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))? _("Hide object") : _("Unhide object")); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); } -static void -sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw ) +static void sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw ) { - if (gtk_object_get_data (GTK_OBJECT (spw), "blocked")) + if (g_object_get_data(G_OBJECT (spw), "blocked")) return; SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem(); g_return_if_fail (item != NULL); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE)); /* Retrieve the label widget for the object's id */ - GtkWidget *id_entry = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id")); + GtkWidget *id_entry = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id")); gchar *id = (gchar *) gtk_entry_get_text (GTK_ENTRY (id_entry)); g_strcanon (id, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.:", '_'); - GtkWidget *id_label = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label")); + GtkWidget *id_label = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label")); if (!strcmp (id, item->getId())) { gtk_label_set_markup_with_mnemonic (GTK_LABEL (id_label), _("_ID:")); } else if (!*id || !isalnum (*id)) { @@ -458,7 +448,7 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw ) } /* Retrieve the label widget for the object's label */ - GtkWidget *label_entry = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label")); + GtkWidget *label_entry = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label")); gchar *label = (gchar *)gtk_entry_get_text (GTK_ENTRY (label_entry)); g_assert(label != NULL); @@ -473,14 +463,14 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw ) } /* Retrieve the title */ - GtkWidget *w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "title")); + GtkWidget *w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "title")); gchar *title = (gchar *)gtk_entry_get_text(GTK_ENTRY (w)); if (obj->setTitle(title)) DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM, _("Set object title")); /* Retrieve the description */ - GtkTextView *tv = GTK_TEXT_VIEW(gtk_object_get_data(GTK_OBJECT(spw), "desc")); + GtkTextView *tv = GTK_TEXT_VIEW(g_object_get_data(G_OBJECT(spw), "desc")); GtkTextBuffer *buf = gtk_text_view_get_buffer(tv); GtkTextIter start, end; gtk_text_buffer_get_bounds(buf, &start, &end); @@ -490,25 +480,24 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw ) _("Set object description")); g_free(desc); - gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); + g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE)); } // end of sp_item_widget_label_changed() /** - * \brief Dialog - * + * Dialog. */ -void -sp_item_dialog (void) +void sp_item_dialog(void) { if (dlg == NULL) { gchar title[500]; sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_ITEM), title); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - - dlg = sp_window_new (title, TRUE); + + Gtk::Window* window = Inkscape::UI::window_new (title, true); + dlg = (GtkWidget*)window->gobj(); if (x == -1000 || y == -1000) { x = prefs->getInt(prefs_path + "x", -1000); y = prefs->getInt(prefs_path + "y", -1000); @@ -518,9 +507,6 @@ sp_item_dialog (void) h = prefs->getInt(prefs_path + "h", 0); } -// if (x<0) x=0; -// if (y<0) y=0; - if (w && h) { gtk_window_resize ((GtkWindow *) dlg, w, h); } @@ -530,24 +516,22 @@ sp_item_dialog (void) gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER); } - sp_transientize (dlg); wd.win = dlg; wd.stop = 0; - g_signal_connect ( G_OBJECT (INKSCAPE), "activate_desktop", G_CALLBACK (sp_transientize_callback), &wd); - gtk_signal_connect ( GTK_OBJECT (dlg), "event", GTK_SIGNAL_FUNC (sp_dialog_event_handler), dlg); - gtk_signal_connect ( GTK_OBJECT (dlg), "destroy", G_CALLBACK (sp_item_dialog_destroy), dlg); - gtk_signal_connect ( GTK_OBJECT (dlg), "delete_event", G_CALLBACK (sp_item_dialog_delete), dlg); - g_signal_connect ( G_OBJECT (INKSCAPE), "shut_down", G_CALLBACK (sp_item_dialog_delete), dlg); - g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_hide", G_CALLBACK (sp_dialog_hide), dlg); - g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_unhide", G_CALLBACK (sp_dialog_unhide), dlg); + g_signal_connect ( G_OBJECT (INKSCAPE), "activate_desktop", G_CALLBACK (sp_transientize_callback), &wd); + g_signal_connect ( G_OBJECT (dlg), "event", G_CALLBACK (sp_dialog_event_handler), dlg); + g_signal_connect ( G_OBJECT (dlg), "destroy", G_CALLBACK (sp_item_dialog_destroy), dlg); + g_signal_connect ( G_OBJECT (dlg), "delete_event", G_CALLBACK (sp_item_dialog_delete), dlg); + g_signal_connect ( G_OBJECT (INKSCAPE), "shut_down", G_CALLBACK (sp_item_dialog_delete), dlg); + g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_hide", G_CALLBACK (sp_dialog_hide), dlg); + g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_unhide", G_CALLBACK (sp_dialog_unhide), dlg); // Dialog-specific stuff GtkWidget *itemw = sp_item_widget_new (); gtk_widget_show (itemw); gtk_container_add (GTK_CONTAINER (dlg), itemw); - } gtk_window_present ((GtkWindow *) dlg); |
