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