// -*- C++ -*-
/* This file is part of
- * ======================================================
+ * ======================================================
*
* LyX, The Document Processor
*
#pragma interface
#endif
-#define NEW_TEXT 1
//#define NEW_TABLE 1
#ifdef NEW_TABLE
#include <list>
#endif
-#ifdef NEW_TEXT
#include <vector>
-//#include <deque>
-//#define __STD_STUFF 1
-//#include <rope.h>
-#endif
-#include "definitions.h"
#include "insets/lyxinset.h"
+#include "insets/insetbib.h"
#include "table.h"
-#include "support/textutils.h"
#include "vspace.h"
-#include "insets/insetbib.h"
#include "layout.h"
class BufferParams;
/// A LyXParagraph holds all text, attributes and insets in a text paragraph
class LyXParagraph {
public:
+ ///
+ enum PEXTRA_TYPE {
+ ///
+ PEXTRA_NONE,
+ ///
+ PEXTRA_INDENT,
+ ///
+ PEXTRA_MINIPAGE,
+ ///
+ PEXTRA_FLOATFLT
+ };
+ ///
+ enum MINIPAGE_ALIGNMENT {
+ ///
+ MINIPAGE_ALIGN_TOP,
+ ///
+ MINIPAGE_ALIGN_MIDDLE,
+ ///
+ MINIPAGE_ALIGN_BOTTOM
+ };
+ ///
+ enum META_KIND {
+ ///
+ META_FOOTNOTE = 1,
+ ///
+ META_MARGIN,
+ ///
+ META_FIG,
+ ///
+ META_TAB,
+ ///
+ META_ALGORITHM,
+ ///
+ META_WIDE_FIG,
+ ///
+ META_WIDE_TAB,
+ ///
+ META_HFILL,
+ ///
+ META_NEWLINE,
+ ///
+ META_PROTECTED_SEPARATOR,
+ ///
+ META_INSET
+ };
+
/// The footnoteflag
enum footnote_flag {
///
id = id_arg;
}
-#ifndef NEW_TEXT
- /** allocates more memory for the specified paragraph
- pos is needed to specify the paragraph correctly. Remember the
- closed footnotes
- */
- void Enlarge(int pos, int number);
- /** make the allocated memory fit to the needed size
- used to make a paragraph smaller
- */
- void FitSize();
-#endif
-
///
void read();
}
-#ifdef NEW_TEXT
///
typedef char value_type;
///
TextContainer text;
///
size_type size() const { return text.size(); }
-#else
- ///
- int last;
- ///
- int size;
- ///
- char * text;
-#endif
///
VSpace added_space_top;
*/
LyXParagraph * NextAfterFootnote();
///
+ LyXParagraph * NextAfterFootnote() const;
+ ///
LyXParagraph * PreviousBeforeFootnote();
///
LyXParagraph * LastPhysicalPar();
///
LyXParagraph * FirstPhysicalPar();
-#ifdef NEW_TEXT
/// returns the physical paragraph
LyXParagraph * ParFromPos(size_type pos);
/// returns the position in the physical par
int PositionInParFromPos(size_type pos);
-#else
- /// returns the physical paragraph
- LyXParagraph * ParFromPos(int pos);
- /// returns the position in the physical par
- int PositionInParFromPos(int pos);
-#endif
/// for the environments
LyXParagraph * DepthHook(int depth);
void SetOnlyLayout(LyXTextClass::LayoutList::size_type new_layout);
///
int GetFirstCounter(int i);
-#ifdef NEW_TEXT
///
size_type Last();
///
///
char GetChar(size_type pos);
///
+ char GetChar(size_type pos) const;
+ ///
void SetFont(size_type pos, LyXFont const & font);
///
string GetWord(size_type &);
/// Returns the height of the highest font in range
- LyXFont::FONT_SIZE HighestFontInRange(size_type startpos, size_type endpos) const;
+ LyXFont::FONT_SIZE HighestFontInRange(size_type startpos,
+ size_type endpos) const;
///
void InsertChar(size_type pos, char c);
///
void CutIntoMinibuffer(size_type pos);
///
void InsertFromMinibuffer(size_type pos);
+
///
- bool IsHfill(size_type pos) {
- return IsHfillChar(GetChar(pos));
- }
-
- ///
- bool IsInset(size_type pos) {
- return IsInsetChar(GetChar(pos));
- }
-
- ///
- bool IsFloat(size_type pos) {
- return IsFloatChar(GetChar(pos));
- }
-
- ///
- bool IsNewline(size_type pos) {
- bool tmp = false;
- if (pos >= 0)
- tmp= IsNewlineChar(GetChar(pos));
- return tmp;
- }
-
- ///
- bool IsSeparator(size_type pos) {
- return IsSeparatorChar(GetChar(pos));
- }
-
- ///
- bool IsLineSeparator(size_type pos) {
- return IsLineSeparatorChar(GetChar(pos));
- }
-
- ///
- bool IsKomma(size_type pos){
- return IsKommaChar(GetChar(pos));
- }
-
- /// Used by the spellchecker
- bool IsLetter(size_type pos);
-
- ///
- bool IsWord(size_type pos ) {
- return IsWordChar( GetChar(pos) ) ;
- }
-#else
- ///
- int Last();
- ///
- void Erase(int pos);
- /** the flag determines wether the layout should be copied
- */
- void BreakParagraph(int pos, int flag);
- ///
- void BreakParagraphConservative(int pos);
- /** Get unistantiated font setting. Returns the difference
- between the characters font and the layoutfont.
- This is what is stored in the fonttable
- */
- LyXFont GetFontSettings(int pos);
- /** Get fully instantiated font. If pos == -1, use the layout
- 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 LyXFont::INHERIT, LyXFont::IGNORE or
- LyXFont::TOGGLE.
- */
- LyXFont getFont(int pos);
- ///
- char GetChar(int pos);
- ///
- void SetFont(int pos, LyXFont const & font);
- ///
- string GetWord(int &);
- /// Returns the height of the highest font in range
- LyXFont::FONT_SIZE HighestFontInRange(int startpos, int endpos) const;
- ///
- void InsertChar(int pos, char c);
- ///
- void InsertInset(int pos, Inset * inset);
- ///
- Inset * GetInset(int pos);
- ///
- Inset * ReturnNextInsetPointer(int & pos);
- ///
- void OpenFootnote(int pos);
- ///
- void CloseFootnote(int pos);
- /// important for cut and paste
- void CopyIntoMinibuffer(int pos);
- ///
- void CutIntoMinibuffer(int pos);
+ bool IsHfill(size_type pos) const;
///
- void InsertFromMinibuffer(int pos);
+ bool IsInset(size_type pos) const;
///
- bool IsHfill(int pos) {
- return IsHfillChar(GetChar(pos));
- }
-
+ bool IsFloat(size_type pos) const;
///
- bool IsInset(int pos) {
- return IsInsetChar(GetChar(pos));
- }
-
+ bool IsNewline(size_type pos) const;
///
- bool IsFloat(int pos) {
- return IsFloatChar(GetChar(pos));
- }
-
+ bool IsSeparator(size_type pos) const;
///
- bool IsNewline(int pos) {
- bool tmp = false;
- if (pos >= 0)
- tmp= IsNewlineChar(GetChar(pos));
- return tmp;
- }
-
+ bool IsLineSeparator(size_type pos) const;
///
- bool IsSeparator(int pos) {
- return IsSeparatorChar(GetChar(pos));
- }
-
- ///
- bool IsLineSeparator(int pos) {
- return IsLineSeparatorChar(GetChar(pos));
- }
-
- ///
- bool IsKomma(int pos){
- return IsKommaChar(GetChar(pos));
- }
-
+ bool IsKomma(size_type pos) const;
/// Used by the spellchecker
- bool IsLetter(int pos);
-
+ bool IsLetter(size_type pos) const;
///
- bool IsWord( int pos ) {
- return IsWordChar( GetChar(pos) ) ;
- }
-#endif
+ bool IsWord(size_type pos) const;
+
/** This one resets all layout and dtp switches but not the font
of the single characters
*/
void SetPExtraType(int type, char const * width, char const * widthp);
///
void UnsetPExtraType();
-#ifdef NEW_TEXT
///
bool RoffContTableRows(FILE * file, size_type i,
int actcell);
void DocBookContTableRows(string & file, string & extra, int & desc_on,
size_type i,
int current_cell_number, int & column);
-#else
- ///
- bool RoffContTableRows(FILE * file, int i, int actcell);
- ///
- void DocBookContTableRows(string & file, string & extra, int & desc_on,
- int i, int current_cell_number, int & column);
-#endif
///
bool linuxDocConvertChar(char c, string & sgml_string);
///
is limited. (Asger)
*/
struct FontTable {
-#ifdef NEW_TEXT
/// Start position of paragraph this font attribute covers
size_type pos;
/// Ending position of paragraph this font attribute covers
size_type pos_end;
-#else
- /// Start position of paragraph this font attribute covers
- int pos;
- /// Ending position of paragraph this font attribute covers
- int pos_end;
-#endif
/** Font. Interpretation of the font values:
If a value is LyXFont::INHERIT_*, it means that the font
attribute is inherited from either the layout of this
};
///
struct InsetTable {
-#ifdef NEW_TEXT
///
size_type pos;
-#else
- ///
- int pos;
-#endif
///
Inset * inset;
#ifndef NEW_TABLE
bool SimpleTeXOnePar(string & file, TexRow & texrow);
///
bool SimpleTeXOneTablePar(string & file, TexRow & texrow);
-#ifdef NEW_TEXT
///
bool TeXContTableRows(string & file, size_type i,
int current_cell_number,
LyXLayout const & style,
size_type & i,
int & column, char const c);
-#else
- ///
- bool TeXContTableRows(string & file, int i, int current_cell_number,
- int & column, TexRow & texrow);
- ///
- void SimpleTeXBlanks(string & file, TexRow & texrow,
- int const i, int & column, LyXFont const & font,
- LyXLayout const & style);
- ///
- void SimpleTeXSpecialChars(string & file, TexRow & texrow,
- LyXFont & font, LyXFont & running_font,
- LyXFont & basefont, bool & open_font,
- LyXLayout const & style,
- int & i, int & column, char const c);
-#endif
///
int id;
///
static unsigned int paragraph_id;
};
-
#endif