-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 2000-2001 The LyX Team.
+/**
+ * \file insetfootlike.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * ======================================================
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "insetfootlike.h"
-#include "lyxfont.h"
+
#include "buffer.h"
-#include "lyxtext.h"
-#include "support/LOstream.h"
+#include "BufferView.h"
+#include "bufferparams.h"
+#include "LColor.h"
+#include "metricsinfo.h"
+#include "paragraph.h"
+
+namespace lyx {
-InsetFootlike::InsetFootlike()
- : InsetCollapsable()
+InsetFootlike::InsetFootlike(BufferParams const & bp)
+ : InsetCollapsable(bp)
{
LyXFont font(LyXFont::ALL_SANE);
font.decSize();
font.decSize();
- font.setColor(LColor::footnote);
+ font.setColor(LColor::collapsable);
setLabelFont(font);
- setAutoCollapse(false);
}
-void InsetFootlike::Write(Buffer const * buf, std::ostream & os) const
+InsetFootlike::InsetFootlike(InsetFootlike const & in)
+ : InsetCollapsable(in)
+{
+ LyXFont font(LyXFont::ALL_SANE);
+ font.decSize();
+ font.decSize();
+ font.setColor(LColor::collapsable);
+ setLabelFont(font);
+}
+
+
+bool InsetFootlike::metrics(MetricsInfo & mi, Dimension & dim) const
+{
+ LyXFont tmpfont = mi.base.font;
+ mi.base.font = mi.base.bv->buffer()->params().getFont();
+ InsetCollapsable::metrics(mi, dim);
+ mi.base.font = tmpfont;
+ bool const changed = dim_ != dim;
+ dim_ = dim;
+ return changed;
+}
+
+
+void InsetFootlike::draw(PainterInfo & pi, int x, int y) const
+{
+ LyXFont tmpfont = pi.base.font;
+ pi.base.font = pi.base.bv->buffer()->params().getFont();
+ InsetCollapsable::draw(pi, x, y);
+ pi.base.font = tmpfont;
+}
+
+
+void InsetFootlike::write(Buffer const & buf, std::ostream & os) const
{
- os << getInsetName() << "\n";
- InsetCollapsable::Write(buf, os);
+ os << to_utf8(getInsetName()) << "\n";
+ InsetCollapsable::write(buf, os);
}
+
+
+bool InsetFootlike::insetAllowed(InsetBase::Code code) const
+{
+ if (code == InsetBase::FOOT_CODE || code == InsetBase::MARGIN_CODE
+ || code == InsetBase::FLOAT_CODE)
+ return false;
+ return InsetCollapsable::insetAllowed(code);
+}
+
+
+} // namespace lyx