X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdesktop.h;h=4c255ecbbb140f9c935c43ec9afe5e423e7534ff;hb=17680991ff44a340869f04d7ce00a6889337ed7f;hp=e9e2f638e764d5388ba433ea12bf6fdae8a55e29;hpb=040f5f6c86db72df064756211fb27ec726322afb;p=inkscape.git diff --git a/src/desktop.h b/src/desktop.h index e9e2f638e..4c255ecbb 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -10,7 +10,9 @@ * bulia byak * Ralf Stephan * John Bintz + * Johan Engelen * + * Copyright (C) 2007 Johan Engelen * Copyright (C) 2006 John Bintz * Copyright (C) 1999-2005 authors * Copyright (C) 2000-2001 Ximian, Inc. @@ -33,6 +35,8 @@ class NRRect; class SPCSSAttr; +struct _GtkWidget; +typedef struct _GtkWidget GtkWidget; struct SPCanvas; struct SPCanvasItem; struct SPCanvasGroup; @@ -81,7 +85,7 @@ struct SPDesktop : public Inkscape::UI::View::View SPCanvasItem *acetate; SPCanvasGroup *main; - SPCanvasGroup *grid; + SPCanvasGroup *gridgroup; SPCanvasGroup *guides; SPCanvasItem *drawing; SPCanvasGroup *sketch; @@ -95,8 +99,9 @@ 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; /// \todo fixme: This has to be implemented in different way */ guint guides_active : 1; @@ -104,8 +109,10 @@ struct SPDesktop : public Inkscape::UI::View::View // storage for selected dragger used by GrDrag as it's // created and deleted by tools SPItem *gr_item; - guint gr_point_num; + guint gr_point_type; + guint gr_point_i; bool gr_fill_or_stroke; + Inkscape::ObjectHierarchy *_layer_hierarchy; gchar * _reconstruction_old_layer_id; @@ -210,18 +217,19 @@ struct SPDesktop : public Inkscape::UI::View::View void next_zoom(); bool scroll_to_point (NR::Point const *s_dt, gdouble autoscrollspeed = 0); - void scroll_world (double dx, double dy); - void scroll_world (NR::Point const scroll) + void scroll_world (double dx, double dy, bool is_scrolling = false); + void scroll_world (NR::Point const scroll, bool is_scrolling = false) { using NR::X; - using NR::Y; - scroll_world(scroll[X], scroll[Y]); + using NR::Y; + scroll_world(scroll[X], scroll[Y], is_scrolling); } void getWindowGeometry (gint &x, gint &y, gint &w, gint &h); void setWindowPosition (NR::Point p); void setWindowSize (gint w, gint h); void setWindowTransient (void* p, int transient_policy=1); + void getToplevel( GtkWidget*& toplevel ); void presentWindow(); bool warnDialog (gchar *text); void toggleRulers(); @@ -236,13 +244,25 @@ struct SPDesktop : public Inkscape::UI::View::View void enableInteraction(); void disableInteraction(); + + 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; @@ -263,6 +283,8 @@ private: NR::Matrix _d2w; NR::Matrix _doc2dt; + bool grids_visible; + void push_current_zoom (GList**); sigc::signal _document_replaced_signal;