]> git.lyx.org Git - lyx.git/blobdiff - src/lyxtext.h
Remove unused font variable which caused a warning.
[lyx.git] / src / lyxtext.h
index 5d55c9ddff2513d63566f69e0a94bf517cc9691e..0cb33eac0d73f6a629fb9769fd45408ba5dc0fbb 100644 (file)
 #endif
 
 #include "lyxfont.h"
-#include "undo.h"
 #include "lyxcursor.h"
 #include "paragraph.h"
 #include "layout.h"
 #include "lyxrow.h"
 #include "vspace.h"
+#include "LColor.h"
 
 class Buffer;
 class BufferParams;
@@ -38,13 +38,13 @@ public:
        ///
        enum text_status {
                ///
-               UNCHANGED,
+               UNCHANGED = 0,
                ///
-               NEED_MORE_REFRESH,
+               CHANGED_IN_DRAW = 1,
                ///
-               NEED_VERY_LITTLE_REFRESH,
+               NEED_VERY_LITTLE_REFRESH = 2,
                ///
-               CHANGED_IN_DRAW
+               NEED_MORE_REFRESH = 3
        };
        ///
        enum word_location {
@@ -64,7 +64,7 @@ public:
        /// Destructor
        ~LyXText();
 
-       void init(BufferView *);
+       void init(BufferView *, bool reinit = false);
        ///
        mutable int number_of_rows;
        ///
@@ -182,12 +182,18 @@ public:
        mutable Row * refresh_row;
        ///
        int refresh_pos;
-       
+
+       /// give and set the LyXText status
+       text_status status() const;
+       void status(BufferView *, text_status) const;
+
+private:       
        /** wether the screen needs a refresh,
           starting with refresh_y
           */
-       mutable text_status status;
+       mutable text_status status_;
        
+public:
        /** returns a pointer to the row near the specified y-coordinate
          (relative to the whole text). y is set to the real beginning
          of this row
@@ -223,6 +229,9 @@ public:
 
        /** The structrue that keeps track of the selections set. */
        struct Selection {
+               Selection() 
+                       : set_(false), mark_(false)
+                       {}
                bool set() const {
                        return set_;
                }
@@ -260,9 +269,12 @@ public:
        string const selectionAsString(Buffer const *) const;
        
        /// select the word we need depending on word_location
-       void getWord(LyXCursor & from, LyXCursor & to, word_location) const;
+       void getWord(LyXCursor & from, LyXCursor & to, 
+                    word_location const) const;
        /// just selects the word the cursor is in
-       void selectWord(BufferView *);
+       void selectWord(BufferView *, word_location const = WHOLE_WORD);
+       /// returns the inset at cursor (if it exists), 0 otherwise
+       Inset * getInset() const;
 
        /** 'selects" the next word, where the cursor is not in 
         and returns this word as string. THe cursor will be moved 
@@ -341,7 +353,8 @@ public:
        ///
        void deleteLineForward(BufferView *);
        ///
-       bool selectWordWhenUnderCursor(BufferView *);
+       bool selectWordWhenUnderCursor(BufferView *, 
+                                      word_location const = WHOLE_WORD);
        ///
        enum TextCase {
                ///
@@ -354,7 +367,12 @@ public:
        /// Change the case of the word at cursor position.
        void changeCase(BufferView *, TextCase action);
        ///
-       void transposeChars(BufferView const &);
+       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
          decide, wether it is selected text or not. This is a strange
@@ -363,6 +381,8 @@ public:
        void getVisibleRow(BufferView *, int y_offset, int x_offset,
                           Row * row_ptr, int y, bool cleared=false);
 
+       /// 
+       void toggleInset(BufferView *);
        ///
        void cutSelection(BufferView *, bool = true);
        ///
@@ -373,14 +393,6 @@ public:
        void copyEnvironmentType();
        ///
        void pasteEnvironmentType(BufferView *);
-       ///
-       void insertFootnote();
-       ///
-       void insertMarginpar();
-       ///
-       void insertFigure();
-       ///
-       void insertTabular();
 
        /** the DTP switches for paragraphs. LyX will store the top settings
         always in the first physical paragraph, the bottom settings in the
@@ -430,40 +442,6 @@ public:
        int numberOfCell(Paragraph * par,
                         Paragraph::size_type pos) const;
        ///
-       Paragraph * getParFromID(int id);
-
-       // undo functions
-       /// returns false if no undo possible
-       bool textUndo(BufferView *);
-       /// returns false if no redo possible
-       bool textRedo(BufferView *);
-       /// used by TextUndo/TextRedo
-       bool textHandleUndo(BufferView *, Undo * undo);
-       /// makes sure the next operation will be stored
-       void finishUndo();
-       /// this is dangerous and for internal use only
-       void freezeUndo();
-       /// this is dangerous and for internal use only
-       void unFreezeUndo();
-       /// the flag used by FinishUndo();
-       mutable bool undo_finished;
-       /// a flag
-       bool undo_frozen;
-       ///
-       void setUndo(Buffer *, Undo::undo_kind kind,
-                    Paragraph const * before,
-                    Paragraph const * end) const;
-       ///
-       void setRedo(Buffer *, Undo::undo_kind kind,
-                    Paragraph const * before,
-                    Paragraph const * end);
-       ///
-       Undo * createUndo(Buffer *, Undo::undo_kind kind,
-                         Paragraph const * before,
-                         Paragraph const * end) const;
-       /// for external use in lyx_cb.C
-       void setCursorParUndo(Buffer *);
-       ///
        void removeTableRow(LyXCursor & cursor) const;
        ///
        bool isEmptyTableCell() const;
@@ -506,8 +484,6 @@ public:
                        (bidi_start <= pos && pos <= bidi_end);
        }
 private:
-       ///
-       void init();
        ///
        mutable Row * firstrow;
        ///
@@ -556,9 +532,11 @@ private:
        void deleteEmptyParagraphMechanism(BufferView *,
                                           LyXCursor const & old_cursor) const;
 
+public:
        /** Updates all counters starting BEHIND the row. Changed paragraphs
         * with a dynamic left margin will be rebroken. */ 
        void updateCounters(BufferView *, Row * row) const;
+private:
        ///
        void setCounter(Buffer const *, Paragraph * par) const;
    
@@ -621,6 +599,8 @@ private:
          */
        bool hfillExpansion(Buffer const *, Row const * row_ptr,
                            Paragraph::size_type pos) const;
+       /// 
+       LColor::color backgroundColor();
 
 
        ///
@@ -654,12 +634,15 @@ private:
 
        ///
        void charInserted();
+public:
        //
        // special owner functions
        ///
        Paragraph * ownerParagraph() const;
        //
        Paragraph * ownerParagraph(Paragraph *) const;
+       // set it searching first for the right owner using the paragraph id
+       Paragraph * ownerParagraph(int id, Paragraph *) const;
 };