diff options
| author | Denis Declara <declara91@gmail.com> | 2012-04-09 20:12:58 +0000 |
|---|---|---|
| committer | Denis Declara <declara91@gmail.com> | 2012-04-09 20:12:58 +0000 |
| commit | d35a809b15aa11aa5ee3c0a035710683e8c76eaa (patch) | |
| tree | e5529c71f4950d411aed3a6ae586f5e63af5e4c0 /src | |
| parent | Changed makefile (diff) | |
| download | inkscape-d35a809b15aa11aa5ee3c0a035710683e8c76eaa.tar.gz inkscape-d35a809b15aa11aa5ee3c0a035710683e8c76eaa.zip | |
Added initial gui for polar arrangement tab
(bzr r11073.1.13)
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/tile.cpp | 53 | ||||
| -rw-r--r-- | src/ui/dialog/tile.h | 55 |
2 files changed, 91 insertions, 17 deletions
diff --git a/src/ui/dialog/tile.cpp b/src/ui/dialog/tile.cpp index 2e5e3f822..0e3b24f7c 100644 --- a/src/ui/dialog/tile.cpp +++ b/src/ui/dialog/tile.cpp @@ -111,11 +111,13 @@ namespace Dialog { ArrangeDialog::ArrangeDialog() : UI::Widget::Panel("", "/dialogs/gridtiler", SP_VERB_SELECTION_GRIDTILE), - _gridArrangeTab(new GridArrangeTab(this)) + _gridArrangeTab(new GridArrangeTab(this)), + _polarArrangeTab(new PolarArrangeTab(this)) { Gtk::Box *contents = this->_getContents(); _notebook.append_page(*_gridArrangeTab, C_("Arrange dialog", "Rectangular grid")); + _notebook.append_page(*_polarArrangeTab, C_("Arrange dialog", "Polar Coordinates")); _arrangeBox.pack_start(_notebook); _arrangeButton = this->addResponseButton(C_("Arrange dialog","_Arrange"), GTK_RESPONSE_APPLY); @@ -133,9 +135,51 @@ void ArrangeDialog::_apply() case 0: _gridArrangeTab->arrange(); break; + case 1: + _polarArrangeTab->arrange(); + break; } } +PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) + : parent(parent_) +{ + anchorPointLabel.set_text("Anchor point:"); + anchorPointLabel.set_alignment(Gtk::ALIGN_START); + pack_start(anchorPointLabel, false, false); + + anchorBoundingBoxRadio.set_label("Object's bounding box:"); + anchorBoundingBoxRadio.set_group(anchorRadioGroup); + pack_start(anchorBoundingBoxRadio, false, false); + + pack_start(anchorSelector, false, false); + + anchorObjectPivotRadio.set_label("Object's rotational center"); + anchorObjectPivotRadio.set_group(anchorRadioGroup); + pack_start(anchorObjectPivotRadio, false, false); + + arrangeOnLabel.set_text("Arrange on:"); + arrangeOnLabel.set_alignment(Gtk::ALIGN_START); + pack_start(arrangeOnLabel, false, false); + + arrangeOnCircleRadio.set_label("Last selected circle/ellipse/arc"); + anchorObjectPivotRadio.set_group(arrangeRadioGroup); + pack_start(arrangeOnCircleRadio, false, false); + + arrangeOnParametersRadio.set_label("Parameterized:"); + anchorObjectPivotRadio.set_group(arrangeRadioGroup); + pack_start(arrangeOnParametersRadio, false, false); +} + +void PolarArrangeTab::arrange() +{ + std::cout << "PolarArrangeTab::arrange()" << std::endl; +} + +void PolarArrangeTab::updateSelection() +{ + +} //######################################################################### @@ -383,13 +427,6 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h //## E V E N T S //######################################################################### - -void GridArrangeTab::_apply() -{ - arrange(); -} - - /** * changed value in # of columns spinbox. */ diff --git a/src/ui/dialog/tile.h b/src/ui/dialog/tile.h index 657841ad0..ab075fb28 100644 --- a/src/ui/dialog/tile.h +++ b/src/ui/dialog/tile.h @@ -51,15 +51,17 @@ public: }; class GridArrangeTab; +class PolarArrangeTab; class ArrangeDialog : public UI::Widget::Panel { private: - Gtk::VBox _arrangeBox; - Gtk::Notebook _notebook; + Gtk::VBox _arrangeBox; + Gtk::Notebook _notebook; - GridArrangeTab *_gridArrangeTab; + GridArrangeTab *_gridArrangeTab; + PolarArrangeTab *_polarArrangeTab; - Gtk::Button *_arrangeButton; + Gtk::Button *_arrangeButton; public: ArrangeDialog(); @@ -91,11 +93,6 @@ public: */ void updateSelection(); - /** - * Callback from Apply - */ - virtual void _apply(); - // Callbacks from spinbuttons void on_row_spinbutton_changed(); void on_col_spinbutton_changed(); @@ -176,6 +173,46 @@ private: Inkscape::UI::Widget::SpinButton ColumnWidthSpinner; }; +class PolarArrangeTab : public ArrangeTab { +public: + PolarArrangeTab(ArrangeDialog *parent_); + virtual ~PolarArrangeTab() {}; + + /** + * Do the actual work + */ + virtual void arrange(); + + /** + * Respond to selection change + */ + void updateSelection(); + +private: + PolarArrangeTab(PolarArrangeTab const &d); // no copy + void operator=(PolarArrangeTab const &d); // no assign + + ArrangeDialog *parent; + + Gtk::Label anchorPointLabel; + + Gtk::RadioButtonGroup anchorRadioGroup; + Gtk::RadioButton anchorBoundingBoxRadio; + Gtk::RadioButton anchorObjectPivotRadio; + AnchorSelector anchorSelector; + + Gtk::Label arrangeOnLabel; + + Gtk::RadioButtonGroup arrangeRadioGroup; + Gtk::RadioButton arrangeOnCircleRadio; + Gtk::RadioButton arrangeOnParametersRadio; + + Inkscape::UI::Widget::SpinButton centerXSpin; + Inkscape::UI::Widget::SpinButton centerYSpin; + + +}; + } //namespace Dialog } //namespace UI |
