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 : #include "mozilla/Attributes.h"
7 : #include "nsGridRowLeafFrame.h"
8 :
9 : nsIFrame* NS_NewListItemFrame(nsIPresShell* aPresShell,
10 : nsStyleContext *aContext);
11 :
12 : class nsListItemFrame final : public nsGridRowLeafFrame
13 : {
14 : public:
15 0 : NS_DECL_FRAMEARENA_HELPERS(nsListItemFrame)
16 :
17 : friend nsIFrame* NS_NewListItemFrame(nsIPresShell* aPresShell,
18 : nsStyleContext *aContext);
19 :
20 : // overridden so that children of listitems don't handle mouse events,
21 : // unless allowevents="true" is specified on the listitem
22 : virtual void BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
23 : const nsRect& aDirtyRect,
24 : const nsDisplayListSet& aLists) override;
25 :
26 : virtual nsSize GetXULPrefSize(nsBoxLayoutState& aState) override;
27 :
28 : protected:
29 : explicit nsListItemFrame(nsStyleContext *aContext,
30 : bool aIsRoot = false,
31 : nsBoxLayout* aLayoutManager = nullptr);
32 : virtual ~nsListItemFrame();
33 :
34 : }; // class nsListItemFrame
|