diff --git a/src/desktop.h b/src/desktop.h
index e5f9cdacc1a1b473460d732f340efbf386effbda..4c9d1ece8cfcaed5ebdd4d0987ddce8f642ef4c4 100644 (file)
--- a/src/desktop.h
+++ b/src/desktop.h
-#ifndef __SP_DESKTOP_H__
-#define __SP_DESKTOP_H__
+#ifndef SEEN_SP_DESKTOP_H
+#define SEEN_SP_DESKTOP_H
/** \file
* SPDesktop: an editable view.
#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 {
+
+
+namespace Inkscape {
class Application;
class MessageContext;
- class Selection;
+ class Selection;
class ObjectHierarchy;
class LayerManager;
class EventLog;
- namespace UI {
- namespace Dialog {
- class DialogManager;
+ namespace UI {
+ namespace Dialog {
+ class DialogManager;
}
}
namespace Whiteboard {
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;
- // storage for selected dragger used by GrDrag as it's
+ // storage for selected dragger used by GrDrag as it's
// created and deleted by tools
SPItem *gr_item;
guint gr_point_type;
guint gr_point_i;
- bool gr_fill_or_stroke;
-
+ bool gr_fill_or_stroke;
+
Inkscape::ObjectHierarchy *_layer_hierarchy;
gchar * _reconstruction_old_layer_id;
{
return _document_replaced_signal.connect (slot);
}
-
- sigc::connection connectEventContextChanged (const sigc::slot<void,SPDesktop*,SPEventContext*> & slot)
+
+ sigc::connection connectEventContextChanged (const sigc::slot<void,SPDesktop*,SPEventContext*> & slot)
{
return _event_context_changed_signal.connect (slot);
}
- sigc::connection connectSetStyle (const sigc::slot<bool, const SPCSSAttr *> & slot)
+ sigc::connection connectSetStyle (const sigc::slot<bool, const SPCSSAttr *> & slot)
{
- return _set_style_signal.connect (slot);
+ return _set_style_signal.connect (slot);
}
- sigc::connection connectQueryStyle (const sigc::slot<int, SPStyle *, int> & slot)
+ sigc::connection connectQueryStyle (const sigc::slot<int, SPStyle *, int> & slot)
{
- return _query_style_signal.connect (slot);
+ return _query_style_signal.connect (slot);
}
// subselection is some sort of selection which is specific to the tool, such as a handle in gradient tool, or a text selection
sigc::connection connectToolSubselectionChanged(const sigc::slot<void, gpointer> & slot) {
- return _tool_subselection_changed.connect(slot);
+ return _tool_subselection_changed.connect(slot);
}
- void emitToolSubselectionChanged(gpointer data);
+ void emitToolSubselectionChanged(gpointer data);
sigc::connection connectCurrentLayerChanged(const sigc::slot<void, SPObject *> & slot) {
- return _layer_changed_signal.connect(slot);
+ return _layer_changed_signal.connect(slot);
}
-
- // Whiteboard changes
+
+ // Whiteboard changes
#ifdef WITH_INKBOARD
- Inkscape::Whiteboard::SessionManager* whiteboard_session_manager() {
- return _whiteboard_session_manager;
- }
+ Inkscape::Whiteboard::SessionManager* whiteboard_session_manager() {
+ return _whiteboard_session_manager;
+ }
- Inkscape::Whiteboard::SessionManager* _whiteboard_session_manager;
+ Inkscape::Whiteboard::SessionManager* _whiteboard_session_manager;
#endif
-
+
SPDesktop();
void init (SPNamedView* nv, SPCanvas* canvas);
- ~SPDesktop();
+ virtual ~SPDesktop();
void destroy();
Inkscape::MessageContext *guidesMessageContext() const {
- return _guides_message_context;
+ return _guides_message_context;
}
void setDisplayModeNormal();
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;
bool isLayer(SPObject *object) const;
bool isWithinViewport(SPItem *item) const;
bool itemIsHidden(SPItem const *item) const;
-
+
void activate_guides (bool activate);
void change_document (SPDocument *document);
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 toggleColorProfAdjust();
+
+ void toggleGrids();
+ bool gridsEnabled() { return grids_visible; }
+ void showGrids(bool show, bool dirty_document = true);
+
+ 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();
static void _onSelectionModified (Inkscape::Selection *selection, guint flags, SPDesktop *dt);
};
-#endif
+#endif // SEEN_SP_DESKTOP_H
/*
Local Variables: