Code

C++-ification pass.
[inkscape.git] / src / widgets / desktop-widget.h
index 04146cac606bb163615b83ad49ea4c82b43ff2c9..c9bedb1ab42f7b1658a6f23b27b3a9d4a0f46434 100644 (file)
@@ -5,6 +5,7 @@
  * SPDesktopWidget: handling Gtk events on a desktop.
  *
  * Authors:
+ *      Jon A. Cruz <jon@joncruz.org> (c) 2010
  *      John Bintz <jcoswell@coswellproductions.org> (c) 2006
  *      Ralf Stephan <ralf@ark.in-berlin.de> (c) 2005, distrib. under GPL2
  *      ? -2004
 typedef struct _EgeColorProfTracker EgeColorProfTracker;
 
 
-#define SP_TYPE_DESKTOP_WIDGET (sp_desktop_widget_get_type ())
+#define SP_TYPE_DESKTOP_WIDGET SPDesktopWidget::getType()
 #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))
 #define SP_IS_DESKTOP_WIDGET(o) (GTK_CHECK_TYPE ((o), SP_TYPE_DESKTOP_WIDGET))
 #define SP_IS_DESKTOP_WIDGET_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), SP_TYPE_DESKTOP_WIDGET))
 
-GtkType sp_desktop_widget_get_type();
-
 void sp_desktop_widget_destroy (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);
 void sp_desktop_widget_update_rulers (SPDesktopWidget *dtw);
 void sp_desktop_widget_update_hruler (SPDesktopWidget *dtw);
 void sp_desktop_widget_update_vruler (SPDesktopWidget *dtw);
 
-void sp_desktop_widget_update_namedview (SPDesktopWidget *dtw);
-
 /* Show/hide rulers & scrollbars */
 void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw);
 void sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw);
@@ -86,8 +82,6 @@ struct SPDesktopWidget {
 
     GtkWidget *hscrollbar, *vscrollbar, *vscrollbar_box;
 
-    GtkWidget *tool_toolbox, *aux_toolbox, *commands_toolbox, *snap_toolbox;
-
     /* Rulers */
     GtkWidget *hruler, *vruler;
     GtkWidget *hruler_box, *vruler_box; // eventboxes for setting tooltips
@@ -129,8 +123,11 @@ struct SPDesktopWidget {
             { _dtw->updateTitle (uri); }
         virtual Gtk::Window* getWindow()
             { return _dtw->window; }
-        virtual void layout()
-            { sp_desktop_widget_layout (_dtw); }
+
+        virtual void layout() {
+            _dtw->layoutWidgets();
+        }
+
         virtual void present()
             { _dtw->presentWindow(); }
         virtual void getGeometry (gint &x, gint &y, gint &w, gint &h)
@@ -231,6 +228,22 @@ struct SPDesktopWidget {
 
     Inkscape::UI::Widget::Dock* getDock();
 
+    static GtkType getType();
+    static SPDesktopWidget* createInstance(SPNamedView *namedview);
+
+    void updateNamedview();
+
+private:
+    GtkWidget *tool_toolbox;
+    GtkWidget *aux_toolbox;
+    GtkWidget *commands_toolbox,;
+    GtkWidget *snap_toolbox;
+
+    static void init(SPDesktopWidget *widget);
+    void layoutWidgets();
+
+    void namedviewModified(SPObject *obj, guint flags);
+
 };
 
 /// The SPDesktopWidget vtable