diff --git a/src/insets/insetmarginal.C b/src/insets/insetmarginal.C new file mode 100644 index 0000000000..9a592c972b --- /dev/null +++ b/src/insets/insetmarginal.C @@ -0,0 +1,93 @@ +/* This file is part of + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1998 The LyX Team. + * + *======================================================*/ + +#include + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include "insetmarginal.h" +#include "gettext.h" +#include "lyxfont.h" +#include "BufferView.h" +#include "Painter.h" +#include "lyxtext.h" +#include "support/LOstream.h" + +using std::ostream; +using std::endl; + +InsetMarginal::InsetMarginal() : InsetCollapsable() +{ + setLabel(_("margin")); + LyXFont font(LyXFont::ALL_SANE); + font.decSize(); + font.decSize(); + font.setColor(LColor::footnote); + setLabelFont(font); + setAutoCollapse(false); + setInsetName("Marginal"); +} + + +Inset * InsetMarginal::Clone() const +{ + InsetMarginal * result = new InsetMarginal; + result->init(this); + + result->collapsed = collapsed; + return result; +} + + +char const * InsetMarginal::EditMessage() const +{ + return _("Opened Marginal Note Inset"); +} + + +int InsetMarginal::Latex(Buffer const * buf, + ostream & os, bool fragile, bool fp) const +{ + os << "\\marginpar{%" << endl; + + int i = InsetText::Latex(buf, os, fragile, fp); + os << "}%" << endl; + + return i + 2; +} + + +bool InsetMarginal::InsertInset(BufferView * bv, Inset * inset) +{ + if (!InsertInsetAllowed(inset)) + return false; + + return InsetText::InsertInset(bv, inset); +} + + +bool InsetMarginal::InsertInsetAllowed(Inset * inset) const +{ + if ((inset->LyxCode() == Inset::FOOT_CODE) || + (inset->LyxCode() == Inset::MARGIN_CODE)) { + return false; + } + return true; +} + + +LyXFont InsetMarginal::GetDrawFont(BufferView * bv, + LyXParagraph * p, int pos) const +{ + LyXFont fn = getLyXText(bv)->GetFont(bv->buffer(), p, pos); + fn.decSize().decSize(); + return fn; +} diff --git a/src/insets/insetmarginal.h b/src/insets/insetmarginal.h new file mode 100644 index 0000000000..d9698ff3c2 --- /dev/null +++ b/src/insets/insetmarginal.h @@ -0,0 +1,49 @@ +// -*- C++ -*- +/* This file is part of + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1998 The LyX Team. + * + *====================================================== + */ + +#ifndef INSETMARGINAL_H +#define INSETMARGINAL_H + +#ifdef __GNUG__ +#pragma interface +#endif + +#include "insetcollapsable.h" + +class Painter; + +/** The marginal note inset + +*/ +class InsetMarginal : public InsetCollapsable { +public: + /// + explicit + InsetMarginal(); + /// + ~InsetMarginal() {} + /// + Inset * Clone() const; + /// + Inset::Code LyxCode() const { return Inset::MARGIN_CODE; } + /// + int Latex(Buffer const *, std::ostream &, bool fragile, bool fp) const; + /// + const char * EditMessage() const; + /// + bool InsertInset(BufferView *, Inset * inset); + /// + bool InsertInsetAllowed(Inset * inset) const; + /// + LyXFont GetDrawFont(BufferView *, LyXParagraph * par, int pos) const; +}; + +#endif