* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-1999 The LyX Team.
+ * Copyright 1995-2000 The LyX Team.
*
* ====================================================== */
#ifndef LAYOUT_H
#define LAYOUT_H
+#include <vector>
+
#ifdef __GNUG__
#pragma interface
#endif
-#include <vector>
-using std::vector;
-using std::pair;
-
#include "lyxlex.h"
#include "lyxfont.h"
#include "Spacing.h"
+
/// Reads the style files
extern void LyXSetStyle();
/// The different output types
enum OutputType {
///
- LATEX,
+ LATEX = 1,
///
LINUXDOC,
///
/// The different margin types
enum LYX_MARGIN_TYPE {
///
- MARGIN_MANUAL,
+ MARGIN_MANUAL = 1,
///
MARGIN_FIRST_DYNAMIC,
///
MARGIN_RIGHT_ADDRESS_BOX
};
+
///
enum LyXAlignment {
///
///
LYX_ALIGN_SPECIAL = 32
};
-inline void operator|=(LyXAlignment & la1, LyXAlignment la2) {
+
+
+inline
+void operator|=(LyXAlignment & la1, LyXAlignment la2) {
la1 = static_cast<LyXAlignment>(la1 | la2);
}
/// The different LaTeX-Types
enum LYX_LATEX_TYPES {
///
- LATEX_PARAGRAPH,
+ LATEX_PARAGRAPH = 1,
///
LATEX_COMMAND,
///
LABEL_FIRST_COUNTER = LABEL_COUNTER_CHAPTER
};
-
+enum LYX_END_LABEL_TYPES {
+ ///
+ END_LABEL_NO_LABEL,
+ ///
+ END_LABEL_BOX,
+ ///
+ END_LABEL_FILLED_BOX,
+ ///
+ END_LABEL_STATIC,
+ ///
+ END_LABEL_ENUM_FIRST = END_LABEL_NO_LABEL,
+ ///
+ END_LABEL_ENUM_LAST = END_LABEL_STATIC
+};
+
/* Fix labels are printed flushright, manual labels flushleft.
* MARGIN_MANUAL and MARGIN_FIRST_DYNAMIC are *only* for LABEL_MANUAL,
* MARGIN_DYNAMIC and MARGIN_STATIC are *not* for LABEL_MANUAL.
void readAlign(LyXLex &);
void readAlignPossible(LyXLex &);
void readLabelType(LyXLex &);
+ void readEndLabelType(LyXLex &);
void readMargin(LyXLex &);
void readLatexType(LyXLex &);
void readSpacing(LyXLex &);
string const & obsoleted_by() const { return obsoleted_by_; }
string const & latexname() const { return latexname_; }
string const & labelstring() const { return labelstring_; }
+ string const & endlabelstring() const { return endlabelstring_; }
string const & preamble() const { return preamble_; }
string const & latexparam() const { return latexparam_; }
- string const & labelstring_appendix() const { return labelstring_appendix_; }
+ string const & labelstring_appendix() const {
+ return labelstring_appendix_;
+ }
/** Default font for this layout/environment.
The main font for this kind of environment. If an attribute has
LyXFont::INHERITED_*, it means that the value is specified by
Spacing spacing;
///
- LyXAlignment align; // add approp. signedness
+ LyXAlignment align;
///
- LyXAlignment alignpossible; // add approp. signedness
+ LyXAlignment alignpossible;
///
- char labeltype; // add approp. signedness
+ char labeltype; // add approp. type
///
- char margintype; // add approp. signedness
+ char endlabeltype;
+
+ ///
+ LYX_MARGIN_TYPE margintype;
///
bool fill_top;
}
///
bool isCommand() const {
- return latextype == LATEX_COMMAND;
+ return latextype == LATEX_COMMAND;
}
///
bool isEnvironment() const {
/// Label string. "Abstract", "Reference", "Caption"...
string labelstring_;
+ ///
+ string endlabelstring_;
+
/// Label string inside appendix. "Appendix", ...
string labelstring_appendix_;
class LyXTextClass {
public:
///
- typedef vector<LyXLayout> LayoutList;
-
+ typedef std::vector<LyXLayout> LayoutList;
+ ///
+ typedef LayoutList::const_iterator const_iterator;
///
+ typedef LayoutList::size_type size_type;
+ ///
+ explicit
LyXTextClass (string const & = string(),
string const & = string(),
string const & = string());
///
- LayoutList::const_iterator begin() const { return layoutlist.begin(); }
+ const_iterator begin() const { return layoutlist.begin(); }
///
- LayoutList::const_iterator end() const { return layoutlist.end(); }
+ const_iterator end() const { return layoutlist.end(); }
///
bool Read(string const & filename, bool merge = false);
///
int maxcounter() const { return maxcounter_; }
///
- LayoutList::size_type numLayouts() const { return layoutlist.size(); }
+ size_type numLayouts() const { return layoutlist.size(); }
///
- LyXLayout const & operator[](LayoutList::size_type i) const {
+ LyXLayout const & operator[](size_type i) const {
return layoutlist[i];
}
private:
bool loaded;
};
+
///
-inline void operator|=(LyXTextClass::Provides & p1, LyXTextClass::Provides p2)
+inline
+void operator|=(LyXTextClass::Provides & p1, LyXTextClass::Provides p2)
{
p1 = static_cast<LyXTextClass::Provides>(p1 | p2);
}
+///
+std::ostream & operator<<(std::ostream & os, LyXTextClass::PageSides p);
+
+
///
class LyXTextClassList {
public:
///
- typedef vector<LyXTextClass> ClassList;
+ typedef std::vector<LyXTextClass> ClassList;
+ ///
+ typedef ClassList::const_iterator const_iterator;
+ ///
+ typedef ClassList::size_type size_type;
+ ///
+ const_iterator begin() const { return classlist.begin(); }
+ ///
+ const_iterator end() const { return classlist.end(); }
+
/// Gets layout structure from layout number and textclass number
- LyXLayout const & Style(ClassList::size_type textclass,
- LyXTextClass::LayoutList::size_type layout) const;
+ LyXLayout const & Style(size_type textclass,
+ LyXTextClass::size_type layout) const;
/// Gets layout number from textclass number and layout name
- pair<bool, LyXTextClass::LayoutList::size_type>
- NumberOfLayout(ClassList::size_type textclass,
+ std::pair<bool, LyXTextClass::size_type>
+ NumberOfLayout(size_type textclass,
string const & name) const;
/// Gets a layout name from layout number and textclass number
string const &
- NameOfLayout(ClassList::size_type textclass,
- LyXTextClass::LayoutList::size_type layout) const;
+ NameOfLayout(size_type textclass,
+ LyXTextClass::size_type layout) const;
/** Gets textclass number from name.
Returns -1 if textclass name does not exist
*/
- pair<bool, ClassList::size_type>
+ std::pair<bool, size_type>
NumberOfClass(string const & textclass) const;
///
- string const & NameOfClass(ClassList::size_type number) const;
+ string const & NameOfClass(size_type number) const;
///
- string const & LatexnameOfClass(ClassList::size_type number) const;
+ string const & LatexnameOfClass(size_type number) const;
///
- string const & DescOfClass(ClassList::size_type number) const;
+ string const & DescOfClass(size_type number) const;
///
- LyXTextClass const & TextClass(ClassList::size_type textclass) const;
+ LyXTextClass const & TextClass(size_type textclass) const;
/** Read textclass list.
Returns false if this fails
/** Load textclass.
Returns false if this fails
*/
- bool Load(ClassList::size_type number) const;
+ bool Load(size_type number) const;
private:
///
mutable ClassList classlist;