index aece4f75db5ac3edfba3710e0a7522791593ceec..1bb10fc51a77cdf6ace982595592e0440460a5df 100644 (file)
* 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
+ * Abhishek Sharma
* ? -2004
*/
#include <gtk/gtktooltips.h>
#include <gtk/gtkwindow.h>
-#include "display/display-forward.h"
#include "libnr/nr-point.h"
#include "forward.h"
+#include "sp-object.h"
#include "message.h"
#include "ui/view/view-widget.h"
#include "ui/view/edit-widget-interface.h"
// forward declaration
typedef struct _EgeColorProfTracker EgeColorProfTracker;
+struct SPCanvas;
-#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);
namespace Inkscape { namespace UI { namespace Widget { class SelectedStyle; } } }
+namespace Inkscape { namespace UI { namespace Dialogs { class SwatchesPanel; } } }
+
/// A GtkEventBox on an SPDesktop.
struct SPDesktopWidget {
SPViewWidget viewwidget;
// The root vbox of the window layout.
GtkWidget *vbox;
+ GtkWidget *hbox;
+
GtkWidget *menubar, *statusbar;
- GtkWidget *panels;
+ Inkscape::UI::Dialogs::SwatchesPanel *panels;
GtkWidget *hscrollbar, *vscrollbar, *vscrollbar_box;
- GtkWidget *tool_toolbox, *aux_toolbox, *commands_toolbox;
-
/* Rulers */
GtkWidget *hruler, *vruler;
GtkWidget *hruler_box, *vruler_box; // eventboxes for setting tooltips
unsigned int _interaction_disabled_counter;
SPCanvas *canvas;
- NR::Point ruler_origin;
+ Geom::Point ruler_origin;
double dt2r;
GtkAdjustment *hadj, *vadj;
{ _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)
{ _dtw->getWindowGeometry (x, y, w, h); }
virtual void setSize (gint w, gint h)
{ _dtw->setWindowSize (w, h); }
- virtual void setPosition (NR::Point p)
+ virtual void setPosition (Geom::Point p)
{ _dtw->setWindowPosition (p); }
virtual void setTransient (void* p, int transient_policy)
{ _dtw->setWindowTransient (p, transient_policy); }
- virtual NR::Point getPointer()
+ virtual Geom::Point getPointer()
{ return _dtw->window_get_pointer(); }
virtual void setIconified()
{ sp_desktop_widget_iconify (_dtw); }
{ sp_dtw_desktop_activate (_dtw); }
virtual void deactivateDesktop()
{ sp_dtw_desktop_deactivate (_dtw); }
- virtual void viewSetPosition (NR::Point p)
+ virtual void viewSetPosition (Geom::Point p)
{ _dtw->viewSetPosition (p); }
virtual void updateRulers()
{ sp_desktop_widget_update_rulers (_dtw); }
{ _dtw->setToolboxSelectOneValue (id, val); }
virtual bool isToolboxButtonActive (gchar const* id)
{ return _dtw->isToolboxButtonActive (id); }
- virtual void setCoordinateStatus (NR::Point p)
+ virtual void setCoordinateStatus (Geom::Point p)
{ _dtw->setCoordinateStatus (p); }
virtual void setMessage (Inkscape::MessageType type, gchar const* msg)
{ _dtw->setMessage (type, msg); }
WidgetStub *stub;
void setMessage(Inkscape::MessageType type, gchar const *message);
- NR::Point window_get_pointer();
+ Geom::Point window_get_pointer();
bool shutdown();
- void viewSetPosition (NR::Point p);
+ void viewSetPosition (Geom::Point p);
void letZoomGrabFocus();
void getWindowGeometry (gint &x, gint &y, gint &w, gint &h);
- void setWindowPosition (NR::Point p);
+ void setWindowPosition (Geom::Point p);
void setWindowSize (gint w, gint h);
void setWindowTransient (void *p, int transient_policy);
void presentWindow();
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 setToolboxPosition(Glib::ustring const& id, GtkPositionType pos);
+ void setCoordinateStatus(Geom::Point p);
void requestCanvasUpdate();
void requestCanvasUpdateAndWait();
void enableInteraction();
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