add ActionManager::set_sensitive() for Gtk::ActionGroup

This commit is contained in:
Paul Davis 2018-12-10 18:40:00 -05:00
parent 12a88c9706
commit ab61c6837f
2 changed files with 16 additions and 0 deletions

View File

@ -93,6 +93,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 ()
{

View File

@ -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);