diff options
Diffstat (limited to '')
-rw-r--r-- | widget/headless/HeadlessThemeGTK.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/widget/headless/HeadlessThemeGTK.h b/widget/headless/HeadlessThemeGTK.h new file mode 100644 index 0000000000..11ca0a1f92 --- /dev/null +++ b/widget/headless/HeadlessThemeGTK.h @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_widget_HeadlessThemeGTK_h +#define mozilla_widget_HeadlessThemeGTK_h + +#include "nsITheme.h" +#include "nsNativeTheme.h" + +namespace mozilla { +namespace widget { + +class HeadlessThemeGTK final : private nsNativeTheme, public nsITheme { + public: + NS_DECL_ISUPPORTS_INHERITED + + HeadlessThemeGTK() = default; + NS_IMETHOD DrawWidgetBackground(gfxContext* aContext, nsIFrame* aFrame, + StyleAppearance aAppearance, + const nsRect& aRect, + const nsRect& aDirtyRect) override; + + [[nodiscard]] LayoutDeviceIntMargin GetWidgetBorder( + nsDeviceContext* aContext, nsIFrame* aFrame, + StyleAppearance aAppearance) override; + + bool GetWidgetPadding(nsDeviceContext* aContext, nsIFrame* aFrame, + StyleAppearance aAppearance, + LayoutDeviceIntMargin* aResult) override; + NS_IMETHOD GetMinimumWidgetSize(nsPresContext* aPresContext, nsIFrame* aFrame, + StyleAppearance aAppearance, + mozilla::LayoutDeviceIntSize* aResult, + bool* aIsOverridable) override; + + NS_IMETHOD WidgetStateChanged(nsIFrame* aFrame, StyleAppearance aAppearance, + nsAtom* aAttribute, bool* aShouldRepaint, + const nsAttrValue* aOldValue) override; + + NS_IMETHOD ThemeChanged() override; + + NS_IMETHOD_(bool) + ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* aFrame, + StyleAppearance aAppearance) override; + + NS_IMETHOD_(bool) WidgetIsContainer(StyleAppearance aAppearance) override; + + NS_IMETHOD_(bool) + ThemeDrawsFocusForWidget(StyleAppearance aAppearance) override; + + virtual bool ThemeNeedsComboboxDropmarker() override; + + protected: + virtual ~HeadlessThemeGTK() = default; +}; + +} // namespace widget +} // namespace mozilla + +#endif // mozilla_widget_HeadlessThemeGTK_h |