added GimpController::get_event_blurb() which returns the strings that

2004-06-16  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpcontroller.[ch]: added
	GimpController::get_event_blurb() which returns the strings that
	were returned by get_event_name(). The latter returns
	untranslatable event identifiers now.

	* app/widgets/gimpcontrollerwheel.c
	* modules/controller_linux_input.c: changed accordingly.

	* app/widgets/gimpcontrollerinfo.c
	* app/widgets/gimpcontrollers.c: changed the event mapping from
	event-id -> action-name to event-name -> action-name.

	* etc/controllerrc: changed accordingly (finally readable now).
This commit is contained in:
Michael Natterer 2004-06-16 11:53:37 +00:00 committed by Michael Natterer
parent ba2e6c675f
commit 569af0ac93
8 changed files with 176 additions and 84 deletions

View File

@ -1,3 +1,19 @@
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added
GimpController::get_event_blurb() which returns the strings that
were returned by get_event_name(). The latter returns
untranslatable event identifiers now.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: changed accordingly.
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: changed the event mapping from
event-id -> action-name to event-name -> action-name.
* etc/controllerrc: changed accordingly (finally readable now).
2004-06-16 Michael Natterer <mitch@gimp.org> 2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am * app/widgets/Makefile.am

View File

@ -94,8 +94,8 @@ static void
gimp_controller_info_init (GimpControllerInfo *info) gimp_controller_info_init (GimpControllerInfo *info)
{ {
info->controller = NULL; info->controller = NULL;
info->mapping = g_hash_table_new_full (g_int_hash, info->mapping = g_hash_table_new_full (g_str_hash,
g_int_equal, g_str_equal,
(GDestroyNotify) g_free, (GDestroyNotify) g_free,
(GDestroyNotify) g_object_unref); (GDestroyNotify) g_object_unref);
} }

View File

