#include "funcrequest.h"
#include "frontends/Painter.h"
#include "debug.h"
+#include "Lsstream.h"
+#include "insets/mailinset.h"
+
using std::swap;
using std::max;
using std::min;
using std::vector;
+class GridInsetMailer : public MailInset {
+public:
+ GridInsetMailer(MathGridInset & inset) : inset_(inset) {}
+ ///
+ virtual string const & name() const
+ {
+ static const string theName = "tabular";
+ return theName;
+ }
+ ///
+ virtual string const inset2string() const
+ {
+ ostringstream data;
+ //data << name() << " active_cell " << inset.getActCell() << '\n';
+ data << name() << " active_cell " << 0 << '\n';
+ WriteStream ws(data);
+ inset_.write(ws);
+ return data.str();
+ }
+
+protected:
+ InsetBase & inset() const { return inset_; }
+ MathGridInset & inset_;
+};
+
+
void mathed_parse_normal(MathGridInset &, string const & argument);
namespace {
}
+MathGridInset::~MathGridInset()
+{
+ GridInsetMailer mailer(*this);
+ mailer.hideDialog();
+}
+
+
MathInset * MathGridInset::clone() const
{
return new MathGridInset(*this);
}
-MathInset::result_type MathGridInset::dispatch
+dispatch_result MathGridInset::dispatch
(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
{
switch (cmd.action) {
+ case LFUN_MOUSE_RELEASE:
+ //if (cmd.button() == mouse_button::button3) {
+ // GridInsetMailer mailer(*this);
+ // mailer.showDialog();
+ // return DISPATCHED;
+ //}
+ break;
+
+ case LFUN_INSET_DIALOG_UPDATE: {
+ GridInsetMailer mailer(*this);
+ mailer.updateDialog(cmd.view());
+ break;
+ }
+
+ // insert file functions
case LFUN_DELETE_LINE_FORWARD:
//autocorrect_ = false;
//macroModeClose();
case LFUN_TABINSERT:
//bv->lockedInsetStoreUndo(Undo::EDIT);
splitCell(idx, pos);
- //updateLocal(bv, true);
return DISPATCHED_POP;
case LFUN_BREAKLINE: {
pos = cell(idx).size();
//mathcursor->normalize();
- //updateLocal(bv, true);
return DISPATCHED_POP;
}