]> git.lyx.org Git - lyx.git/blobdiff - src/insets/Inset.h
More requires --> required, for C++2a.
[lyx.git] / src / insets / Inset.h
index ecd171dc45de302844373c860c378171d198f662..ab35584e126c06a830b3cee11fa294ec4008c474 100644 (file)
@@ -20,6 +20,7 @@
 #include "InsetLayout.h"
 #include "LayoutEnums.h"
 #include "OutputEnums.h"
+#include "OutputParams.h"
 
 #include "support/strfwd.h"
 #include "support/types.h"
@@ -201,6 +202,17 @@ public:
        /// https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg199001.html
        virtual Inset * editXY(Cursor & cur, int x, int y);
 
+       /// The default margin inside text insets
+       static int textOffset(BufferView const *) { return 4; }
+       ///
+       virtual int topOffset(BufferView const *bv) const { return textOffset(bv); }
+       ///
+       virtual int bottomOffset(BufferView const *bv) const { return textOffset(bv); }
+       ///
+       virtual int leftOffset(BufferView const *bv) const { return textOffset(bv); }
+       ///
+       virtual int rightOffset(BufferView const *bv) const { return textOffset(bv); }
+
        /// compute the size of the object returned in dim
        virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
        /// draw inset and update (xo, yo)-cache
@@ -242,7 +254,7 @@ public:
        /// Don't eliminate empty paragraphs
        virtual bool allowEmpty() const;
        /// Force inset into LTR environment if surroundings are RTL
-       virtual bool forceLTR() const;
+       virtual bool forceLTR(OutputParams const &) const;
        /// whether to include this inset in the strings generated for the TOC
        virtual bool isInToc() const;
 
@@ -423,6 +435,10 @@ public:
        /// if this inset has paragraphs should they be forced to use a
        /// local font language switch?
        virtual bool forceLocalFontSwitch() const { return false; }
+       /// if this inset has paragraphs should they be forced to use a
+       /// font language switch that switches paragraph directions
+       /// (relevant with polyglossia only)?
+       virtual bool forceParDirectionSwitch() const { return false; }
        /// Does the inset force a specific encoding?
        virtual Encoding const * forcedEncoding(Encoding const *, Encoding const *) const
        { return 0; }
@@ -467,6 +483,8 @@ public:
        /// does this inset try to use all available space (like \\hfill does)?
        virtual bool isHfill() const { return false; }
 
+       virtual OutputParams::CtObject CtObject(OutputParams const &) const { return OutputParams::CT_NORMAL; }
+
        enum DisplayType {
                Inline = 0,
                AlignLeft,
@@ -587,6 +605,8 @@ public:
         */
        virtual bool resetFontEdit() const;
 
+       /// does the inset contain changes ?
+       virtual bool isChanged() const { return false; }
        /// set the change for the entire inset
        virtual void setChange(Change const &) {}
        /// accept the changes within the inset
@@ -594,12 +614,13 @@ public:
        /// reject the changes within the inset
        virtual void rejectChanges() {}
 
+       ///
+       virtual bool needsCProtection(bool const, bool const) const { return false; }
+
        ///
        virtual ColorCode backgroundColor(PainterInfo const &) const;
        ///
        virtual ColorCode labelColor() const;
-       //
-       enum { TEXT_TO_INSET_OFFSET = 4 };
 
        /// Determine the action of backspace and delete: do we select instead of
        /// deleting if not already selected?