X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxtext.h;h=897808cca860789ac90c57995140309b4efb7b67;hb=80328d2053869dc089c23c25adbed4167d7bf0b1;hp=f43169b1ecc824630f6138f44d023986bebc2818;hpb=97a59984b15c48db0caae7db1245750a93559984;p=lyx.git diff --git a/src/lyxtext.h b/src/lyxtext.h index f43169b1ec..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); @@ -149,13 +144,6 @@ public: /// FIXME: move to TextMetrics. pit_type getPitNearY(BufferView & bv, int y); - /** returns the column near the specified x-coordinate of the row - x is set to the real beginning of this column - */ - /// FIXME: move to TextMetrics. - pos_type getColumnNearX(BufferView const & bv, int right_margin, - pit_type pit, Row const & row, int & x, bool & boundary) const; - /** Find the word under \c from in the relative location * defined by \c word_location. * @param from return here the start of the word @@ -165,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, @@ -350,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; @@ -382,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 @@ -398,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