// SPDX-License-Identifier: GPL-2.0-or-later #ifndef SEEN_ERASOR_TOOLBAR_H #define SEEN_ERASOR_TOOLBAR_H /** * @file * Erasor 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-2011 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 SeparatorToolItem; } namespace Inkscape { namespace UI { class SimplePrefPusher; namespace Tools { enum class EraserToolMode; extern EraserToolMode const DEFAULT_ERASER_MODE; } // namespace Tools namespace Widget { class SpinButtonToolItem; } // namespace Widget namespace Toolbar { class EraserToolbar : public Toolbar { private: UI::Widget::SpinButtonToolItem *_width; UI::Widget::SpinButtonToolItem *_mass; UI::Widget::SpinButtonToolItem *_thinning; UI::Widget::SpinButtonToolItem *_cap_rounding; UI::Widget::SpinButtonToolItem *_tremor; Gtk::ToggleToolButton *_usepressure; Gtk::ToggleToolButton *_split; Glib::RefPtr _width_adj; Glib::RefPtr _mass_adj; Glib::RefPtr _thinning_adj; Glib::RefPtr _cap_rounding_adj; Glib::RefPtr _tremor_adj; std::unique_ptr _pressure_pusher; std::vector _separators; bool _freeze; static guint _modeAsInt(Inkscape::UI::Tools::EraserToolMode mode); void mode_changed(int mode); void set_eraser_mode_visibility(const guint eraser_mode); void width_value_changed(); void mass_value_changed(); void velthin_value_changed(); void cap_rounding_value_changed(); void tremor_value_changed(); static void update_presets_list(gpointer data); void toggle_break_apart(); void usepressure_toggled(); protected: EraserToolbar(SPDesktop *desktop); public: static GtkWidget * create(SPDesktop *desktop); }; } } } #endif /* !SEEN_ERASOR_TOOLBAR_H */