@ -202,7 +202,7 @@ gimp_controllers_restore (Gimp *gimp,
g_message (error->message); g_message (error->message);
g_clear_error (&error); g_clear_error (&error);
gimp_config_file_backup_on_error (filename, "sessionrc", NULL); gimp_config_file_backup_on_error (filename, "controllerrc", NULL);
} }
gimp_scanner_destroy (scanner); gimp_scanner_destroy (scanner);
@ -335,11 +335,11 @@ gimp_controller_deserialize (GimpControllerManager *manager,
{ {
GtkAction *action = NULL; GtkAction *action = NULL;
GList *list; GList *list;
gint event_id; gchar *event_name;
gchar *action_name; gchar *action_name;
token = G_TOKEN_INT; token = G_TOKEN_INT;
if (! gimp_scanner_parse_int (scanner, &event_id)) if (! gimp_scanner_parse_string (scanner, &event_name))
goto error; goto error;
token = G_TOKEN_STRING; token = G_TOKEN_STRING;
@ -360,15 +360,12 @@ gimp_controller_deserialize (GimpControllerManager *manager,
if (action) if (action)
{ {
gint *key = g_new (gint, 1); g_hash_table_insert (info->mapping, event_name,
*key = event_id;
g_hash_table_insert (info->mapping, key,
g_object_ref (action)); g_object_ref (action));
} }
else else
{ {
g_free (event_name);
g_printerr ("%s: action '%s' not found\n", g_printerr ("%s: action '%s' not found\n",
G_STRFUNC, action_name); G_STRFUNC, action_name);
} }
@ -429,15 +426,20 @@ gimp_controller_info_event (GimpController *controller,
{ {
GtkAction *action; GtkAction *action;
const gchar *class_name; const gchar *class_name;
const gchar *event_name;
const gchar *event_blurb;
class_name = GIMP_CONTROLLER_GET_CLASS (controller)->name; class_name = GIMP_CONTROLLER_GET_CLASS (controller)->name;
g_print ("Received '%s' (class '%s')\n" event_name = gimp_controller_get_event_name (controller, event->any.event_id);
" controller event '%s'\n", event_blurb = gimp_controller_get_event_blurb (controller, event->any.event_id);
controller->name, class_name,
gimp_controller_get_event_name (controller, event->any.event_id));
action = g_hash_table_lookup (info->mapping, &event->any.event_id); g_print ("Received '%s' (class '%s')\n"
" controller event '%s (%s)'\n",
controller->name, class_name,
event_name, event_blurb);
action = g_hash_table_lookup (info->mapping, event_name);
if (action) if (action)
{ {

View File

@ -40,14 +40,17 @@ struct _WheelEvent
GdkScrollDirection direction; GdkScrollDirection direction;
GdkModifierType modifiers; GdkModifierType modifiers;
const gchar *name; const gchar *name;
const gchar *blurb;
}; };
static void gimp_controller_wheel_class_init (GimpControllerWheelClass *klass); static void gimp_controller_wheel_class_init (GimpControllerWheelClass *klass);
static gint gimp_controller_wheel_get_n_events (GimpController *controller); static gint gimp_controller_wheel_get_n_events (GimpController *controller);
static const gchar * gimp_controller_wheel_get_event_name (GimpController *controller, static const gchar * gimp_controller_wheel_get_event_name (GimpController *controller,
gint event_id); gint event_id);
static const gchar * gimp_controller_wheel_get_event_blurb (GimpController *controller,
gint event_id);
static GimpControllerClass *parent_class = NULL; static GimpControllerClass *parent_class = NULL;
@ -55,71 +58,103 @@ static GimpControllerClass *parent_class = NULL;
static const WheelEvent wheel_events[] = static const WheelEvent wheel_events[] =
{ {
{ GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-up-shift-control-alt",
N_("Alt + Control + Shift + Scroll Up") }, N_("Alt + Control + Shift + Scroll Up") },
{ GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK, { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK,
"scroll-up-control-alt",
N_("Alt + Control + Scroll Up") }, N_("Alt + Control + Scroll Up") },
{ GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_SHIFT_MASK,
"scroll-up-shift-alt",
N_("Alt + Shift + Scroll Up") }, N_("Alt + Shift + Scroll Up") },
{ GDK_SCROLL_UP, GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_UP, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-up-shift-control",
N_("Control + Shift + Scroll Up") }, N_("Control + Shift + Scroll Up") },
{ GDK_SCROLL_UP, GDK_MOD1_MASK, { GDK_SCROLL_UP, GDK_MOD1_MASK,
"scroll-up-alt",
N_("Alt + Scroll Up") }, N_("Alt + Scroll Up") },
{ GDK_SCROLL_UP, GDK_CONTROL_MASK, { GDK_SCROLL_UP, GDK_CONTROL_MASK,
"scroll-up-control",
N_("Control + Scroll Up") }, N_("Control + Scroll Up") },
{ GDK_SCROLL_UP, GDK_SHIFT_MASK, { GDK_SCROLL_UP, GDK_SHIFT_MASK,
"scroll-up-shift",
N_("Shift + Scroll Up") }, N_("Shift + Scroll Up") },
{ GDK_SCROLL_UP, 0, { GDK_SCROLL_UP, 0,
"scroll-up",
N_("Scroll Up") }, N_("Scroll Up") },
{ GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-down-shift-control-alt",
N_("Alt + Control + Shift + Scroll Down") }, N_("Alt + Control + Shift + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK, { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK,
"scroll-down-control-alt",
N_("Alt + Control + Scroll Down") }, N_("Alt + Control + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_SHIFT_MASK,
"scroll-down-shift-alt",
N_("Alt + Shift + Scroll Down") }, N_("Alt + Shift + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_DOWN, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-down-shift-control",
N_("Control + Shift + Scroll Down") }, N_("Control + Shift + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_MOD1_MASK, { GDK_SCROLL_DOWN, GDK_MOD1_MASK,
"scroll-down-alt",
N_("Alt + Scroll Down") }, N_("Alt + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_CONTROL_MASK, { GDK_SCROLL_DOWN, GDK_CONTROL_MASK,
"scroll-down-control",
N_("Control + Scroll Down") }, N_("Control + Scroll Down") },
{ GDK_SCROLL_DOWN, GDK_SHIFT_MASK, { GDK_SCROLL_DOWN, GDK_SHIFT_MASK,
"scroll-down-shift",
N_("Shift + Scroll Down") }, N_("Shift + Scroll Down") },
{ GDK_SCROLL_DOWN, 0, { GDK_SCROLL_DOWN, 0,
"scroll-down",
N_("Scroll Down") }, N_("Scroll Down") },
{ GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-left-shift-control-alt",
N_("Alt + Control + Shift + Scroll Left") }, N_("Alt + Control + Shift + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK, { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK,
"scroll-left-control-alt",
N_("Alt + Control + Scroll Left") }, N_("Alt + Control + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_SHIFT_MASK,
"scroll-left-shift-alt",
N_("Alt + Shift + Scroll Left") }, N_("Alt + Shift + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_LEFT, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-left-shift-control",
N_("Control + Shift + Scroll Left") }, N_("Control + Shift + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_MOD1_MASK, { GDK_SCROLL_LEFT, GDK_MOD1_MASK,
"scroll-left-alt",
N_("Alt + Scroll Left") }, N_("Alt + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_CONTROL_MASK, { GDK_SCROLL_LEFT, GDK_CONTROL_MASK,
"scroll-left-control",
N_("Control + Scroll Left") }, N_("Control + Scroll Left") },
{ GDK_SCROLL_LEFT, GDK_SHIFT_MASK, { GDK_SCROLL_LEFT, GDK_SHIFT_MASK,
"scroll-left-shift",
N_("Shift + Scroll Left") }, N_("Shift + Scroll Left") },
{ GDK_SCROLL_LEFT, 0, { GDK_SCROLL_LEFT, 0,
"scroll-left",
N_("Scroll Left") }, N_("Scroll Left") },
{ GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-right-shift-control-alt",
N_("Alt + Control + Shift + Scroll Right") }, N_("Alt + Control + Shift + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK, { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK,
"scroll-right-control-alt",
N_("Alt + Control + Scroll Right") }, N_("Alt + Control + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_SHIFT_MASK,
"scroll-right-shift-alt",
N_("Alt + Shift + Scroll Right") }, N_("Alt + Shift + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_CONTROL_MASK | GDK_SHIFT_MASK, { GDK_SCROLL_RIGHT, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"scroll-right-shift-control",
N_("Control + Shift + Scroll Right") }, N_("Control + Shift + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_MOD1_MASK, { GDK_SCROLL_RIGHT, GDK_MOD1_MASK,
"scroll-right-alt",
N_("Alt + Scroll Right") }, N_("Alt + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_CONTROL_MASK, { GDK_SCROLL_RIGHT, GDK_CONTROL_MASK,
"scroll-right-control",
N_("Control + Scroll Right") }, N_("Control + Scroll Right") },
{ GDK_SCROLL_RIGHT, GDK_SHIFT_MASK, { GDK_SCROLL_RIGHT, GDK_SHIFT_MASK,
"scroll-right-shift",
N_("Shift + Scroll Right") }, N_("Shift + Scroll Right") },
{ GDK_SCROLL_RIGHT, 0, { GDK_SCROLL_RIGHT, 0,
"scroll-right",
N_("Scroll Right") } N_("Scroll Right") }
}; };
@ -159,10 +194,11 @@ gimp_controller_wheel_class_init (GimpControllerWheelClass *klass)
parent_class = g_type_class_peek_parent (klass); parent_class = g_type_class_peek_parent (klass);
controller_class->name = _("Mouse Wheel"); controller_class->name = _("Mouse Wheel");
controller_class->get_n_events = gimp_controller_wheel_get_n_events; controller_class->get_n_events = gimp_controller_wheel_get_n_events;
controller_class->get_event_name = gimp_controller_wheel_get_event_name; controller_class->get_event_name = gimp_controller_wheel_get_event_name;
controller_class->get_event_blurb = gimp_controller_wheel_get_event_blurb;
} }
static gint static gint
@ -181,6 +217,16 @@ gimp_controller_wheel_get_event_name (GimpController *controller,
return gettext (wheel_events[event_id].name); return gettext (wheel_events[event_id].name);
} }
static const gchar *
gimp_controller_wheel_get_event_blurb (GimpController *controller,
gint event_id)
{
if (event_id < 0 || event_id >= G_N_ELEMENTS (wheel_events))
return NULL;
return gettext (wheel_events[event_id].blurb);
}
gboolean gboolean
gimp_controller_wheel_scrolled (GimpControllerWheel *wheel, gimp_controller_wheel_scrolled (GimpControllerWheel *wheel,
const GdkEventScroll *sevent) const GdkEventScroll *sevent)

