summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2016-06-22 19:06:54 +0200
committerCarlos Garnacho <carlosg@gnome.org>2016-07-22 13:31:09 +0200
commit56632d2ef78e439366f3ed5d5e6c4cf522bf3e27 (patch)
tree5c49e0a63b9307d1b4f98a970e57da75f80a0d20
parent6296d30e1ab17f8f02e5570209a42f3ab0f494a3 (diff)
downloadmutter-56632d2ef78e439366f3ed5d5e6c4cf522bf3e27.tar.gz
backends: Add function to retrieve the label for a pad button action
As those are specified by settings.
-rw-r--r--src/backends/meta-input-settings-private.h3
-rw-r--r--src/backends/meta-input-settings.c38
2 files changed, 41 insertions, 0 deletions
diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h
index e41918e3c..82f58f91d 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 fd6ca6795..1650c3584 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 <glib/gi18n-lib.h>
#include <meta/util.h>
static GQuark quark_tool_settings = 0;
@@ -1441,3 +1442,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;
+ }
+}