]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetBranch.h
#5502 add binding for full screen toggle on mac
[lyx.git] / src / insets / InsetBranch.h
index c62fbdd52bbaa3b717ae869a83f9dd5521bae214..ecd2f7d7e2b5ffdeec15201629240705ead56043 100644 (file)
 #define INSETBRANCH_H
 
 #include "InsetCollapsable.h"
-#include "MailInset.h"
-
 
 namespace lyx {
 
-class Buffer;
-
 class InsetBranchParams {
 public:
+       ///
        explicit InsetBranchParams(docstring const & b = docstring())
                : branch(b) {}
        ///
@@ -33,96 +30,94 @@ public:
 };
 
 
-/** The Branch inset for alternative, conditional output.
+/////////////////////////////////////////////////////////////////////////
+//
+// InsetBranch
+//
+/////////////////////////////////////////////////////////////////////////
 
-*/
-class InsetBranch : public InsetCollapsable {
+/// The Branch inset for alternative, conditional output.
+
+class InsetBranch : public InsetCollapsable
+{
 public:
        ///
-       InsetBranch(BufferParams const &, InsetBranchParams const &);
+       InsetBranch(Buffer *, InsetBranchParams const &);
+
        ///
-       ~InsetBranch();
+       static std::string params2string(InsetBranchParams const &);
        ///
-       virtual docstring const editMessage() const;
+       static void string2params(std::string const &, InsetBranchParams &);
+       ///
+       docstring branch() const { return params_.branch; }
+       ///
+       void rename(docstring const & newname) { params_.branch = newname; }
+
+private:
        ///
        InsetCode lyxCode() const { return BRANCH_CODE; }
        ///
-       void write(Buffer const &, std::ostream &) const;
+       void write(std::ostream &) const;
+       ///
+       void read(Lexer & lex);
        ///
-       void read(Buffer const & buf, Lexer & lex);
+       docstring const buttonLabel(BufferView const & bv) const;
        ///
-       void setButtonLabel();
+       ColorCode backgroundColor(PainterInfo const &) const;
        ///
-       virtual ColorCode backgroundColor() const;
+       void latex(otexstream &, OutputParams const &) const;
        ///
-       bool showInsetDialog(BufferView *) const;
+       int plaintext(odocstringstream & ods, OutputParams const & op,
+                     size_t max_length = INT_MAX) const;
        ///
-       int latex(Buffer const &, odocstream &,
-                 OutputParams const &) const;
+       int docbook(odocstream &, OutputParams const &) const;
        ///
-       int plaintext(Buffer const &, odocstream &,
-                     OutputParams const &) const;
+       docstring xhtml(XHTMLStream &, OutputParams const &) const;
        ///
-       int docbook(Buffer const &, odocstream &,
-                   OutputParams const &) const;
+       void toString(odocstream &) const;
        ///
-       void textString(Buffer const & buf, odocstream &) const;
+       void forOutliner(docstring &, size_t) const;
        ///
        void validate(LaTeXFeatures &) const;
        ///
+       std::string contextMenuName() const;
+       ///
+       void addToToc(DocIterator const & di, bool output_active) 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.
+               \c buffer. \p child only checks within child documents.
         */
-       bool isBranchSelected(Buffer const & buffer) const;
+       bool isBranchSelected(bool const child = false) const;
+       /*!
+        * Is the content of this inset part of the output document?
+        *
+        * Note that Branch insets are only considered part of the
+        * document when they are selected.
+        */
+       bool producesOutput() const { return isBranchSelected(); }
        ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       virtual void updateLabels(Buffer const &, ParIterator const &);
-       ///
-       bool isMacroScope(Buffer const & buf) const;
+       bool isMacroScope() const;
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
-protected:
        ///
-       InsetBranch(InsetBranch const &);
+       bool usePlainLayout() const { return false; }
        ///
-       virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
+       void doDispatch(Cursor & cur, FuncRequest & cmd);
        ///
-       docstring name() const { return from_ascii("Branch"); }
-private:
-       friend class InsetBranchParams;
-
-       virtual Inset * clone() const;
-
+       docstring layoutName() const { return from_ascii("Branch:") + branch(); }
        ///
-       InsetBranchParams params_;
-};
-
+       Inset * clone() const { return new InsetBranch(*this); }
 
-class InsetBranchMailer : public MailInset {
-public:
-       ///
-       InsetBranchMailer(InsetBranch & inset);
-       ///
-       virtual Inset & 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(InsetBranchParams const &);
-       ///
-       static void string2params(std::string const &, InsetBranchParams &);
-
-private:
-       ///
-       static std::string const name_;
+       friend class InsetBranchParams;
        ///
-       InsetBranch & inset_;
+       InsetBranchParams params_;
 };
 
 } // namespace lyx