ostr << "<html>\n<head>\n<title>";
ostr << PROGRAM_NAME;
ostr << "</title>\n";
+ ostr << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
ostr << "</head>\n<body>\n";
ostr << "<table border=\"2\" cellpadding=\"6\"><tbody>\n\n";
ostr << "<tr>\n\n";
-
+
/* first column: separate by group */
ostr << "<td>\n\n";
for (list<Bindings*>::const_iterator b = bindings.begin(); b != bindings.end(); ++b) {
for (p = paths.begin(), k = keys.begin(), l = labels.begin(); p != paths.end(); ++k, ++p, ++l) {
+ string print_path = *p;
+ /* strip <Actions>/ from the start */
+ print_path = print_path.substr (10);
+
if ((*k).empty()) {
- ostr << *p << " ( " << *l << " ) " << "</br>" << endl;
+ ostr << print_path << " ( " << *l << " ) " << "</br>" << endl;
} else {
- ostr << *p << " ( " << *l << " ) " << " => " << *k << "</br>" << endl;
+ ostr << print_path << " ( " << *l << " ) " << " => " << *k << "</br>" << endl;
}
}
}
ostr << "</td>\n\n";
ostr << "</tr>\n\n";
ostr << "</tbody></table>\n\n";
-
+
ostr << "</body>\n";
ostr << "</html>\n";
}
GroupMap group_map;
for (KeybindingMap::const_iterator k = press_bindings.begin(); k != press_bindings.end(); ++k) {
-
+
if (k->first.name().empty()) {
continue;
}
}
}
-
+
for (GroupMap::const_iterator gm = group_map.begin(); gm != group_map.end(); ++gm) {
if (categorize) {
ostr << "<h3>" << gm->first << "</h3>\n";
}
-
+
for (vector<KeybindingMap::const_iterator>::const_iterator k = gm->second.begin(); k != gm->second.end(); ++k) {
if ((*k)->first.name().empty()) {
key_name.replace (pos, strlen (targets[n]), replacements[n]);
}
}
-
+
key_name.append(" ");
while (key_name.length()<28)
ostr << "\n\n";
}
-
+
ostr << "\n";
}
}
}
}
+
RefPtr<Action>
ActionMap::find_action (const string& name)
{
return a->second;
}
+ cerr << "Failed to find action: [" << name << ']' << endl;
+ return RefPtr<Action>();
+}
+
+RefPtr<ToggleAction>
+ActionMap::find_toggle_action (const string& name)
+{
+ RefPtr<Action> act = find_action (name);
+
+ if (!act) {
+ return RefPtr<ToggleAction>();
+ }
+
+ return Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+}
+
+RefPtr<RadioAction>
+ActionMap::find_radio_action (const string& name)
+{
+ RefPtr<Action> act = find_action (name);
+
+ if (!act) {
+ return RefPtr<RadioAction>();
+ }
+
+ return Glib::RefPtr<RadioAction>::cast_dynamic (act);
+}
+
+RefPtr<Action>
+ActionMap::find_action (char const * group_name, char const * action_name)
+{
+ string fullpath (group_name);
+ fullpath += '/';
+ fullpath += action_name;
+
+ _ActionMap::iterator a = _actions.find (fullpath);
+
+ if (a != _actions.end()) {
+ return a->second;
+ }
+
+ cerr << "Failed to find action (2): [" << fullpath << ']' << endl;
return RefPtr<Action>();
}
+RefPtr<ToggleAction>
+ActionMap::find_toggle_action (char const * group_name, char const * action_name)
+{
+ RefPtr<Action> act = find_action (group_name, action_name);
+
+ if (!act) {
+ return RefPtr<ToggleAction>();
+ }
+
+ return Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+}
+
+RefPtr<RadioAction>
+ActionMap::find_radio_action (char const * group_name, char const * action_name)
+{
+ RefPtr<Action> act = find_action (group_name, action_name);
+
+ if (!act) {
+ return RefPtr<RadioAction>();
+ }
+
+ return Glib::RefPtr<RadioAction>::cast_dynamic (act);
+}
+
+
RefPtr<ActionGroup>
ActionMap::create_action_group (const string& name)
{