summaryrefslogtreecommitdiffstats
path: root/src/display/canvas-grid.cpp
diff options
context:
space:
mode:
authorGeoff Lankow <geoff@darktrojan.net>2018-04-13 03:46:26 +0000
committerMarc Jeanmougin <marcjeanmougin@free.fr>2018-05-09 12:23:00 +0000
commitcca246da00beb707a032340f2b2f36e8da093194 (patch)
treebd51357f4c9afddb1e2071ced98e71ab4da7a2ce /src/display/canvas-grid.cpp
parentAdd buttons to align grids to page (diff)
downloadinkscape-cca246da00beb707a032340f2b2f36e8da093194.tar.gz
inkscape-cca246da00beb707a032340f2b2f36e8da093194.zip
Create stateless alignment selector and use it instead
Diffstat (limited to 'src/display/canvas-grid.cpp')
-rw-r--r--src/display/canvas-grid.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp
index a81b06aae..6d646f39d 100644
--- a/src/display/canvas-grid.cpp
+++ b/src/display/canvas-grid.cpp
@@ -319,13 +319,12 @@ CanvasGrid::newWidget()
vbox->pack_start(*_rcb_visible, true, true);
vbox->pack_start(*_rcb_snap_visible_only, true, true);
- alignment = Gtk::manage( new Inkscape::UI::Widget::AnchorSelector() );
- alignment->setAlignment(0, 2);
- alignment->on_selectionChanged().connect(sigc::mem_fun(*this, &CanvasGrid::align_changed));
+ _as_alignment = Gtk::manage( new Inkscape::UI::Widget::AlignmentSelector() );
+ _as_alignment->on_alignmentClicked().connect(sigc::mem_fun(*this, &CanvasGrid::align_clicked));
Gtk::VBox *left = new Gtk::VBox();
left->pack_start(*Gtk::manage(new Gtk::Label(_("Align to page:"))), false, false);
- left->pack_start(*alignment, false, false);
+ left->pack_start(*_as_alignment, false, false);
Gtk::HBox *outer = new Gtk::HBox();
outer->pack_start(*left, true, true);
@@ -386,11 +385,11 @@ void CanvasGrid::setOrigin(Geom::Point const &origin_px)
repr->setAttribute("originy", os_y.str().c_str());
}
-void CanvasGrid::align_changed()
+void CanvasGrid::align_clicked(int align)
{
Geom::Point dimensions = doc->getDimensions();
- dimensions[Geom::X] *= alignment->getHorizontalAlignment() * 0.5;
- dimensions[Geom::Y] *= 1 - (alignment->getVerticalAlignment() * 0.5);
+ dimensions[Geom::X] *= align % 3 * 0.5;
+ dimensions[Geom::Y] *= 1 - (align / 3 * 0.5);
setOrigin(dimensions);
}