diff options
author | Thomas White <taw@bitwiz.org.uk> | 2011-10-04 23:57:01 +0200 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2011-10-04 23:57:01 +0200 |
commit | 48cbffa2da42612a242f96fa0fd09683e9d1442b (patch) | |
tree | 42e16e5a9021c3e6f850f1b2c512f203e933d506 /src/tool_text.c | |
parent | 064482aaaf0857cc0ad01b845558d84e1f684d58 (diff) |
Move key press stuff into tool callbacks
Diffstat (limited to 'src/tool_text.c')
-rw-r--r-- | src/tool_text.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/tool_text.c b/src/tool_text.c index f4df9a3..c5555b6 100644 --- a/src/tool_text.c +++ b/src/tool_text.c @@ -28,6 +28,7 @@ #include <stdlib.h> #include <string.h> #include <assert.h> +#include <gdk/gdkkeysyms.h> #include "presentation.h" #include "objects.h" @@ -452,13 +453,13 @@ static void create_default(struct presentation *p, struct style *sty, } -static void select_object(struct object *o,struct toolinfo *tip) +static void select_object(struct object *o, struct toolinfo *tip) { /* Do nothing */ } -static int deselect_object(struct object *o,struct toolinfo *tip) +static int deselect_object(struct object *o, struct toolinfo *tip) { if ( (o != NULL) && o->empty ) { delete_object(o); @@ -477,6 +478,34 @@ static void draw_overlay(cairo_t *cr, struct object *o) } +static void key_pressed(struct object *o, guint keyval, struct toolinfo *tip) +{ + if ( o == NULL ) return; + + switch ( keyval ) { + + case GDK_KEY_BackSpace : + handle_text_backspace(o); + break; + + case GDK_KEY_Left : + move_cursor_left(o); + break; + + case GDK_KEY_Right : + move_cursor_right(o); + break; + + } +} + + +static void im_commit(struct object *o, gchar *str, struct toolinfo *tip) +{ + insert_text(o, str); +} + + struct toolinfo *initialise_text_tool(GtkWidget *w) { struct text_toolinfo *ti; @@ -492,6 +521,8 @@ struct toolinfo *initialise_text_tool(GtkWidget *w) ti->base.deselect = deselect_object; ti->base.drag_object = drag_object; ti->base.draw_editing_overlay = draw_overlay; + ti->base.key_pressed = key_pressed; + ti->base.im_commit = im_commit; return (struct toolinfo *)ti; } |