index d1992b158ce03545e28da1f7396fabc191b20c02..d96b364ef4fdb82ab43bbef07b7bf7dbc34ac922 100644 (file)
#include <gtk/gtkhbox.h>
#include <gtk/gtktable.h>
#include <gtk/gtkcheckbutton.h>
-#include <gtk/gtkspinbutton.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 "../desktop-handles.h"
+#include "dialog-events.h"
+#include "../document.h"
#include <glibmm/i18n.h>
-#include "helper/window.h"
-#include "../widgets/sp-widget.h"
+#include "../helper/window.h"
#include "../inkscape.h"
-#include "../document.h"
-#include "../desktop-handles.h"
+#include "../interface.h"
+#include "../macros.h"
+#include "../preferences.h"
#include "../selection.h"
#include "../sp-item.h"
-#include "../macros.h"
#include "../verbs.h"
-#include "../interface.h"
-
-#include "dialog-events.h"
-#include "../preferences.h"
+#include "../widgets/sp-attribute-widget.h"
+#include "../widgets/sp-widget.h"
#define MIN_ONSCREEN_DISTANCE 50
sp_item_widget_new (void)
{
- GtkWidget *spw, *vb, *t, *cb, *l, *f, *tf, *pb;
+ GtkWidget *spw, *vb, *t, *cb, *l, *f, *tf, *pb, *int_expander, *int_label;
GtkTextBuffer *desc_buffer;
GtkTooltips *tt = gtk_tooltips_new();
spw );
gtk_object_set_data (GTK_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);
+
+ gtk_box_pack_start (GTK_BOX (vb), int_expander, FALSE, FALSE, 0);
+
gtk_widget_show_all (spw);
sp_item_widget_setup (SP_WIDGET (spw), sp_desktop_selection (SP_ACTIVE_DESKTOP));
/* ID */
w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id"));
- gtk_entry_set_text (GTK_ENTRY (w), obj->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"));
gtk_label_set_markup_with_mnemonic (GTK_LABEL (w), _("_Id"));
}
w = GTK_WIDGET(gtk_object_get_data(GTK_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);
+ }
+
+ 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);
+
}
gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
item->setLocked(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
- sp_document_done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SPDocumentUndo::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));
item->setExplicitlyHidden(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
- sp_document_done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SPDocumentUndo::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));
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"));
- if (!strcmp (id, SP_OBJECT_ID(item))) {
+ if (!strcmp (id, item->getId())) {
gtk_label_set_markup_with_mnemonic (GTK_LABEL (id_label), _("_Id"));
} else if (!*id || !isalnum (*id)) {
gtk_label_set_text (GTK_LABEL (id_label), _("Id invalid! "));
SPException ex;
gtk_label_set_markup_with_mnemonic (GTK_LABEL (id_label), _("_Id"));
SP_EXCEPTION_INIT (&ex);
- sp_object_setAttribute (SP_OBJECT (item), "id", id, &ex);
- sp_document_done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SP_OBJECT (item)->setAttribute ("id", id, &ex);
+ SPDocumentUndo::done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
_("Set object ID"));
}
SPObject *obj = (SPObject*)item;
if (strcmp (label, obj->defaultLabel())) {
obj->setLabel(label);
- sp_document_done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SPDocumentUndo::done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
_("Set object label"));
}
GtkWidget *w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "title"));
gchar *title = (gchar *)gtk_entry_get_text(GTK_ENTRY (w));
if (obj->setTitle(title))
- sp_document_done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SPDocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
_("Set object title"));
/* Retrieve the description */
gtk_text_buffer_get_bounds(buf, &start, &end);
gchar *desc = gtk_text_buffer_get_text(buf, &start, &end, TRUE);
if (obj->setDesc(desc))
- sp_document_done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
+ SPDocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
_("Set object description"));
g_free(desc);