summaryrefslogtreecommitdiffstats
path: root/src/arc-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arc-context.h')
-rw-r--r--src/arc-context.h43
1 files changed, 26 insertions, 17 deletions
diff --git a/src/arc-context.h b/src/arc-context.h
index 3e4f5412d..56eb02943 100644
--- a/src/arc-context.h
+++ b/src/arc-context.h
@@ -21,29 +21,38 @@
#include <2geom/point.h>
#include "event-context.h"
-#define SP_TYPE_ARC_CONTEXT (sp_arc_context_get_type())
-#define SP_ARC_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_ARC_CONTEXT, SPArcContext))
-#define SP_ARC_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_ARC_CONTEXT, SPArcContextClass))
-#define SP_IS_ARC_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_ARC_CONTEXT))
-#define SP_IS_ARC_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_ARC_CONTEXT))
-
-struct SPArcContext : public SPEventContext {
- SPItem *item;
- Geom::Point center;
+#include "sp-ellipse.h"
- sigc::connection sel_changed_connection;
+#define SP_ARC_CONTEXT(obj) (dynamic_cast<SPArcContext*>((SPEventContext*)obj))
+#define SP_IS_ARC_CONTEXT(obj) (dynamic_cast<const SPArcContext*>(const SPEventContext*(obj)) != NULL)
- Inkscape::MessageContext *_message_context;
-};
+class SPArcContext : public SPEventContext {
+public:
+ SPArcContext();
+ virtual ~SPArcContext();
-struct SPArcContextClass {
- SPEventContextClass parent_class;
-};
+ 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);
-/* Standard Gtk function */
+ virtual const std::string& getPrefsPath();
-GType sp_arc_context_get_type(void);
+private:
+ SPArc *arc;
+ Geom::Point center;
+
+ sigc::connection sel_changed_connection;
+
+ void selection_changed(Inkscape::Selection* selection);
+
+ void drag(Geom::Point pt, guint state);
+ void finishItem();
+ void cancel();
+};
#endif /* !SEEN_ARC_CONTEXT_H */