X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetnote.h;h=034f81158b8766b6c1b86a4e5babe26a08d64e29;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=7bf3954c8ef98d60e59cb66c30679690b9592d03;hpb=b60c06df7e3e2f9da35aead443e0b3fb82a3f544;p=lyx.git diff --git a/src/insets/insetnote.h b/src/insets/insetnote.h index 7bf3954c8e..034f81158b 100644 --- a/src/insets/insetnote.h +++ b/src/insets/insetnote.h @@ -1,45 +1,115 @@ // -*- 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(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; + /// + int docbook(Buffer const &, odocstream &, OutputParams const &) const; + /// + int plaintext(Buffer const &, odocstream &, OutputParams const &) 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 doClone() const; + + /// used by the constructors + void init(); + /// + InsetNoteParams params_; +}; + + +class InsetNoteMailer : public MailInset { +public: + /// + InsetNoteMailer(InsetNote & inset); /// - virtual Inset * clone(Buffer const &, bool) const; + virtual InsetBase & inset() const { return inset_; } /// - virtual string const editMessage() const; + virtual std::string const & name() const { return name_; } /// - virtual Inset::Code lyxCode() const { return Inset::IGNORE_CODE; } + virtual std::string const inset2string(Buffer const &) const; /// - virtual bool insertInset(BufferView *, Inset *) { return false; } + static std::string const params2string(InsetNoteParams const &); /// - virtual bool insetAllowed(Inset::Code) const { return false; } + static void string2params(std::string const &, InsetNoteParams &); + +private: /// - virtual void write(Buffer const *, std::ostream &) const; + static std::string const name_; /// - virtual int latex(Buffer const *, std::ostream &, bool, bool) const - { return 0; } + InsetNote & inset_; }; + +} // namespace lyx + #endif