diff options
-rw-r--r-- | gtk2_ardour/actions.cc | 21 | ||||
-rw-r--r-- | gtk2_ardour/actions.h | 20 | ||||
-rw-r--r-- | libs/pbd3/pbd/xml++.h | 10 | ||||
-rw-r--r-- | libs/pbd3/xml++.cc | 42 |
4 files changed, 51 insertions, 42 deletions
diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index 264f9fe7c5..0e044e9776 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -65,7 +65,7 @@ ActionManager::init () } RefPtr<Action> -ActionManager::register_action (RefPtr<ActionGroup> group, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods) +ActionManager::register_action (RefPtr<ActionGroup> group, const char * name, const char * label, slot<void> sl, guint key, Gdk::ModifierType mods) { RefPtr<Action> act = register_action (group, name, label, sl); AccelMap::add_entry (act->get_accel_path(), key, mods); @@ -74,7 +74,7 @@ ActionManager::register_action (RefPtr<ActionGroup> group, string name, string l } RefPtr<Action> -ActionManager::register_action (RefPtr<ActionGroup> group, string name, string label, slot<void> sl) +ActionManager::register_action (RefPtr<ActionGroup> group, const char * name, const char * label, slot<void> sl) { RefPtr<Action> act = register_action (group, name, label); group->add (act, sl); @@ -83,7 +83,7 @@ ActionManager::register_action (RefPtr<ActionGroup> group, string name, string l } RefPtr<Action> -ActionManager::register_action (RefPtr<ActionGroup> group, string name, string label) +ActionManager::register_action (RefPtr<ActionGroup> group, const char * name, const char * label) { RefPtr<Action> act; @@ -95,7 +95,7 @@ ActionManager::register_action (RefPtr<ActionGroup> group, string name, string l RefPtr<Action> -ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Group rgroup, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods) +ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Group rgroup, const char * name, const char * label, slot<void> sl, guint key, Gdk::ModifierType mods) { RefPtr<Action> act = register_radio_action (group, rgroup, name, label, sl); AccelMap::add_entry (act->get_accel_path(), key, mods); @@ -104,7 +104,7 @@ ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Gr } RefPtr<Action> -ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Group rgroup, string name, string label, slot<void> sl) +ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Group rgroup, const char * name, const char * label, slot<void> sl) { RefPtr<Action> act; @@ -116,7 +116,7 @@ ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Gr RefPtr<Action> -ActionManager::register_toggle_action (RefPtr<ActionGroup> group, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods) +ActionManager::register_toggle_action (RefPtr<ActionGroup> group, const char * name, const char * label, slot<void> sl, guint key, Gdk::ModifierType mods) { RefPtr<Action> act = register_toggle_action (group,name, label, sl); AccelMap::add_entry (act->get_accel_path(), key, mods); @@ -125,7 +125,7 @@ ActionManager::register_toggle_action (RefPtr<ActionGroup> group, string name, s } RefPtr<Action> -ActionManager::register_toggle_action (RefPtr<ActionGroup> group, string name, string label, slot<void> sl) +ActionManager::register_toggle_action (RefPtr<ActionGroup> group, const char * name, const char * label, slot<void> sl) { RefPtr<Action> act; @@ -189,18 +189,19 @@ ActionManager::add_action_group (RefPtr<ActionGroup> grp) } Widget* -ActionManager::get_widget (ustring name) +ActionManager::get_widget (const char * name) { return ui_manager->get_widget (name); } RefPtr<Action> -ActionManager::get_action (ustring name) +ActionManager::get_action (const char * _name) { /* the C++ API for functions used here appears to be broken in gtkmm2.6, so we fall back to the C level. */ + ustring name(_name); GList* list = gtk_ui_manager_get_action_groups (ui_manager->gobj()); GList* node; RefPtr<Action> act; @@ -241,7 +242,7 @@ ActionManager::set_sensitive (vector<RefPtr<Action> >& actions, bool state) } void -ActionManager::uncheck_toggleaction (const std::string& actionname) +ActionManager::uncheck_toggleaction (const char * actionname) { RefPtr<Action> act = get_action (actionname); if (act) { diff --git a/gtk2_ardour/actions.h b/gtk2_ardour/actions.h index 32b0840c7a..445150d202 100644 --- a/gtk2_ardour/actions.h +++ b/gtk2_ardour/actions.h @@ -35,30 +35,30 @@ class ActionManager static std::string unbound_string; /* the key string returned if an action is not bound */ static Glib::RefPtr<Gtk::UIManager> ui_manager; - static Gtk::Widget* get_widget (Glib::ustring name); - static Glib::RefPtr<Gtk::Action> get_action (Glib::ustring name); + static Gtk::Widget* get_widget (const char * name); + static Glib::RefPtr<Gtk::Action> get_action (const char * name); static void add_action_group (Glib::RefPtr<Gtk::ActionGroup>); static Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group, - std::string name, std::string label); + const char * name, const char * label); static Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group, - std::string name, std::string label, sigc::slot<void> sl, + const char * name, const char * label, sigc::slot<void> sl, guint key, Gdk::ModifierType mods); static Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group, - std::string name, std::string label, sigc::slot<void> sl); + const char * name, const char * label, sigc::slot<void> sl); static Glib::RefPtr<Gtk::Action> register_radio_action (Glib::RefPtr<Gtk::ActionGroup> group, Gtk::RadioAction::Group, - std::string name, std::string label, sigc::slot<void> sl, + const char * name, const char * label, sigc::slot<void> sl, guint key, Gdk::ModifierType mods); static Glib::RefPtr<Gtk::Action> register_radio_action (Glib::RefPtr<Gtk::ActionGroup> group, Gtk::RadioAction::Group, - std::string name, std::string label, sigc::slot<void> sl); + const char * name, const char * label, sigc::slot<void> sl); static Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group, - std::string name, std::string label, sigc::slot<void> sl, + const char * name, const char * label, sigc::slot<void> sl, guint key, Gdk::ModifierType mods); static Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group, - std::string name, std::string label, sigc::slot<void> sl); + const char * name, const char * label, sigc::slot<void> sl); static bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key); @@ -67,7 +67,7 @@ class ActionManager std::vector<std::string>& keys, std::vector<Gtk::AccelKey>& bindings); - static void uncheck_toggleaction (const std::string& actionname); + static void uncheck_toggleaction (const char * actionname); }; #endif /* __ardour_gtk_actions_h__ */ diff --git a/libs/pbd3/pbd/xml++.h b/libs/pbd3/pbd/xml++.h index 993cb22fdf..2e89a701de 100644 --- a/libs/pbd3/pbd/xml++.h +++ b/libs/pbd3/pbd/xml++.h @@ -92,15 +92,17 @@ public: XMLNode *add_content(const string & = string()); const XMLNodeList & children(const string & = string()) const; - XMLNode *add_child(const string &); + XMLNode *add_child(const char *); XMLNode *add_child_copy(const XMLNode&); void add_child_nocopy (XMLNode&); const XMLPropertyList & properties() const { return _proplist; }; - XMLProperty *property(const string &); - const XMLProperty *property(const string &n) const + XMLProperty *property(const char * ); + const XMLProperty *property(const char * n) const { return ((XMLNode *) this)->property(n); }; - XMLProperty *add_property(const string &, const string & = string()); + XMLProperty *add_property(const char *, const string &); + XMLProperty *add_property(const char *, const char * = ""); + void remove_property(const string &); /** Remove all nodes with the name passed to remove_nodes */ diff --git a/libs/pbd3/xml++.cc b/libs/pbd3/xml++.cc index 2dbf2a861f..e496d8b2fd 100644 --- a/libs/pbd3/xml++.cc +++ b/libs/pbd3/xml++.cc @@ -191,7 +191,7 @@ XMLNode::XMLNode(const XMLNode& from) props = from.properties(); for (curprop = props.begin(); curprop != props.end(); curprop++) - add_property((*curprop)->name(), (*curprop)->value()); + add_property((*curprop)->name().c_str(), (*curprop)->value()); nodes = from.children(); for (curnode = nodes.begin(); curnode != nodes.end(); curnode++) @@ -244,7 +244,7 @@ XMLNode::children(const string & n) const } XMLNode * -XMLNode::add_child(const string & n) +XMLNode::add_child(const char * n) { return add_child_copy(XMLNode (n)); } @@ -266,33 +266,42 @@ XMLNode::add_child_copy(const XMLNode& n) XMLNode * XMLNode::add_content(const string & c) { - return add_child_copy(XMLNode (string(), c)); + return add_child_copy(XMLNode (string(), c)); } XMLProperty * -XMLNode::property(const string & n) +XMLNode::property(const char * n) { - if (_propmap.find(n) == _propmap.end()) + string ns(n); + if (_propmap.find(ns) == _propmap.end()) return 0; - return _propmap[n]; + return _propmap[ns]; } XMLProperty * -XMLNode::add_property(const string & n, const string & v) +XMLNode::add_property(const char * n, const string & v) { - if(_propmap.find(n) != _propmap.end()){ - remove_property(n); + string ns(n); + if(_propmap.find(ns) != _propmap.end()){ + remove_property(ns); } - XMLProperty *tmp = new XMLProperty(n, v); + XMLProperty *tmp = new XMLProperty(ns, v); - if (!tmp) + if (!tmp) return 0; - _propmap[tmp->name()] = tmp; - _proplist.insert(_proplist.end(), tmp); + _propmap[tmp->name()] = tmp; + _proplist.insert(_proplist.end(), tmp); - return tmp; + return tmp; +} + +XMLProperty * +XMLNode::add_property(const char * n, const char * v) +{ + string vs(v); + return add_property(n, vs); } void @@ -357,17 +366,14 @@ readnode(xmlNodePtr node) if (node->name) name = (char *) node->name; - else - name = string(); tmp = new XMLNode(name); for (attr = node->properties; attr; attr = attr->next) { - name = (char *) attr->name; content = ""; if (attr->children) content = (char *) attr->children->content; - tmp->add_property(name, content); + tmp->add_property((char *) attr->name, content); } if (node->content) |