summaryrefslogtreecommitdiffstats
path: root/src/pencil-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pencil-context.h')
-rw-r--r--src/pencil-context.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/pencil-context.h b/src/pencil-context.h
index aa0f60eb2..b3ded0242 100644
--- a/src/pencil-context.h
+++ b/src/pencil-context.h
@@ -7,12 +7,8 @@
#include "draw-context.h"
-
-#define SP_TYPE_PENCIL_CONTEXT (sp_pencil_context_get_type())
-#define SP_PENCIL_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_PENCIL_CONTEXT, SPPencilContext))
-#define SP_PENCIL_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_PENCIL_CONTEXT, SPPencilContextClass))
-#define SP_IS_PENCIL_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_PENCIL_CONTEXT))
-#define SP_IS_PENCIL_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_PENCIL_CONTEXT))
+#define SP_PENCIL_CONTEXT(obj) (dynamic_cast<SPPencilContext*>((SPEventContext*)obj))
+#define SP_IS_PENCIL_CONTEXT(obj) (dynamic_cast<const SPPencilContext*>((const SPEventContext*)obj) != NULL)
enum PencilState {
SP_PENCIL_CONTEXT_IDLE,
@@ -24,7 +20,11 @@ enum PencilState {
/**
* SPPencilContext: a context for pencil tool events
*/
-struct SPPencilContext : public SPDrawContext {
+class SPPencilContext : public SPDrawContext {
+public:
+ SPPencilContext();
+ virtual ~SPPencilContext();
+
Geom::Point p[16];
gint npoints;
PencilState state;
@@ -36,13 +36,15 @@ struct SPPencilContext : public SPDrawContext {
Geom::Piecewise<Geom::D2<Geom::SBasis> > sketch_interpolation; // the current proposal from the sketched paths
unsigned sketch_n; // number of sketches done
-};
-/// The SPPencilContext vtable (empty).
-struct SPPencilContextClass : public SPEventContextClass { };
+ static const std::string prefsPath;
-GType sp_pencil_context_get_type();
+ virtual const std::string& getPrefsPath();
+protected:
+ virtual void setup();
+ virtual bool root_handler(GdkEvent* event);
+};
#endif /* !SEEN_PENCIL_CONTEXT_H */