summaryrefslogtreecommitdiffstats
path: root/src/select-context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/select-context.h')
-rw-r--r--src/select-context.h30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/select-context.h b/src/select-context.h
index a6877f802..bcea8537a 100644
--- a/src/select-context.h
+++ b/src/select-context.h
@@ -15,11 +15,8 @@
#include "event-context.h"
#include <gtk/gtk.h>
-#define SP_TYPE_SELECT_CONTEXT (sp_select_context_get_type ())
-#define SP_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_SELECT_CONTEXT, SPSelectContext))
-#define SP_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_SELECT_CONTEXT, SPSelectContextClass))
-#define SP_IS_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_SELECT_CONTEXT))
-#define SP_IS_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_SELECT_CONTEXT))
+#define SP_SELECT_CONTEXT(obj) (dynamic_cast<SPSelectContext*>((SPEventContext*)obj))
+#define SP_IS_SELECT_CONTEXT(obj) (dynamic_cast<const SPSelectContext*>((const SPEventContext*)obj) != NULL)
struct SPCanvasItem;
@@ -29,7 +26,11 @@ namespace Inkscape {
class SelectionDescriber;
}
-struct SPSelectContext : public SPEventContext {
+class SPSelectContext : public SPEventContext {
+public:
+ SPSelectContext();
+ virtual ~SPSelectContext();
+
guint dragging : 1;
guint moved : 1;
bool button_press_shift;
@@ -46,14 +47,19 @@ struct SPSelectContext : public SPEventContext {
SPCanvasItem *grabbed;
Inkscape::SelTrans *_seltrans;
Inkscape::SelectionDescriber *_describer;
-};
-struct SPSelectContextClass {
- SPEventContextClass parent_class;
-};
+ static const std::string prefsPath;
-/* Standard Gtk function */
+ virtual void setup();
+ virtual void set(const Inkscape::Preferences::Entry& val);
+ virtual bool root_handler(GdkEvent* event);
+ virtual bool item_handler(SPItem* item, GdkEvent* event);
-GType sp_select_context_get_type (void);
+ virtual const std::string& getPrefsPath();
+
+private:
+ bool sp_select_context_abort();
+ void sp_select_context_cycle_through_items(Inkscape::Selection *selection, GdkEventScroll *scroll_event, bool shift_pressed);
+};
#endif