summaryrefslogtreecommitdiffstats
path: root/src/ui/toolbar/pencil-toolbar.h
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2019-01-19 13:58:46 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2019-01-19 13:58:46 +0000
commite77e650354daef5ced80adddf6d5a334bb6216d3 (patch)
treeac1237a3194056ac457b5a9a7468b0d61c3a7335 /src/ui/toolbar/pencil-toolbar.h
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-e77e650354daef5ced80adddf6d5a334bb6216d3.tar.gz
inkscape-e77e650354daef5ced80adddf6d5a334bb6216d3.zip
derive all toolbars from Inkscape::Toolbar
Diffstat (limited to 'src/ui/toolbar/pencil-toolbar.h')
-rw-r--r--src/ui/toolbar/pencil-toolbar.h71
1 files changed, 68 insertions, 3 deletions
diff --git a/src/ui/toolbar/pencil-toolbar.h b/src/ui/toolbar/pencil-toolbar.h
index 33a56aed2..1016ae8d9 100644
--- a/src/ui/toolbar/pencil-toolbar.h
+++ b/src/ui/toolbar/pencil-toolbar.h
@@ -28,12 +28,77 @@
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
+#include "toolbar.h"
+
+#include <gtkmm/adjustment.h>
+
+class InkSelectOneAction;
class SPDesktop;
+typedef struct _EgeAdjustmentAction EgeAdjustmentAction;
typedef struct _GtkActionGroup GtkActionGroup;
-typedef struct _GObject GObject;
+typedef struct _InkAction InkAction;
+typedef struct _InkToggleAction InkToggleAction;
+
+namespace Inkscape {
+namespace XML {
+class Node;
+}
+
+namespace UI {
+namespace Toolbar {
+class PencilToolbar : public Toolbar {
+private:
+ EgeAdjustmentAction *_minpressure;
+ EgeAdjustmentAction *_maxpressure;
+
+ XML::Node *_repr;
+ InkAction *_flatten_spiro_bspline;
+ InkAction *_flatten_simplify;
+
+ InkSelectOneAction *_shape_action;
+
+ InkToggleAction *_simplify;
+
+ bool _freeze;
+
+ Glib::RefPtr<Gtk::Adjustment> _minpressure_adj;
+ Glib::RefPtr<Gtk::Adjustment> _maxpressure_adj;
+ Glib::RefPtr<Gtk::Adjustment> _tolerance_adj;
+
+ void add_freehand_mode_toggle(GtkActionGroup* mainActions,
+ bool tool_is_pencil);
+ void freehand_mode_changed(int mode);
+ Glib::ustring const freehand_tool_name();
+ void minpressure_value_changed();
+ void maxpressure_value_changed();
+ static void use_pencil_pressure(InkToggleAction *itact,
+ gpointer data);
+ void tolerance_value_changed();
+ void freehand_add_advanced_shape_options(GtkActionGroup* mainActions, bool tool_is_pencil);
+ void freehand_change_shape(int shape);
+ static void defaults(GtkWidget *widget, GObject *obj);
+ static void freehand_simplify_lpe(InkToggleAction* itact, GObject *data);
+ static void simplify_flatten(GtkWidget *widget, GObject *data);
+ static void flatten_spiro_bspline(GtkWidget *widget, gpointer data);
+
+protected:
+ PencilToolbar(SPDesktop *desktop)
+ : Toolbar(desktop),
+ _repr(nullptr),
+ _freeze(false),
+ _flatten_simplify(nullptr),
+ _simplify(nullptr)
+ {}
+
+ ~PencilToolbar();
-void sp_pencil_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
-void sp_pen_toolbox_prep(SPDesktop * /*desktop*/, GtkActionGroup* mainActions, GObject* holder);
+public:
+ static GtkWidget * prep_pencil(SPDesktop *desktop, GtkActionGroup* mainActions);
+ static GtkWidget * prep_pen(SPDesktop *desktop, GtkActionGroup* mainActions);
+};
+}
+}
+}
#endif /* !SEEN_PENCIL_TOOLBAR_H */