X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdesktop.h;h=bc80336de4eb0b9d8de05e972dd4e7cbd6f64286;hb=1ed9f185c8ae0efc48813e56e431d389561a4b5c;hp=e5f9cdacc1a1b473460d732f340efbf386effbda;hpb=3a8a771a3f3e72706e4567a73aa08a64ef2bc27d;p=inkscape.git diff --git a/src/desktop.h b/src/desktop.h index e5f9cdacc..bc80336de 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -25,8 +25,10 @@ #include "config.h" #endif +#include #include #include + #include "libnr/nr-matrix.h" #include "libnr/nr-matrix-fns.h" #include "libnr/nr-rect.h" @@ -35,6 +37,8 @@ class NRRect; class SPCSSAttr; +struct _GtkWidget; +typedef struct _GtkWidget GtkWidget; struct SPCanvas; struct SPCanvasItem; struct SPCanvasGroup; @@ -46,8 +50,15 @@ struct SPObject; struct SPStyle; struct SPViewWidget; +namespace Gtk +{ + class Window; +} + typedef int sp_verb_t; + + namespace Inkscape { class Application; class MessageContext; @@ -83,7 +94,7 @@ struct SPDesktop : public Inkscape::UI::View::View SPCanvasItem *acetate; SPCanvasGroup *main; - SPCanvasGroup *grid; + SPCanvasGroup *gridgroup; SPCanvasGroup *guides; SPCanvasItem *drawing; SPCanvasGroup *sketch; @@ -97,7 +108,7 @@ struct SPDesktop : public Inkscape::UI::View::View GList *zooms_future; unsigned int dkey; unsigned int number; - bool is_fullscreen; + guint window_state; unsigned int interaction_disabled_counter; bool waiting_cursor; @@ -170,6 +181,8 @@ struct SPDesktop : public Inkscape::UI::View::View int displayMode; int getMode() const { return displayMode; } + Inkscape::UI::Widget::Dock* getDock() { return _widget->getDock(); } + void set_active (bool new_active); SPObject *currentRoot() const; SPObject *currentLayer() const; @@ -227,6 +240,7 @@ struct SPDesktop : public Inkscape::UI::View::View void setWindowPosition (NR::Point p); void setWindowSize (gint w, gint h); void setWindowTransient (void* p, int transient_policy=1); + Gtk::Window* getToplevel(); void presentWindow(); bool warnDialog (gchar *text); void toggleRulers(); @@ -235,6 +249,7 @@ struct SPDesktop : public Inkscape::UI::View::View void destroyWidget(); void setToolboxFocusTo (gchar const* label); void setToolboxAdjustmentValue (gchar const* id, double val); + void setToolboxSelectOneValue (gchar const* id, gint val); bool isToolboxButtonActive (gchar const *id); void updateNow(); void updateCanvasNow(); @@ -245,12 +260,21 @@ struct SPDesktop : public Inkscape::UI::View::View void setWaitingCursor(); void clearWaitingCursor(); + void toggleGrid(); + bool gridsEnabled() { return grids_visible; } + + bool is_iconified(); + bool is_maximized(); + bool is_fullscreen(); + + void iconify(); + void maximize(); void fullscreen(); void registerEditWidget (Inkscape::UI::View::EditWidgetInterface *widget) { _widget = widget; } - NR::Matrix w2d() const; + NR::Matrix w2d() const; //transformation from window to desktop coordinates (used for zooming) NR::Point w2d(NR::Point const &p) const; NR::Point d2w(NR::Point const &p) const; NR::Matrix doc2dt() const; @@ -262,6 +286,9 @@ struct SPDesktop : public Inkscape::UI::View::View virtual void mouseover() {} virtual void mouseout() {} + virtual bool onDeleteUI (GdkEventAny*); + virtual bool onWindowStateEvent (GdkEventWindowState* event); + private: Inkscape::UI::View::EditWidgetInterface *_widget; Inkscape::Application *_inkscape; @@ -271,6 +298,8 @@ private: NR::Matrix _d2w; NR::Matrix _doc2dt; + bool grids_visible; + void push_current_zoom (GList**); sigc::signal _document_replaced_signal;