Code

fix guide dragging
[inkscape.git] / src / widgets / desktop-widget.h
index 0514dd39389a1207186adb109756e5b7aacfabec..8f38277abc72d33b5a54a7cb1f06b534d5bda900 100644 (file)
 
 #include <sigc++/connection.h>
 
+// forward declaration
+typedef struct _EgeColorProfTracker EgeColorProfTracker;
+
+
 #define SP_TYPE_DESKTOP_WIDGET (sp_desktop_widget_get_type ())
 #define SP_DESKTOP_WIDGET(o) (GTK_CHECK_CAST ((o), SP_TYPE_DESKTOP_WIDGET, SPDesktopWidget))
 #define SP_DESKTOP_WIDGET_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), SP_TYPE_DESKTOP_WIDGET, SPDesktopWidgetClass))
@@ -32,9 +36,9 @@ GtkType sp_desktop_widget_get_type();
 
 void sp_desktop_widget_destroy (SPDesktopWidget* dtw);
 
-gint sp_desktop_widget_set_focus(GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw);
-
 void sp_desktop_widget_show_decorations(SPDesktopWidget *dtw, gboolean show);
+void sp_desktop_widget_iconify(SPDesktopWidget *dtw);
+void sp_desktop_widget_maximize(SPDesktopWidget *dtw);
 void sp_desktop_widget_fullscreen(SPDesktopWidget *dtw);
 void sp_desktop_widget_layout(SPDesktopWidget *dtw);
 void sp_desktop_widget_update_zoom(SPDesktopWidget *dtw);
@@ -44,6 +48,7 @@ void sp_desktop_widget_update_rulers (SPDesktopWidget *dtw);
 void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw);
 void sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw);
 void sp_desktop_widget_update_scrollbars (SPDesktopWidget *dtw, double scale);
+void sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw );
 
 void sp_dtw_desktop_activate (SPDesktopWidget *dtw);
 void sp_dtw_desktop_deactivate (SPDesktopWidget *dtw);
@@ -64,8 +69,8 @@ struct SPDesktopWidget {
 
     SPDesktop *desktop;
 
-    GtkWindow *window;
-    
+    Gtk::Window *window;
+
     // The root vbox of the window layout.
     GtkWidget *vbox;
 
@@ -82,6 +87,7 @@ struct SPDesktopWidget {
     GtkWidget *hruler_box, *vruler_box; // eventboxes for setting tooltips
 
     GtkWidget *sticky_zoom;
+    GtkWidget *cms_adjust;
     GtkWidget *coord_status;
     GtkWidget *coord_status_x;
     GtkWidget *coord_status_y;
@@ -90,10 +96,12 @@ struct SPDesktopWidget {
     GtkWidget *zoom_status;
     gulong zoom_update;
 
+    Inkscape::UI::Widget::Dock *dock;
+
     Inkscape::UI::Widget::SelectedStyle *selected_style;
 
     gint coord_status_id, select_status_id;
-    
+
     unsigned int _interaction_disabled_counter;
 
     SPCanvas *canvas;
@@ -104,6 +112,8 @@ struct SPDesktopWidget {
 
     Inkscape::Widgets::LayerSelector *layer_selector;
 
+    EgeColorProfTracker* _tracker;
+
     struct WidgetStub : public Inkscape::UI::View::EditWidgetInterface {
         SPDesktopWidget *_dtw;
         SPDesktop       *_dt;
@@ -111,11 +121,11 @@ struct SPDesktopWidget {
 
         virtual void setTitle (gchar const *uri)
             { _dtw->updateTitle (uri); }
-        virtual void* getWindow()
+        virtual Gtk::Window* getWindow()
             { return _dtw->window; }
-        virtual void layout() 
+        virtual void layout()
             { sp_desktop_widget_layout (_dtw); }
-        virtual void present() 
+        virtual void present()
             { _dtw->presentWindow(); }
         virtual void getGeometry (gint &x, gint &y, gint &w, gint &h)
             { _dtw->getWindowGeometry (x, y, w, h); }
@@ -127,13 +137,21 @@ struct SPDesktopWidget {
             { _dtw->setWindowTransient (p, transient_policy); }
         virtual NR::Point getPointer()
             { return _dtw->window_get_pointer(); }
+        virtual void setIconified()
+            { sp_desktop_widget_iconify (_dtw); }
+        virtual void setMaximized()
+            { sp_desktop_widget_maximize (_dtw); }
         virtual void setFullscreen()
             { sp_desktop_widget_fullscreen (_dtw); }
         virtual bool shutdown()
             { return _dtw->shutdown(); }
         virtual void destroy()
-            { gtk_widget_destroy (static_cast<GtkWidget*>((void*)(_dtw->window)));}
-        
+            {
+                if(_dtw->window != NULL)
+                    delete _dtw->window;
+                _dtw->window = NULL;
+            }
+
         virtual void requestCanvasUpdate()
             { _dtw->requestCanvasUpdate(); }
         virtual void requestCanvasUpdateAndWait()
@@ -156,6 +174,8 @@ struct SPDesktopWidget {
             { sp_desktop_widget_toggle_rulers (_dtw); }
         virtual void toggleScrollbars()
             { sp_desktop_widget_toggle_scrollbars (_dtw); }
+        virtual void toggleColorProfAdjust()
+            { sp_desktop_widget_toggle_color_prof_adj(_dtw); }
         virtual void updateZoom()
             { sp_desktop_widget_update_zoom (_dtw); }
         virtual void letZoomGrabFocus()
@@ -164,6 +184,8 @@ struct SPDesktopWidget {
             { _dtw->setToolboxFocusTo (id); }
         virtual void setToolboxAdjustmentValue (const gchar *id, double val)
             { _dtw->setToolboxAdjustmentValue (id, val); }
+        virtual void setToolboxSelectOneValue (gchar const *id, int val)
+            { _dtw->setToolboxSelectOneValue (id, val); }
         virtual bool isToolboxButtonActive (gchar const* id)
             { return _dtw->isToolboxButtonActive (id); }
         virtual void setCoordinateStatus (NR::Point p)
@@ -172,10 +194,12 @@ struct SPDesktopWidget {
             { _dtw->setMessage (type, msg); }
         virtual bool warnDialog (gchar* text)
             { return _dtw->warnDialog (text); }
+        virtual Inkscape::UI::Widget::Dock* getDock ()
+            { return _dtw->getDock(); }
     };
 
     WidgetStub *stub;
-    
+
     void setMessage(Inkscape::MessageType type, gchar const *message);
     NR::Point window_get_pointer();
     bool shutdown();
@@ -189,6 +213,7 @@ struct SPDesktopWidget {
     bool warnDialog (gchar *text);
     void setToolboxFocusTo (gchar const *);
     void setToolboxAdjustmentValue (gchar const * id, double value);
+    void setToolboxSelectOneValue (gchar const * id, gint value);
     bool isToolboxButtonActive (gchar const *id);
     void setCoordinateStatus(NR::Point p);
     void requestCanvasUpdate();
@@ -196,6 +221,10 @@ struct SPDesktopWidget {
     void enableInteraction();
     void disableInteraction();
     void updateTitle(gchar const *uri);
+    bool onFocusInEvent(GdkEventFocus*);
+
+    Inkscape::UI::Widget::Dock* getDock();
+
 };
 
 /// The SPDesktopWidget vtable