index 5129fbf490a5d6346c3e3f2bb4040c798e142eaa..bb9d7ef860d78c2f3a186084218a94aee1e8cbd0 100644 (file)
* 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
*/
#include "ui/view/view-widget.h"
#include "ui/view/edit-widget-interface.h"
+#include <sigc++/connection.h>
+
#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))
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);
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;
Inkscape::UI::Widget::SelectedStyle *selected_style;
gint coord_status_id, select_status_id;
+
+ unsigned int _interaction_disabled_counter;
SPCanvas *canvas;
NR::Point ruler_origin;
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); }
{ _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()
{ _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)
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