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 #ifndef nsGfxCheckboxControlFrame_h___
6 #define nsGfxCheckboxControlFrame_h___
7 
8 #include "mozilla/Attributes.h"
9 #include "nsFormControlFrame.h"
10 
11 class nsGfxCheckboxControlFrame : public nsFormControlFrame
12 {
13 public:
14   NS_DECL_FRAMEARENA_HELPERS
15 
16   explicit nsGfxCheckboxControlFrame(nsStyleContext* aContext);
17   virtual ~nsGfxCheckboxControlFrame();
18 
19 #ifdef DEBUG_FRAME_DUMP
GetFrameName(nsAString & aResult)20   virtual nsresult GetFrameName(nsAString& aResult) const override {
21     return MakeFrameName(NS_LITERAL_STRING("CheckboxControl"), aResult);
22   }
23 #endif
24 
25   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
26                                 const nsRect&           aDirtyRect,
27                                 const nsDisplayListSet& aLists) override;
28 
29 #ifdef ACCESSIBILITY
30   virtual mozilla::a11y::AccType AccessibleType() override;
31 #endif
32 
33 protected:
34 
35   bool IsChecked();
36   bool IsIndeterminate();
37 };
38 
39 #endif
40 
41