X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetenv.C;h=478d2a9f359ba1940387330a5e2638404f7342f0;hb=10ba1b8918e7da14334bb5573ce2a707671c8b51;hp=b17fe08c2ebf07220a6b77c17a5e511b8cb7cd6c;hpb=e9c09e42d71c625798d8e1d2b2b7ee936284cdbb;p=lyx.git diff --git a/src/insets/insetenv.C b/src/insets/insetenv.C index b17fe08c2e..478d2a9f35 100644 --- a/src/insets/insetenv.C +++ b/src/insets/insetenv.C @@ -1,4 +1,3 @@ -// -*- C++ -*- /** * \file insetenv.C * This file is part of LyX, the document processor. @@ -6,59 +5,58 @@ * * \author André Pönitz * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #include #include "insetenv.h" -#include "gettext.h" -#include "lyxtextclass.h" -#include "lyxlayout.h" + #include "bufferparams.h" -#include "support/LOstream.h" -#include "debug.h" +#include "gettext.h" +#include "paragraph.h" +#include "output_latex.h" +#include "texrow.h" + +#include "support/std_ostream.h" +using std::string; +using std::auto_ptr; using std::ostream; -using std::endl; InsetEnvironment::InsetEnvironment (BufferParams const & bp, string const & name) - : InsetCollapsable(bp) + : InsetText(bp), layout_(bp.getLyXTextClass()[name]) { - setLabel(name); setInsetName(name); - // needs more stuff in lyxlayout. coming in later patches. - //LyXTextClass const & tc = bp.getLyXTextClass(); - //LyXLayout_ptr const & layout = tc.getEnv(name); - //header_ = layout->latexheader; - //footer_ = layout->latexfooter; + setAutoBreakRows(true); + setDrawFrame(true); } -InsetEnvironment::InsetEnvironment(InsetEnvironment const & in, bool same_id) - : InsetCollapsable(in, same_id), header_(in.header_), footer_(in.footer_) +InsetEnvironment::InsetEnvironment(InsetEnvironment const & in) + : InsetText(in), layout_(in.layout_) {} -Inset * InsetEnvironment::clone(Buffer const &, bool same_id) const +auto_ptr InsetEnvironment::doClone() const { - return new InsetEnvironment(*this, same_id); + return auto_ptr(new InsetEnvironment(*this)); } -void InsetEnvironment::write(Buffer const * buf, ostream & os) const +void InsetEnvironment::write(Buffer const & buf, ostream & os) const { - os << "Environment " << getInsetName() << "\"\n"; - InsetCollapsable::write(buf, os); + os << "Environment " << getInsetName() << "\n"; + InsetText::write(buf, os); } -void InsetEnvironment::read(Buffer const * buf, LyXLex & lex) +void InsetEnvironment::read(Buffer const & buf, LyXLex & lex) { - InsetCollapsable::read(buf, lex); + InsetText::read(buf, lex); } @@ -68,11 +66,19 @@ string const InsetEnvironment::editMessage() const } -int InsetEnvironment::latex(Buffer const * buf, - ostream & os, bool fragile, bool fp) const +int InsetEnvironment::latex(Buffer const & buf, ostream & os, + OutputParams const & runparams) const +{ + os << layout_->latexheader; + TexRow texrow; + latexParagraphs(buf, paragraphs(), os, texrow, runparams, + layout_->latexparagraph); + os << layout_->latexfooter; + return texrow.rows(); +} + + +LyXLayout_ptr const & InsetEnvironment::layout() const { - os << header_; - int i = inset.latex(buf, os, fragile, fp); - os << footer_; - return i; + return layout_; }