diff options
Diffstat (limited to 'src/box3d-context.h')
| -rw-r--r-- | src/box3d-context.h | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/src/box3d-context.h b/src/box3d-context.h index 70ff87ad1..044d79d7d 100644 --- a/src/box3d-context.h +++ b/src/box3d-context.h @@ -21,14 +21,29 @@ #include "proj_pt.h" #include "vanishing-point.h" -#define SP_TYPE_BOX3D_CONTEXT (sp_box3d_context_get_type ()) -#define SP_BOX3D_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_BOX3D_CONTEXT, Box3DContext)) -#define SP_BOX3D_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_BOX3D_CONTEXT, Box3DContextClass)) -#define SP_IS_BOX3D_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_BOX3D_CONTEXT)) -#define SP_IS_BOX3D_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_BOX3D_CONTEXT)) - -struct Box3DContext : public SPEventContext { - SPItem *item; +#include "box3d.h" + +#define SP_BOX3D_CONTEXT(obj) (dynamic_cast<Box3DContext*>((SPEventContext*)obj)) +#define SP_IS_BOX3D_CONTEXT(obj) (dynamic_cast<const Box3DContext*>((const SPEventContext*)obj) != NULL) + +class Box3DContext : public SPEventContext { +public: + Box3DContext(); + virtual ~Box3DContext(); + + Box3D::VPDrag * _vpdrag; + + static const std::string prefsPath; + + virtual void setup(); + virtual void finish(); + virtual bool root_handler(GdkEvent* event); + virtual bool item_handler(SPItem* item, GdkEvent* event); + + virtual const std::string& getPrefsPath(); + +private: + SPBox3D* box3d; Geom::Point center; /** @@ -50,23 +65,14 @@ struct Box3DContext : public SPEventContext { bool ctrl_dragged; /* whether we are ctrl-dragging */ bool extruded; /* whether shift-dragging already occured (i.e. the box is already extruded) */ - Box3D::VPDrag * _vpdrag; - sigc::connection sel_changed_connection; - Inkscape::MessageContext *_message_context; -}; + void selection_changed(Inkscape::Selection* selection); -struct Box3DContextClass { - SPEventContextClass parent_class; + void drag(guint state); + void finishItem(); }; -/* Standard Gtk function */ - -GType sp_box3d_context_get_type (void); - -void sp_box3d_context_update_lines(SPEventContext *ec); - #endif /* __SP_BOX3D_CONTEXT_H__ */ /* |
