]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathGrid.h
Set correctly the spacing between atoms in MathData
[lyx.git] / src / mathed / InsetMathGrid.h
index 6199b7dafc8fef516acaa7934f8e8298dab0ce79..4300dc31881d6f580c67823f97b2736e2fde07c2 100644 (file)
@@ -44,13 +44,6 @@ public:
                Multicolumn multi_;
                /// special multi colums alignment
                docstring align_;
-               /// these should be a per-cell property, but ok to have it here
-               /// for single-column grids like paragraphs
-               mutable int glue_;
-               ///
-               mutable pos_type begin_;
-               ///
-               mutable pos_type end_;
        };
 
        /// additional per-row information
@@ -110,9 +103,6 @@ public:
        void metrics(MetricsInfo & mi, Dimension &) const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
-       ///
-       void drawWithMargin(PainterInfo & pi, int x, int y,
-               int lmargin = 0, int rmargin = 0) const;
        /// draw decorations.
        void drawDecoration(PainterInfo & pi, int x, int y) const
        { drawMarkers2(pi, x, y); }
@@ -154,6 +144,8 @@ public:
        InsetMathGrid * asGridInset() { return this; }
        /// identifies GridInset
        InsetMathGrid const * asGridInset() const { return this; }
+       //
+       bool isTable() const { return true; }
        ///
        col_type ncols() const;
        ///
@@ -219,6 +211,8 @@ public:
        virtual int vlinesep() const;
        ///
        virtual int border() const;
+       ///
+       virtual bool handlesMulticolumn() const { return false; }
 
        ///
        void write(WriteStream & os) const;
@@ -237,6 +231,8 @@ public:
        ///
        void htmlize(HtmlStream &, std::string attrib) const;
        ///
+       void validate(LaTeXFeatures & features) const;
+       ///
        //void octave(OctaveStream &) const;
 
 protected:
@@ -251,6 +247,11 @@ protected:
        int cellYOffset(idx_type idx) const;
        /// Width of cell, taking combined columns into account
        int cellWidth(idx_type idx) const;
+       ///
+       virtual int leftMargin() const { return 1; }
+       ///
+       virtual int rightMargin() const { return 1; }
+
        /// returns proper 'end of line' code for LaTeX
        virtual docstring eolString(row_type row, bool fragile, bool latex,
                        bool last_eoln) const;
@@ -258,11 +259,23 @@ protected:
        virtual docstring eocString(col_type col, col_type lastcol) const;
        /// splits cells and shifts right part to the next cell
        void splitCell(Cursor & cur);
-       /// Column alignment for display of cell \p idx.\r
+       /// Column alignment for display of cell \p idx.
        /// Must not be written to file!
        virtual char displayColAlign(idx_type idx) const;
-       /// The value of a fixed col align for a certain hull type \r
-       static char colAlign(HullType type, col_type col);\r
+       /// Column spacing for display of column \p col.
+       /// Must not be written to file!
+       virtual int displayColSpace(col_type col) const;
+
+       // The following two functions are used in InsetMathHull and
+       // InsetMathSplit.
+       /// The value of a fixed col align for a certain hull type 
+       static char colAlign(HullType type, col_type col);
+       /// The value of a fixed col spacing for a certain hull type
+       static int colSpace(HullType type, col_type col);
+
+       /// positions of vertical and horizontal lines
+       int vLineHOffset(col_type col, unsigned int line) const;
+       int hLineVOffset(row_type row, unsigned int line) const;
 
        /// row info.
        /// rowinfo_[nrows()] is a dummy row used only for hlines.
@@ -277,7 +290,7 @@ protected:
 
 private:
        ///
-       char v_align_; // add approp. type
+       char v_align_; // FIXME: add approp. type
        ///
        Inset * clone() const;
 };