summaryrefslogtreecommitdiffstats
path: root/src/connector-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/connector-context.h')
-rw-r--r--src/connector-context.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/connector-context.h b/src/connector-context.h
index 597feac38..1c4bfc34d 100644
--- a/src/connector-context.h
+++ b/src/connector-context.h
@@ -20,11 +20,8 @@
#include "libavoid/connector.h"
#include <glibmm/i18n.h>
-#define SP_TYPE_CONNECTOR_CONTEXT (sp_connector_context_get_type())
-#define SP_CONNECTOR_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_CONNECTOR_CONTEXT, SPConnectorContext))
-#define SP_CONNECTOR_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_CONNECTOR_CONTEXT, SPConnectorContextClass))
-#define SP_IS_CONNECTOR_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_CONNECTOR_CONTEXT))
-#define SP_IS_CONNECTOR_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_CONNECTOR_CONTEXT))
+#define SP_CONNECTOR_CONTEXT(obj) (dynamic_cast<SPConnectorContext*>((SPEventContext*)obj))
+//#define SP_IS_CONNECTOR_CONTEXT(obj) (dynamic_cast<const SPConnectorContext*>((const SPEventContext*)obj) != NULL)
struct SPKnot;
class SPCurve;
@@ -45,7 +42,11 @@ enum {
typedef std::map<SPKnot *, int> SPKnotList;
-struct SPConnectorContext : public SPEventContext {
+class SPConnectorContext : public SPEventContext {
+public:
+ SPConnectorContext();
+ virtual ~SPConnectorContext();
+
Inkscape::Selection *selection;
Geom::Point p[5];
@@ -92,11 +93,20 @@ struct SPConnectorContext : public SPEventContext {
gchar *shref;
gchar *ehref;
SPCanvasItem *c0, *c1, *cl0, *cl1;
-};
-struct SPConnectorContextClass : public SPEventContextClass { };
+ static const std::string prefsPath;
+
+ virtual void setup();
+ virtual void finish();
+ virtual void set(const Inkscape::Preferences::Entry& val);
+ virtual bool root_handler(GdkEvent* event);
+ virtual bool item_handler(SPItem* item, GdkEvent* event);
-GType sp_connector_context_get_type();
+ virtual const std::string& getPrefsPath();
+
+private:
+ void selection_changed(Inkscape::Selection *selection);
+};
void cc_selection_set_avoid(bool const set_ignore);
void cc_create_connection_point(SPConnectorContext* cc);