]> git.lyx.org Git - lyx.git/blobdiff - src/insets/Inset.h
Pure HTML output for math macros.
[lyx.git] / src / insets / Inset.h
index a8e41cfe532740f9bf94c944cb93bb3e2ee43a8b..22604a73de1e2e783b50d8ae30b60ad837707df1 100644 (file)
@@ -18,6 +18,7 @@
 #include "ColorCode.h"
 #include "InsetCode.h"
 #include "Layout.h"
+#include "OutputEnums.h"
 
 #include "support/strfwd.h"
 #include "support/types.h"
@@ -37,6 +38,7 @@ class DocIterator;
 class FuncRequest;
 class FuncStatus;
 class InsetCollapsable;
+class InsetCommand;
 class InsetIterator;
 class InsetLayout;
 class InsetList;
@@ -58,13 +60,15 @@ class XHTMLStream;
 namespace graphics { class PreviewLoader; }
 
 
-/** returns the InsetCode corresponding to the \c name.
-*   Eg, insetCode("branch") == BRANCH_CODE
-*   Implemented in 'Inset.cpp'.
-*/
+/// returns the InsetCode corresponding to the \c name.
+/// Eg, insetCode("branch") == BRANCH_CODE
 InsetCode insetCode(std::string const & name);
-/// the other way
+/// returns the Inset name corresponding to the \c InsetCode.
+/// Eg, insetName(BRANCH_CODE) == "branch"
 std::string insetName(InsetCode);
+/// returns the Inset name corresponding to the \c InsetCode.
+/// Eg, insetDisplayName(BRANCH_CODE) == _("Branch")
+docstring insetDisplayName(InsetCode);
 
 /// Common base class to all insets
 
@@ -103,15 +107,19 @@ public:
        /// retrieve associated Buffer
        virtual Buffer & buffer();
        virtual Buffer const & buffer() const;
-       /// This checks whether the Buffer * actually points to an open 
-       /// Buffer. It might not if that Buffer has been closed.
+       /// Returns true if buffer_ actually points to a Buffer that has
+       /// been loaded into LyX and is still open. Note that this will
+       /// always return false for cloned Buffers. If you want to allow
+       /// for the case of cloned Buffers, use isBufferValid().
+       bool isBufferLoaded() const;
+       /// Returns true if this is a loaded buffer or a cloned buffer.
        bool isBufferValid() const;
 
        /// initialize view for this inset.
        /**
          * This is typically used after this inset is created interactively.
          * Intented purpose is to sanitize internal state with regard to current
-               * Buffer. The default implementation calls buffer().updateLabels() if
+         * Buffer. The default implementation calls buffer().updateBuffer() if
          * the inset is labeled.
          *
          * \sa isLabeled()
@@ -138,6 +146,10 @@ public:
        virtual InsetTabular * asInsetTabular() { return 0; }
        /// is this inset based on the InsetTabular class?
        virtual InsetTabular const * asInsetTabular() const { return 0; }
+       /// is this inset based on the InsetCommand class?
+       virtual InsetCommand * asInsetCommand() { return 0; }
+       /// is this inset based on the InsetCommand class?
+       virtual InsetCommand const * asInsetCommand() const { return 0; }
 
        /// the real dispatcher
        void dispatch(Cursor & cur, FuncRequest & cmd);
@@ -182,7 +194,7 @@ public:
        ///
        virtual bool editing(BufferView const * bv) const;
        ///
-       virtual bool showInsetDialog(BufferView *) const { return false; }
+       virtual bool showInsetDialog(BufferView *) const;
 
        /// draw inset decoration if necessary.
        /// This can use \c drawMarkers() for example.
@@ -285,6 +297,9 @@ public:
        /// request "external features"
        virtual void validate(LaTeXFeatures &) const {}
 
+       /// Validate LFUN_INSET_MODIFY argument.
+       virtual bool validateModifyArgument(docstring const &) const { return true; }
+
        /// describe content if cursor inside
        virtual void infoize(odocstream &) const {}
        /// describe content if cursor behind
@@ -304,8 +319,6 @@ public:
        /// normal stream, and which will in fact be written after the current
        /// paragraph closes. this is appropriate e.g. for floats.
        virtual docstring xhtml(XHTMLStream & xs, OutputParams const &) const;
-       // the old one, to be removed
-       virtual docstring xhtml(odocstream & os, OutputParams const &) const;
        /// the string that is passed to the TOC
        virtual void tocString(odocstream &) const {}
 
@@ -466,8 +479,10 @@ public:
        virtual void addToToc(DocIterator const &) {}
        /// Fill keys with BibTeX information
        virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const {}
-       /// Update the counters of this inset and of its contents
-       virtual void updateLabels(ParIterator const &) {}
+       /// Update the counters of this inset and of its contents.
+       /// The boolean indicates whether we are preparing for output, e.g.,
+       /// of XHTML.
+       virtual void updateBuffer(ParIterator const &, UpdateType) {}
 
        /// Updates the inset's dialog
        virtual Buffer const * updateFrontend() const;
@@ -482,6 +497,8 @@ public:
        virtual mode_type currentMode() const { return UNDECIDED_MODE; }
        /// returns whether changing mode during latex export is forbidden
        virtual bool lockedMode() const { return false; }
+       /// returns whether only ascii chars are allowed during latex export
+       virtual bool asciiOnly() const { return false; }
        /// returns whether this inset is allowed in other insets of given mode
        virtual bool allowedIn(mode_type) const { return true; }
        /**
@@ -497,16 +514,16 @@ public:
        /// set the change for the entire inset
        virtual void setChange(Change const &) {}
        /// accept the changes within the inset
-       virtual void acceptChanges() {};
+       virtual void acceptChanges() {}
        /// reject the changes within the inset
-       virtual void rejectChanges() {};
+       virtual void rejectChanges() {}
 
        ///
        virtual Dimension const dimension(BufferView const &) const;
        ///
        int scroll() const { return 0; }
        ///
-       virtual ColorCode backgroundColor() const;
+       virtual ColorCode backgroundColor(PainterInfo const &) const;
        ///
        virtual ColorCode labelColor() const;
        //