View File

@ -2,31 +2,29 @@
(controller "GimpControllerWheel" (controller "GimpControllerWheel"
(options (options
(name "Main Mouse Wheel") (name "Main Mouse Wheel"))
(enabled TRUE)) (mapping "scroll-up-shift-control-alt" "context-font-next")
(mapping 0 "context-font-next") (mapping "scroll-up-control-alt" "context-gradient-next")
(mapping 1 "context-gradient-next") (mapping "scroll-up-shift-alt" "context-pattern-next")
(mapping 2 "context-pattern-next") (mapping "scroll-up-shift-control" "context-brush-next")
(mapping 3 "context-brush-next") (mapping "scroll-up-alt" "context-opacity-increase-skip")
(mapping 4 "context-opacity-increase-skip") (mapping "scroll-down-shift-control-alt" "context-font-previous")
(mapping 8 "context-font-previous") (mapping "scroll-down-control-alt" "context-gradient-previous")
(mapping 9 "context-gradient-previous") (mapping "scroll-down-shift-alt" "context-pattern-previous")
(mapping 10 "context-pattern-previous") (mapping "scroll-down-shift-control" "context-brush-previous")
(mapping 11 "context-brush-previous") (mapping "scroll-down-alt" "context-opacity-decrease-skip"))
(mapping 12 "context-opacity-decrease-skip"))
(controller "ControllerLinuxInput" (controller "ControllerLinuxInput"
(options (options
(name "ShuttlePRO") (name "ShuttlePRO")
(device "/dev/input/event2")) (device "/dev/input/event2"))
(mapping 0 "tools-rect-select") (mapping "button-0" "tools-rect-select")
(mapping 1 "tools-ellipse-select") (mapping "button-1" "tools-ellipse-select")
(mapping 2 "tools-bucket-fill") (mapping "button-2" "tools-bucket-fill")
(mapping 3 "tools-blend") (mapping "button-3" "tools-blend")
(mapping 4 "tools-pencil") (mapping "button-4" "tools-pencil")
(mapping 5 "tools-paintbrush") (mapping "button-5" "tools-paintbrush")
(mapping 6 "tools-eraser") (mapping "button-6" "tools-eraser")
(mapping 7 "tools-airbrush") (mapping "button-7" "tools-airbrush")
(mapping 13 "context-brush-radius-decrease") (mapping "wheel-turn-left" "context-brush-radius-decrease")
(mapping 14 "context-brush-radius-increase")) (mapping "wheel-turn-right" "context-brush-radius-increase"))

