]> git.lyx.org Git - features.git/commitdiff
two new files
authorLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 26 Jun 2000 18:48:45 +0000 (18:48 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Mon, 26 Jun 2000 18:48:45 +0000 (18:48 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@839 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/insetmarginal.C [new file with mode: 0644]
src/insets/insetmarginal.h [new file with mode: 0644]

diff --git a/src/insets/insetmarginal.C b/src/insets/insetmarginal.C
new file mode 100644 (file)
index 0000000..9a592c9
--- /dev/null
@@ -0,0 +1,93 @@
+/* This file is part of
+ * ======================================================
+ * 
+ *           LyX, The Document Processor
+ *      
+ *          Copyright 1998 The LyX Team.
+ *
+ *======================================================*/
+
+#include <config.h>
+
+#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 (file)
index 0000000..d9698ff
--- /dev/null
@@ -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