#include "math_factory.h"
#include "BufferView.h"
+#include "dispatchresult.h"
#include "debug.h"
#include "funcrequest.h"
#include "math_support.h"
}
-dispatch_result
-RefInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
+DispatchResult
+RefInset::priv_dispatch(FuncRequest const & cmd,
+ idx_type & idx, pos_type & pos)
{
switch (cmd.action) {
- case LFUN_MOUSE_RELEASE:
- if (cmd.button() == mouse_button::button3) {
- lyxerr << "trying to goto ref" << cell(0) << endl;
- cmd.view()->dispatch(FuncRequest(LFUN_REF_GOTO, asString(cell(0))));
- return DISPATCHED;
- }
- if (cmd.button() == mouse_button::button1) {
- // Eventually trigger dialog with button 3
- // not 1
- string const data = createDialogStr("ref");
- cmd.view()->owner()->getDialogs().
- show("ref", data, this);
- return DISPATCHED;
- }
- break;
- case LFUN_MOUSE_PRESS:
- case LFUN_MOUSE_MOTION:
- // eat other mouse commands
- return DISPATCHED;
- default:
- return CommandInset::dispatch(cmd, idx, pos);
+ case LFUN_INSET_MODIFY:
+ if (cmd.getArg(0) == "ref") {
+ MathArray ar;
+ if (!createMathInset_fromDialogStr(cmd.argument, ar))
+ return DispatchResult(false);
+
+ *this = *ar[0].nucleus()->asRefInset();
+
+ return DispatchResult(true, true);
+ }
+ break;
+ case LFUN_MOUSE_RELEASE:
+ if (cmd.button() == mouse_button::button3) {
+ lyxerr << "trying to goto ref" << cell(0) << endl;
+ cmd.view()->dispatch(FuncRequest(LFUN_REF_GOTO, asString(cell(0))));
+ return DispatchResult(true, true);
+ }
+ if (cmd.button() == mouse_button::button1) {
+ // Eventually trigger dialog with button 3
+ // not 1
+ string const data = createDialogStr("ref");
+ cmd.view()->owner()->getDialogs().
+ show("ref", data, this);
+ return DispatchResult(true, true);
+ }
+ break;
+ case LFUN_MOUSE_PRESS:
+ case LFUN_MOUSE_MOTION:
+ // eat other mouse commands
+ return DispatchResult(true, true);
+ default:
+ return CommandInset::priv_dispatch(cmd, idx, pos);
}
// not our business
- return UNDISPATCHED;
+ return DispatchResult(false);
}
}
-int RefInset::ascii(std::ostream & os, int) const
+int RefInset::plaintext(std::ostream & os, OutputParams const &) const
{
os << '[' << asString(cell(0)) << ']';
return 0;
}
-int RefInset::linuxdoc(std::ostream & os) const
+int RefInset::linuxdoc(std::ostream & os, OutputParams const &) const
{
os << "<ref id=\"" << asString(cell(0))
<< "\" name=\"" << asString(cell(1)) << "\" >";
}
-int RefInset::docbook(std::ostream & os, bool) const
+int RefInset::docbook(std::ostream & os, OutputParams const &) const
{
if (cell(1).empty()) {
os << "<xref linkend=\"" << asString(cell(0)) << "\">";
}
-dispatch_result RefInset::localDispatch(FuncRequest const & cmd)
-{
- if (cmd.action != LFUN_INSET_MODIFY || cmd.getArg(0) != "ref")
- return UNDISPATCHED;
-
- MathArray ar;
- if (!createMathInset_fromDialogStr(cmd.argument, ar))
- return UNDISPATCHED;
-
- *this = *ar[0].nucleus()->asRefInset();
-// if (cmd.view())
-// // This does not compile because updateInset expects
-// // an Inset* and 'this' isn't.
-// cmd.view()->updateInset(this);
- return DISPATCHED;
-}
RefInset::ref_type_info RefInset::types[] = {