X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxtext.h;h=897808cca860789ac90c57995140309b4efb7b67;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=cfa42e1d94d20a3ff01e1fe5bad51860d4cdd64f;hpb=f1d90e17d8c2b241e33921d54d041e5635d7a855;p=lyx.git diff --git a/src/lyxtext.h b/src/lyxtext.h index cfa42e1d94..897808cca8 100644 --- a/src/lyxtext.h +++ b/src/lyxtext.h @@ -94,11 +94,6 @@ public: /// FIXME: replace LCursor with DocIterator. void setFont(LCursor & cur, LyXFont const &, bool toggleall = false); - /// returns pos in given par at given x coord. - /// FIXME: move to TextMetrics. - pos_type x2pos(BufferView const &, pit_type pit, int row, int x) const; - int pos2x(pit_type pit, pos_type pos) const; - /// void toggleFree(LCursor & cur, LyXFont const &, bool toggleall = false); @@ -158,10 +153,17 @@ public: /// just selects the word the cursor is in void selectWord(LCursor & cur, word_location loc); - /// accept selected change - void acceptChange(LCursor & cur); - /// reject selected change - void rejectChange(LCursor & cur); + /// what type of change operation to make + enum ChangeOp { + ACCEPT, + REJECT + }; + /// accept or reject the selected change + void acceptOrRejectChanges(LCursor & cur, ChangeOp op); + /// accept the changes within the complete LyXText + void acceptChanges(BufferParams const & bparams); + /// reject the changes within the complete LyXText + void rejectChanges(BufferParams const & bparams); /// returns true if par was empty and was removed bool setCursor(LCursor & cur, pit_type par, pos_type pos, @@ -343,12 +345,17 @@ public: int cursorY(BufferView const & bv, CursorSlice const & cursor, bool boundary) const; - /// delete double space or empty paragraphs around old cursor + /// delete double spaces, leading spaces, and empty paragraphs around old cursor. + /// \retval true if a change has happened and we need a redraw. /// FIXME: replace LCursor with DocIterator. This is not possible right /// now because recordUndo() is called which needs a LCursor. - bool deleteEmptyParagraphMechanism(LCursor & cur, + static bool deleteEmptyParagraphMechanism(LCursor & cur, LCursor & old, bool & need_anchor_change); + /// delete double spaces, leading spaces, and empty paragraphs + /// from \first to \last paragraph + void deleteEmptyParagraphMechanism(pit_type first, pit_type last, bool trackChanges); + public: /// the current font settings LyXFont current_font; @@ -375,7 +382,7 @@ private: // fix the cursor `cur' after a characters has been deleted at `where' // position. Called by deleteEmptyParagraphMechanism - void fixCursorAfterDelete(CursorSlice & cur, CursorSlice const & where); + static void fixCursorAfterDelete(CursorSlice & cur, CursorSlice const & where); // At cursor position 0, try to merge the paragraph with the one before it. // Ignore change tracking, i.e., physically remove the end-of-par character @@ -391,6 +398,12 @@ private: void charInserted(); /// set 'number' font property void number(LCursor & cur); + + /// paste plain text at current cursor. + /// \param str string to paste + /// \param asParagraphs whether to paste as paragraphs or as lines + void pasteString(LCursor & cur, docstring const & str, + bool asParagraphs); }; } // namespace lyx