1 /** A small helper function
2 \author Jean-Marc Lasgouttes (2003)
12 Context::Context(bool need_layout_,
13 LyXTextClass const & textclass_,
14 LyXLayout_ptr layout_, LyXLayout_ptr parent_layout_)
15 : need_layout(need_layout_),
16 need_end_layout(false), need_end_deeper(false),
17 textclass(textclass_),
18 layout(layout_), parent_layout(parent_layout_)
21 layout = textclass.defaultLayout();
22 if (!parent_layout.get())
23 parent_layout = textclass.defaultLayout();
27 void Context::check_layout(ostream & os)
32 os << "\n\\begin_layout " << layout->name() << "\n\n";
34 need_end_layout = true;
35 if (!extra_stuff.empty()) {
43 void Context::check_end_layout(ostream & os)
45 if (need_end_layout) {
46 os << "\n\\end_layout\n";
47 need_end_layout = false;
52 void Context::check_deeper(ostream & os)
54 if (parent_layout->isEnvironment()) {
55 if (need_end_deeper) {
56 // no need to have \end_deeper \begin_deeper
57 // FIXME: This does not work because \par already calls check_end_layout
58 need_end_deeper = false;
60 os << "\n\\begin_deeper \n";
61 need_end_deeper = true;
68 void Context::check_end_deeper(ostream & os)
70 if (need_end_deeper) {
71 os << "\n\\end_deeper \n";
72 need_end_deeper = false;
77 void Context::dump(ostream & os, string const & desc) const
79 os << "\n" << desc <<" [";
83 os << "need_end_layout ";
84 if (!extra_stuff.empty())
85 os << "extrastuff=[" << extra_stuff << "] ";
86 os << "layout=" << layout->name();
87 os << " parent_layout=" << parent_layout->name() << "]" << endl;