diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
| commit | a168040d5a452544328a1e6ad35aaac351f94d44 (patch) | |
| tree | fae1ba829f543a473da281bd5fa6e4deabbf6912 /src/star-context.cpp | |
| parent | Removed function pointers from SPObject and subclasses. (diff) | |
| parent | Dutch translation update (diff) | |
| download | inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.tar.gz inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.zip | |
merged from trunk
(bzr r11608.1.56)
Diffstat (limited to 'src/star-context.cpp')
| -rw-r--r-- | src/star-context.cpp | 59 |
1 files changed, 20 insertions, 39 deletions
diff --git a/src/star-context.cpp b/src/star-context.cpp index a3bceb163..e2d6961f0 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -50,8 +50,6 @@ using Inkscape::DocumentUndo; -static void sp_star_context_class_init (SPStarContextClass * klass); -static void sp_star_context_init (SPStarContext * star_context); static void sp_star_context_dispose (GObject *object); static void sp_star_context_setup (SPEventContext *ec); @@ -63,35 +61,13 @@ static void sp_star_drag (SPStarContext * sc, Geom::Point p, guint state); static void sp_star_finish (SPStarContext * sc); static void sp_star_cancel(SPStarContext * sc); -static SPEventContextClass * parent_class; - -GType -sp_star_context_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof (SPStarContextClass), - NULL, NULL, - (GClassInitFunc) sp_star_context_class_init, - NULL, NULL, - sizeof (SPStarContext), - 4, - (GInstanceInitFunc) sp_star_context_init, - NULL, /* value_table */ - }; - type = g_type_register_static (SP_TYPE_EVENT_CONTEXT, "SPStarContext", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPStarContext, sp_star_context, SP_TYPE_EVENT_CONTEXT); static void sp_star_context_class_init (SPStarContextClass * klass) { - GObjectClass *object_class = (GObjectClass *) klass; - SPEventContextClass *event_context_class = (SPEventContextClass *) klass; - - parent_class = (SPEventContextClass*)g_type_class_peek_parent (klass); + GObjectClass *object_class = G_OBJECT_CLASS(klass); + SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass); object_class->dispose = sp_star_context_dispose; @@ -128,15 +104,15 @@ sp_star_context_init (SPStarContext * star_context) static void sp_star_context_finish(SPEventContext *ec) { SPStarContext *sc = SP_STAR_CONTEXT(ec); - SPDesktop *desktop = ec->desktop; + SPDesktop *desktop = ec->desktop; - sp_canvas_item_ungrab(SP_CANVAS_ITEM(desktop->acetate), GDK_CURRENT_TIME); - sp_star_finish(sc); + sp_canvas_item_ungrab(SP_CANVAS_ITEM(desktop->acetate), GDK_CURRENT_TIME); + sp_star_finish(sc); sc->sel_changed_connection.disconnect(); - if (((SPEventContextClass *) parent_class)->finish) { - ((SPEventContextClass *) parent_class)->finish(ec); - } + if ((SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->finish) { + (SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->finish(ec); + } } @@ -161,7 +137,7 @@ sp_star_context_dispose (GObject *object) delete sc->_message_context; } - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (sp_star_context_parent_class)->dispose (object); } /** @@ -170,7 +146,7 @@ sp_star_context_dispose (GObject *object) * * @param selection Should not be NULL. */ -void sp_star_context_selection_changed (Inkscape::Selection * selection, gpointer data) +static void sp_star_context_selection_changed (Inkscape::Selection * selection, gpointer data) { g_assert (selection != NULL); @@ -187,8 +163,8 @@ sp_star_context_setup (SPEventContext *ec) { SPStarContext *sc = SP_STAR_CONTEXT (ec); - if (((SPEventContextClass *) parent_class)->setup) - ((SPEventContextClass *) parent_class)->setup (ec); + if ((SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->setup) + (SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->setup (ec); sp_event_context_read (ec, "magnitude"); sp_event_context_read (ec, "proportion"); @@ -382,6 +358,11 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent // do not return true, so that space would work switching to selector } break; + case GDK_KEY_Delete: + case GDK_KEY_KP_Delete: + case GDK_KEY_BackSpace: + ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY); + break; default: break; @@ -408,8 +389,8 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent } if (!ret) { - if (((SPEventContextClass *) parent_class)->root_handler) - ret = ((SPEventContextClass *) parent_class)->root_handler (event_context, event); + if ((SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->root_handler) + ret = (SP_EVENT_CONTEXT_CLASS(sp_star_context_parent_class))->root_handler (event_context, event); } return ret; |
