Code

Patch by Johan to fix crashing by undefined path parameters in 4 LPEs
[inkscape.git] / src / desktop.h
index 27439ebccd91c71fa0613fd9f05b80429d4bf7df..4438c90e56afc830fc600aca1cfbec2a9b173baf 100644 (file)
@@ -29,9 +29,9 @@
 #include <gtk/gtktypeutils.h>
 #include <sigc++/sigc++.h>
 
-#include "libnr/nr-matrix.h"
-#include "libnr/nr-matrix-fns.h"
-#include "libnr/nr-rect.h"
+#include <2geom/matrix.h>
+#include <2geom/rect.h>
+
 #include "ui/view/view.h"
 #include "ui/view/edit-widget-interface.h"
 
@@ -113,9 +113,12 @@ struct SPDesktop : public Inkscape::UI::View::View
     SPCanvasItem  *page;        ///< page background
     SPCanvasItem  *page_border; ///< page border
     SPCSSAttr     *current;     ///< current style
+    bool           _focusMode;  ///< Whether we're focused working or general working
 
     GList *zooms_past;
     GList *zooms_future;
+    bool _quick_zoom_enabled; ///< Signifies that currently we're in quick zoom mode
+    Geom::Rect _quick_zoom_stored_area;  ///< The area of the screen before quick zoom
     unsigned int dkey;
     unsigned int number;
     guint window_state;
@@ -200,7 +203,6 @@ struct SPDesktop : public Inkscape::UI::View::View
     }
     void displayModeToggle();
     Inkscape::RenderMode _display_mode;
-    Inkscape::RenderMode _saved_display_mode;
     Inkscape::RenderMode getMode() const { return _display_mode; }
 
     Inkscape::UI::Widget::Dock* getDock() { return _widget->getDock(); }
@@ -227,18 +229,16 @@ struct SPDesktop : public Inkscape::UI::View::View
     SPItem *group_at_point (Geom::Point const p) const;
     Geom::Point point() const;
 
-    NR::Rect get_display_area() const;
+    Geom::Rect get_display_area() const;
     void set_display_area (double x0, double y0, double x1, double y1, double border, bool log = true);
-    void set_display_area(NR::Rect const &a, NR::Coord border, bool log = true);
+    void set_display_area(Geom::Rect const &a, Geom::Coord border, bool log = true);
     void zoom_absolute (double cx, double cy, double zoom);
     void zoom_relative (double cx, double cy, double zoom);
     void zoom_absolute_keep_point (double cx, double cy, double px, double py, double zoom);
     void zoom_relative_keep_point (double cx, double cy, double zoom);
     void zoom_relative_keep_point (Geom::Point const &c, double const zoom)
     {
-            using NR::X;
-            using NR::Y;
-            zoom_relative_keep_point (c[X], c[Y], zoom);
+            zoom_relative_keep_point (c[Geom::X], c[Geom::Y], zoom);
     }
 
     void zoom_page();
@@ -246,17 +246,18 @@ struct SPDesktop : public Inkscape::UI::View::View
     void zoom_drawing();
     void zoom_selection();
     void zoom_grab_focus();
-    double current_zoom() const  { return NR::expansion(_d2w); }
+    double current_zoom() const  { return _d2w.descrim(); }
     void prev_zoom();
     void next_zoom();
+    void zoom_quick(bool enable = true);
+       /** \brief  Returns whether the desktop is in quick zoom mode or not */
+       bool quick_zoomed(void) { return _quick_zoom_enabled; }
 
     bool scroll_to_point (Geom::Point const &s_dt, gdouble autoscrollspeed = 0);
     void scroll_world (double dx, double dy, bool is_scrolling = false);
     void scroll_world (Geom::Point const scroll, bool is_scrolling = false)
     {
-        using NR::X;
-        using NR::Y;
-        scroll_world(scroll[X], scroll[Y], is_scrolling);
+        scroll_world(scroll[Geom::X], scroll[Geom::Y], is_scrolling);
     }
     void scroll_world_in_svg_coords (double dx, double dy, bool is_scrolling = false);
 
@@ -283,21 +284,24 @@ struct SPDesktop : public Inkscape::UI::View::View
 
     void setWaitingCursor();
     void clearWaitingCursor();
+    bool isWaitingCursor() const { return waiting_cursor; };
 
     void toggleColorProfAdjust();
 
     void toggleGrids();
-    void toggleSnapping();
-    bool gridsEnabled() { return grids_visible; }
+    void toggleSnapGlobal();
+    bool gridsEnabled() const { return grids_visible; };
     void showGrids(bool show, bool dirty_document = true);
 
     bool is_iconified();
     bool is_maximized();
     bool is_fullscreen();
+    bool is_focusMode();
 
     void iconify();
     void maximize();
     void fullscreen();
+    void focusMode(bool mode = true);
 
     void registerEditWidget (Inkscape::UI::View::EditWidgetInterface *widget)
     { _widget = widget; }
@@ -306,6 +310,7 @@ struct SPDesktop : public Inkscape::UI::View::View
     Geom::Point w2d(Geom::Point const &p) const;
     Geom::Point d2w(Geom::Point const &p) const;
     Geom::Matrix doc2dt() const;
+    Geom::Matrix dt2doc() const;
     Geom::Point doc2dt(Geom::Point const &p) const;
     Geom::Point dt2doc(Geom::Point const &p) const;