diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2018-12-10 18:40:00 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2018-12-10 18:40:00 -0500 |
commit | ab61c6837f6aed0179e098c83a81445fba1bab9a (patch) | |
tree | 5af8d9bdb3b8621e66e7dcb374220a4af6d4908c /libs/gtkmm2ext | |
parent | 12a88c9706204a7bd2a674896d0fe93654139f0f (diff) |
add ActionManager::set_sensitive() for Gtk::ActionGroup
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/actions.cc | 15 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/actions.h | 1 |
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); |