summaryrefslogtreecommitdiffstats
path: root/src/star-context.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
committerMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
commita168040d5a452544328a1e6ad35aaac351f94d44 (patch)
treefae1ba829f543a473da281bd5fa6e4deabbf6912 /src/star-context.cpp
parentRemoved function pointers from SPObject and subclasses. (diff)
parentDutch translation update (diff)
downloadinkscape-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.cpp59
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;