+#ifdef __GNUG__
+#pragma implementation
+#endif
+
+#include <config.h>
#include "ref_inset.h"
-#include "math_cursor.h"
-#include "commandtags.h"
+#include "funcrequest.h"
#include "formulabase.h"
#include "BufferView.h"
#include "frontends/LyXView.h"
#include "lyxfunc.h"
#include "gettext.h"
#include "LaTeXFeatures.h"
+#include "debug.h"
+
RefInset::RefInset()
: CommandInset("ref")
}
-int RefInset::dispatch(string const & cmd, idx_type, pos_type)
+MathInset::result_type
+RefInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
{
- if (cmd == "mouse 3") {
- cerr << "trying to goto ref" << cell(0) << "\n";
- mathcursor->formula()->view()->owner()->getLyXFunc()->
- dispatch(LFUN_REF_GOTO, asString(cell(0)));
- return 1; // dispatched
- }
-
- if (cmd == "mouse 1") {
- cerr << "trying to open ref" << cell(0) << "\n";
- // Eventually trigger dialog with button 3 not 1
-// mathcursor->formula()->view()->owner()->getDialogs()
-// ->showRef(this);
- return 1; // dispatched
+ switch (cmd.action) {
+ case LFUN_MOUSE_RELEASE:
+ if (cmd.button() == mouse_button::button3) {
+ lyxerr << "trying to goto ref" << cell(0) << "\n";
+ cmd.view()->dispatch(FuncRequest(LFUN_REF_GOTO, asString(cell(0))));
+ return DISPATCHED;
+ }
+ if (cmd.button() == mouse_button::button1) {
+ lyxerr << "trying to open ref" << cell(0) << "\n";
+ // Eventually trigger dialog with button 3 not 1
+ // cmd.view()->owner()->getDialogs()->showRef(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);
}
-
- return 0; // undispatched
+ // not our business
+ return UNDISPATCHED;
}
int RefInset::ascii(std::ostream & os, int) const
{
- os << "[" << asString(cell(0)) << "]";
+ os << '[' << asString(cell(0)) << ']';
return 0;
}
return 0;
}
+
RefInset::type_info RefInset::types[] = {
{ "ref", N_("Standard"), N_("Ref: ")},
{ "pageref", N_("Page Number"), N_("Page: ")},