// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
+/**
+ * \file insetnote.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * Copyright 2001 The LyX Team.
+ * \author Angus Leeming
*
- *======================================================
+ * Full author contact details are available in file CREDITS.
*/
#ifndef INSETNOTE_H
#define INSETNOTE_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
#include "insetcollapsable.h"
+#include "mailinset.h"
+
+
+namespace lyx {
+
+class InsetNoteParams {
+public:
+ enum Type {
+ Note,
+ Comment,
+ Greyedout,
+ Framed,
+ Shaded
+ };
+ /// \c type defaults to Note
+ InsetNoteParams();
+ ///
+ void write(std::ostream & os) const;
+ ///
+ void read(LyXLex & lex);
+ ///
+ Type type;
+};
+
+
+/** The PostIt note inset, and other annotations
-/** The PostIt note inset
-
*/
class InsetNote : public InsetCollapsable {
public:
- ///
- InsetNote();
///
- InsetNote(InsetNote const &, bool same_id = false);
+ InsetNote(BufferParams const &, std::string const &);
+ ///
+ ~InsetNote();
+ ///
+ virtual docstring const editMessage() const;
+ ///
+ InsetBase::Code lyxCode() const { return InsetBase::NOTE_CODE; }
+ ///
+ void write(Buffer const &, std::ostream &) const;
+ ///
+ void read(Buffer const & buf, LyXLex & lex);
+ ///
+ void setButtonLabel();
+ /// show the note dialog
+ bool showInsetDialog(BufferView * bv) const;
+ ///
+ int latex(Buffer const &, odocstream &, OutputParams const &) const;
///
- Inset * clone(Buffer const &, bool same_id = false) const;
- /// constructor with initial contents
- InsetNote(Buffer const *, string const & contents, bool collapsed);
+ int docbook(Buffer const &, odocstream &, OutputParams const &) const;
///
- virtual string const editMessage() const;
+ int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
///
- virtual Inset::Code lyxCode() const { return Inset::IGNORE_CODE; }
+ void validate(LaTeXFeatures &) const;
///
- virtual void write(Buffer const *, std::ostream &) const;
+ InsetNoteParams const & params() const { return params_; }
///
- virtual int latex(Buffer const *, std::ostream &, bool, bool) const
- { return 0; }
+ bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const;
+protected:
+ InsetNote(InsetNote const &);
+ ///
+ virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
private:
+ friend class InsetNoteParams;
+
+ virtual std::auto_ptr<InsetBase> doClone() const;
+
/// used by the constructors
void init();
+ ///
+ InsetNoteParams params_;
+};
+
+class InsetNoteMailer : public MailInset {
+public:
+ ///
+ InsetNoteMailer(InsetNote & inset);
+ ///
+ virtual InsetBase & inset() const { return inset_; }
+ ///
+ virtual std::string const & name() const { return name_; }
+ ///
+ virtual std::string const inset2string(Buffer const &) const;
+ ///
+ static std::string const params2string(InsetNoteParams const &);
+ ///
+ static void string2params(std::string const &, InsetNoteParams &);
+
+private:
+ ///
+ static std::string const name_;
+ ///
+ InsetNote & inset_;
};
+
+} // namespace lyx
+
#endif