2001-09-28 20:14:13 +00:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
2004-04-18 14:30:37 +00:00
|
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
1999-03-27 01:35:55 +00:00
|
|
|
*
|
2004-04-18 14:30:37 +00:00
|
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
|
|
* the License. You may obtain a copy of the License at
|
|
|
|
* http://www.mozilla.org/MPL/
|
1999-03-27 01:35:55 +00:00
|
|
|
*
|
2001-09-28 20:14:13 +00:00
|
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
|
|
* for the specific language governing rights and limitations under the
|
|
|
|
* License.
|
1999-03-27 01:35:55 +00:00
|
|
|
*
|
|
|
|
* The Original Code is Mozilla Communicator client code.
|
|
|
|
*
|
2004-04-18 14:30:37 +00:00
|
|
|
* The Initial Developer of the Original Code is
|
2001-09-28 20:14:13 +00:00
|
|
|
* Netscape Communications Corporation.
|
|
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
|
|
* the Initial Developer. All Rights Reserved.
|
1999-11-06 03:40:37 +00:00
|
|
|
*
|
2001-09-28 20:14:13 +00:00
|
|
|
* Contributor(s):
|
|
|
|
*
|
|
|
|
* Alternatively, the contents of this file may be used under the terms of
|
2004-04-18 14:30:37 +00:00
|
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
2001-09-28 20:14:13 +00:00
|
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
2004-04-18 14:30:37 +00:00
|
|
|
* use your version of this file under the terms of the MPL, indicate your
|
2001-09-28 20:14:13 +00:00
|
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
|
|
* the provisions above, a recipient may use your version of this file under
|
2004-04-18 14:30:37 +00:00
|
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
2001-09-28 20:14:13 +00:00
|
|
|
*
|
|
|
|
* ***** END LICENSE BLOCK ***** */
|
1999-03-27 01:35:55 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
Eric D Vaughan
|
1999-05-09 21:46:24 +00:00
|
|
|
nsBoxFrame is a frame that can lay its children out either vertically or horizontally.
|
|
|
|
It lays them out according to a min max or preferred size.
|
1999-03-27 01:35:55 +00:00
|
|
|
|
|
|
|
**/
|
|
|
|
|
1999-03-30 04:05:49 +00:00
|
|
|
#ifndef nsBoxFrame_h___
|
|
|
|
#define nsBoxFrame_h___
|
|
|
|
|
1999-07-02 05:28:32 +00:00
|
|
|
#include "nsCOMPtr.h"
|
2000-09-01 00:59:09 +00:00
|
|
|
#include "nsContainerFrame.h"
|
2000-03-31 07:02:06 +00:00
|
|
|
class nsBoxLayoutState;
|
1999-07-02 05:28:32 +00:00
|
|
|
|
2000-03-02 03:01:30 +00:00
|
|
|
// flags from box
|
2010-06-09 05:28:14 +00:00
|
|
|
#define NS_STATE_BOX_CHILD_RESERVED NS_FRAME_STATE_BIT(20)
|
|
|
|
#define NS_STATE_STACK_NOT_POSITIONED NS_FRAME_STATE_BIT(21)
|
|
|
|
//#define NS_STATE_IS_HORIZONTAL NS_FRAME_STATE_BIT(22) moved to nsIFrame.h
|
|
|
|
#define NS_STATE_AUTO_STRETCH NS_FRAME_STATE_BIT(23)
|
|
|
|
//#define NS_STATE_IS_ROOT NS_FRAME_STATE_BIT(24) moved to nsBox.h
|
|
|
|
#define NS_STATE_CURRENTLY_IN_DEBUG NS_FRAME_STATE_BIT(25)
|
|
|
|
//#define NS_STATE_SET_TO_DEBUG NS_FRAME_STATE_BIT(26) moved to nsBox.h
|
|
|
|
//#define NS_STATE_DEBUG_WAS_SET NS_FRAME_STATE_BIT(27) moved to nsBox.h
|
|
|
|
// NS_FRAME_STATE_BIT(28) not used anymore
|
|
|
|
#define NS_STATE_BOX_WRAPS_KIDS_IN_BLOCK NS_FRAME_STATE_BIT(29)
|
|
|
|
#define NS_STATE_EQUAL_SIZE NS_FRAME_STATE_BIT(30)
|
|
|
|
//#define NS_STATE_IS_DIRECTION_NORMAL NS_FRAME_STATE_BIT(31) moved to nsIFrame.h
|
2000-03-02 03:01:30 +00:00
|
|
|
|
2006-03-26 21:30:36 +00:00
|
|
|
nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
|
|
|
nsStyleContext* aContext,
|
2009-01-19 18:31:33 +00:00
|
|
|
PRBool aIsRoot,
|
|
|
|
nsIBoxLayout* aLayoutManager);
|
|
|
|
nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
|
|
|
nsStyleContext* aContext);
|
2002-01-10 14:16:05 +00:00
|
|
|
|
2004-09-28 18:37:50 +00:00
|
|
|
class nsBoxFrame : public nsContainerFrame
|
1999-03-27 01:35:55 +00:00
|
|
|
{
|
|
|
|
public:
|
2009-09-12 16:49:24 +00:00
|
|
|
NS_DECL_FRAMEARENA_HELPERS
|
1999-03-27 01:35:55 +00:00
|
|
|
|
2005-10-26 21:46:39 +00:00
|
|
|
friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
2006-03-26 21:30:36 +00:00
|
|
|
nsStyleContext* aContext,
|
2005-10-26 21:46:39 +00:00
|
|
|
PRBool aIsRoot,
|
|
|
|
nsIBoxLayout* aLayoutManager);
|
2009-01-19 18:31:33 +00:00
|
|
|
friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
|
|
|
nsStyleContext* aContext);
|
2000-04-05 00:19:00 +00:00
|
|
|
|
1999-09-10 00:57:01 +00:00
|
|
|
// gets the rect inside our border and debug border. If you wish to paint inside a box
|
|
|
|
// call this method to get the rect so you don't draw on the debug border or outer border.
|
1) implememted box reflow coelescing.
2) implemented gfx scrollbars for list boxes
3) fixed progess meter to be an animated gif
4) fixed bugs 23521, 24721, 19114, 20546, 24385, 24457, 23156, 20226, 22543
-r hyatt, troy, rod
2000-02-09 22:02:40 +00:00
|
|
|
|
2000-03-31 07:02:06 +00:00
|
|
|
// ------ nsIBox -------------
|
2004-09-28 18:37:50 +00:00
|
|
|
NS_IMETHOD SetLayoutManager(nsIBoxLayout* aLayout);
|
|
|
|
NS_IMETHOD GetLayoutManager(nsIBoxLayout** aLayout);
|
|
|
|
NS_IMETHOD RelayoutChildAtOrdinal(nsBoxLayoutState& aState, nsIBox* aChild);
|
1999-09-10 00:57:01 +00:00
|
|
|
|
2007-01-08 02:57:59 +00:00
|
|
|
virtual nsSize GetPrefSize(nsBoxLayoutState& aBoxLayoutState);
|
|
|
|
virtual nsSize GetMinSize(nsBoxLayoutState& aBoxLayoutState);
|
|
|
|
virtual nsSize GetMaxSize(nsBoxLayoutState& aBoxLayoutState);
|
2007-01-31 16:02:42 +00:00
|
|
|
virtual nscoord GetFlex(nsBoxLayoutState& aBoxLayoutState);
|
|
|
|
virtual nscoord GetBoxAscent(nsBoxLayoutState& aBoxLayoutState);
|
2004-06-19 09:07:47 +00:00
|
|
|
#ifdef DEBUG_LAYOUT
|
2000-03-31 07:02:06 +00:00
|
|
|
NS_IMETHOD SetDebug(nsBoxLayoutState& aBoxLayoutState, PRBool aDebug);
|
2004-06-19 09:07:47 +00:00
|
|
|
NS_IMETHOD GetDebug(PRBool& aDebug);
|
|
|
|
#endif
|
2007-02-22 18:05:14 +00:00
|
|
|
virtual Valignment GetVAlign() const { return mValign; }
|
|
|
|
virtual Halignment GetHAlign() const { return mHalign; }
|
2000-07-07 22:24:06 +00:00
|
|
|
NS_IMETHOD DoLayout(nsBoxLayoutState& aBoxLayoutState);
|
2000-04-25 07:10:48 +00:00
|
|
|
|
2007-06-18 23:22:46 +00:00
|
|
|
virtual PRBool GetMouseThrough() const;
|
2004-09-28 18:37:50 +00:00
|
|
|
virtual PRBool ComputesOwnOverflowArea() { return PR_FALSE; }
|
2000-03-31 07:02:06 +00:00
|
|
|
|
|
|
|
// ----- child and sibling operations ---
|
|
|
|
|
|
|
|
// ----- public methods -------
|
|
|
|
|
2006-03-09 18:55:21 +00:00
|
|
|
NS_IMETHOD Init(nsIContent* aContent,
|
1999-03-27 01:35:55 +00:00
|
|
|
nsIFrame* aParent,
|
|
|
|
nsIFrame* asPrevInFlow);
|
|
|
|
|
1999-05-09 21:46:24 +00:00
|
|
|
|
2005-09-07 16:49:21 +00:00
|
|
|
NS_IMETHOD AttributeChanged(PRInt32 aNameSpaceID,
|
2002-10-10 06:39:30 +00:00
|
|
|
nsIAtom* aAttribute,
|
2003-07-11 21:16:12 +00:00
|
|
|
PRInt32 aModType);
|
1999-03-27 01:35:55 +00:00
|
|
|
|
Bug 300030: Move intrinsic width computation out of nsIFrame::Reflow and into its own methods on nsIFrame. Replace reflow reasons, types, and commands with dirty bits/notifications. Thanks to bzbarsky for almost all of the HTML form controls (mozilla/layout/forms) changes, and many others for help testing and patching. For detailed commit logs, see REFLOW_YYYYMMDD_BRANCH, where YYYYMMDD is one of 20061031, 20060830, 20060603, 20060302, 20060119, 20051011, 20050804, 20050429, 20050315, 20050111, and 20041213.
2006-12-08 05:38:33 +00:00
|
|
|
virtual void MarkIntrinsicWidthsDirty();
|
|
|
|
virtual nscoord GetMinWidth(nsIRenderingContext *aRenderingContext);
|
|
|
|
virtual nscoord GetPrefWidth(nsIRenderingContext *aRenderingContext);
|
2000-02-25 04:18:34 +00:00
|
|
|
|
2004-07-31 23:15:21 +00:00
|
|
|
NS_IMETHOD Reflow(nsPresContext* aPresContext,
|
1999-03-27 01:35:55 +00:00
|
|
|
nsHTMLReflowMetrics& aDesiredSize,
|
|
|
|
const nsHTMLReflowState& aReflowState,
|
|
|
|
nsReflowStatus& aStatus);
|
|
|
|
|
2005-02-07 01:58:25 +00:00
|
|
|
NS_IMETHOD AppendFrames(nsIAtom* aListName,
|
2009-07-30 17:23:32 +00:00
|
|
|
nsFrameList& aFrameList);
|
1999-04-12 21:48:21 +00:00
|
|
|
|
2005-02-07 01:58:25 +00:00
|
|
|
NS_IMETHOD InsertFrames(nsIAtom* aListName,
|
1999-04-12 21:48:21 +00:00
|
|
|
nsIFrame* aPrevFrame,
|
2009-07-30 17:23:32 +00:00
|
|
|
nsFrameList& aFrameList);
|
1999-04-12 21:48:21 +00:00
|
|
|
|
2005-02-07 01:58:25 +00:00
|
|
|
NS_IMETHOD RemoveFrame(nsIAtom* aListName,
|
1999-04-12 21:48:21 +00:00
|
|
|
nsIFrame* aOldFrame);
|
|
|
|
|
2007-10-25 23:30:49 +00:00
|
|
|
virtual nsIFrame* GetContentInsertionFrame();
|
|
|
|
|
2006-04-10 00:16:29 +00:00
|
|
|
NS_IMETHOD SetInitialChildList(nsIAtom* aListName,
|
2009-07-28 12:53:20 +00:00
|
|
|
nsFrameList& aChildList);
|
1999-12-02 01:07:27 +00:00
|
|
|
|
2008-10-26 10:11:34 +00:00
|
|
|
virtual void DidSetStyleContext(nsStyleContext* aOldStyleContext);
|
2006-04-17 23:58:17 +00:00
|
|
|
|
2003-10-31 20:19:18 +00:00
|
|
|
virtual nsIAtom* GetType() const;
|
2007-02-24 18:33:33 +00:00
|
|
|
|
|
|
|
virtual PRBool IsFrameOfType(PRUint32 aFlags) const
|
|
|
|
{
|
2008-07-13 22:41:18 +00:00
|
|
|
// record that children that are ignorable whitespace should be excluded
|
|
|
|
// (When content was loaded via the XUL content sink, it's already
|
|
|
|
// been excluded, but we need this for when the XUL namespace is used
|
|
|
|
// in other MIME types or when the XUL CSS display types are used with
|
|
|
|
// non-XUL elements.)
|
|
|
|
|
2007-02-24 18:33:33 +00:00
|
|
|
// This is bogus, but it's what we've always done.
|
|
|
|
// (Given that we're replaced, we need to say we're a replaced element
|
|
|
|
// that contains a block so nsHTMLReflowState doesn't tell us to be
|
|
|
|
// NS_INTRINSICSIZE wide.)
|
|
|
|
return nsContainerFrame::IsFrameOfType(aFlags &
|
2008-07-13 22:41:18 +00:00
|
|
|
~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock | eXULBox |
|
|
|
|
nsIFrame::eExcludesIgnorableWhitespace));
|
2007-02-24 18:33:33 +00:00
|
|
|
}
|
|
|
|
|
2001-09-15 00:45:54 +00:00
|
|
|
#ifdef DEBUG
|
2001-11-14 01:33:42 +00:00
|
|
|
NS_IMETHOD GetFrameName(nsAString& aResult) const;
|
2001-09-15 00:45:54 +00:00
|
|
|
#endif
|
1999-07-14 17:32:56 +00:00
|
|
|
|
2004-07-31 23:15:21 +00:00
|
|
|
NS_IMETHOD DidReflow(nsPresContext* aPresContext,
|
2001-12-07 14:51:12 +00:00
|
|
|
const nsHTMLReflowState* aReflowState,
|
|
|
|
nsDidReflowStatus aStatus);
|
2000-03-31 07:02:06 +00:00
|
|
|
|
2007-10-12 18:37:51 +00:00
|
|
|
virtual PRBool HonorPrintBackgroundSettings();
|
|
|
|
|
1999-08-27 06:06:39 +00:00
|
|
|
virtual ~nsBoxFrame();
|
2001-09-25 22:17:00 +00:00
|
|
|
|
2009-01-19 18:31:33 +00:00
|
|
|
nsBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRBool aIsRoot = PR_FALSE, nsIBoxLayout* aLayoutManager = nsnull);
|
2007-07-04 15:49:38 +00:00
|
|
|
|
|
|
|
// if aIsPopup is true, then the view is for a popup. In this case,
|
|
|
|
// the view is added a child of the root view, and is initially hidden
|
2004-07-31 23:15:21 +00:00
|
|
|
static nsresult CreateViewForFrame(nsPresContext* aPresContext,
|
2002-10-10 06:39:30 +00:00
|
|
|
nsIFrame* aChild,
|
2003-02-22 00:32:13 +00:00
|
|
|
nsStyleContext* aStyleContext,
|
2007-07-04 15:49:38 +00:00
|
|
|
PRBool aForce,
|
|
|
|
PRBool aIsPopup = PR_FALSE);
|
2000-09-01 00:59:09 +00:00
|
|
|
|
2006-01-26 02:29:17 +00:00
|
|
|
// virtual so nsStackFrame, nsButtonBoxFrame, nsSliderFrame and nsMenuFrame
|
|
|
|
// can override it
|
|
|
|
NS_IMETHOD BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
|
|
|
|
const nsRect& aDirtyRect,
|
|
|
|
const nsDisplayListSet& aLists);
|
2000-09-01 00:59:09 +00:00
|
|
|
|
2006-01-26 02:29:17 +00:00
|
|
|
NS_IMETHOD BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|
|
|
const nsRect& aDirtyRect,
|
|
|
|
const nsDisplayListSet& aLists);
|
2004-09-28 18:37:50 +00:00
|
|
|
|
|
|
|
#ifdef DEBUG_LAYOUT
|
|
|
|
virtual void SetDebugOnChildList(nsBoxLayoutState& aState, nsIBox* aChild, PRBool aDebug);
|
2006-01-26 02:29:17 +00:00
|
|
|
nsresult DisplayDebugInfoFor(nsIBox* aBox,
|
|
|
|
nsPoint& aPoint);
|
2004-09-28 18:37:50 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
static nsresult LayoutChildAt(nsBoxLayoutState& aState, nsIBox* aBox, const nsRect& aRect);
|
|
|
|
|
2006-01-26 02:29:17 +00:00
|
|
|
/**
|
|
|
|
* Utility method to redirect events on descendants to this frame.
|
|
|
|
* Supports 'allowevents' attribute on descendant elements to allow those
|
|
|
|
* elements and their descendants to receive events.
|
|
|
|
*/
|
|
|
|
nsresult WrapListsInRedirector(nsDisplayListBuilder* aBuilder,
|
|
|
|
const nsDisplayListSet& aIn,
|
|
|
|
const nsDisplayListSet& aOut);
|
2005-02-11 13:18:40 +00:00
|
|
|
|
2009-01-09 00:11:30 +00:00
|
|
|
/**
|
|
|
|
* This defaults to true, but some box frames (nsListBoxBodyFrame for
|
|
|
|
* example) don't support ordinals in their children.
|
|
|
|
*/
|
|
|
|
virtual PRBool SupportsOrdinalsInChildren();
|
|
|
|
|
1999-03-27 01:35:55 +00:00
|
|
|
protected:
|
2002-09-09 21:32:33 +00:00
|
|
|
#ifdef DEBUG_LAYOUT
|
2000-05-15 04:12:31 +00:00
|
|
|
virtual void GetBoxName(nsAutoString& aName);
|
2006-01-26 02:29:17 +00:00
|
|
|
void PaintXULDebugBackground(nsIRenderingContext& aRenderingContext,
|
|
|
|
nsPoint aPt);
|
|
|
|
void PaintXULDebugOverlay(nsIRenderingContext& aRenderingContext,
|
|
|
|
nsPoint aPt);
|
2002-09-09 21:32:33 +00:00
|
|
|
#endif
|
2000-05-15 04:12:31 +00:00
|
|
|
|
2000-06-23 05:15:04 +00:00
|
|
|
virtual PRBool GetInitialEqualSize(PRBool& aEqualSize);
|
2001-08-15 04:09:41 +00:00
|
|
|
virtual void GetInitialOrientation(PRBool& aIsHorizontal);
|
|
|
|
virtual void GetInitialDirection(PRBool& aIsNormal);
|
2000-02-14 01:42:09 +00:00
|
|
|
virtual PRBool GetInitialHAlignment(Halignment& aHalign);
|
|
|
|
virtual PRBool GetInitialVAlignment(Valignment& aValign);
|
|
|
|
virtual PRBool GetInitialAutoStretch(PRBool& aStretch);
|
2000-03-31 07:02:06 +00:00
|
|
|
|
2009-12-24 05:21:15 +00:00
|
|
|
virtual void DestroyFrom(nsIFrame* aDestructRoot);
|
2000-02-14 01:42:09 +00:00
|
|
|
|
2000-06-06 01:25:03 +00:00
|
|
|
nsSize mPrefSize;
|
|
|
|
nsSize mMinSize;
|
|
|
|
nsSize mMaxSize;
|
|
|
|
nscoord mFlex;
|
|
|
|
nscoord mAscent;
|
|
|
|
|
2004-09-28 18:37:50 +00:00
|
|
|
nsCOMPtr<nsIBoxLayout> mLayoutManager;
|
|
|
|
|
2002-02-21 13:39:39 +00:00
|
|
|
protected:
|
2006-04-10 00:16:29 +00:00
|
|
|
nsresult RegUnregAccessKey(PRBool aDoReg);
|
2002-07-03 16:38:15 +00:00
|
|
|
|
2004-09-28 18:37:50 +00:00
|
|
|
NS_HIDDEN_(void) CheckBoxOrder(nsBoxLayoutState& aState);
|
|
|
|
|
2002-02-21 13:39:39 +00:00
|
|
|
private:
|
2002-10-10 06:39:30 +00:00
|
|
|
|
|
|
|
#ifdef DEBUG_LAYOUT
|
2004-07-31 23:15:21 +00:00
|
|
|
nsresult SetDebug(nsPresContext* aPresContext, PRBool aDebug);
|
2004-06-19 09:07:47 +00:00
|
|
|
PRBool GetInitialDebug(PRBool& aDebug);
|
2004-07-31 23:15:21 +00:00
|
|
|
void GetDebugPref(nsPresContext* aPresContext);
|
2004-06-19 09:07:47 +00:00
|
|
|
|
2002-10-10 06:39:30 +00:00
|
|
|
void GetDebugBorder(nsMargin& aInset);
|
|
|
|
void GetDebugPadding(nsMargin& aInset);
|
|
|
|
void GetDebugMargin(nsMargin& aInset);
|
2004-06-19 09:07:47 +00:00
|
|
|
|
|
|
|
nsresult GetFrameSizeWithMargin(nsIBox* aBox, nsSize& aSize);
|
|
|
|
|
2004-07-31 23:15:21 +00:00
|
|
|
void PixelMarginToTwips(nsPresContext* aPresContext, nsMargin& aMarginPixels);
|
2002-10-10 06:39:30 +00:00
|
|
|
|
2004-07-31 23:15:21 +00:00
|
|
|
void GetValue(nsPresContext* aPresContext, const nsSize& a, const nsSize& b, char* value);
|
|
|
|
void GetValue(nsPresContext* aPresContext, PRInt32 a, PRInt32 b, char* value);
|
|
|
|
void DrawSpacer(nsPresContext* aPresContext, nsIRenderingContext& aRenderingContext, PRBool aHorizontal, PRInt32 flex, nscoord x, nscoord y, nscoord size, nscoord spacerSize);
|
2002-10-10 06:39:30 +00:00
|
|
|
void DrawLine(nsIRenderingContext& aRenderingContext, PRBool aHorizontal, nscoord x1, nscoord y1, nscoord x2, nscoord y2);
|
|
|
|
void FillRect(nsIRenderingContext& aRenderingContext, PRBool aHorizontal, nscoord x, nscoord y, nscoord width, nscoord height);
|
2006-02-13 15:49:56 +00:00
|
|
|
#endif
|
2007-06-18 23:22:46 +00:00
|
|
|
void UpdateMouseThrough();
|
2002-10-10 06:39:30 +00:00
|
|
|
|
|
|
|
void CacheAttributes();
|
|
|
|
|
|
|
|
// instance variables.
|
|
|
|
Halignment mHalign;
|
|
|
|
Valignment mValign;
|
|
|
|
|
2007-06-18 23:22:46 +00:00
|
|
|
eMouseThrough mMouseThrough;
|
|
|
|
|
2004-06-19 09:07:47 +00:00
|
|
|
#ifdef DEBUG_LAYOUT
|
2002-10-10 06:39:30 +00:00
|
|
|
static PRBool gDebug;
|
|
|
|
static nsIBox* mDebugChild;
|
2004-06-19 09:07:47 +00:00
|
|
|
#endif
|
2002-10-10 06:39:30 +00:00
|
|
|
|
1999-03-27 01:35:55 +00:00
|
|
|
}; // class nsBoxFrame
|
|
|
|
|
1999-03-30 04:05:49 +00:00
|
|
|
#endif
|
|
|
|
|