// SPDX-License-Identifier: GPL-2.0-or-later #ifndef SEEN_SPRAY_TOOLBAR_H #define SEEN_SPRAY_TOOLBAR_H /** * @file * Spray aux toolbar */ /* Authors: * MenTaLguY * Lauris Kaplinski * bulia byak * Frank Felfe * John Cliff * David Turner * Josh Andler * Jon A. Cruz * Maximilian Albert * Tavmjong Bah * Abhishek Sharma * Kris De Gussem * * Copyright (C) 2004 David Turner * Copyright (C) 2003 MenTaLguY * Copyright (C) 1999-2015 authors * Copyright (C) 2001-2002 Ximian, Inc. * * Released under GNU GPL v2+, read the file 'COPYING' for more information. */ #include "toolbar.h" #include class SPDesktop; namespace Gtk { class RadioToolButton; } namespace Inkscape { namespace UI { class SimplePrefPusher; namespace Widget { class SpinButtonToolItem; } namespace Toolbar { class SprayToolbar : public Toolbar { private: Glib::RefPtr _width_adj; Glib::RefPtr _mean_adj; Glib::RefPtr _sd_adj; Glib::RefPtr _population_adj; Glib::RefPtr _rotation_adj; Glib::RefPtr _offset_adj; Glib::RefPtr _scale_adj; std::unique_ptr _usepressurewidth_pusher; std::unique_ptr _usepressurepopulation_pusher; std::vector _mode_buttons; UI::Widget::SpinButtonToolItem *_spray_population; UI::Widget::SpinButtonToolItem *_spray_rotation; UI::Widget::SpinButtonToolItem *_spray_scale; Gtk::ToggleToolButton *_usepressurescale; Gtk::ToggleToolButton *_picker; Gtk::ToggleToolButton *_pick_center; Gtk::ToggleToolButton *_pick_inverse_value; Gtk::ToggleToolButton *_pick_fill; Gtk::ToggleToolButton *_pick_stroke; Gtk::ToggleToolButton *_pick_no_overlap; Gtk::ToggleToolButton *_over_transparent; Gtk::ToggleToolButton *_over_no_transparent; Gtk::ToggleToolButton *_no_overlap; UI::Widget::SpinButtonToolItem *_offset; void width_value_changed(); void mean_value_changed(); void standard_deviation_value_changed(); void mode_changed(int mode); void init(); void population_value_changed(); void rotation_value_changed(); void update_widgets(); void scale_value_changed(); void offset_value_changed(); void on_pref_toggled(Gtk::ToggleToolButton *btn, const Glib::ustring& path); void toggle_no_overlap(); void toggle_pressure_scale(); void toggle_picker(); protected: SprayToolbar(SPDesktop *desktop); public: static GtkWidget * create(SPDesktop *desktop); void set_mode(int mode); }; } } } #endif /* !SEEN_SELECT_TOOLBAR_H */