/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
namespace mozilla { class nsDisplayListBuilder; class nsDisplayListSet; class PresShell;
} // namespace mozilla
// // <mtable> -- table or matrix //
class nsMathMLmtableWrapperFrame final : public nsTableWrapperFrame, public nsMathMLFrame { public: friend nsContainerFrame* NS_NewMathMLmtableOuterFrame(
mozilla::PresShell* aPresShell, ComputedStyle* aStyle);
// helper to find the row frame at a given index, positive or negative, e.g., // 1..n means the first row down to the last row, -1..-n means the last row // up to the first row. Used for alignments that are relative to a given row
nsIFrame* GetRowFrameAt(int32_t aRowIndex);
}; // class nsMathMLmtableWrapperFrame
// --------------
class nsMathMLmtableFrame final : public nsTableFrame { public:
NS_DECL_QUERYFRAME
NS_DECL_FRAMEARENA_HELPERS(nsMathMLmtableFrame)
// helper to restyle and reflow the table when a row is changed -- since // MathML attributes are inter-dependent and row/colspan can affect the table, // it is safer (albeit grossly suboptimal) to just relayout the whole thing. void RestyleTable();
/** helper to get the column spacing style value */
nscoord GetColSpacing(int32_t aColIndex) override;
/** Sums the combined cell spacing between the columns aStartColIndex to * aEndColIndex.
*/
nscoord GetColSpacing(int32_t aStartColIndex, int32_t aEndColIndex) override;
/** helper to get the row spacing style value */
nscoord GetRowSpacing(int32_t aRowIndex) override;
/** Sums the combined cell spacing between the rows aStartRowIndex to * aEndRowIndex.
*/
nscoord GetRowSpacing(int32_t aStartRowIndex, int32_t aEndRowIndex) override;
/** Determines whether the placement of table cells is determined by CSS * spacing based on padding and border-spacing, or one based upon the * rowspacing, columnspacing and framespacing attributes. The second * approach is used if the user specifies at least one of those attributes.
*/ void SetUseCSSSpacing(); bool GetUseCSSSpacing() { return mUseCSSSpacing; }
virtual ~nsMathMLmtdFrame();
}; // class nsMathMLmtdFrame
// --------------
class nsMathMLmtdInnerFrame final : public nsBlockFrame, public nsMathMLFrame { public: friend nsContainerFrame* NS_NewMathMLmtdInnerFrame(
mozilla::PresShell* aPresShell, ComputedStyle* aStyle);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.