// 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 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& signal_color_changed() { return _signal_color_changed; } enum class Check { Checkerboard, Border, Shadow, BorderOnTop, AntiAlias, NonuniformScale, DisabledScale, UnsupportedSize, ClipToPage, PageLabelStyle }; virtual void set_check(Check element, bool checked) = 0; sigc::signal& 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& 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 signal_unit_changed() { return _signal_unit_changed; } sigc::signal signal_resize_to_fit() { return _signal_resize_to_fit; } protected: sigc::signal _signal_color_changed; sigc::signal _signal_check_toggled; sigc::signal _signal_dimmension_changed; sigc::signal _signal_unit_changed; sigc::signal _signal_resize_to_fit; }; } } } // namespace Inkscape/Widget/UI #endif // INKSCAPE_UI_WIDGET_PAGE_PROPERTIES_H