X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetbranch.h;h=f39fe12707c25f5bcca7a09847972ae5fd1a7bc8;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=6b0526d62adb6e2880489981ed49c72108d858e9;hpb=ef2290cf5e29a6bd1b5e8b83ff3b616a805a5543;p=lyx.git diff --git a/src/insets/insetbranch.h b/src/insets/insetbranch.h index 6b0526d62a..f39fe12707 100644 --- a/src/insets/insetbranch.h +++ b/src/insets/insetbranch.h @@ -12,100 +12,109 @@ #ifndef INSETBRANCH_H #define INSETBRANCH_H - #include "insetcollapsable.h" -#include "BranchList.h" - - struct InsetBranchParams { - /// - void write(std::ostream & os) const; - /// - void read(LyXLex & lex); - /// - string branch; - /// Hack -- MV - BranchList branchlist; - }; - - +#include "mailinset.h" + + +namespace lyx { + +class Buffer; + +class InsetBranchParams { +public: + explicit InsetBranchParams(docstring const & b = docstring()) + : branch(b) {} + /// + void write(std::ostream & os) const; + /// + void read(LyXLex & lex); + /// + docstring branch; +}; + + /** The Branch inset for alternative, conditional output. */ class InsetBranch : public InsetCollapsable { public: /// - - - InsetBranch(BufferParams const &, string const &); - /// Copy constructor - InsetBranch(InsetBranch const &); - /// + InsetBranch(BufferParams const &, InsetBranchParams const &); + /// ~InsetBranch(); - /// - virtual std::auto_ptr clone() const; /// - string const editMessage() const; + virtual docstring const editMessage() const; /// - InsetOld::Code lyxCode() const { return InsetOld::BRANCH_CODE; } + InsetBase::Code lyxCode() const { return InsetBase::BRANCH_CODE; } /// - void write(Buffer const *, std::ostream &) const; + void write(Buffer const &, std::ostream &) const; /// - void read(Buffer const * buf, LyXLex & lex); + void read(Buffer const & buf, LyXLex & lex); /// void setButtonLabel(); /// bool showInsetDialog(BufferView *) const; /// - dispatch_result localDispatch(FuncRequest const &); - /// - int latex(Buffer const *, std::ostream &, - LatexRunParams const &) const; + int latex(Buffer const &, odocstream &, OutputParams const &) const; /// - int linuxdoc(Buffer const *, std::ostream &) const; + int docbook(Buffer const &, odocstream &, + OutputParams const & runparams) const; /// - int docbook(Buffer const *, std::ostream &, bool) const; + int plaintext(Buffer const &, odocstream &, + OutputParams const & runparams) const; /// - int ascii(Buffer const *, std::ostream &, int) const; + void textString(Buffer const & buf, odocstream &) const; /// void validate(LaTeXFeatures &) const; /// InsetBranchParams const & params() const { return params_; } /// void setParams(InsetBranchParams const & params) { params_ = params; } - + + /** \returns true if params_.branch is listed as 'selected' in + \c buffer. This handles the case of child documents. + */ + bool isBranchSelected(Buffer const & buffer) const; + /// + bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const; + +protected: + InsetBranch(InsetBranch const &); + virtual void doDispatch(LCursor & cur, FuncRequest & cmd); private: friend class InsetBranchParams; + virtual std::auto_ptr doClone() const; + /// used by the constructors void init(); /// InsetBranchParams params_; }; -#include "mailinset.h" class InsetBranchMailer : public MailInset { public: /// - InsetBranchMailer(string const & name, InsetBranch & inset); + InsetBranchMailer(InsetBranch & inset); /// virtual InsetBase & inset() const { return inset_; } /// - virtual string const & name() const { return name_; } + virtual std::string const & name() const { return name_; } /// - virtual string const inset2string(Buffer const &) const; + virtual std::string const inset2string(Buffer const &) const; /// - static string const params2string(string const &, InsetBranchParams const &); + static std::string const params2string(InsetBranchParams const &); /// - static void string2params(string const &, InsetBranchParams &); + static void string2params(std::string const &, InsetBranchParams &); private: /// - string const name_; + static std::string const name_; /// InsetBranch & inset_; }; - +} // namespace lyx #endif