From: André Pönitz Date: Thu, 13 Mar 2003 10:06:11 +0000 (+0000) Subject: the environment insets. not active yet. X-Git-Tag: 1.6.10~17251 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1e0432dab60dffe27e78668031a12abf7ab2fb61;p=features.git the environment insets. not active yet. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6477 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/insets/Makefile.am b/src/insets/Makefile.am index 911a3f1d7c..ff82b7183b 100644 --- a/src/insets/Makefile.am +++ b/src/insets/Makefile.am @@ -37,6 +37,8 @@ libinsets_la_SOURCES = \ insetcommand.h \ insetcommandparams.C \ insetcommandparams.h \ + insetenv.C \ + insetenv.h \ inseterror.C \ inseterror.h \ insetert.C \ diff --git a/src/insets/inset.h b/src/insets/inset.h index 4222064255..d75ac50cf6 100644 --- a/src/insets/inset.h +++ b/src/insets/inset.h @@ -125,6 +125,8 @@ public: /// OPTARG_CODE, /// + ENVIRONMENT_CODE, + /// HFILL_CODE, /// NEWLINE_CODE diff --git a/src/insets/insetenv.C b/src/insets/insetenv.C new file mode 100644 index 0000000000..74c200cda7 --- /dev/null +++ b/src/insets/insetenv.C @@ -0,0 +1,78 @@ +// -*- C++ -*- +/** + * \file insetenv.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author André Pönitz + * + * 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" + + +using std::ostream; +using std::endl; + + +InsetEnvironment::InsetEnvironment + (BufferParams const & bp, string const & name) + : InsetCollapsable(bp) +{ + 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; +} + + +InsetEnvironment::InsetEnvironment(InsetEnvironment const & in, bool same_id) + : InsetCollapsable(in, same_id), header_(in.header_), footer_(in.footer_) +{} + + +Inset * InsetEnvironment::clone(Buffer const &, bool same_id) const +{ + return new InsetEnvironment(*this, same_id); +} + + +void InsetEnvironment::write(Buffer const * buf, ostream & os) const +{ + os << "Environment" << getInsetName() << "\"\n"; + InsetCollapsable::write(buf, os); +} + + +void InsetEnvironment::read(Buffer const * buf, LyXLex & lex) +{ + InsetCollapsable::read(buf, lex); +} + + +string const InsetEnvironment::editMessage() const +{ + return _("Opened Environment Inset: ") + getInsetName(); +} + + +int InsetEnvironment::latex(Buffer const * buf, + ostream & os, bool fragile, bool fp) const +{ + os << header_; + int i = inset.latex(buf, os, fragile, fp); + os << footer_; + return i; +} diff --git a/src/insets/insetenv.h b/src/insets/insetenv.h new file mode 100644 index 0000000000..9eb4db1954 --- /dev/null +++ b/src/insets/insetenv.h @@ -0,0 +1,50 @@ +// -*- C++ -*- +/** + * \file insetenv.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author André Pönitz + * + * Full author contact details are available in file CREDITS + */ + +#ifndef INSETENVIRONMENT_H +#define INSETENVIRONMENT_H + +#include "insetcollapsable.h" + + +class InsetEnvironment : public InsetCollapsable { +public: + /// + InsetEnvironment(BufferParams const &, string const & name); + /// + InsetEnvironment(InsetEnvironment const &, bool same_id = false); + /// + void write(Buffer const * buf, std::ostream & os) const; + /// + void read(Buffer const * buf, LyXLex & lex); + /// + Inset * clone(Buffer const &, bool same_id = false) const; + /// + Inset::Code lyxCode() const { return Inset::ENVIRONMENT_CODE; } + /// + int latex(Buffer const *, std::ostream &, bool fragile, bool fp) const; + /// + string const editMessage() const; + /// + bool needFullRow() const { return true; } + /** returns true if, when outputing LaTeX, font changes should + be closed before generating this inset. This is needed for + insets that may contain several paragraphs */ + bool noFontChange() const { return true; } + +private: + /// LaTeX footer + string header_; + /// LaTeX footer + string footer_; +}; + +#endif