/// draw background if locked
void draw(PainterInfo & pi, int x, int y) const;
/// draw selection background
- void drawSelection(PainterInfo & pi,
- idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
- /// appends itself with macro arguments substituted
- void substitute(MathMacro const & macro);
+ void drawSelection(PainterInfo & pi, int x, int y) const;
/// identifies NestInsets
MathNestInset * asNestInset() { return this; }
/// identifies NestInsets
MathNestInset const * asNestInset() const { return this; }
/// get cursor position
- void getCursorPos(CursorSlice const & cur, int & x, int & y) const;
+ void cursorPos(CursorSlice const & sl, bool boundary, int & x, int & y) const;
///
- void edit(LCursor & cur, int, int);
+ void edit(LCursor & cur, bool left);
+ ///
+ InsetBase * editXY(LCursor & cur, int x, int y);
/// order of movement through the cells when pressing the left key
bool idxLeft(LCursor &) const;
/// target pos when we enter the inset from the right by pressing "Left"
bool idxLast(LCursor &) const;
- /// where should we go if we press home?
- bool idxHome(LCursor &) const;
- /// where should we go if we press end?
- bool idxEnd(LCursor &) const;
-
/// number of cells currently governed by us
idx_type nargs() const;
/// access to the lock
/// access to the lock
void lock(bool);
/// get notification when the cursor leaves this inset
- void notifyCursorLeaves(idx_type);
+ void notifyCursorLeaves(LCursor & cur);
/// direct access to the cell
MathArray & cell(idx_type);
void write(WriteStream & os) const;
/// writes [, name(), and args in []
void normalize(NormalStream & os) const;
+ ///
+ int latex(Buffer const &, std::ostream & os,
+ OutputParams const & runparams) const;
+
protected:
///
- DispatchResult priv_dispatch(LCursor & cur, FuncRequest const & cmd);
+ virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
+ /// do we want to handle this event?
+ bool getStatus(LCursor & cur, FuncRequest const & cmd,
+ FuncStatus & status) const;
///
void handleFont(LCursor & cur,
std::string const & arg, std::string const & font);
///
void handleFont2(LCursor & cur, std::string const & arg);
+ ///
+ bool interpret(LCursor & cur, char c);
+ ///
+ bool script(LCursor & cur, bool);
+
+
+private:
+ /// lfun handler
+ void lfunMousePress(LCursor &, FuncRequest &);
+ ///
+ void lfunMouseRelease(LCursor &, FuncRequest &);
+ ///
+ void lfunMouseMotion(LCursor &, FuncRequest &);
+
+protected:
/// we store the cells in a vector
typedef std::vector<MathArray> cells_type;
/// thusly: