]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.h
* docstream: factorize out some code and introduce odocfstream::reset()
[lyx.git] / src / Paragraph.h
index 9ee108efe7600a9b5ad969b884cf7a95dc3ac722..30c033b4875be3516646fe6dac79048e8be69c04 100644 (file)
 #ifndef PARAGRAPH_H
 #define PARAGRAPH_H
 
+#include "FontEnums.h"
 #include "LayoutPtr.h"
 
 #include "insets/InsetCode.h"
 
-#include "support/docstring.h"
-// FIXME: would be nice to forward declare odocstream instead of
-// including this:
-#include "support/docstream.h"
+#include "support/strfwd.h"
+#include "support/types.h"
 
 namespace lyx {
 
@@ -225,6 +224,9 @@ public:
        /// (logically) erase the given range; return the number of chars actually erased
        int eraseChars(pos_type start, pos_type end, bool trackChanges);
 
+       ///
+       void resetFonts(Font const & font);
+
        /** Get uninstantiated font setting. Returns the difference
            between the characters font and the layoutfont.
            This is what is stored in the fonttable
@@ -238,8 +240,8 @@ public:
            font attached to this paragraph.
            If pos == -2, use the label font of the layout attached here.
            In all cases, the font is instantiated, i.e. does not have any
-           attributes with values Font::INHERIT, Font::IGNORE or
-           Font::TOGGLE.
+           attributes with values FONT_INHERIT, FONT_IGNORE or
+           FONT_TOGGLE.
        */
        Font const getFont(BufferParams const &, pos_type pos,
                              Font const & outerfont) const;
@@ -261,8 +263,8 @@ public:
        /// pos <= size() (there is a dummy font change at the end of each par)
        void setFont(pos_type pos, Font const & font);
        /// Returns the height of the highest font in range
-       Font_size highestFontInRange(pos_type startpos,
-                                       pos_type endpos, Font_size def_size) const;
+       FontSize highestFontInRange(pos_type startpos,
+                                       pos_type endpos, FontSize def_size) const;
        ///
        void insert(pos_type pos, docstring const & str,
                    Font const & font, Change const & change);
@@ -342,6 +344,15 @@ public:
        /// was previously past that position. Return 0 otherwise.
        int checkBiblio(bool track_changes);
 
+       /// To resolve macros properly the paragraphs are numbered.
+       /// Every macro definition is stored with its paragraph number
+       /// as well. Only those macros with a smaller number become 
+       /// visible in a paragraph (plus those in the same paragraph, but
+       /// in an earlier inset.
+       unsigned int macrocontextPosition() const;
+       ///
+       void setMacrocontextPosition(unsigned int pos);
+
        /// For each author, set 'used' to true if there is a change
        /// by this author in the paragraph.
        void checkAuthors(AuthorList const & authorList);