desktop-widget.h revision 73da6d4e97d881a00122425eafdc616c2a2db9c1
dbb33756bd786e9432e18ec7be93f8c416e1b492Jon A. Cruz#ifndef SEEN_SP_DESKTOP_WIDGET_H
dbb33756bd786e9432e18ec7be93f8c416e1b492Jon A. Cruz#define SEEN_SP_DESKTOP_WIDGET_H
dbb33756bd786e9432e18ec7be93f8c416e1b492Jon A. Cruz
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould/** \file
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * SPDesktopWidget: handling Gtk events on a desktop.
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould *
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * Authors:
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * Jon A. Cruz <jon@joncruz.org> (c) 2010
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * John Bintz <jcoswell@coswellproductions.org> (c) 2006
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * Ralf Stephan <ralf@ark.in-berlin.de> (c) 2005, distrib. under GPL2
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz * Abhishek Sharma
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * ? -2004
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould */
73bd3f9ed5f8ae0bc838a2d064a1aab16a8c8dd2Jon A. Cruz
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#include <gtk/gtk.h>
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruz#include "libnr/nr-point.h"
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruz#include "forward.h"
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruz#include "sp-object.h"
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#include "message.h"
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#include "ui/view/view-widget.h"
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#include "ui/view/edit-widget-interface.h"
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#include <stddef.h>
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruz#include <sigc++/connection.h>
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould// forward declaration
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gouldtypedef struct _EgeColorProfTracker EgeColorProfTracker;
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gouldstruct SPCanvas;
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#define SP_TYPE_DESKTOP_WIDGET SPDesktopWidget::getType()
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#define SP_DESKTOP_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_DESKTOP_WIDGET, SPDesktopWidget))
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#define SP_DESKTOP_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_DESKTOP_WIDGET, SPDesktopWidgetClass))
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#define SP_IS_DESKTOP_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_DESKTOP_WIDGET))
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould#define SP_IS_DESKTOP_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_DESKTOP_WIDGET))
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruzvoid sp_desktop_widget_destroy (SPDesktopWidget* dtw);
e27725d84d44011b7512665d18ffad32224e1cf1Jon A. Cruz
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gouldvoid sp_desktop_widget_show_decorations(SPDesktopWidget *dtw, gboolean show);
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gouldvoid sp_desktop_widget_iconify(SPDesktopWidget *dtw);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruzvoid sp_desktop_widget_maximize(SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_fullscreen(SPDesktopWidget *dtw);
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruzvoid sp_desktop_widget_update_zoom(SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_update_rulers (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_update_hruler (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_update_vruler (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz/* Show/hide rulers & scrollbars */
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_update_scrollbars (SPDesktopWidget *dtw, double scale);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw );
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_dtw_desktop_activate (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzvoid sp_dtw_desktop_deactivate (SPDesktopWidget *dtw);
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruznamespace Inkscape { namespace Widgets { class LayerSelector; } }
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruznamespace Inkscape { namespace UI { namespace Widget { class SelectedStyle; } } }
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruznamespace Inkscape { namespace UI { namespace Dialogs { class SwatchesPanel; } } }
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz/// A GtkEventBox on an SPDesktop.
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruzstruct SPDesktopWidget {
d70ad7a28e89c69b96ec96e311aeef00b0f506f2joncruz SPViewWidget viewwidget;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz unsigned int update : 1;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz sigc::connection modified_connection;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz SPDesktop *desktop;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Gtk::Window *window;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz // The root vbox of the window layout.
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *vbox;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *hbox;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *menubar, *statusbar;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Inkscape::UI::Dialogs::SwatchesPanel *panels;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *hscrollbar, *vscrollbar, *vscrollbar_box;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz /* Rulers */
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *hruler, *vruler;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *hruler_box, *vruler_box; // eventboxes for setting tooltips
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *sticky_zoom;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *cms_adjust;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *coord_status;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *coord_status_x;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *coord_status_y;
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz GtkWidget *select_status;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *select_status_eventbox;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkWidget *zoom_status;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz gulong zoom_update;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Inkscape::UI::Widget::Dock *dock;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Inkscape::UI::Widget::SelectedStyle *selected_style;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz gint coord_status_id, select_status_id;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz unsigned int _interaction_disabled_counter;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz SPCanvas *canvas;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Geom::Point ruler_origin;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz double dt2r;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz GtkAdjustment *hadj, *vadj;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Inkscape::Widgets::LayerSelector *layer_selector;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz EgeColorProfTracker* _tracker;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz struct WidgetStub : public Inkscape::UI::View::EditWidgetInterface {
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz SPDesktopWidget *_dtw;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz SPDesktop *_dt;
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz WidgetStub (SPDesktopWidget* dtw) : _dtw(dtw) {}
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setTitle (gchar const *uri)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->updateTitle (uri); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual Gtk::Window* getWindow()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->window; }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void layout() {
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz _dtw->layoutWidgets();
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void present()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->presentWindow(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void getGeometry (gint &x, gint &y, gint &w, gint &h)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->getWindowGeometry (x, y, w, h); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setSize (gint w, gint h)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setWindowSize (w, h); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setPosition (Geom::Point p)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setWindowPosition (p); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setTransient (void* p, int transient_policy)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setWindowTransient (p, transient_policy); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual Geom::Point getPointer()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->window_get_pointer(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setIconified()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_iconify (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setMaximized()
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz { sp_desktop_widget_maximize (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setFullscreen()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_fullscreen (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual bool shutdown()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->shutdown(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void destroy()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz {
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz if(_dtw->window != NULL)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz delete _dtw->window;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz _dtw->window = NULL;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void requestCanvasUpdate()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->requestCanvasUpdate(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void requestCanvasUpdateAndWait()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->requestCanvasUpdateAndWait(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void enableInteraction()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->enableInteraction(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void disableInteraction()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->disableInteraction(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void activateDesktop()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_dtw_desktop_activate (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void deactivateDesktop()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_dtw_desktop_deactivate (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void viewSetPosition (Geom::Point p)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->viewSetPosition (p); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void updateRulers()
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz { sp_desktop_widget_update_rulers (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void updateScrollbars (double scale)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_update_scrollbars (_dtw, scale); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void toggleRulers()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_toggle_rulers (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void toggleScrollbars()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_toggle_scrollbars (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void toggleColorProfAdjust()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_toggle_color_prof_adj(_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void updateZoom()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { sp_desktop_widget_update_zoom (_dtw); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void letZoomGrabFocus()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->letZoomGrabFocus(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setToolboxFocusTo (const gchar * id)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setToolboxFocusTo (id); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setToolboxAdjustmentValue (const gchar *id, double val)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setToolboxAdjustmentValue (id, val); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setToolboxSelectOneValue (gchar const *id, int val)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setToolboxSelectOneValue (id, val); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual bool isToolboxButtonActive (gchar const* id)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->isToolboxButtonActive (id); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setCoordinateStatus (Geom::Point p)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setCoordinateStatus (p); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual void setMessage (Inkscape::MessageType type, gchar const* msg)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { _dtw->setMessage (type, msg); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz virtual bool showInfoDialog( Glib::ustring const &message ) {
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz return _dtw->showInfoDialog( message );
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual bool warnDialog (gchar* text)
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->warnDialog (text); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz virtual Inkscape::UI::Widget::Dock* getDock ()
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz { return _dtw->getDock(); }
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz };
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz WidgetStub *stub;
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void setMessage(Inkscape::MessageType type, gchar const *message);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz Geom::Point window_get_pointer();
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz bool shutdown();
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void viewSetPosition (Geom::Point p);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void letZoomGrabFocus();
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void getWindowGeometry (gint &x, gint &y, gint &w, gint &h);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void setWindowPosition (Geom::Point p);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void setWindowSize (gint w, gint h);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void setWindowTransient (void *p, int transient_policy);
b1fd0330076a954f02eb6a6a7879a90cb1886557joncruz void presentWindow();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz bool showInfoDialog( Glib::ustring const &message );
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz bool warnDialog (gchar *text);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void setToolboxFocusTo (gchar const *);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void setToolboxAdjustmentValue (gchar const * id, double value);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void setToolboxSelectOneValue (gchar const * id, gint value);
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz bool isToolboxButtonActive (gchar const *id);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void setToolboxPosition(Glib::ustring const& id, GtkPositionType pos);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void setCoordinateStatus(Geom::Point p);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void requestCanvasUpdate();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void requestCanvasUpdateAndWait();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void enableInteraction();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void disableInteraction();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void updateTitle(gchar const *uri);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz bool onFocusInEvent(GdkEventFocus*);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
9fbb9b436020e98c41eb85dbaadcc2e3226c53b2joncruz Inkscape::UI::Widget::Dock* getDock();
9fbb9b436020e98c41eb85dbaadcc2e3226c53b2joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz static GtkType getType();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz static SPDesktopWidget* createInstance(SPNamedView *namedview);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void updateNamedview();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruzprivate:
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz GtkWidget *tool_toolbox;
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz GtkWidget *aux_toolbox;
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz GtkWidget *commands_toolbox,;
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz GtkWidget *snap_toolbox;
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz static void init(SPDesktopWidget *widget);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void layoutWidgets();
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz void namedviewModified(SPObject *obj, guint flags);
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz};
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz/// The SPDesktopWidget vtable
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruzstruct SPDesktopWidgetClass {
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz SPViewWidgetClass parent_class;
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz};
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
6c08c8c541e1537958c0ef1bdbab931af692b7f5joncruz#endif /* !SEEN_SP_DESKTOP_WIDGET_H */
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz/*
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz Local Variables:
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz mode:c++
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz c-file-style:"stroustrup"
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz indent-tabs-mode:nil
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz fill-column:99
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz End:
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz*/
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
55919b10f5e27d2fa50c03ca269bce594f5c8d82joncruz