summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/document-properties.cpp
diff options
context:
space:
mode:
authorAaron Spike <aaron@ekips.org>2006-04-19 03:51:07 +0000
committeracspike <acspike@users.sourceforge.net>2006-04-19 03:51:07 +0000
commitf68dc06235a7c91fc2e78925cc1b886de8f5e826 (patch)
tree0b6d86ae76e30447d52f98d96bd311cb51c83a39 /src/ui/dialog/document-properties.cpp
parentCrash fix (occured if creating layer in layerless document) (diff)
downloadinkscape-f68dc06235a7c91fc2e78925cc1b886de8f5e826.tar.gz
inkscape-f68dc06235a7c91fc2e78925cc1b886de8f5e826.zip
Adding fit canvas verbs
a few fixes in verbs.cpp and a new button (bzr r539)
Diffstat (limited to 'src/ui/dialog/document-properties.cpp')
-rw-r--r--src/ui/dialog/document-properties.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index 9951f5956..4d7b8abc7 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -32,6 +32,7 @@
#include "desktop-handles.h"
#include "desktop.h"
#include "sp-namedview.h"
+#include "helper/action.h"
#include "document-properties.h"
@@ -55,6 +56,8 @@ static void on_doc_replaced (SPDesktop* dt, SPDocument* doc);
static void on_activate_desktop (Inkscape::Application *, SPDesktop* dt, void*);
static void on_deactivate_desktop (Inkscape::Application *, SPDesktop* dt, void*);
+static void fire_fit_canvas_to_selection_or_drawing();
+
static Inkscape::XML::NodeEventVector const _repr_events = {
NULL, /* child_added */
NULL, /* child_removed */
@@ -190,6 +193,8 @@ DocumentProperties::build_page()
"bordercolor", "borderopacity", _wr);
_rcb_shad.init (_("_Show border shadow"), _("If set, page border shows a shadow on its right and lower side"), "inkscape:showpageshadow", _wr, false);
_rum_deflt.init (_("Default _units:"), "inkscape:document-units", _wr);
+ Gtk::Button* fit_canv = manage(new Gtk::Button(_("Fit canvas to current selection")));
+ fit_canv->signal_clicked().connect(sigc::ptr_fun(fire_fit_canvas_to_selection_or_drawing));
Gtk::Label* label_gen = manage (new Gtk::Label);
label_gen->set_markup (_("<b>General</b>"));
Gtk::Label* label_bor = manage (new Gtk::Label);
@@ -203,10 +208,11 @@ DocumentProperties::build_page()
label_gen, 0,
_rum_deflt._label, _rum_deflt._sel,
_rcp_bg._label, _rcp_bg._cp,
- 0, 0,
+ 0, 0,
label_for, 0,
0, &_page_sizer,
- 0, 0,
+ 0, fit_canv,
+ 0, 0,
label_bor, 0,
0, _rcb_canb._button,
0, _rcb_bord._button,
@@ -490,6 +496,19 @@ on_doc_replaced (SPDesktop* dt, SPDocument* doc)
_instance->update();
}
+static void
+fire_fit_canvas_to_selection_or_drawing() {
+ SPDesktop *dt = SP_ACTIVE_DESKTOP;
+ if (!dt) return;
+ Verb *verb = Verb::get( SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING );
+ if (verb) {
+ SPAction *action = verb->get_action(dt);
+ if (action) {
+ sp_action_perform(action, NULL);
+ }
+ }
+}
+
} // namespace Dialog
} // namespace UI