summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:40:00 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:40:00 -0500
commitab61c6837f6aed0179e098c83a81445fba1bab9a (patch)
tree5af8d9bdb3b8621e66e7dcb374220a4af6d4908c /libs/gtkmm2ext
parent12a88c9706204a7bd2a674896d0fe93654139f0f (diff)
add ActionManager::set_sensitive() for Gtk::ActionGroup
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r--libs/gtkmm2ext/actions.cc15
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/actions.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/actions.cc b/libs/gtkmm2ext/actions.cc
index 89ee999e4c..edf092d909 100644
--- a/libs/gtkmm2ext/actions.cc
+++ b/libs/gtkmm2ext/actions.cc
@@ -94,6 +94,21 @@ ActionManager::save_action_states ()
}
void
+ActionManager::set_sensitive (Glib::RefPtr<ActionGroup> group, bool yn)
+{
+ /* the C++ API for functions used here appears to be broken in
+ gtkmm2.6, so we fall back to the C level.
+ */
+
+ GtkActionGroup* grp = group->gobj();
+
+ for (GList* acts = gtk_action_group_list_actions (grp); acts; acts = g_list_next (acts)) {
+ GtkAction* action = (GtkAction*) acts->data;
+ gtk_action_set_sensitive (action, yn);
+ }
+}
+
+void
ActionManager::enable_active_actions ()
{
if (!actions_disabled) {
diff --git a/libs/gtkmm2ext/gtkmm2ext/actions.h b/libs/gtkmm2ext/gtkmm2ext/actions.h
index b396294f11..6311a98631 100644
--- a/libs/gtkmm2ext/gtkmm2ext/actions.h
+++ b/libs/gtkmm2ext/gtkmm2ext/actions.h
@@ -56,6 +56,7 @@ namespace ActionManager {
LIBGTKMM2EXT_API extern std::string unbound_string; /* the key string returned if an action is not bound */
LIBGTKMM2EXT_API extern Glib::RefPtr<Gtk::UIManager> ui_manager;
+ LIBGTKMM2EXT_API extern void set_sensitive (Glib::RefPtr<Gtk::ActionGroup> group, bool yn);
LIBGTKMM2EXT_API extern void set_sensitive (std::vector<Glib::RefPtr<Gtk::Action> >& actions, bool);
LIBGTKMM2EXT_API extern std::string get_key_representation (const std::string& accel_path, Gtk::AccelKey& key);
LIBGTKMM2EXT_API extern Gtk::Widget* get_widget (const char * name);