summaryrefslogtreecommitdiffstats
path: root/src/dyna-draw-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/dyna-draw-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/dyna-draw-context.cpp')
-rw-r--r--src/dyna-draw-context.cpp103
1 files changed, 23 insertions, 80 deletions
diff --git a/src/dyna-draw-context.cpp b/src/dyna-draw-context.cpp
index 048053035..145dc6238 100644
--- a/src/dyna-draw-context.cpp
+++ b/src/dyna-draw-context.cpp
@@ -81,12 +81,6 @@ using Inkscape::DocumentUndo;
#define DYNA_MIN_WIDTH 1.0e-6
-static void sp_dyna_draw_context_dispose(GObject *object);
-
-static void sp_dyna_draw_context_setup(SPEventContext *ec);
-static void sp_dyna_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *value);
-static gint sp_dyna_draw_context_root_handler(SPEventContext *ec, GdkEvent *event);
-
static void clear_current(SPDynaDrawContext *dc);
static void set_to_accumulated(SPDynaDrawContext *dc, bool unionize, bool subtract);
static void add_cap(SPCurve *curve, Geom::Point const &from, Geom::Point const &to, double rounding);
@@ -110,41 +104,16 @@ namespace {
bool calligraphicContextRegistered = ToolFactory::instance().registerObject("/tools/calligraphic", createCalligraphicContext);
}
-const std::string& CDynaDrawContext::getPrefsPath() {
+const std::string& SPDynaDrawContext::getPrefsPath() {
return SPDynaDrawContext::prefsPath;
}
const std::string SPDynaDrawContext::prefsPath = "/tools/calligraphic";
-G_DEFINE_TYPE(SPDynaDrawContext, sp_dyna_draw_context, SP_TYPE_COMMON_CONTEXT);
-
-static void
-sp_dyna_draw_context_class_init(SPDynaDrawContextClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS(klass);
- SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass);
-
- object_class->dispose = sp_dyna_draw_context_dispose;
-
-// event_context_class->setup = sp_dyna_draw_context_setup;
-// event_context_class->set = sp_dyna_draw_context_set;
-// event_context_class->root_handler = sp_dyna_draw_context_root_handler;
-}
-
-CDynaDrawContext::CDynaDrawContext(SPDynaDrawContext* dynadrawcontext) : CCommonContext(dynadrawcontext) {
- this->spdynadrawcontext = dynadrawcontext;
-}
-
SPDynaDrawContext::SPDynaDrawContext() : SPCommonContext() {
SPDynaDrawContext* ddc = this;
- ddc->cdynadrawcontext = new CDynaDrawContext(ddc);
- delete ddc->ccommoncontext;
- ddc->ccommoncontext = ddc->cdynadrawcontext;
- ddc->ceventcontext = ddc->cdynadrawcontext;
- types.insert(typeid(SPDynaDrawContext));
-
ddc->cursor_shape = cursor_calligraphy_xpm;
ddc->hot_x = 4;
ddc->hot_y = 4;
@@ -158,10 +127,12 @@ SPDynaDrawContext::SPDynaDrawContext() : SPCommonContext() {
ddc->hatch_spacing = 0;
ddc->hatch_spacing_step = 0;
- new (&ddc->hatch_pointer_past) std::list<double>();
- new (&ddc->hatch_nearest_past) std::list<double>();
- new (&ddc->inertia_vectors) std::list<Geom::Point>();
- new (&ddc->hatch_vectors) std::list<Geom::Point>();
+
+// new (&ddc->hatch_pointer_past) std::list<double>();
+// new (&ddc->hatch_nearest_past) std::list<double>();
+// new (&ddc->inertia_vectors) std::list<Geom::Point>();
+// new (&ddc->hatch_vectors) std::list<Geom::Point>();
+
ddc->hatch_last_nearest = Geom::Point(0,0);
ddc->hatch_last_pointer = Geom::Point(0,0);
ddc->hatch_escaped = false;
@@ -173,16 +144,8 @@ SPDynaDrawContext::SPDynaDrawContext() : SPCommonContext() {
ddc->just_started_drawing = false;
}
-static void
-sp_dyna_draw_context_init(SPDynaDrawContext *ddc)
-{
- new (ddc) SPDynaDrawContext();
-}
-
-static void
-sp_dyna_draw_context_dispose(GObject *object)
-{
- SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(object);
+SPDynaDrawContext::~SPDynaDrawContext() {
+ SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(this);
if (ddc->hatch_area) {
sp_canvas_item_destroy(ddc->hatch_area);
@@ -190,28 +153,22 @@ sp_dyna_draw_context_dispose(GObject *object)
}
- G_OBJECT_CLASS(sp_dyna_draw_context_parent_class)->dispose(object);
+ //G_OBJECT_CLASS(sp_dyna_draw_context_parent_class)->dispose(object);
- ddc->hatch_pointer_past.~list();
- ddc->hatch_nearest_past.~list();
- ddc->inertia_vectors.~list();
- ddc->hatch_vectors.~list();
-}
-
-static void
-sp_dyna_draw_context_setup(SPEventContext *ec)
-{
- ec->ceventcontext->setup();
+// ddc->hatch_pointer_past.~list();
+// ddc->hatch_nearest_past.~list();
+// ddc->inertia_vectors.~list();
+// ddc->hatch_vectors.~list();
}
-void CDynaDrawContext::setup() {
- SPEventContext* ec = this->spdynadrawcontext;
+void SPDynaDrawContext::setup() {
+ SPEventContext* ec = this;
SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(ec);
// if ((SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->setup)
// (SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->setup(ec);
- CCommonContext::setup();
+ SPCommonContext::setup();
ddc->accumulated = new SPCurve();
ddc->currentcurve = new SPCurve();
@@ -265,14 +222,8 @@ void CDynaDrawContext::setup() {
}
}
-static void
-sp_dyna_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
-{
- ec->ceventcontext->set(val);
-}
-
-void CDynaDrawContext::set(Inkscape::Preferences::Entry* val) {
- SPEventContext* ec = this->speventcontext;
+void SPDynaDrawContext::set(Inkscape::Preferences::Entry* val) {
+ SPEventContext* ec = this;
SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(ec);
Glib::ustring path = val->getEntryName();
@@ -286,7 +237,7 @@ void CDynaDrawContext::set(Inkscape::Preferences::Entry* val) {
// if ( SP_COMMON_CONTEXT_CLASS(sp_dyna_draw_context_parent_class)->set ) {
// SP_COMMON_CONTEXT_CLASS(sp_dyna_draw_context_parent_class)->set(ec, val);
// }
- CCommonContext::set(val);
+ SPCommonContext::set(val);
}
//g_print("DDC: %g %g %g %g\n", ddc->mass, ddc->drag, ddc->angle, ddc->width);
@@ -548,16 +499,8 @@ calligraphic_cancel(SPDynaDrawContext *dc)
}
}
-
-gint
-sp_dyna_draw_context_root_handler(SPEventContext *event_context,
- GdkEvent *event)
-{
- return event_context->ceventcontext->root_handler(event);
-}
-
-gint CDynaDrawContext::root_handler(GdkEvent* event) {
- SPEventContext* event_context = this->speventcontext;
+gint SPDynaDrawContext::root_handler(GdkEvent* event) {
+ SPEventContext* event_context = this;
SPDynaDrawContext *dc = SP_DYNA_DRAW_CONTEXT(event_context);
SPDesktop *desktop = event_context->desktop;
@@ -1005,7 +948,7 @@ gint CDynaDrawContext::root_handler(GdkEvent* event) {
// if ((SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->root_handler) {
// ret = (SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->root_handler(event_context, event);
// }
- ret = CCommonContext::root_handler(event);
+ ret = SPCommonContext::root_handler(event);
}
return ret;