1 typedef unsigned int PRUint32;
3 typedef unsigned long PRUint64;
7 nsRect(const nsRect& aRect) { }
9 enum nsCompatibility { eCompatibility_NavQuirks = 3 };
11 typedef PRUint64 nsFrameState;
14 nsCompatibility CompatibilityMode() const { }
16 class nsStyleContext {
18 PRBool HasTextDecorations() const;
22 nsPresContext* PresContext() const;
23 nsStyleContext* GetStyleContext() const;
24 nsFrameState GetStateBits() const;
25 nsRect GetOverflowRect() const;
27 class nsFrame : public nsIFrame { };
28 class nsLineList_iterator { };
31 typedef nsLineList_iterator iterator;
33 class gfxSkipCharsIterator { };
36 class PropertyProvider { };
38 class nsTextFrame : public nsFrame
40 virtual nsRect ComputeTightBounds(gfxContext* aContext) const;
41 gfxSkipCharsIterator EnsureTextRun(gfxContext* aReferenceContext = 0L,
42 nsIFrame* aLineContainer = 0L,
43 const nsLineList::iterator* aLine = 0L,
44 PRUint32* aFlowEndInTextRun = 0L);
46 class PropertyProvider : public gfxTextRun::PropertyProvider
49 PropertyProvider(nsTextFrame* aFrame, const gfxSkipCharsIterator& aStart);
52 nsRect nsTextFrame::ComputeTightBounds(gfxContext* aContext) const
54 if ((GetStyleContext()->HasTextDecorations()
55 && eCompatibility_NavQuirks == PresContext()->CompatibilityMode())
56 || (GetStateBits() & (nsFrameState(1) << (23))))
57 return GetOverflowRect();
58 gfxSkipCharsIterator iter = const_cast<nsTextFrame*>(this)->EnsureTextRun();
59 PropertyProvider provider(const_cast<nsTextFrame*>(this), iter);