From 67f5b89659add0c248439e5aa8d34891bede1007 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 22 Jun 2016 19:06:54 +0200 Subject: [PATCH] backends: Add function to retrieve the label for a pad button action As those are specified by settings. --- src/backends/meta-input-settings-private.h | 3 ++ src/backends/meta-input-settings.c | 38 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h index fe3e2f5ba..40c681c50 100644 --- a/src/backends/meta-input-settings-private.h +++ b/src/backends/meta-input-settings-private.h @@ -123,6 +123,9 @@ gboolean meta_input_settings_handle_pad_button (MetaIn ClutterInputDevice *pad, gboolean is_press, guint button); +gchar * meta_input_settings_get_pad_button_action_label (MetaInputSettings *input_settings, + ClutterInputDevice *pad, + guint button); #ifdef HAVE_LIBWACOM WacomDevice * meta_input_settings_get_tablet_wacom_device (MetaInputSettings *settings, diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c index dac67721d..c342dce46 100644 --- a/src/backends/meta-input-settings.c +++ b/src/backends/meta-input-settings.c @@ -38,6 +38,7 @@ #include "native/meta-input-settings-native.h" #endif +#include #include static GQuark quark_tool_settings = 0; @@ -1381,3 +1382,40 @@ meta_input_settings_handle_pad_button (MetaInputSettings *input_settings, return FALSE; } } + +gchar * +meta_input_settings_get_pad_button_action_label (MetaInputSettings *input_settings, + ClutterInputDevice *pad, + guint button) +{ + GDesktopPadButtonAction action; + + g_return_val_if_fail (META_IS_INPUT_SETTINGS (input_settings), NULL); + g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (pad), NULL); + g_return_val_if_fail (clutter_input_device_get_device_type (pad) == + CLUTTER_PAD_DEVICE, NULL); + + action = meta_input_settings_get_pad_button_action (input_settings, pad, button); + + switch (action) + { + case G_DESKTOP_PAD_BUTTON_ACTION_KEYBINDING: + { + GSettings *settings; + gchar *accel; + + settings = lookup_pad_button_settings (pad, button); + accel = g_settings_get_string (settings, "keybinding"); + g_object_unref (settings); + + return accel; + } + case G_DESKTOP_PAD_BUTTON_ACTION_SWITCH_MONITOR: + return g_strdup (_("Switch monitor")); + case G_DESKTOP_PAD_BUTTON_ACTION_HELP: + return g_strdup (_("Show on-screen help")); + case G_DESKTOP_PAD_BUTTON_ACTION_NONE: + default: + return NULL; + } +}