void LyXAction::newFunc(FuncCode action, string const & name,
- unsigned int attrib, LyXAction::func_type type)
+ unsigned int attrib, LyXAction::FuncType type)
{
lyx_func_map[name] = action;
FuncInfo tmpinfo;
// magnitudes faster.
static bool init;
- if (init) return;
+ if (init)
+ return;
struct ev_item {
FuncCode action;
char const * name;
unsigned int attrib;
- func_type type;
+ FuncType type;
};
ev_item const items[] = {
{ LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_FORALL
+
+ * \li Action: Apply the given commands on insets of a given name. WARNING: use
+ at your own risks; this function gives you too many ways of
+ shooting yourself in the foot. A typical example is
+ inset-forall Note note-insert
+ which starts an infinite loop. This is mitigated by the fact
+ that the number of actions is arbitrarily limited to 10000.
+ * \li Syntax: inset-forall <NAME> <LFUN-COMMAND>
+ <NAME>: Type of Inset. If <NAME> is *, all insets are matched.
+ * \li Sample: The name is used like for InsetLayout in layout files: "Note"
+ matches all note insets, while "Note:Note" only matches LyX
+ yellow note insets. The following command closes all note insets \n
+ inset-forall Note inset-toggle close
+ * \li Origin: lasgouttes, 27 Nov 2009
+ * \endvar
+ */
+ { LFUN_INSET_FORALL, "inset-forall", ReadOnly, Edit },
+
+
{ LFUN_NOACTION, "", Noop, Hidden }
#ifndef DOXYGEN_SHOULD_SKIP_THIS
};
- for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
+ for (int i = 0; items[i].action != LFUN_NOACTION; ++i)
newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
- }
init = true;
}
{
string const func2 = trim(func);
- if (func2.empty()) {
+ if (func2.empty())
return FuncRequest(LFUN_NOACTION);
- }
string cmd;
string const arg = split(func2, cmd, ' ');
- func_map::const_iterator fit = lyx_func_map.find(cmd);
+ FuncMap::const_iterator const fit = lyx_func_map.find(cmd);
- return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
+ return fit != lyx_func_map.end()
+ ? FuncRequest(fit->second, arg)
+ : FuncRequest(LFUN_UNKNOWN_ACTION);
}
string const LyXAction::getActionName(FuncCode action) const
{
- info_map::const_iterator const it = lyx_info_map.find(action);
+ InfoMap::const_iterator const it = lyx_info_map.find(action);
return it != lyx_info_map.end() ? it->second.name : string();
}
-LyXAction::func_type LyXAction::getActionType(FuncCode action) const
+LyXAction::FuncType LyXAction::getActionType(FuncCode action) const
{
- info_map::const_iterator const it = lyx_info_map.find(action);
+ InfoMap::const_iterator const it = lyx_info_map.find(action);
return it != lyx_info_map.end() ? it->second.type : Hidden;
}
bool LyXAction::funcHasFlag(FuncCode action,
- LyXAction::func_attrib flag) const
+ LyXAction::FuncAttribs flag) const
{
- info_map::const_iterator ici = lyx_info_map.find(action);
+ InfoMap::const_iterator ici = lyx_info_map.find(action);
if (ici == lyx_info_map.end()) {
LYXERR0("action: " << action << " is not known.");
}
-LyXAction::const_func_iterator LyXAction::func_begin() const
+LyXAction::const_iterator LyXAction::func_begin() const
{
return lyx_func_map.begin();
}
-LyXAction::const_func_iterator LyXAction::func_end() const
+LyXAction::const_iterator LyXAction::func_end() const
{
return lyx_func_map.end();
}