const char* name, const char* label, sigc::slot<void> sl);
Glib::RefPtr<Gtk::Action> find_action (const std::string& name);
+ Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name);
+ Glib::RefPtr<Gtk::ToggleAction> find_toggle_action (const std::string& name);
+ Glib::RefPtr<Gtk::ToggleAction> find_toggle_action (char const * group_name, char const * action_name);
+ Glib::RefPtr<Gtk::RadioAction> find_radio_action (const std::string& name);
+ Glib::RefPtr<Gtk::RadioAction> find_radio_action (char const * group_name, char const * action_name);
void set_bindings (Bindings*);
Bindings* bindings() const { return _bindings; }
};
+class LIBGTKMM2EXT_API ActionMapOwner {
+ protected:
+ Gtkmm2ext::ActionMap myactions;
+ public:
+ ActionMapOwner (std::string const & map_name) : myactions (map_name) {}
+ Glib::RefPtr<Gtk::Action> find_action (const std::string& name) { return myactions.find_action (name); }
+ Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name) { return myactions.find_action (group_name, action_name); }
+};
+
+class LIBGTKMM2EXT_API StaticActionMapOwner {
+ protected:
+ virtual Gtkmm2ext::ActionMap& my_actions() const = 0;
+ public:
+ virtual ~StaticActionMapOwner() {}
+ Glib::RefPtr<Gtk::Action> find_action (const std::string& name) { return my_actions().find_action (name); }
+ Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name) { return my_actions().find_action (group_name, action_name); }
+};
+
class LIBGTKMM2EXT_API Bindings {
public:
enum Operation {
bool activate (MouseButton, Operation);
bool is_bound (KeyboardKey const&, Operation) const;
+ std::string bound_name (KeyboardKey const&, Operation) const;
bool is_registered (Operation op, std::string const& action_name) const;
KeyboardKey get_binding_for_action (Glib::RefPtr<Gtk::Action>, Operation& op);
bool load (XMLNode const& node);
void load_operation (XMLNode const& node);
void save (XMLNode& root);
- void save_as_html (std::ostream&) const;
+ void save_as_html (std::ostream&, bool) const;
/* GTK has the following position a Gtk::Action:
*
std::vector<Glib::RefPtr<Gtk::Action> >& actions);
/* all bindings currently in existence, as grouped into Bindings */
+ static void reset_bindings () { bindings.clear (); }
static std::list<Bindings*> bindings;
static Bindings* get_bindings (std::string const& name, ActionMap&);
static void associate_all ();