summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/actions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2ext/actions.cc')
-rw-r--r--libs/gtkmm2ext/actions.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/actions.cc b/libs/gtkmm2ext/actions.cc
index 1145987764..bff718e9b7 100644
--- a/libs/gtkmm2ext/actions.cc
+++ b/libs/gtkmm2ext/actions.cc
@@ -21,6 +21,7 @@
#include <vector>
#include <string>
#include <list>
+#include <stdint.h>
#include <gtk/gtkaccelmap.h>
#include <gtk/gtkuimanager.h>
@@ -32,6 +33,7 @@
#include "pbd/error.h"
#include "gtkmm2ext/actions.h"
+#include "gtkmm2ext/utils.h"
#include "i18n.h"
@@ -40,6 +42,7 @@ using namespace Gtk;
using namespace Glib;
using namespace sigc;
using namespace PBD;
+using namespace Gtkmm2ext;
RefPtr<UIManager> ActionManager::ui_manager;
string ActionManager::unbound_string = "--";
@@ -294,3 +297,17 @@ ActionManager::uncheck_toggleaction (const char * name)
delete [] group_name;
}
+
+string
+ActionManager::get_key_representation (const string& accel_path, AccelKey& key)
+{
+ bool known = lookup_entry (accel_path, key);
+
+ if (known) {
+ uint32_t k = possibly_translate_legal_accelerator_to_real_key (key.get_key());
+ key = AccelKey (k, Gdk::ModifierType (key.get_mod()));
+ return ui_manager->get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod()));
+ }
+
+ return unbound_string;
+}