#ifndef CONTEXT_H
#define CONTEXT_H
-#include "TextClass.h"
+#include "tex2lyx.h"
#include <iosfwd>
}
void init()
{
- size = "normal";
+ size = "default";
family = "default";
series = "default";
shape = "default";
+ language = "default";
}
std::string size;
std::string family;
std::string series;
std::string shape;
+ std::string language;
};
class Context {
public:
Context(bool need_layout_,
- TextClass const & textclass_,
- Layout_ptr layout_ = Layout_ptr(),
- Layout_ptr parent_layout_= Layout_ptr(),
+ TeX2LyXDocClass const & textclass_,
+ Layout const * layout_ = 0,
+ Layout const * parent_layout_= 0,
TeXFont font_ = TeXFont());
~Context();
/// Add extra stuff if not already there
void add_extra_stuff(std::string const &);
+ /*!
+ * Add paragraph-level extra stuff if not already there. This
+ * will be reset at the next check_layout()
+ */
+ void add_par_extra_stuff(std::string const &);
+
/// Do we need to output some \\begin_layout command before the
/// next characters?
bool need_layout;
/// Do we need to output some \\end_layout command
bool need_end_layout;
- /// We may need to add something after this \\begin_layout command
+ /// We may need to add something after each \\begin_layout command
std::string extra_stuff;
+ /// We may need to add something after this \\begin_layout command
+ std::string par_extra_stuff;
/// If there has been an \\begin_deeper, we'll need a matching
/// \\end_deeper
bool need_end_deeper;
static bool empty;
/// The textclass of the document. Could actually be a global variable
- TextClass const & textclass;
+ TeX2LyXDocClass const & textclass;
/// The layout of the current paragraph
- Layout_ptr layout;
+ Layout const * layout;
/// The layout of the outer paragraph (for environment layouts)
- Layout_ptr parent_layout;
+ Layout const * parent_layout;
/// font attributes of this context
TeXFont font;
/// font attributes of normal text
static TeXFont normalfont;
+
+private:
+ void begin_layout(std::ostream & os, Layout const * const & l);
};