summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/spray-option.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/spray-option.cpp')
-rw-r--r--src/ui/dialog/spray-option.cpp397
1 files changed, 0 insertions, 397 deletions
diff --git a/src/ui/dialog/spray-option.cpp b/src/ui/dialog/spray-option.cpp
deleted file mode 100644
index a9e037381..000000000
--- a/src/ui/dialog/spray-option.cpp
+++ /dev/null
@@ -1,397 +0,0 @@
-/*Julien LERAY (julien.leray@ecl2010.ec-lyon.fr), interface for the spray tool*/
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gtkmm/spinbutton.h>
-
-#include "desktop-handles.h"
-#include "unclump.h"
-#include "document.h"
-#include "enums.h"
-#include "graphlayout/graphlayout.h"
-#include "inkscape.h"
-#include "macros.h"
-#include "node-context.h"
-#include "preferences.h"
-#include "removeoverlap/removeoverlap.h"
-#include "selection.h"
-#include "shape-editor.h"
-#include "sp-flowtext.h"
-#include "sp-item-transform.h"
-#include "sp-text.h"
-#include "text-editing.h"
-#include "tools-switch.h"
-#include "ui/icon-names.h"
-#include "util/glib-list-iterators.h"
-#include "verbs.h"
-#include "widgets/icon.h"
-
-#include "spray-option.h"
-
-namespace Inkscape {
-namespace UI {
-namespace Dialog {
-
-
-//Classes qui permettent de créer les environnements Gaussienne, Witdh...
-
-
-
-class Action {
-public:
- Action(const Glib::ustring &id,
- const Glib::ustring &/*tiptext*/,
- guint /*row*/,
- guint /*column*/,
- Gtk::Table &parent,
- Gtk::Tooltips &/*tooltips*/,
- SprayOptionClass &dialog):
- _dialog(dialog),
- _id(id),
- _parent(parent) {}
-
- virtual ~Action(){}
- virtual void on_button_click(){}
- SprayOptionClass &_dialog;
-
-private :
-
- Glib::ustring _id;
- Gtk::Table &_parent;
-};
-
-class ActionE : public Action {
-private:
- Gtk::Label _Label;
- Gtk::SpinButton _Gap;
- guint _min, _max;
- Glib::ustring _pref_path;
-
-public:
- ActionE(const Glib::ustring &id,
- const Glib::ustring &tiptext,
- guint row, guint column,
- SprayOptionClass &dialog,
- guint min, guint max,
- Glib::ustring const &pref_path ):
- Action(id, tiptext, row, column,
- dialog._Table(), dialog.tooltips(), dialog),
- _min(min),
- _max(max),
- _pref_path(pref_path)
- {
- dialog._Table().set_col_spacings(3);
-
- double increm = ((double)_max - (double)_min)/10;
- double val_ini = ((double)_max + (double)_min)/2;
- _Gap.set_digits(1);
- _Gap.set_size_request(60, -1);
- _Gap.set_increments(increm , 0);
- _Gap.set_range(_min, _max);
- _Gap.set_value(val_ini);
- dialog.tooltips().set_tip(_Gap,
- tiptext);
- _Gap.signal_changed().connect(sigc::mem_fun(*this, &ActionE::on_button_click)); //rajout douteux
- _Label.set_label(id);
-
- dialog._Table().attach(_Label, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog._Table().attach(_Gap, column+1, column+2, row, row+1, Gtk::EXPAND, Gtk::EXPAND);
- }
-
- virtual void on_button_click(){
- if (!_dialog.getDesktop()) return;
-
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-
- prefs->setDouble(_pref_path, SP_VERB_CONTEXT_SPRAY);
-
- double const Gap = _Gap.get_value();
-
-
- prefs->setDouble(_pref_path, Gap);
-
- sp_document_done(sp_desktop_document(_dialog.getDesktop()), SP_VERB_CONTEXT_SPRAY,
- _("Remove overlaps"));
- }
-
-
-};
-
-class ActionF : public Action {
-private:
- Gtk::Label _Label;
- Gtk::Label _Label1;
- Gtk::Label _Label2;
- Gtk::SpinButton _Gap1;
- Gtk::SpinButton _Gap2;
- Glib::ustring _pref1_path;
- Glib::ustring _pref2_path;
-
-public:
- ActionF(const Glib::ustring &id,
- const Glib::ustring &tiptext,
- guint row, guint column,
- SprayOptionClass &dialog,
- Glib::ustring const &pref1_path,
- Glib::ustring const &pref2_path ):
- Action(id, tiptext, row, column,
- dialog._Table(), dialog.tooltips(), dialog),
- _pref1_path(pref1_path),
- _pref2_path(pref2_path)
- {
- dialog.F_Table().set_col_spacings(3);
-
- _Label.set_label(id);
-
- _Gap1.set_digits(1);
- _Gap1.set_size_request(60, -1);
- _Gap1.set_increments(0.1, 0);
- _Gap1.set_range(0, 10);
- _Gap1.set_value(1);
- dialog.tooltips().set_tip(_Gap1,
- _("Minimum"));
-
- _Label1.set_label(Q_("Min"));
-
- _Gap2.set_digits(1);
- _Gap2.set_size_request(60, -1);
- _Gap2.set_increments(0.1, 0);
- _Gap2.set_range(0, 10);
- _Gap2.set_value(1);
- dialog.tooltips().set_tip(_Gap2,
- _("Maximum"));
-
- _Label2.set_label(_("Max:"));
-
- _Gap1.signal_changed().connect(sigc::mem_fun(*this, &ActionF::on_button_click));
- _Gap2.signal_changed().connect(sigc::mem_fun(*this, &ActionF::on_button_click));
-
- dialog.F_Table().attach(_Label, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.F_Table().attach(_Label1, column+1, column+2, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.F_Table().attach(_Gap1, column+2, column+3, row, row+1, Gtk::EXPAND, Gtk::EXPAND);
- dialog.F_Table().attach(_Label2, column+3, column+4, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.F_Table().attach(_Gap2, column+4, column+5, row, row+1, Gtk::EXPAND, Gtk::EXPAND);
-
- }
-
- virtual void on_button_click(){
- if (!_dialog.getDesktop()) return;
-
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-
- prefs->setDouble(_pref1_path, SP_VERB_CONTEXT_SPRAY);
- prefs->setDouble(_pref2_path, SP_VERB_CONTEXT_SPRAY);
-
- double const Gap1 = _Gap1.get_value();
- double const Gap2 = _Gap2.get_value();
-
- prefs->setDouble(_pref1_path, Gap1);
- prefs->setDouble(_pref2_path, Gap2);
-
- sp_document_done(sp_desktop_document(_dialog.getDesktop()), SP_VERB_CONTEXT_SPRAY,
- _("Remove overlaps"));
- }
-
-
-};
-
-
-
-void SprayOptionClass::combo_action() {
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- cout<<"combo.get_active_row_number = "<<_combo.get_active_row_number()<<endl;
-
- int const distrib = _combo.get_active_row_number();
-
- prefs->setInt("/tools/spray/distribution", distrib);
-
-
- sp_document_done(sp_desktop_document(this->getDesktop()), SP_VERB_CONTEXT_SPRAY,
- _("Remove overlaps"));
-
-}
-
-
-
-
-void SprayOptionClass::action() {
- for (list<Action *>::iterator it = _actionList.begin(); it != _actionList.end(); ++it) {
- (*it)->on_button_click();
- }
- combo_action();
-}
-
-
-
-
-
-
-void on_selection_changed(Inkscape::Application */*inkscape*/, Inkscape::Selection */*selection*/, SprayOptionClass *daad)
-{
- daad->randomize_bbox = Geom::OptRect();
-}
-
-/////////////////////////////////////////////////////////
-//Construction de l'interface
-/////////////////////////////////////////////////////////
-
-
-SprayOptionClass::SprayOptionClass()
- : UI::Widget::Panel ("", "/dialogs/spray", SP_VERB_DIALOG_SPRAY_OPTION),
- _actionList(),
- _distributionFrame(Q_("sprayOptions|Distribution")),
- _Frame(Q_("sprayOptions|Cursor Options")),
- _FFrame(Q_("sprayOptions|Random Options")),
- _distributionTable(),
- _gaussianTable(1, 5, false),
- _ETable(3,2,false),
- _FTable(2,5,false),
- _anchorBox(),
- _unifBox(),
- _gaussianBox(),
- _HBox(),
- _FHBox(),
- _BoutonBox(),
- _distributionBox(),
- _VBox(),
- _FVBox(),
- _ActionBox(),
- _anchorLabel(Q_("sprayOptions|Distribution:")),
- _unifLabel(Q_("sprayOptions|Uniform")),
- _gaussLabel(Q_("sprayOptions|Gaussian")),
- _Label(),
- _FLabel(),
- _unif(),
- _gauss(),
- _combo(),
- _tooltips()
-{
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-
- //ComboBoxText
-
- _combo.append_text(Q_("sprayOptions|Uniform"));
- _combo.append_text(Q_("sprayOptions|Gaussian"));
-
- _combo.set_active(prefs->getInt("/tools/spray/distribution", 1));
- _combo.signal_changed().connect(sigc::mem_fun(*this, &SprayOptionClass::combo_action));
-
- _anchorBox.pack_start(_anchorLabel);
- _anchorBox.pack_start(_combo);
-
- _gaussianBox.pack_start(_anchorBox);
-
-
- _distributionBox.pack_start(_gaussianBox);
- _distributionFrame.add(_distributionBox);
-
-
- //Hbox Random
- addFButton(Q_("sprayOptions|Scale:") ,_("Apply a scale factor"), 0, 0, "/tools/spray/scale_min","/tools/spray/scale_max");
- addFButton(Q_("sprayOptions|Rotation:") ,_("Apply rotation"), 1, 0, "/tools/spray/rot_min","/tools/spray/rot_max");
- _FHBox.pack_start(_FLabel);
- _FHBox.pack_start(_FTable);
-
- //Implementation dans la Vbox Cursor
- _FVBox.pack_start(_FHBox);
- _FFrame.add(_FVBox);
-
- //Hbox Cursor
- addEButton(Q_("sprayOptions|Ratio:") ,_("Eccentricity of the ellipse"), 0, 0, 0, 1,"/tools/spray/ratio");
- addEButton(Q_("sprayOptions|Angle:") ,_("Angle of the ellipse"), 1, 0, 0, 5,"/tools/spray/tilt");
- addEButton(Q_("sprayOptions|Width:") ,_("Size of the ellipse"), 2, 0, 0, 1,"/tools/spray/width");
- _HBox.pack_start(_Label);
- _HBox.pack_start(_ETable);
-
- //Implementation dans la Vbox Cursor
- _VBox.pack_start(_HBox);
- _Frame.add(_VBox);
-
- Gtk::Box *contents = _getContents();
- contents->set_spacing(4);
-
-
-
-
-
-
- // Crée dans l'ordre suivant les différentes Frames (cadres de réglages)
-
- contents->pack_start(_distributionFrame, true, true);
- contents->pack_start(_FFrame, true, true);
- contents->pack_start(_Frame, true, true);
-
-
-
- // Connect to the global selection change, to invalidate cached randomize_bbox
- g_signal_connect (G_OBJECT (INKSCAPE), "change_selection", G_CALLBACK (on_selection_changed), this);
- randomize_bbox = Geom::OptRect();
-
- show_all_children();
-
-
-
-}
-
-SprayOptionClass::~SprayOptionClass()
-{
- sp_signal_disconnect_by_data (G_OBJECT (INKSCAPE), this);
-
- for (std::list<Action *>::iterator it = _actionList.begin();
- it != _actionList.end();
- it ++)
- delete *it;
-}
-
-
-
-
-
-
-
-//Fonctions qui lient la demande d'ajout d'une interface graphique à l'action correspondante
-
-void SprayOptionClass::addEButton(const Glib::ustring &id,
- const Glib::ustring &tiptext,
- guint row, guint column,
- guint min, guint max,
- Glib::ustring const &pref_path)
-{
- _actionList.push_back( new ActionE(id, tiptext,row, column,*this,min ,max, pref_path ));
-}
-
-void SprayOptionClass::addFButton(const Glib::ustring &id,
- const Glib::ustring &tiptext,
- guint row, guint column,
- Glib::ustring const &pref1_path,
- Glib::ustring const &pref2_path)
-{
- _actionList.push_back( new ActionF(id, tiptext,row, column,*this,pref1_path, pref2_path ));
-}
-
-
-
-
-
-SprayOptionClass &SprayOptionClass::get_SprayOptionClass()
-{
- return *this;
-}
-
-} // namespace Dialog
-} // namespace UI
-} // namespace Inkscape
-
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :