1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2  *
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef nsNativeBasicThemeGTK_h
8 #define nsNativeBasicThemeGTK_h
9 
10 #include "nsNativeBasicTheme.h"
11 
12 class nsNativeBasicThemeGTK : public nsNativeBasicTheme {
13  public:
14   nsNativeBasicThemeGTK() = default;
15 
16   NS_IMETHOD GetMinimumWidgetSize(nsPresContext* aPresContext, nsIFrame*,
17                                   StyleAppearance,
18                                   mozilla::LayoutDeviceIntSize* aResult,
19                                   bool* aIsOverridable) override;
20 
21   nsITheme::Transparency GetWidgetTransparency(nsIFrame*,
22                                                StyleAppearance) override;
23   bool PaintScrollbarThumb(DrawTarget&, const LayoutDeviceRect&,
24                            bool aHorizontal, nsIFrame*,
25                            const ComputedStyle& aStyle,
26                            const EventStates& aElementState,
27                            const EventStates& aDocumentState, UseSystemColors,
28                            DPIRatio) override;
29   bool PaintScrollbarThumb(WebRenderBackendData&, const LayoutDeviceRect&,
30                            bool aHorizontal, nsIFrame*,
31                            const ComputedStyle& aStyle,
32                            const EventStates& aElementState,
33                            const EventStates& aDocumentState, UseSystemColors,
34                            DPIRatio) override;
35   template <typename PaintBackendData>
36   bool DoPaintScrollbarThumb(PaintBackendData&, const LayoutDeviceRect&,
37                              bool aHorizontal, nsIFrame*, const ComputedStyle&,
38                              const EventStates& aElementState,
39                              const EventStates& aDocumentState, UseSystemColors,
40                              DPIRatio);
41 
42   bool ThemeSupportsScrollbarButtons() override;
43 
44  protected:
45   virtual ~nsNativeBasicThemeGTK() = default;
46 };
47 
48 #endif
49