Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : /**
7 :
8 : Eric D Vaughan
9 : A frame that can have multiple children. Only one child may be displayed at one time. So the
10 : can be flipped though like a Stack of cards.
11 :
12 : **/
13 :
14 : #ifndef nsStackFrame_h___
15 : #define nsStackFrame_h___
16 :
17 : #include "mozilla/Attributes.h"
18 : #include "nsBoxFrame.h"
19 :
20 4 : class nsStackFrame final : public nsBoxFrame
21 : {
22 : public:
23 218 : NS_DECL_FRAMEARENA_HELPERS(nsStackFrame)
24 :
25 : friend nsIFrame* NS_NewStackFrame(nsIPresShell* aPresShell,
26 : nsStyleContext* aContext);
27 :
28 : #ifdef DEBUG_FRAME_DUMP
29 0 : virtual nsresult GetFrameName(nsAString& aResult) const override
30 : {
31 0 : return MakeFrameName(NS_LITERAL_STRING("Stack"), aResult);
32 : }
33 : #endif
34 :
35 : virtual void BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
36 : const nsRect& aDirtyRect,
37 : const nsDisplayListSet& aLists) override;
38 :
39 : protected:
40 : explicit nsStackFrame(nsStyleContext* aContext);
41 : }; // class nsStackFrame
42 :
43 :
44 :
45 : #endif
46 :
|