X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxtext.h;h=176b9192e486ca46a6d649ae5219eff41d1e333c;hb=8555881d19d77b32315661699fab31a82d3833ab;hp=076562856b2b062e4a91080fa590bec730e57fbc;hpb=6b5c9696b6669b48062bec96707c78d605e1af58;p=lyx.git diff --git a/src/lyxtext.h b/src/lyxtext.h index 076562856b..176b9192e4 100644 --- a/src/lyxtext.h +++ b/src/lyxtext.h @@ -21,7 +21,6 @@ #include "layout.h" #include "LColor.h" #include "insets/inset.h" -#include "WordLangTuple.h" class Buffer; class BufferParams; @@ -32,6 +31,7 @@ class Row; class Spacing; class UpdatableInset; class VSpace; +class WordLangTuple; /** @@ -67,7 +67,7 @@ public: /// Constructor LyXText(BufferView *); - /// + /// sets inset as owner LyXText(InsetText *); /// Destructor @@ -75,8 +75,6 @@ public: void init(BufferView *, bool reinit = false); /// - mutable int number_of_rows; - /// mutable int height; /// mutable unsigned int width; @@ -122,9 +120,6 @@ public: /// void setLayout(BufferView *, string const & layout); - /// used in setlayout - void makeFontEntriesLayoutSpecific(Buffer const *, Paragraph * par); - /** increment depth over selection and make a total rebreak of those paragraphs */ @@ -134,8 +129,7 @@ public: paragraphs */ void decDepth(BufferView *); - /** Get the depth at current cursor position - */ + /// get the depth at current cursor position int getDepth() const; /** set font over selection and make a total rebreak of those @@ -166,11 +160,6 @@ public: */ void redoHeightOfParagraph(BufferView *, LyXCursor const & cursor); - /** forces the redrawing of a paragraph. Needed when manipulating a - right address box - */ - void redoDrawingOfParagraph(BufferView *, LyXCursor const & cursor); - /** insert a character, moves all the following breaks in the same Paragraph one to the right and make a little rebreak */ @@ -178,7 +167,7 @@ public: /// void insertInset(BufferView *, Inset * inset); - /** Completes the insertion with a full rebreak. */ + /// Completes the insertion with a full rebreak void fullRebreak(BufferView *); /// @@ -186,21 +175,16 @@ public: /// mutable int refresh_y; /// - int refresh_height; - /// - int refresh_width; - /// - int refresh_x; - /// mutable Row * refresh_row; - /// - lyx::pos_type refresh_pos; /// give and set the LyXText status text_status status() const; /// void status(BufferView *, text_status) const; + /// + Inset::RESULT dispatch(FuncRequest const & cmd); + private: /** wether the screen needs a refresh, starting with refresh_y @@ -223,8 +207,7 @@ public: /** returns a pointer to a specified row. y is set to the beginning of the row */ - Row * getRow(Paragraph * par, - lyx::pos_type pos, int & y) const; + Row * getRow(Paragraph * par, lyx::pos_type pos, int & y) const; /** returns the firstrow, this could be done with the above too but IMO it's stupid to have to allocate a dummy y all the time I need the first row @@ -303,7 +286,7 @@ public: to the beginning of this word. With SelectSelectedWord can this be highlighted really */ - WordLangTuple selectNextWordToSpellcheck(BufferView *, float & value) const; + WordLangTuple const selectNextWordToSpellcheck(BufferView *, float & value) const; /// void selectSelectedWord(BufferView *); /// returns true if par was empty and was removed @@ -321,9 +304,6 @@ public: bool setfont = true, bool boundary = false) const; /// - float getCursorX(BufferView *, Row *, lyx::pos_type pos, - lyx::pos_type last, bool boundary) const; - /// void setCurrentFont(BufferView *) const; /// @@ -350,8 +330,6 @@ public: /// void cursorLeftOneWord(BufferView *) const; /// - void cursorLeftOneWord(LyXCursor &) const; - /// void cursorRightOneWord(BufferView *) const; /// void cursorUpParagraph(BufferView *) const; @@ -362,6 +340,10 @@ public: /// void cursorEnd(BufferView *) const; /// + void cursorPrevious(BufferView * bv); + /// + void cursorNext(BufferView * bv); + /// void cursorTab(BufferView *) const; /// void cursorTop(BufferView *) const; @@ -372,12 +354,6 @@ public: /// void backspace(BufferView *); /// - void deleteWordForward(BufferView *); - /// - void deleteWordBackward(BufferView *); - /// - void deleteLineForward(BufferView *); - /// bool selectWordWhenUnderCursor(BufferView *, word_location const); /// @@ -392,11 +368,6 @@ public: /// Change the case of the word at cursor position. void changeCase(BufferView *, TextCase action); /// - void changeRegionCase(BufferView * bview, - LyXCursor const & from, - LyXCursor const & to, - LyXText::TextCase action); - /// void transposeChars(BufferView &); /** returns a printed row in a pixmap. The y value is needed to @@ -456,6 +427,11 @@ public: bool gotoNextInset(BufferView *, std::vector const & codes, string const & contents = string()) const; /// + void gotoInset(BufferView * bv, std::vector const & codes, + bool same_content); + /// + void gotoInset(BufferView * bv, Inset::Code code, bool same_content); + /// /* for the greater insets */ @@ -464,14 +440,6 @@ public: /// void checkParagraph(BufferView *, Paragraph * par, lyx::pos_type pos); /// - int numberOfCell(Paragraph * par, lyx::pos_type pos) const; - /// - void removeTableRow(LyXCursor & cursor) const; - /// - bool isEmptyTableCell() const; - /// - void toggleAppendix(BufferView *); - /// int workWidth(BufferView *) const; /// int workWidth(BufferView *, Inset * inset) const; @@ -512,25 +480,44 @@ public: private: /// mutable Row * firstrow; - /// mutable Row * lastrow; + /// + void cursorLeftOneWord(LyXCursor &) const; + + /// + float getCursorX(BufferView *, Row *, lyx::pos_type pos, + lyx::pos_type last, bool boundary) const; + /// + void changeRegionCase(BufferView * bv, + LyXCursor const & from, + LyXCursor const & to, + LyXText::TextCase action); + /// used in setlayout + void makeFontEntriesLayoutSpecific(Buffer const *, Paragraph * par); + + /** forces the redrawing of a paragraph. Needed when manipulating a + right address box + */ + void redoDrawingOfParagraph(BufferView *, LyXCursor const & cursor); + /** Copybuffer for copy environment type. Asger has learned that this should be a buffer-property instead Lgb has learned that 'char' is a lousy type for non-characters */ string copylayouttype; + /** inserts a new row behind the specified row, increments the touched counters */ void insertRow(Row * row, Paragraph * par, lyx::pos_type pos) const; - /** removes the row and reset the touched counters */ + /// removes the row and reset the touched counters void removeRow(Row * row) const; - /** remove all following rows of the paragraph of the specified row. */ + /// remove all following rows of the paragraph of the specified row. void removeParagraph(Row * row) const; - /** insert the specified paragraph behind the specified row */ + /// insert the specified paragraph behind the specified row void insertParagraph(BufferView *, Paragraph * par, Row * row) const; @@ -614,7 +601,7 @@ private: // fix the cursor `cur' after a characters has been deleted at `where' // position. Called by deleteEmptyParagraphMechanism - void fixCursorAfterDelete(BufferView * bview, + void fixCursorAfterDelete(BufferView * bv, LyXCursor & cur, LyXCursor const & where) const; @@ -625,10 +612,24 @@ private: public: /** Updates all counters starting BEHIND the row. Changed paragraphs * with a dynamic left margin will be rebroken. */ - void updateCounters(BufferView *, Row * row) const; + void updateCounters(BufferView *) const; + /// + void update(BufferView * bv, bool changed = true); + /** + * Returns an inset if inset was hit, or 0 if not. + * If hit, the coordinates are changed relative to the inset. + */ + Inset * checkInsetHit(BufferView * bv, int & x, int & y) const; + private: /// void setCounter(Buffer const *, Paragraph * par) const; + /// + void deleteWordForward(BufferView *); + /// + void deleteWordBackward(BufferView *); + /// + void deleteLineForward(BufferView *); /* * some low level functions