summaryrefslogtreecommitdiffstats
path: root/src/dialogs
diff options
context:
space:
mode:
authorAubanel Monnier <aubanel@gmail.com>2008-03-21 10:00:42 +0000
committero__b <o__b@users.sourceforge.net>2008-03-21 10:00:42 +0000
commite3deb7dd034f1bff2e02a5ec60f7ee7ac737087a (patch)
tree8b50eed7f54216ead35a7cfa5fabb3bae5791874 /src/dialogs
parentReplace char buffer by std::string to prevent buffer overflow when computing ... (diff)
downloadinkscape-e3deb7dd034f1bff2e02a5ec60f7ee7ac737087a.tar.gz
inkscape-e3deb7dd034f1bff2e02a5ec60f7ee7ac737087a.zip
Added dialog to name new calligraphic
profiles (bzr r5142)
Diffstat (limited to 'src/dialogs')
-rw-r--r--src/dialogs/Makefile_insert5
-rwxr-xr-xsrc/dialogs/calligraphic-profile-rename.cpp99
-rwxr-xr-xsrc/dialogs/calligraphic-profile-rename.h56
3 files changed, 158 insertions, 2 deletions
diff --git a/src/dialogs/Makefile_insert b/src/dialogs/Makefile_insert
index 05a077ab5..64e46b470 100644
--- a/src/dialogs/Makefile_insert
+++ b/src/dialogs/Makefile_insert
@@ -63,8 +63,9 @@ dialogs_libspdialogs_a_SOURCES = \
dialogs/unclump.cpp \
dialogs/unclump.h \
dialogs/iconpreview.cpp \
- dialogs/iconpreview.h
-
+ dialogs/iconpreview.h \
+ dialogs/calligraphic-profile-rename.cpp \
+ dialogs/calligraphic-profile-rename.cpp
# dialogs/sp-widget.c \
# dialogs/sp-widget.h \
diff --git a/src/dialogs/calligraphic-profile-rename.cpp b/src/dialogs/calligraphic-profile-rename.cpp
new file mode 100755
index 000000000..ae9a31c0e
--- /dev/null
+++ b/src/dialogs/calligraphic-profile-rename.cpp
@@ -0,0 +1,99 @@
+/**
+ *
+ * \brief Dialog for naming calligraphic profiles
+ *
+ * Author:
+ * Aubanel MONNIER
+ *
+ * Copyright (C) 2007 Aubanel MONNIER
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <glibmm/i18n.h>
+#include <gtkmm/stock.h>
+
+#include "desktop.h"
+#include "calligraphic-profile-rename.h"
+
+
+namespace Inkscape {
+namespace UI {
+namespace Dialogs {
+CalligraphicProfileDialog::CalligraphicProfileDialog(): _applied(false){
+ Gtk::VBox *mainVBox = get_vbox();
+ _layout_table.set_spacings(4);
+ _layout_table.resize (1, 2);
+
+ _profile_name_entry.set_activates_default(true);
+
+ _profile_name_label.set_label(_("Profile name:"));
+ _profile_name_label.set_alignment(1.0, 0.5);
+
+ _layout_table.attach(_profile_name_label,
+ 0, 1, 0, 1, Gtk::FILL, Gtk::FILL);
+ _layout_table.attach(_profile_name_entry,
+ 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL);
+ mainVBox->pack_start(_layout_table, false, false, 4);
+ // Buttons
+ _close_button.set_use_stock(true);
+ _close_button.set_label(Gtk::Stock::CANCEL.id);
+ _close_button.set_flags(Gtk::CAN_DEFAULT);
+
+ _apply_button.set_use_underline(true);
+ _apply_button.set_label(_("Save"));
+ _apply_button.set_flags(Gtk::CAN_DEFAULT);
+
+ _close_button.signal_clicked()
+ .connect(sigc::mem_fun(*this, &CalligraphicProfileDialog::_close));
+ _apply_button.signal_clicked()
+ .connect(sigc::mem_fun(*this, &CalligraphicProfileDialog::_apply));
+
+ signal_delete_event().connect(
+ sigc::bind_return(
+ sigc::hide(sigc::mem_fun(*this, &CalligraphicProfileDialog::_close)),
+ true
+ )
+ );
+
+ add_action_widget(_close_button, Gtk::RESPONSE_CLOSE);
+ add_action_widget(_apply_button, Gtk::RESPONSE_APPLY);
+
+ _apply_button.grab_default();
+
+ show_all_children();
+
+}
+
+void
+CalligraphicProfileDialog::_apply()
+{
+ _profile_name = _profile_name_entry.get_text();
+ _applied = true;
+ _close();
+}
+
+void
+CalligraphicProfileDialog::_close()
+{
+ this->Gtk::Dialog::hide();
+
+}
+
+void CalligraphicProfileDialog::show(SPDesktop *desktop){
+ CalligraphicProfileDialog &dial = instance();
+ dial._applied=false;
+ dial.set_modal(true);
+ desktop->setWindowTransient (dial.gobj());
+ dial.property_destroy_with_parent() = true;
+ // dial.Gtk::Dialog::show();
+ //dial.present();
+ dial.run();
+}
+
+
+}}}
diff --git a/src/dialogs/calligraphic-profile-rename.h b/src/dialogs/calligraphic-profile-rename.h
new file mode 100755
index 000000000..133d94a28
--- /dev/null
+++ b/src/dialogs/calligraphic-profile-rename.h
@@ -0,0 +1,56 @@
+/**
+ *
+ * \brief Dialog for naming calligraphic profiles
+ *
+ * Author:
+ * Aubanel MONNIER
+ *
+ * Copyright (C) 2007 Aubanel MONNIER
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information
+ */
+
+#ifndef INKSCAPE_DIALOG_CALLIGRAPHIC_PROFILE_H
+#define INKSCAPE_DIALOG_CALLIGRAPHIC_PROFILE_H
+
+#include <gtkmm/dialog.h>
+#include <gtkmm/entry.h>
+#include <gtkmm/label.h>
+#include <gtkmm/table.h>
+
+namespace Inkscape {
+ namespace UI {
+ namespace Dialogs {
+
+ class CalligraphicProfileDialog: public Gtk::Dialog {
+ public:
+ CalligraphicProfileDialog();
+ virtual ~CalligraphicProfileDialog(){} ;
+ static void show(SPDesktop *desktop);
+ static bool applied(){return instance()._applied;}
+ static Glib::ustring getProfileName() { return instance()._profile_name;}
+
+ Glib::ustring getName() const { return "CalligraphicProfileDialog"; }
+
+
+ protected:
+ void _close();
+ void _apply();
+
+ Gtk::Label _profile_name_label;
+ Gtk::Entry _profile_name_entry;
+ Gtk::Table _layout_table;
+ Gtk::Button _close_button;
+ Gtk::Button _apply_button;
+ Glib::ustring _profile_name;
+ bool _applied;
+ private:
+ static CalligraphicProfileDialog &instance(){static CalligraphicProfileDialog instance; return instance;}
+ CalligraphicProfileDialog(CalligraphicProfileDialog const &); // no copy
+ CalligraphicProfileDialog &operator=(CalligraphicProfileDialog const &); // no assign
+ };
+ }
+ }
+}
+
+#endif INKSCAPE_DIALOG_CALLIGRAPHIC_PROFILE_H