From 1d8f1753cd8cab38d19fcc26a4ad70ba2e794ac8 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 9 Apr 2013 22:12:07 +0200 Subject: Added constructors to EventContext tree / some missing virtual pads. (bzr r11608.1.90) --- src/tweak-context.cpp | 66 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 12 deletions(-) (limited to 'src/tweak-context.cpp') diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp index 28e4c1629..d41eebec8 100644 --- a/src/tweak-context.cpp +++ b/src/tweak-context.cpp @@ -97,14 +97,30 @@ sp_tweak_context_class_init(SPTweakContextClass *klass) object_class->dispose = sp_tweak_context_dispose; - event_context_class->setup = sp_tweak_context_setup; - event_context_class->set = sp_tweak_context_set; - event_context_class->root_handler = sp_tweak_context_root_handler; +// event_context_class->setup = sp_tweak_context_setup; +// event_context_class->set = sp_tweak_context_set; +// event_context_class->root_handler = sp_tweak_context_root_handler; } -static void -sp_tweak_context_init(SPTweakContext *tc) -{ +CTweakContext::CTweakContext(SPTweakContext* tweakcontext) : CEventContext(tweakcontext) { + this->sptweakcontext = tweakcontext; +} + +SPTweakContext::SPTweakContext() : SPEventContext() { + SPTweakContext* tc = this; + + tc->ctweakcontext = new CTweakContext(tc); + delete tc->ceventcontext; + tc->ceventcontext = tc->ctweakcontext; + + tc->_message_context = 0; + tc->mode = 0; + tc->dilate_area = 0; + tc->usetilt = 0; + tc->usepressure = 0; + tc->is_drawing = false; + tc->fidelity = 0; + SPEventContext *event_context = SP_EVENT_CONTEXT(tc); event_context->cursor_shape = cursor_push_xpm; @@ -129,6 +145,12 @@ sp_tweak_context_init(SPTweakContext *tc) new (&tc->style_set_connection) sigc::connection(); } +static void +sp_tweak_context_init(SPTweakContext *tc) +{ + new (tc) SPTweakContext(); +} + static void sp_tweak_context_dispose(GObject *object) { @@ -264,11 +286,18 @@ sp_tweak_context_style_set(SPCSSAttr const *css, SPTweakContext *tc) static void sp_tweak_context_setup(SPEventContext *ec) { + ec->ceventcontext->setup(); +} + +void CTweakContext::setup() { + SPEventContext* ec = this->speventcontext; + SPTweakContext *tc = SP_TWEAK_CONTEXT(ec); - if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup) { - (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup(ec); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup) { +// (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup(ec); +// } + CEventContext::setup(); { /* TODO: have a look at sp_dyna_draw_context_setup where the same is done.. generalize? at least make it an arcto! */ @@ -317,6 +346,12 @@ sp_tweak_context_setup(SPEventContext *ec) static void sp_tweak_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) { + ec->ceventcontext->set(val); +} + +void CTweakContext::set(Inkscape::Preferences::Entry* val) { + SPEventContext* ec = this->speventcontext; + SPTweakContext *tc = SP_TWEAK_CONTEXT(ec); Glib::ustring path = val->getEntryName(); @@ -1153,6 +1188,12 @@ gint sp_tweak_context_root_handler(SPEventContext *event_context, GdkEvent *event) { + return event_context->ceventcontext->root_handler(event); +} + +gint CTweakContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + SPTweakContext *tc = SP_TWEAK_CONTEXT(event_context); SPDesktop *desktop = event_context->desktop; @@ -1511,9 +1552,10 @@ sp_tweak_context_root_handler(SPEventContext *event_context, } if (!ret) { - if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler) { - ret = (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler(event_context, event); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler) { +// ret = (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler(event_context, event); +// } + ret = CEventContext::root_handler(event); } return ret; -- cgit v1.2.3