View File

@ -228,6 +228,19 @@ gimp_controller_get_event_name (GimpController *controller,
return NULL; return NULL;
} }
const gchar *
gimp_controller_get_event_blurb (GimpController *controller,
gint event_id)
{
g_return_val_if_fail (GIMP_IS_CONTROLLER (controller), NULL);
if (GIMP_CONTROLLER_GET_CLASS (controller)->get_event_blurb)
return GIMP_CONTROLLER_GET_CLASS (controller)->get_event_blurb (controller,
event_id);
return NULL;
}
void void
gimp_controller_set_enabled (GimpController *controller, gimp_controller_set_enabled (GimpController *controller,
gboolean enabled) gboolean enabled)

View File

@ -95,13 +95,15 @@ struct _GimpControllerClass
const gchar *help_id; const gchar *help_id;
/* virtual functions */ /* virtual functions */
gint (* get_n_events) (GimpController *controller); gint (* get_n_events) (GimpController *controller);
const gchar * (* get_event_name) (GimpController *controller, const gchar * (* get_event_name) (GimpController *controller,
gint event_id); gint event_id);
const gchar * (* get_event_blurb) (GimpController *controller,
gint event_id);
/* signals */ /* signals */
gboolean (* event) (GimpController *controller, gboolean (* event) (GimpController *controller,
const GimpControllerEvent *event); const GimpControllerEvent *event);
/* Padding for future expansion */ /* Padding for future expansion */
void (* _gimp_reserved1) (void); void (* _gimp_reserved1) (void);
@ -111,16 +113,18 @@ struct _GimpControllerClass
}; };
GType gimp_controller_get_type (void) G_GNUC_CONST; GType gimp_controller_get_type (void) G_GNUC_CONST;
GimpController * gimp_controller_new (GType controller_type); GimpController * gimp_controller_new (GType controller_type);
gint gimp_controller_get_n_events (GimpController *controller); gint gimp_controller_get_n_events (GimpController *controller);
const gchar * gimp_controller_get_event_name (GimpController *controller, const gchar * gimp_controller_get_event_name (GimpController *controller,
gint event_id); gint event_id);
const gchar * gimp_controller_get_event_blurb (GimpController *controller,
gint event_id);
void gimp_controller_set_enabled (GimpController *controller, void gimp_controller_set_enabled (GimpController *controller,
gboolean enabled); gboolean enabled);
gboolean gimp_controller_get_enabled (GimpController *controller); gboolean gimp_controller_get_enabled (GimpController *controller);
/* protected */ /* protected */

View File

