michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: // vim:cindent:ts=4:et:sw=4: michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* michael@0: * Algorithms that determine column and table widths used for CSS2's michael@0: * 'table-layout: fixed'. michael@0: */ michael@0: michael@0: #ifndef FixedTableLayoutStrategy_h_ michael@0: #define FixedTableLayoutStrategy_h_ michael@0: michael@0: #include "mozilla/Attributes.h" michael@0: #include "nsITableLayoutStrategy.h" michael@0: michael@0: class nsTableFrame; michael@0: michael@0: class FixedTableLayoutStrategy : public nsITableLayoutStrategy michael@0: { michael@0: public: michael@0: FixedTableLayoutStrategy(nsTableFrame *aTableFrame); michael@0: virtual ~FixedTableLayoutStrategy(); michael@0: michael@0: // nsITableLayoutStrategy implementation michael@0: virtual nscoord GetMinWidth(nsRenderingContext* aRenderingContext) MOZ_OVERRIDE; michael@0: virtual nscoord GetPrefWidth(nsRenderingContext* aRenderingContext, michael@0: bool aComputingSize) MOZ_OVERRIDE; michael@0: virtual void MarkIntrinsicWidthsDirty() MOZ_OVERRIDE; michael@0: virtual void ComputeColumnWidths(const nsHTMLReflowState& aReflowState) MOZ_OVERRIDE; michael@0: michael@0: private: michael@0: nsTableFrame *mTableFrame; michael@0: nscoord mMinWidth; michael@0: nscoord mLastCalcWidth; michael@0: }; michael@0: michael@0: #endif /* !defined(FixedTableLayoutStrategy_h_) */