Code

Disable the page selector when there's only one page
[inkscape.git] / src / widgets / desktop-widget.h
index cc66bf1800cd6772be2f52d0918ef712aea40afe..bb9d7ef860d78c2f3a186084218a94aee1e8cbd0 100644 (file)
@@ -5,6 +5,7 @@
  * SPDesktopWidget: handling Gtk events on a desktop.
  *
  * Authors:
+ *      John Bintz <jcoswell@coswellproductions.org> (c) 2006
  *      Ralf Stephan <ralf@ark.in-berlin.de> (c) 2005, distrib. under GPL2
  *      ? -2004
  */
@@ -31,9 +32,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);
@@ -63,7 +64,7 @@ struct SPDesktopWidget {
 
     SPDesktop *desktop;
 
-    GtkWindow *window;
+    Gtk::Window *window;
     
     // The root vbox of the window layout.
     GtkWidget *vbox;
@@ -92,6 +93,8 @@ struct SPDesktopWidget {
     Inkscape::UI::Widget::SelectedStyle *selected_style;
 
     gint coord_status_id, select_status_id;
+    
+    unsigned int _interaction_disabled_counter;
 
     SPCanvas *canvas;
     NR::Point ruler_origin;
@@ -108,7 +111,7 @@ struct SPDesktopWidget {
 
         virtual void setTitle (gchar const *uri)
             { _dtw->updateTitle (uri); }
-        virtual void* getWindow()
+        virtual Gtk::Window* getWindow()
             { return _dtw->window; }
         virtual void layout() 
             { sp_desktop_widget_layout (_dtw); }
@@ -124,15 +127,29 @@ 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()
+            { _dtw->requestCanvasUpdateAndWait(); }
+        virtual void enableInteraction()
+            { _dtw->enableInteraction(); }
+        virtual void disableInteraction()
+            { _dtw->disableInteraction(); }
         virtual void activateDesktop()
             { sp_dtw_desktop_activate (_dtw); }
         virtual void deactivateDesktop()
@@ -155,6 +172,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)
@@ -180,10 +199,16 @@ 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();
+    void requestCanvasUpdateAndWait();
+    void enableInteraction();
+    void disableInteraction();
     void updateTitle(gchar const *uri);
+       
+       bool onFocusInEvent(GdkEventFocus*);
 };
 
 /// The SPDesktopWidget vtable