1 // SPDX-License-Identifier: GPL-2.0-or-later 2 #ifndef SEEN_CALLIGRAPHY_TOOLBAR_H 3 #define SEEN_CALLIGRAPHY_TOOLBAR_H 4 5 /** 6 * @file 7 * Calligraphy aux toolbar 8 */ 9 /* Authors: 10 * MenTaLguY <mental@rydia.net> 11 * Lauris Kaplinski <lauris@kaplinski.com> 12 * bulia byak <buliabyak@users.sf.net> 13 * Frank Felfe <innerspace@iname.com> 14 * John Cliff <simarilius@yahoo.com> 15 * David Turner <novalis@gnu.org> 16 * Josh Andler <scislac@scislac.com> 17 * Jon A. Cruz <jon@joncruz.org> 18 * Maximilian Albert <maximilian.albert@gmail.com> 19 * Tavmjong Bah <tavmjong@free.fr> 20 * Abhishek Sharma 21 * Kris De Gussem <Kris.DeGussem@gmail.com> 22 * 23 * Copyright (C) 2004 David Turner 24 * Copyright (C) 2003 MenTaLguY 25 * Copyright (C) 1999-2011 authors 26 * Copyright (C) 2001-2002 Ximian, Inc. 27 * 28 * Released under GNU GPL v2+, read the file 'COPYING' for more information. 29 */ 30 31 #include "toolbar.h" 32 #include <gtkmm/adjustment.h> 33 34 class SPDesktop; 35 36 namespace Gtk { 37 class ComboBoxText; 38 } 39 40 namespace Inkscape { 41 namespace UI { 42 class SimplePrefPusher; 43 44 namespace Widget { 45 class SpinButtonToolItem; 46 class UnitTracker; 47 } 48 49 namespace Toolbar { 50 class CalligraphyToolbar : public Toolbar { 51 private: 52 UI::Widget::UnitTracker *_tracker; 53 bool _presets_blocked; 54 55 UI::Widget::SpinButtonToolItem *_angle_item; 56 Gtk::ComboBoxText *_profile_selector_combo; 57 58 std::map<Glib::ustring, GObject *> _widget_map; 59 60 Glib::RefPtr<Gtk::Adjustment> _width_adj; 61 Glib::RefPtr<Gtk::Adjustment> _mass_adj; 62 Glib::RefPtr<Gtk::Adjustment> _wiggle_adj; 63 Glib::RefPtr<Gtk::Adjustment> _angle_adj; 64 Glib::RefPtr<Gtk::Adjustment> _thinning_adj; 65 Glib::RefPtr<Gtk::Adjustment> _tremor_adj; 66 Glib::RefPtr<Gtk::Adjustment> _fixation_adj; 67 Glib::RefPtr<Gtk::Adjustment> _cap_rounding_adj; 68 Gtk::ToggleToolButton *_usepressure; 69 Gtk::ToggleToolButton *_tracebackground; 70 Gtk::ToggleToolButton *_usetilt; 71 72 std::unique_ptr<SimplePrefPusher> _tracebackground_pusher; 73 std::unique_ptr<SimplePrefPusher> _usepressure_pusher; 74 std::unique_ptr<SimplePrefPusher> _usetilt_pusher; 75 76 void width_value_changed(); 77 void velthin_value_changed(); 78 void angle_value_changed(); 79 void flatness_value_changed(); 80 void cap_rounding_value_changed(); 81 void tremor_value_changed(); 82 void wiggle_value_changed(); 83 void mass_value_changed(); 84 void build_presets_list(); 85 void change_profile(); 86 void save_profile(GtkWidget *widget); 87 void edit_profile(); 88 void update_presets_list(); 89 void tilt_state_changed(); 90 void unit_changed(int not_used); 91 void on_pref_toggled(Gtk::ToggleToolButton *item, 92 const Glib::ustring& path); 93 94 protected: 95 CalligraphyToolbar(SPDesktop *desktop); 96 97 public: 98 static GtkWidget * create(SPDesktop *desktop); 99 }; 100 101 } 102 } 103 } 104 105 #endif /* !SEEN_CALLIGRAPHY_TOOLBAR_H */ 106