X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fwidgets%2Fdesktop-widget.h;h=8f38277abc72d33b5a54a7cb1f06b534d5bda900;hb=396d5aa732c14fad8d67a143132eb232a45dd7f2;hp=5129fbf490a5d6346c3e3f2bb4040c798e142eaa;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h index 5129fbf49..8f38277ab 100644 --- a/src/widgets/desktop-widget.h +++ b/src/widgets/desktop-widget.h @@ -5,6 +5,7 @@ * SPDesktopWidget: handling Gtk events on a desktop. * * Authors: + * John Bintz (c) 2006 * Ralf Stephan (c) 2005, distrib. under GPL2 * ? -2004 */ @@ -19,6 +20,12 @@ #include "ui/view/view-widget.h" #include "ui/view/edit-widget-interface.h" +#include + +// 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)) @@ -29,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); @@ -41,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); @@ -55,12 +63,14 @@ struct SPDesktopWidget { unsigned int update : 1; + sigc::connection modified_connection; + GtkTooltips *tt; SPDesktop *desktop; - GtkWindow *window; - + Gtk::Window *window; + // The root vbox of the window layout. GtkWidget *vbox; @@ -77,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; @@ -85,10 +96,14 @@ 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; NR::Point ruler_origin; double dt2r; @@ -97,6 +112,8 @@ struct SPDesktopWidget { Inkscape::Widgets::LayerSelector *layer_selector; + EgeColorProfTracker* _tracker; + struct WidgetStub : public Inkscape::UI::View::EditWidgetInterface { SPDesktopWidget *_dtw; SPDesktop *_dt; @@ -104,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); } @@ -120,15 +137,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((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() @@ -143,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() @@ -151,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) @@ -159,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(); @@ -176,10 +213,18 @@ 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*); + + Inkscape::UI::Widget::Dock* getDock(); + }; /// The SPDesktopWidget vtable