]> git.lyx.org Git - lyx.git/blobdiff - src/lyxtext.h
remove noload/don't typeset
[lyx.git] / src / lyxtext.h
index f5fd74c6111a72b8345deeacbe6cb80d0e8e250d..92893fa1b6afd2144b5f022af431995f14e21f2c 100644 (file)
@@ -31,6 +31,7 @@ class Row;
 class Spacing;
 class UpdatableInset;
 class VSpace;
+class WordLangTuple;
 
 
 /**
@@ -66,7 +67,7 @@ public:
 
        /// Constructor
        LyXText(BufferView *);
-       ///
+       /// sets inset as owner
        LyXText(InsetText *);
 
        /// Destructor
@@ -74,8 +75,6 @@ public:
 
        void init(BufferView *, bool reinit = false);
        ///
-       mutable int number_of_rows;
-       ///
        mutable int height;
        ///
        mutable unsigned int width;
@@ -121,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
          */
@@ -133,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
@@ -165,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
          */
@@ -177,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 *);
 
        ///
@@ -185,8 +175,6 @@ public:
        ///
        mutable int refresh_y;
        ///
-       int refresh_height;
-       ///
        int refresh_width;
        ///
        int refresh_x;
@@ -200,6 +188,9 @@ public:
        ///
        void status(BufferView *, text_status) const;
 
+       ///
+       Inset::RESULT dispatch(FuncRequest const & cmd);
+
 private:
        /** wether the screen needs a refresh,
           starting with refresh_y
@@ -222,8 +213,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
@@ -302,7 +292,7 @@ public:
         to the beginning of this word.
         With SelectSelectedWord can this be highlighted really
         */
-       string const selectNextWordToSpellcheck(BufferView *, float & value) const;
+       WordLangTuple const selectNextWordToSpellcheck(BufferView *, float & value) const;
        ///
        void selectSelectedWord(BufferView *);
        /// returns true if par was empty and was removed
@@ -320,9 +310,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;
 
        ///
@@ -349,8 +336,6 @@ public:
        ///
        void cursorLeftOneWord(BufferView *) const;
        ///
-       void cursorLeftOneWord(LyXCursor &) const;
-       ///
        void cursorRightOneWord(BufferView *) const;
        ///
        void cursorUpParagraph(BufferView *) const;
@@ -371,12 +356,6 @@ public:
        ///
        void backspace(BufferView *);
        ///
-       void deleteWordForward(BufferView *);
-       ///
-       void deleteWordBackward(BufferView *);
-       ///
-       void deleteLineForward(BufferView *);
-       ///
        bool selectWordWhenUnderCursor(BufferView *,
                                       word_location const);
        ///
@@ -391,11 +370,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
@@ -455,6 +429,11 @@ public:
        bool gotoNextInset(BufferView *, std::vector<Inset::Code> const & codes,
                           string const & contents = string()) const;
        ///
+       void gotoInset(BufferView * bv, std::vector<Inset::Code> const & codes,
+                                               bool same_content);
+       ///
+       void gotoInset(BufferView * bv, Inset::Code code, bool same_content);
+       ///
 
        /* for the greater insets */
 
@@ -463,14 +442,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;
@@ -511,25 +482,48 @@ public:
 private:
        ///
        mutable Row * firstrow;
-
        ///
        mutable Row * lastrow;
 
+       ///
+       void cursorLeftOneWord(LyXCursor &) const;
+       ///
+       void cursorPrevious(BufferView * bv);
+       ///
+       void cursorNext(BufferView * bv);
+       ///
+       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;
 
@@ -589,6 +583,9 @@ private:
        /// paint appendix marker
        void paintRowAppendix(DrawRowParams & p);
 
+       /// paint page break marker. Returns its height.
+       int paintPageBreak(string const & label, int y, DrawRowParams & p);
        /// paint env depth bar
        void paintRowDepthBar(DrawRowParams & p);
 
@@ -610,7 +607,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;
 
@@ -621,10 +618,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
@@ -666,11 +677,12 @@ private:
        ///
        lyx::pos_type beginningOfMainBody(Buffer const *, Paragraph const * par) const;
 
-       /** Returns the left beginning of the text.
-         This information cannot be taken from the layouts-objekt, because
-         in LaTeX the beginning of the text fits in some cases
-         (for example sections) exactly the label-width.
-         */
+       /** 
+        * Returns the left beginning of the text.
+        * This information cannot be taken from the layout object, because
+        * in LaTeX the beginning of the text fits in some cases
+        * (for example sections) exactly the label-width.
+        */
        int leftMargin(BufferView *, Row const * row) const;
        ///
        int rightMargin(Buffer const *, Row const * row) const;