// SPDX-License-Identifier: GPL-2.0-or-later /* * Authors: * Ralf Stephan * John Bintz * * Copyright (C) 2006 John Bintz * Copyright (C) 2005 Ralf Stephan * * Released under GNU GPL v2+, read the file 'COPYING' for more information. */ #ifndef INKSCAPE_UI_VIEW_EDIT_WIDGET_IFACE_H #define INKSCAPE_UI_VIEW_EDIT_WIDGET_IFACE_H #include "message.h" #include <2geom/point.h> namespace Gtk { class Toolbar; class Window; } namespace Glib { class ustring; } namespace Inkscape { namespace UI { namespace Widget { class Dock; } } } namespace Inkscape { namespace UI { namespace View { /** * Abstract base class for all EditWidget implementations. */ struct EditWidgetInterface { EditWidgetInterface() = default; virtual ~EditWidgetInterface() = default; /// Returns pointer to window UI object as void* virtual Gtk::Window *getWindow() = 0; /// Set the widget's title virtual void setTitle (gchar const*) = 0; /// Show all parts of widget the user wants to see. virtual void layout() = 0; /// Present widget to user virtual void present() = 0; /// Returns geometry of widget virtual void getGeometry (gint &x, gint &y, gint &w, gint &h) = 0; /// Change the widget's size virtual void setSize (gint w, gint h) = 0; /// Move widget to specified position virtual void setPosition (Geom::Point p) = 0; /// Transientize widget virtual void setTransient (void*, int) = 0; /// Return mouse position in widget virtual Geom::Point getPointer() = 0; /// Make widget iconified virtual void setIconified() = 0; /// Make widget maximized on screen virtual void setMaximized() = 0; /// Make widget fill screen and show it if possible. virtual void setFullscreen() = 0; /// Shuts down the desktop object for the view being closed. It checks /// to see if the document has been edited, and if so prompts the user /// to save, discard, or cancel. Returns TRUE if the shutdown operation /// is cancelled or if the save is cancelled or fails, FALSE otherwise. virtual bool shutdown() = 0; /// Destroy and delete widget. virtual void destroy() = 0; /// Store window position to prefs virtual void storeDesktopPosition() = 0; /// Queue a redraw request with the canvas virtual void requestCanvasUpdate() = 0; /// Force a redraw of the canvas virtual void requestCanvasUpdateAndWait() = 0; /// Enable interaction on this desktop virtual void enableInteraction() = 0; /// Disable interaction on this desktop virtual void disableInteraction() = 0; /// Update the "active desktop" indicator virtual void activateDesktop() = 0; /// Update the "inactive desktop" indicator virtual void deactivateDesktop() = 0; /// Update rulers from current values virtual void updateRulers() = 0; /// Update scrollbars from current values virtual void updateScrollbars (double scale) = 0; /// Toggle rulers on/off and set preference value accordingly virtual void toggleRulers() = 0; /// Toggle scrollbars on/off and set preference value accordingly virtual void toggleScrollbars() = 0; /// Toggle CMS on/off and set preference value accordingly virtual void toggleColorProfAdjust() = 0; /// Is CMS on/off virtual bool colorProfAdjustEnabled() = 0; /// Temporarily block signals and update zoom display virtual void updateZoom() = 0; /// The zoom display will get the keyboard focus. virtual void letZoomGrabFocus() = 0; /// Temporarily block signals and update rotation display virtual void updateRotation() = 0; virtual Gtk::Toolbar* get_toolbar_by_name(const Glib::ustring&) = 0; /// In auxiliary toolbox, set focus to widget having specific id virtual void setToolboxFocusTo (const gchar *) = 0; /// In auxiliary toolbox, set value of adjustment with specific id virtual void setToolboxAdjustmentValue (const gchar *, double) = 0; /// In auxiliary toolbox, return true if specific togglebutton is active virtual bool isToolboxButtonActive (gchar const*) = 0; /// Set the coordinate display virtual void setCoordinateStatus (Geom::Point p) = 0; /// Message widget will get no content virtual void setMessage (Inkscape::MessageType type, gchar const* msg) = 0; /** Show an info dialog with the given message */ virtual bool showInfoDialog( Glib::ustring const &message ) = 0; /// Open yes/no dialog with warning text and confirmation question. virtual bool warnDialog (Glib::ustring const &) = 0; virtual Inkscape::UI::Widget::Dock* getDock () = 0; }; } // namespace View } // namespace UI } // namespace Inkscape #endif // INKSCAPE_UI_VIEW_EDIT_WIDGET_IFACE_H /* Local Variables: mode:c++ c-file-style:"stroustrup" c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :