nsStackFrame.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. Eric D Vaughan
  7. A frame that can have multiple children. Only one child may be displayed at one time. So the
  8. can be flipped though like a Stack of cards.
  9. **/
  10. #ifndef nsStackFrame_h___
  11. #define nsStackFrame_h___
  12. #include "mozilla/Attributes.h"
  13. #include "nsBoxFrame.h"
  14. class nsStackFrame : public nsBoxFrame
  15. {
  16. public:
  17. NS_DECL_FRAMEARENA_HELPERS
  18. friend nsIFrame* NS_NewStackFrame(nsIPresShell* aPresShell,
  19. nsStyleContext* aContext);
  20. #ifdef DEBUG_FRAME_DUMP
  21. virtual nsresult GetFrameName(nsAString& aResult) const override
  22. {
  23. return MakeFrameName(NS_LITERAL_STRING("Stack"), aResult);
  24. }
  25. #endif
  26. virtual void BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
  27. const nsDisplayListSet& aLists) override;
  28. protected:
  29. explicit nsStackFrame(nsStyleContext* aContext);
  30. }; // class nsStackFrame
  31. #endif