summaryrefslogtreecommitdiffstats
path: root/src/box3d-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/box3d-context.h')
-rw-r--r--src/box3d-context.h46
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__ */
/*