diff options
Diffstat (limited to 'src/ui/widget/page-properties.h')
-rw-r--r-- | src/ui/widget/page-properties.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/ui/widget/page-properties.h b/src/ui/widget/page-properties.h new file mode 100644 index 0000000..37779e5 --- /dev/null +++ b/src/ui/widget/page-properties.h @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Author: + * Michael Kowalski + * + * Copyright (C) 2021 Authors + * + * Released under GNU GPL v2+, read the file 'COPYING' for more information. + */ + +#ifndef INKSCAPE_UI_WIDGET_PAGE_PROPERTIES_H +#define INKSCAPE_UI_WIDGET_PAGE_PROPERTIES_H + +#include <gtkmm/box.h> + +namespace Inkscape { + namespace Util { class Unit; } +namespace UI { +namespace Widget { + +class PageProperties : public Gtk::Box { +public: + static PageProperties* create(); + + ~PageProperties() override = default; + + enum class Color { Background, Desk, Border }; + virtual void set_color(Color element, unsigned int rgba) = 0; + + sigc::signal<void (unsigned int, Color)>& signal_color_changed() { return _signal_color_changed; } + + enum class Check { Checkerboard, Border, Shadow, BorderOnTop, AntiAlias, NonuniformScale, DisabledScale, UnsupportedSize }; + virtual void set_check(Check element, bool checked) = 0; + + sigc::signal<void (bool, Check)>& signal_check_toggled() { return _signal_check_toggled; } + + enum class Dimension { PageSize, ViewboxSize, ViewboxPosition, Scale, PageTemplate }; + virtual void set_dimension(Dimension dim, double x, double y) = 0; + + sigc::signal<void (double, double, const Util::Unit*, Dimension)>& signal_dimmension_changed() { return _signal_dimmension_changed; } + + enum class Units { Display, Document }; + virtual void set_unit(Units unit, const Glib::ustring& abbr) = 0; + + sigc::signal<void (const Util::Unit*, Units)> signal_unit_changed() { return _signal_unit_changed; } + + sigc::signal<void ()> signal_resize_to_fit() { return _signal_resize_to_fit; } + +protected: + sigc::signal<void (unsigned int, Color)> _signal_color_changed; + sigc::signal<void (bool, Check)> _signal_check_toggled; + sigc::signal<void (double, double, const Util::Unit*, Dimension)> _signal_dimmension_changed; + sigc::signal<void (const Util::Unit*, Units)> _signal_unit_changed; + sigc::signal<void ()> _signal_resize_to_fit; +}; + +} } } // namespace Inkscape/Widget/UI + +#endif // INKSCAPE_UI_WIDGET_PAGE_PROPERTIES_H |