diff options
Diffstat (limited to 'src/arc-context.h')
| -rw-r--r-- | src/arc-context.h | 43 |
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 */ |
