diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2011-04-16 21:48:59 +0000 |
|---|---|---|
| committer | Johan Engelen <goejendaagh@zonnet.nl> | 2011-04-16 21:48:59 +0000 |
| commit | 7f1598badb821e086ee9e34865389844bd9ddd70 (patch) | |
| tree | 8ac7d7cc6f878da73f15762fcd4d439536b562f5 /src/ui | |
| parent | ScalarUnit widget: fix initialization bug. add constructor which takes anothe... (diff) | |
| download | inkscape-7f1598badb821e086ee9e34865389844bd9ddd70.tar.gz inkscape-7f1598badb821e086ee9e34865389844bd9ddd70.zip | |
upgrade the spinboxes in tile dialog. (alignment is a bit awkward, have tried to fix it, but didnt work out)
(bzr r10172)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/dialog/tile.cpp | 74 | ||||
| -rw-r--r-- | src/ui/dialog/tile.h | 20 |
2 files changed, 32 insertions, 62 deletions
diff --git a/src/ui/dialog/tile.cpp b/src/ui/dialog/tile.cpp index b0a39bd0e..3510503d3 100644 --- a/src/ui/dialog/tile.cpp +++ b/src/ui/dialog/tile.cpp @@ -136,8 +136,8 @@ void TileDialog::Grid_Arrange () on_row_spinbutton_changed(); // set padding to manual values - paddingx = XPadSpinner.get_value(); - paddingy = YPadSpinner.get_value(); + paddingx = XPadding.getValue("px"); + paddingy = YPadding.getValue("px"); std::vector<double> row_heights; std::vector<double> col_widths; @@ -422,7 +422,7 @@ void TileDialog::on_col_spinbutton_changed() void TileDialog::on_xpad_spinbutton_changed() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setDouble("/dialogs/gridtiler/XPad", XPadSpinner.get_value()); + prefs->setDouble("/dialogs/gridtiler/XPad", XPadding.getValue("px")); } @@ -432,7 +432,7 @@ void TileDialog::on_xpad_spinbutton_changed() void TileDialog::on_ypad_spinbutton_changed() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setDouble("/dialogs/gridtiler/YPad", YPadSpinner.get_value()); + prefs->setDouble("/dialogs/gridtiler/YPad", YPadding.getValue("px")); } @@ -512,7 +512,8 @@ void TileDialog::Spacing_button_changed() prefs->setDouble("/dialogs/gridtiler/SpacingType", -20); } - SizesHBox.set_sensitive ( SpaceManualRadioButton.get_active()); + XPadding.set_sensitive ( SpaceManualRadioButton.get_active()); + YPadding.set_sensitive ( SpaceManualRadioButton.get_active()); } /** @@ -614,7 +615,9 @@ static void updateSelectionCallback(Inkscape::Application */*inkscape*/, Inkscap * Constructor */ TileDialog::TileDialog() - : UI::Widget::Panel("", "/dialogs/gridtiler", SP_VERB_SELECTION_GRIDTILE) + : UI::Widget::Panel("", "/dialogs/gridtiler", SP_VERB_SELECTION_GRIDTILE), + XPadding(_("X:"), _("Horizontal spacing between columns."), UNIT_TYPE_LINEAR, "", "object-columns"), + YPadding(_("Y:"), _("Vertical spacing between rows."), XPadding, "", "object-rows") { // bool used by spin button callbacks to stop loops where they change each other. updating = false; @@ -814,51 +817,25 @@ TileDialog::TileDialog() } { - /*#### Y Padding ####*/ + /*#### Padding ####*/ - GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "object-rows"); - YPadBox.pack_start (*(Glib::wrap(i)), false, false, MARGIN); + YPadding.setDigits(1); + YPadding.setIncrements(0.2, 0); + YPadding.setRange(-10000, 10000); + double yPad = prefs->getDouble("/dialogs/gridtiler/YPad", 15); + YPadding.setValue(yPad, "px"); + YPadding.signal_value_changed().connect(sigc::mem_fun(*this, &TileDialog::on_ypad_spinbutton_changed)); - YPadSpinner.set_digits(1); - YPadSpinner.set_increments(0.2, 0); - YPadSpinner.set_range(-10000, 10000); - double YPad = prefs->getDouble("/dialogs/gridtiler/YPad", 15); - YPadSpinner.set_value(YPad); - YPadBox.pack_start(YPadSpinner, true, true, MARGIN); - tips.set_tip(YPadSpinner, _("Vertical spacing between rows (px units)")); - YPadSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_ypad_spinbutton_changed)); - gtk_size_group_add_widget(_col1, (GtkWidget *) YPadBox.gobj()); + XPadding.setDigits(1); + XPadding.setIncrements(0.2, 0); + XPadding.setRange(-10000, 10000); + double xPad = prefs->getDouble("/dialogs/gridtiler/XPad", 15); + XPadding.setValue(xPad, "px"); - SizesHBox.pack_start(YPadBox, false, false, MARGIN); + XPadding.signal_value_changed().connect(sigc::mem_fun(*this, &TileDialog::on_xpad_spinbutton_changed)); } - - { - Gtk::HBox *spacer = new Gtk::HBox; - SizesHBox.pack_start(*spacer, false, false, 0); - gtk_size_group_add_widget(_col2, (GtkWidget *) spacer->gobj()); - } - - { - /*#### X padding ####*/ - - GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "object-columns"); - XPadBox.pack_start (*(Glib::wrap(i)), false, false, MARGIN); - - XPadSpinner.set_digits(1); - XPadSpinner.set_increments(0.2, 0); - XPadSpinner.set_range(-10000, 10000); - double XPad = prefs->getDouble("/dialogs/gridtiler/XPad", 15); - XPadSpinner.set_value(XPad); - XPadBox.pack_start(XPadSpinner, true, true, MARGIN); - tips.set_tip(XPadSpinner, _("Horizontal spacing between columns (px units)")); - XPadSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_xpad_spinbutton_changed)); - gtk_size_group_add_widget(_col3, (GtkWidget *) XPadBox.gobj()); - - SizesHBox.pack_start(XPadBox, false, false, MARGIN); - } - - - TileBox.pack_start(SizesHBox, false, false, MARGIN); + TileBox.pack_start(XPadding, false, false, MARGIN); + TileBox.pack_start(YPadding, false, false, MARGIN); contents->pack_start(TileBox); @@ -870,7 +847,8 @@ TileDialog::TileDialog() } SpaceManualRadioButton.set_active(ManualSpacing); SpaceByBBoxRadioButton.set_active(!ManualSpacing); - SizesHBox.set_sensitive (ManualSpacing); + XPadding.set_sensitive (ManualSpacing); + YPadding.set_sensitive (ManualSpacing); //## The OK button TileOkButton = addResponseButton(C_("Rows and columns dialog","_Arrange"), GTK_RESPONSE_APPLY); diff --git a/src/ui/dialog/tile.h b/src/ui/dialog/tile.h index 16ae3e4f8..09a648e1f 100644 --- a/src/ui/dialog/tile.h +++ b/src/ui/dialog/tile.h @@ -24,6 +24,8 @@ #include <gtkmm/radiobutton.h> #include "ui/widget/panel.h" +#include "ui/widget/spinbutton.h" +#include "ui/widget/scalar-unit.h" namespace Inkscape { namespace UI { @@ -88,12 +90,11 @@ private: Gtk::HBox AlignHBox; Gtk::HBox SpinsHBox; - Gtk::HBox SizesHBox; // Number per Row Gtk::VBox NoOfColsBox; Gtk::Label NoOfColsLabel; - Gtk::SpinButton NoOfColsSpinner; + Inkscape::UI::Widget::SpinButton NoOfColsSpinner; bool AutoRowSize; Gtk::CheckButton RowHeightButton; @@ -104,7 +105,7 @@ private: // Number per Column Gtk::VBox NoOfRowsBox; Gtk::Label NoOfRowsLabel; - Gtk::SpinButton NoOfRowsSpinner; + Inkscape::UI::Widget::SpinButton NoOfRowsSpinner; bool AutoColSize; Gtk::CheckButton ColumnWidthButton; @@ -128,15 +129,8 @@ private: Gtk::RadioButton HorizRightRadioButton; double HorizAlign; - // padding in x - Gtk::VBox XPadBox; - Gtk::Label XPadLabel; - Gtk::SpinButton XPadSpinner; - - // padding in y - Gtk::VBox YPadBox; - Gtk::Label YPadLabel; - Gtk::SpinButton YPadSpinner; + Inkscape::UI::Widget::ScalarUnit XPadding; + Inkscape::UI::Widget::ScalarUnit YPadding; // BBox or manual spacing Gtk::VBox SpacingVBox; @@ -145,8 +139,6 @@ private: Gtk::RadioButton SpaceManualRadioButton; bool ManualSpacing; - - // Row height Gtk::VBox RowHeightVBox; Gtk::HBox RowHeightBox; |