@ -77,6 +77,7 @@ struct _LinuxInputEvent
__u16 type; __u16 type;
__u16 code; __u16 code;
const gchar *name; const gchar *name;
const gchar *blurb;
}; };
@ -92,9 +93,11 @@ static void linux_input_get_property (GObject *object,
GValue *value, GValue *value,
GParamSpec *pspec); GParamSpec *pspec);
static gint linux_input_get_n_events (GimpController *controller); static gint linux_input_get_n_events (GimpController *controller);
static const gchar * linux_input_get_event_name (GimpController *controller, static const gchar * linux_input_get_event_name (GimpController *controller,
gint event_id); gint event_id);
static const gchar * linux_input_get_event_blurb (GimpController *controller,
gint event_id);
static gboolean linux_input_set_device (ControllerLinuxInput *controller, static gboolean linux_input_set_device (ControllerLinuxInput *controller,
const gchar *device); const gchar *device);
@ -116,21 +119,21 @@ static const GimpModuleInfo linux_input_info =
static const LinuxInputEvent input_events[] = static const LinuxInputEvent input_events[] =
{ {
{ EV_KEY, BTN_0, N_("Button 0") }, { EV_KEY, BTN_0, "button-0", N_("Button 0") },
{ EV_KEY, BTN_1, N_("Button 1") }, { EV_KEY, BTN_1, "button-1", N_("Button 1") },
{ EV_KEY, BTN_2, N_("Button 2") }, { EV_KEY, BTN_2, "button-2", N_("Button 2") },
{ EV_KEY, BTN_3, N_("Button 3") }, { EV_KEY, BTN_3, "button-3", N_("Button 3") },
{ EV_KEY, BTN_4, N_("Button 4") }, { EV_KEY, BTN_4, "button-4", N_("Button 4") },
{ EV_KEY, BTN_5, N_("Button 5") }, { EV_KEY, BTN_5, "button-5", N_("Button 5") },
{ EV_KEY, BTN_6, N_("Button 6") }, { EV_KEY, BTN_6, "button-6", N_("Button 6") },
{ EV_KEY, BTN_7, N_("Button 7") }, { EV_KEY, BTN_7, "button-7", N_("Button 7") },
{ EV_KEY, BTN_8, N_("Button 8") }, { EV_KEY, BTN_8, "button-8", N_("Button 8") },
{ EV_KEY, BTN_9, N_("Button 9") }, { EV_KEY, BTN_9, "button-9", N_("Button 9") },
{ EV_KEY, BTN_LEFT, N_("Button Left") }, { EV_KEY, BTN_LEFT, "button-left", N_("Button Left") },
{ EV_KEY, BTN_RIGHT, N_("Button Right") }, { EV_KEY, BTN_RIGHT, "button-right", N_("Button Right") },
{ EV_KEY, BTN_MIDDLE, N_("Button Middle") }, { EV_KEY, BTN_MIDDLE, "button-middle", N_("Button Middle") },
{ EV_REL, REL_WHEEL, N_("Wheel Turn Left") }, { EV_REL, REL_WHEEL, "wheel-turn-left", N_("Wheel Turn Left") },
{ EV_REL, REL_WHEEL, N_("Wheel Turn Right") }, { EV_REL, REL_WHEEL, "wheel-rurn-right", N_("Wheel Turn Right") },
}; };
static GType controller_type = 0; static GType controller_type = 0;
@ -197,10 +200,11 @@ linux_input_class_init (ControllerLinuxInputClass *klass)
G_PARAM_READWRITE | G_PARAM_READWRITE |
G_PARAM_CONSTRUCT)); G_PARAM_CONSTRUCT));
controller_class->name = _("Linux Input Events"); controller_class->name = _("Linux Input Events");
controller_class->get_n_events = linux_input_get_n_events; controller_class->get_n_events = linux_input_get_n_events;
controller_class->get_event_name = linux_input_get_event_name; controller_class->get_event_name = linux_input_get_event_name;
controller_class->get_event_blurb = linux_input_get_event_blurb;
} }
static void static void
@ -267,6 +271,16 @@ linux_input_get_event_name (GimpController *controller,
return gettext (input_events[event_id].name); return gettext (input_events[event_id].name);
} }
static const gchar *
linux_input_get_event_blurb (GimpController *controller,
gint event_id)
{
if (event_id < 0 || event_id >= G_N_ELEMENTS (input_events))
return NULL;
return gettext (input_events[event_id].blurb);
}
static gboolean static gboolean
linux_input_set_device (ControllerLinuxInput *controller, linux_input_set_device (ControllerLinuxInput *controller,
const gchar *device) const gchar *device)
@ -301,7 +315,7 @@ linux_input_set_device (ControllerLinuxInput *controller,
} }
else else
{ {
g_printerr ("Cannot open device '%s': %s", g_printerr ("Cannot open device '%s': %s\n",
device, g_strerror (errno)); device, g_strerror (errno));
} }
} }
@ -361,4 +375,3 @@ linux_input_read_event (GIOChannel *io,
return TRUE; return TRUE;
} }