X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdesktop.h;h=9f3d7752076f34d021df00c841538df9be4a5b52;hb=e900b46f3a8707abddd24803da7f25eecf09a942;hp=55d824e0af3f49f0a091115920763cb6e617c679;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/desktop.h b/src/desktop.h index 55d824e0a..9f3d77520 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -9,7 +9,11 @@ * Frank Felfe * 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. * @@ -49,6 +53,8 @@ namespace Inkscape { class MessageContext; class Selection; class ObjectHierarchy; + class LayerManager; + class EventLog; namespace UI { namespace Dialog { class DialogManager; @@ -72,6 +78,8 @@ struct SPDesktop : public Inkscape::UI::View::View /// current selection; will never generally be NULL Inkscape::Selection *selection; SPEventContext *event_context; + Inkscape::LayerManager *layer_manager; + Inkscape::EventLog *event_log; SPCanvasItem *acetate; SPCanvasGroup *main; @@ -90,6 +98,7 @@ struct SPDesktop : public Inkscape::UI::View::View unsigned int dkey; unsigned int number; bool is_fullscreen; + unsigned int interaction_disabled_counter; /// \todo fixme: This has to be implemented in different way */ guint guides_active : 1; @@ -97,8 +106,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; @@ -154,6 +165,9 @@ struct SPDesktop : public Inkscape::UI::View::View void setDisplayModeNormal(); void setDisplayModeOutline(); + void displayModeToggle(); + int displayMode; + int getMode() const { return displayMode; } void set_active (bool new_active); SPObject *currentRoot() const; @@ -200,12 +214,12 @@ 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); @@ -221,6 +235,11 @@ struct SPDesktop : public Inkscape::UI::View::View void setToolboxFocusTo (gchar const* label); void setToolboxAdjustmentValue (gchar const* id, double val); bool isToolboxButtonActive (gchar const *id); + void updateNow(); + void updateCanvasNow(); + + void enableInteraction(); + void disableInteraction(); void fullscreen(); @@ -262,6 +281,8 @@ private: sigc::connection _sel_changed_connection; sigc::connection _reconstruction_start_connection; sigc::connection _reconstruction_finish_connection; + sigc::connection _commit_connection; + sigc::connection _modified_connection; virtual void onPositionSet (double, double); virtual void onResized (double, double);