diff --git a/src/desktop.h b/src/desktop.h
index 42e059db20a0e3bd1305f401d7aacc6d82de7c46..2a811a72383e4e1edc3367891495d70d1f77327f 100644 (file)
--- a/src/desktop.h
+++ b/src/desktop.h
#include "config.h"
#endif
+#include <gdk/gdkevents.h>
#include <gtk/gtktypeutils.h>
#include <sigc++/sigc++.h>
+
#include "libnr/nr-matrix.h"
#include "libnr/nr-matrix-fns.h"
#include "libnr/nr-rect.h"
class NRRect;
class SPCSSAttr;
+struct _GtkWidget;
+typedef struct _GtkWidget GtkWidget;
struct SPCanvas;
struct SPCanvasItem;
struct SPCanvasGroup;
struct SPStyle;
struct SPViewWidget;
+namespace Gtk
+{
+ class Window;
+}
+
typedef int sp_verb_t;
+
+
namespace Inkscape {
class Application;
class MessageContext;
SPCanvasItem *acetate;
SPCanvasGroup *main;
- SPCanvasGroup *grid;
+ SPCanvasGroup *gridgroup;
SPCanvasGroup *guides;
SPCanvasItem *drawing;
SPCanvasGroup *sketch;
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;
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;
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);
+ Gtk::Window* getToplevel();
void presentWindow();
bool warnDialog (gchar *text);
void toggleRulers();
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();
void enableInteraction();
void disableInteraction();
+
+ void setWaitingCursor();
+ void clearWaitingCursor();
+ void toggleGrids();
+ bool gridsEnabled() { return grids_visible; }
+ void showGrids(bool show);
+
+ 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;
virtual void mouseover() {}
virtual void mouseout() {}
+ virtual bool onDeleteUI (GdkEventAny*);
+ virtual bool onWindowStateEvent (GdkEventWindowState* event);
+
private:
Inkscape::UI::View::EditWidgetInterface *_widget;
Inkscape::Application *_inkscape;
NR::Matrix _w2d;
NR::Matrix _d2w;
NR::Matrix _doc2dt;
-
+
+ bool grids_visible; /* don't set this variable directly, use the method below */
+ void set_grids_visible(bool visible);
+
void push_current_zoom (GList**);
sigc::signal<void,SPDesktop*,SPDocument*> _document_replaced_signal;
sigc::signal<void> _deactivate_signal;
sigc::signal<void,SPDesktop*,SPEventContext*> _event_context_changed_signal;
sigc::signal<void, gpointer> _tool_subselection_changed;
-
+
sigc::connection _activate_connection;
sigc::connection _deactivate_connection;
sigc::connection _sel_modified_connection;
sigc::connection _reconstruction_finish_connection;
sigc::connection _commit_connection;
sigc::connection _modified_connection;
-
+
virtual void onPositionSet (double, double);
virtual void onResized (double, double);
virtual void onRedrawRequested();