summaryrefslogtreecommitdiffstats
path: root/src/dropper-context.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-20 21:19:46 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-20 21:19:46 +0000
commit65ba6ad9a82f8f47974eb10665478fd783692bb5 (patch)
tree21ecad9197b19c636e7950503ea8f2a9a5366194 /src/dropper-context.cpp
parentFurther changes to EventContexts; they work without GObject (diff)
downloadinkscape-65ba6ad9a82f8f47974eb10665478fd783692bb5.tar.gz
inkscape-65ba6ad9a82f8f47974eb10665478fd783692bb5.zip
Merging of EventContext classes complete.
(bzr r11608.1.98)
Diffstat (limited to 'src/dropper-context.cpp')
-rw-r--r--src/dropper-context.cpp125
1 files changed, 39 insertions, 86 deletions
diff --git a/src/dropper-context.cpp b/src/dropper-context.cpp
index dbc10f6c7..4c55400bb 100644
--- a/src/dropper-context.cpp
+++ b/src/dropper-context.cpp
@@ -48,32 +48,22 @@
using Inkscape::DocumentUndo;
-typedef struct
-{
- double R;
- double G;
- double B;
- double alpha;
-
- unsigned int dragging : 1;
-
- SPCanvasItem *grabbed;
- SPCanvasItem *area;
- Geom::Point centre;
-} SPDropperContextPrivate;
-
-#define SP_DROPPER_CONTEXT_GET_PRIVATE(dc) \
- G_TYPE_INSTANCE_GET_PRIVATE(dc, SP_TYPE_DROPPER_CONTEXT, SPDropperContextPrivate)
-
-static void sp_dropper_context_class_init(SPDropperContextClass *klass);
-static void sp_dropper_context_init(SPDropperContext *dc);
-
-static void sp_dropper_context_setup(SPEventContext *ec);
-static void sp_dropper_context_finish(SPEventContext *ec);
-
-static gint sp_dropper_context_root_handler(SPEventContext *ec, GdkEvent * event);
-
-static SPEventContextClass *parent_class;
+//typedef struct
+//{
+// double R;
+// double G;
+// double B;
+// double alpha;
+//
+// unsigned int dragging : 1;
+//
+// SPCanvasItem *grabbed;
+// SPCanvasItem *area;
+// Geom::Point centre;
+//} SPDropperContextPrivate;
+//
+//#define SP_DROPPER_CONTEXT_GET_PRIVATE(dc) \
+// G_TYPE_INSTANCE_GET_PRIVATE(dc, SP_TYPE_DROPPER_CONTEXT, SPDropperContextPrivate)
static GdkCursor *cursor_dropper_fill = NULL;
static GdkCursor *cursor_dropper_stroke = NULL;
@@ -88,40 +78,24 @@ namespace {
bool dropperContextRegistered = ToolFactory::instance().registerObject("/tools/dropper", createDropperContext);
}
-const std::string& CDropperContext::getPrefsPath() {
+const std::string& SPDropperContext::getPrefsPath() {
return SPDropperContext::prefsPath;
}
const std::string SPDropperContext::prefsPath = "/tools/dropper";
-G_DEFINE_TYPE(SPDropperContext, sp_dropper_context, SP_TYPE_EVENT_CONTEXT);
-
-static void
-sp_dropper_context_class_init(SPDropperContextClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- SPEventContextClass *ec_class = SP_EVENT_CONTEXT_CLASS(klass);
-
- parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass));
-
-// ec_class->setup = sp_dropper_context_setup;
-// ec_class->finish = sp_dropper_context_finish;
-// ec_class->root_handler = sp_dropper_context_root_handler;
-
- g_type_class_add_private(object_class, sizeof(SPDropperContext));
-}
-
-CDropperContext::CDropperContext(SPDropperContext* droppercontext) : CEventContext(droppercontext) {
- this->spdroppercontext = droppercontext;
-}
-
SPDropperContext::SPDropperContext() : SPEventContext() {
SPDropperContext* dc = this;
- dc->cdroppercontext = new CDropperContext(dc);
- delete dc->ceventcontext;
- dc->ceventcontext = dc->cdroppercontext;
- types.insert(typeid(SPDropperContext));
+ dc->R = 0;
+ dc->G = 0;
+ dc->B = 0;
+ dc->alpha = 0;
+ dc->dragging = 0;
+
+ dc->grabbed = 0;
+ dc->area = 0;
+ dc->centre = Geom::Point(0, 0);
SPEventContext *event_context = SP_EVENT_CONTEXT(dc);
event_context->cursor_shape = cursor_dropper_f_xpm;
@@ -132,27 +106,19 @@ SPDropperContext::SPDropperContext() : SPEventContext() {
cursor_dropper_stroke = sp_cursor_new_from_xpm(cursor_dropper_s_xpm , 7, 7);
}
-static void sp_dropper_context_init(SPDropperContext *dc)
-{
- new (dc) SPDropperContext();
-}
-
-static void
-sp_dropper_context_setup(SPEventContext *ec)
-{
- ec->ceventcontext->setup();
+SPDropperContext::~SPDropperContext() {
}
-void CDropperContext::setup() {
- SPEventContext* ec = this->speventcontext;
+void SPDropperContext::setup() {
+ SPEventContext* ec = this;
SPDropperContext *dc = SP_DROPPER_CONTEXT(ec);
- SPDropperContextPrivate *priv = SP_DROPPER_CONTEXT_GET_PRIVATE(dc);
+ SPDropperContext *priv = (dc);
// if ((SP_EVENT_CONTEXT_CLASS(parent_class))->setup) {
// (SP_EVENT_CONTEXT_CLASS(parent_class))->setup(ec);
// }
- CEventContext::setup();
+ SPEventContext::setup();
/* TODO: have a look at sp_dyna_draw_context_setup where the same is done.. generalize? at least make it an arcto! */
SPCurve *c = new SPCurve();
@@ -179,17 +145,11 @@ void CDropperContext::setup() {
}
}
-static void
-sp_dropper_context_finish(SPEventContext *ec)
-{
- ec->ceventcontext->finish();
-}
-
-void CDropperContext::finish() {
- SPEventContext* ec = this->speventcontext;
+void SPDropperContext::finish() {
+ SPEventContext* ec = this;
SPDropperContext *dc = SP_DROPPER_CONTEXT(ec);
- SPDropperContextPrivate *priv = SP_DROPPER_CONTEXT_GET_PRIVATE(dc);
+ SPDropperContext *priv = (dc);
ec->enableGrDrag(false);
@@ -232,7 +192,7 @@ guint32
sp_dropper_context_get_color(SPEventContext *ec)
{
SPDropperContext *dc = SP_DROPPER_CONTEXT(ec);
- SPDropperContextPrivate *priv = SP_DROPPER_CONTEXT_GET_PRIVATE(dc);
+ SPDropperContext *priv = (dc);
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
int pick = prefs->getInt("/tools/dropper/pick",
@@ -247,18 +207,11 @@ sp_dropper_context_get_color(SPEventContext *ec)
: 1.0);
}
-static gint
-sp_dropper_context_root_handler(SPEventContext *event_context,
- GdkEvent *event)
-{
- return event_context->ceventcontext->root_handler(event);
-}
-
-gint CDropperContext::root_handler(GdkEvent* event) {
- SPEventContext* event_context = this->speventcontext;
+gint SPDropperContext::root_handler(GdkEvent* event) {
+ SPEventContext* event_context = this;
SPDropperContext *dc = SP_DROPPER_CONTEXT(event_context);
- SPDropperContextPrivate *priv = SP_DROPPER_CONTEXT_GET_PRIVATE(dc);
+ SPDropperContext *priv = (dc);
SPDesktop *desktop = event_context->desktop;
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -479,7 +432,7 @@ gint CDropperContext::root_handler(GdkEvent* event) {
// if ((SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler) {
// ret = (SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler(event_context, event);
// }
- ret = CEventContext::root_handler(event);
+ ret = SPEventContext::root_handler(event);
}
return ret;