diff options
| author | Andrius Ramanauskas <knutux@gmail.com> | 2006-04-28 19:32:07 +0000 |
|---|---|---|
| committer | knutux <knutux@users.sourceforge.net> | 2006-04-28 19:32:07 +0000 |
| commit | 2e526e2b0e56d0d19e84b7ceade818fdb93cd131 (patch) | |
| tree | 7d19ce3fde256934ef39bb6d725ad724f0177942 /src/desktop-events.cpp | |
| parent | Replaced two tests with CxxTest versions. (diff) | |
| download | inkscape-2e526e2b0e56d0d19e84b7ceade818fdb93cd131.tar.gz inkscape-2e526e2b0e56d0d19e84b7ceade818fdb93cd131.zip | |
Converting guideline properties dialog to gtkmm (first step - straightforward conversion)
(bzr r606)
Diffstat (limited to 'src/desktop-events.cpp')
| -rw-r--r-- | src/desktop-events.cpp | 206 |
1 files changed, 2 insertions, 204 deletions
diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp index 3147fae24..bab39d332 100644 --- a/src/desktop-events.cpp +++ b/src/desktop-events.cpp @@ -14,12 +14,6 @@ #ifdef HAVE_CONFIG_H # include <config.h> #endif -#include <gtk/gtkdialog.h> -#include <gtk/gtkspinbutton.h> -#include <gtk/gtkhbox.h> -#include <gtk/gtkvbox.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkstock.h> #include "display/guideline.h" #include "helper/unit-menu.h" #include "helper/units.h" @@ -35,9 +29,7 @@ #include "dialogs/dialog-events.h" #include "message-context.h" #include "xml/repr.h" - -static void sp_dt_simple_guide_dialog(SPGuide *guide, SPDesktop *desktop); - +#include "dialogs/guidelinedialog.h" /* Root item handler */ @@ -168,7 +160,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) if (event->button.button == 1) { dragging = false; sp_canvas_item_ungrab(item, event->button.time); - sp_dt_simple_guide_dialog(guide, desktop); + Inkscape::UI::Dialogs::GuidelinePropertiesDialog::showDialog(guide, desktop); ret = TRUE; } break; @@ -245,200 +237,6 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) } - -/* - * simple guideline dialog - */ - -static GtkWidget *d = NULL; -static GtkWidget *l1; -static GtkWidget *l2; -static GtkWidget *e; -static GtkWidget *u; -static GtkWidget *m; -static gdouble oldpos; -static bool mode; -static gpointer g; - - -static void guide_dialog_mode_changed(GtkWidget *widget) -{ - if (mode) { - // TRANSLATORS: This string appears when double-clicking on a guide. - // This is the distance by which the guide is to be moved. - gtk_label_set_text(GTK_LABEL(m), _(" relative by ")); - mode = false; - } else { - // TRANSLATORS: This string appears when double-clicking on a guide. - // This is the target location where the guide is to be moved. - gtk_label_set_text(GTK_LABEL(m), _(" absolute to ")); - mode = true; - } -} - -static void guide_dialog_close(GtkWidget *widget, gpointer data) -{ - gtk_widget_hide(GTK_WIDGET(d)); -} - -static void guide_dialog_apply(SPGuide &guide) -{ - gdouble const raw_dist = gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(e)); - SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(u)); - gdouble const points = sp_units_get_pixels(raw_dist, unit); - gdouble const newpos = ( mode - ? points - : guide.position + points ); - sp_guide_moveto(guide, newpos, true); - sp_document_done(SP_OBJECT_DOCUMENT(&guide)); -} - -static void guide_dialog_ok(GtkWidget *widget, gpointer g) -{ - SPGuide &guide = **static_cast<SPGuide**>(g); - guide_dialog_apply(guide); - guide_dialog_close(NULL, GTK_DIALOG(widget)); -} - -static void guide_dialog_delete(GtkWidget *widget, SPGuide **guide) -{ - SPDocument *doc = SP_OBJECT_DOCUMENT(*guide); - sp_guide_remove(*guide); - sp_document_done(doc); - guide_dialog_close(NULL, GTK_DIALOG(widget)); -} - -static void guide_dialog_response(GtkDialog *dialog, gint response, gpointer data) -{ - GtkWidget *widget = GTK_WIDGET(dialog); - - switch (response) { - case GTK_RESPONSE_OK: - guide_dialog_ok(widget, data); - break; - case -12: - guide_dialog_delete(widget, (SPGuide**) data); - break; - case GTK_RESPONSE_CLOSE: - guide_dialog_close(widget, (GtkDialog*) data); - break; - case GTK_RESPONSE_DELETE_EVENT: - break; -/* case GTK_RESPONSE_APPLY: - guide_dialog_apply(widget, data); - break; -*/ - default: - g_assert_not_reached(); - } -} - -static void sp_dt_simple_guide_dialog(SPGuide *guide, SPDesktop *desktop) -{ - if (!GTK_IS_WIDGET(d)) { - // create dialog - d = gtk_dialog_new_with_buttons(_("Guideline"), - NULL, - GTK_DIALOG_MODAL, - GTK_STOCK_OK, - GTK_RESPONSE_OK, - GTK_STOCK_DELETE, - -12, /* DELETE */ - GTK_STOCK_CLOSE, - GTK_RESPONSE_CLOSE, - NULL); - sp_transientize(d); - gtk_widget_hide(d); - - GtkWidget *b1 = gtk_hbox_new(FALSE, 4); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), b1, FALSE, FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(b1), 4); - gtk_widget_show(b1); - - GtkWidget *b2 = gtk_vbox_new(FALSE, 4); - gtk_box_pack_end(GTK_BOX(b1), b2, TRUE, TRUE, 0); - gtk_widget_show(b2); - - //labels - GtkWidget *b3 = gtk_hbox_new(FALSE, 4); - gtk_box_pack_start(GTK_BOX(b2), b3, TRUE, TRUE, 0); - gtk_widget_show(b3); - - l1 = gtk_label_new("foo1"); - gtk_box_pack_start(GTK_BOX(b3), l1, TRUE, TRUE, 0); - gtk_misc_set_alignment(GTK_MISC(l1), 1.0, 0.5); - gtk_widget_show(l1); - - l2 = gtk_label_new("foo2"); - gtk_box_pack_start(GTK_BOX(b3), l2, TRUE, TRUE, 0); - gtk_misc_set_alignment(GTK_MISC(l2), 0.0, 0.5); - gtk_widget_show(l2); - - GtkWidget *b4 = gtk_hbox_new(FALSE, 4); - gtk_box_pack_start(GTK_BOX(b2), b4, FALSE, FALSE, 0); - gtk_widget_show(b4); - // mode button - GtkWidget *but = gtk_button_new(); - gtk_button_set_relief(GTK_BUTTON(but), GTK_RELIEF_NONE); - gtk_box_pack_start(GTK_BOX(b4), but, FALSE, TRUE, 0); - gtk_signal_connect_while_alive(GTK_OBJECT(but), "clicked", GTK_SIGNAL_FUNC(guide_dialog_mode_changed), - NULL , GTK_OBJECT(but)); - gtk_widget_show(but); - m = gtk_label_new(_(" absolute to ")); - mode = true; - gtk_container_add(GTK_CONTAINER(but), m); - gtk_widget_show(m); - - // unitmenu - /* fixme: We should allow percents here too, as percents of the canvas size */ - u = sp_unit_selector_new(SP_UNIT_ABSOLUTE | SP_UNIT_DEVICE); - sp_unit_selector_set_unit(SP_UNIT_SELECTOR(u), desktop->namedview->doc_units); - - // spinbutton - GtkObject *a = gtk_adjustment_new(0.0, -SP_DESKTOP_SCROLL_LIMIT, SP_DESKTOP_SCROLL_LIMIT, 1.0, 10.0, 10.0); - sp_unit_selector_add_adjustment(SP_UNIT_SELECTOR(u), GTK_ADJUSTMENT(a)); - e = gtk_spin_button_new(GTK_ADJUSTMENT(a), 1.0 , 2); - gtk_widget_show(e); - gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(e), TRUE); - gtk_box_pack_start(GTK_BOX(b4), e, TRUE, TRUE, 0); - gtk_signal_connect_object(GTK_OBJECT(e), "activate", - GTK_SIGNAL_FUNC(gtk_window_activate_default), - GTK_OBJECT(d)); -/* gnome_dialog_editable_enters(GNOME_DIALOG(d), GTK_EDITABLE(e)); */ - - gtk_widget_show(u); - gtk_box_pack_start(GTK_BOX(b4), u, FALSE, FALSE, 0); - - - // dialog - gtk_dialog_set_default_response(GTK_DIALOG(d), GTK_RESPONSE_OK); - gtk_signal_connect(GTK_OBJECT(d), "response", GTK_SIGNAL_FUNC(guide_dialog_response), &g); - gtk_signal_connect(GTK_OBJECT(d), "delete_event", GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), GTK_WIDGET(d)); - } - - // initialize dialog - g = guide; - oldpos = guide->position; - { - char *guide_description = sp_guide_description(guide); - char *label = g_strdup_printf(_("Move %s"), guide_description); - g_free(guide_description); - gtk_label_set(GTK_LABEL(l1), label); - g_free(label); - } - - SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(u)); - gdouble const val = sp_pixels_get_units(oldpos, unit); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), val); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), val); - gtk_widget_grab_focus(e); - gtk_editable_select_region(GTK_EDITABLE(e), 0, 20); - gtk_window_set_position(GTK_WINDOW(d), GTK_WIN_POS_MOUSE); - - gtk_widget_show(d); -} - - /* Local Variables: mode:c++ |
