X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_nestinset.h;h=7bb9f08f22e95e9e42625d971e7f2316dfa12a31;hb=a8a1f10e765512b40f6942e5594363fe16542c1c;hp=2227ac2ae49256ff080dfcd8839e81584e74e1e5;hpb=70d0ba900118ac7e253c1e1969fd7a3d64ec8e03;p=lyx.git diff --git a/src/mathed/math_nestinset.h b/src/mathed/math_nestinset.h index 2227ac2ae4..7bb9f08f22 100644 --- a/src/mathed/math_nestinset.h +++ b/src/mathed/math_nestinset.h @@ -25,14 +25,13 @@ public: /// nestinsets have a fixed size to start with explicit MathNestInset(idx_type ncells); - /// the size is usuall some sort of convex hull of the cells + /// the size is usually some sort of convex hull of the cells /// hides inset::metrics() intentionally! void metrics(MetricsInfo const & mi) const; /// 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; + void drawSelection(PainterInfo & pi, int x, int y) const; /// appends itself with macro arguments substituted void substitute(MathMacro const & macro); /// identifies NestInsets @@ -40,27 +39,26 @@ public: /// identifies NestInsets MathNestInset const * asNestInset() const { return this; } /// get cursor position - void getScreenPos(idx_type idx, pos_type pos, int & x, int & y) const; + void getCursorPos(CursorSlice const & cur, int & x, int & y) const; + /// + 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(BufferView &) const; + bool idxLeft(LCursor &) const; /// order of movement through the cells when pressing the right key - bool idxRight(BufferView &) const; + bool idxRight(LCursor &) const; /// move one physical cell up - bool idxNext(BufferView &) const; + bool idxNext(LCursor &) const; /// move one physical cell down - bool idxPrev(BufferView &) const; + bool idxPrev(LCursor &) const; /// target pos when we enter the inset from the left by pressing "Right" - bool idxFirst(BufferView &) const; + bool idxFirst(LCursor &) const; /// target pos when we enter the inset from the right by pressing "Left" - bool idxLast(BufferView &) const; - - /// where should we go if we press home? - bool idxHome(BufferView &) const; - /// where should we go if we press end? - bool idxEnd(BufferView &) const; + bool idxLast(LCursor &) const; /// number of cells currently governed by us idx_type nargs() const; @@ -69,7 +67,7 @@ public: /// 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); @@ -90,35 +88,48 @@ public: /// debug helper void dump() const; - /// is the cursor currently somewhere within this inset? - virtual bool editing() const; /// writes \\, name(), and args in braces and '\\lyxlock' if necessary 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: /// - virtual - DispatchResult - priv_dispatch(BufferView & bv, FuncRequest const & cmd); + void priv_dispatch(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 cells_type; /// thusly: cells_type cells_; /// if the inset is locked, it can't be entered with the cursor bool lock_; - - /// draw four angular markers - void drawMarkers(PainterInfo & pi, int x, int y) const; - /// draw two angular markers - void drawMarkers2(PainterInfo & pi, int x, int y) const; - - /// add space for markers - void metricsMarkers(int frame = 1) const; - /// add space for markers - void metricsMarkers2(int frame = 1) const; }; #endif