summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Declara <declara91@gmail.com>2012-04-09 20:12:58 +0000
committerDenis Declara <declara91@gmail.com>2012-04-09 20:12:58 +0000
commitd35a809b15aa11aa5ee3c0a035710683e8c76eaa (patch)
treee5529c71f4950d411aed3a6ae586f5e63af5e4c0 /src
parentChanged makefile (diff)
downloadinkscape-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.cpp53
-rw-r--r--src/ui/dialog/tile.h55
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