// -*- C++ -*-
-/* This file is part of
- * ======================================================
+/**
+ * \file insetnote.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * LyX, The Document Processor
+ * \author Angus Leeming
*
- * Copyright 2001 The LyX Team.
- *
- *======================================================
+ * 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"
-/** The PostIt note inset
+
+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
*/
class InsetNote : public InsetCollapsable {
public:
///
- InsetNote(BufferParams const &);
+ InsetNote(BufferParams const &, std::string const &);
+ ///
+ ~InsetNote();
///
- InsetNote(InsetNote const &, bool same_id = false);
+ virtual docstring const editMessage() const;
///
- Inset * clone(Buffer const &, bool same_id = false) const;
- /// constructor with initial contents
- InsetNote(Buffer const *, string const & contents, bool collapsed);
+ InsetBase::Code lyxCode() const { return InsetBase::NOTE_CODE; }
///
- string const editMessage() const;
+ void write(Buffer const &, std::ostream &) const;
///
- Inset::Code lyxCode() const { return Inset::IGNORE_CODE; }
+ void read(Buffer const & buf, LyXLex & lex);
///
- void write(Buffer const *, std::ostream &) const;
+ void setButtonLabel();
+ /// show the note dialog
+ bool showInsetDialog(BufferView * bv) const;
///
- int latex(Buffer const *, std::ostream &, bool, bool) const
- { return 0; }
+ int latex(Buffer const &, odocstream &, OutputParams const &) const;
///
- int linuxdoc(Buffer const *, std::ostream &) const
- { return 0; }
+ int docbook(Buffer const &, odocstream &, OutputParams const &) const;
///
- int docbook(Buffer const *, std::ostream &) const
- { return 0; }
+ int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
///
- void validate(LaTeXFeatures &) const {}
+ void validate(LaTeXFeatures &) const;
+ ///
+ InsetNoteParams const & params() const { return params_; }
+ ///
+ 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