mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-08 12:19:05 +02:00
Now both of GTK and MacOSX backends use the same machinery, LookAndFeelInt, for prefers-reduced-motion. And we are going to use it on Android as well so it'd make sense to move the code into there. On Windows we can also use the same LookAndFeelInt machinery and probably all we have to do is to call SendNotifyMessage with SPI_SETCLIENTAREAANIMATION in SetPrefersReducedMotionOverrideForTest. Differential Revision: https://phabricator.services.mozilla.com/D59022 --HG-- extra : moz-landing-system : lando
91 lines
2.7 KiB
C++
91 lines
2.7 KiB
C++
/* -*- Mode: C++; tab-width: 4; 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 nsLookAndFeel_h_
|
|
#define nsLookAndFeel_h_
|
|
#include "nsXPLookAndFeel.h"
|
|
|
|
class nsLookAndFeel final : public nsXPLookAndFeel {
|
|
public:
|
|
nsLookAndFeel();
|
|
virtual ~nsLookAndFeel();
|
|
|
|
void NativeInit() final;
|
|
virtual void RefreshImpl() override;
|
|
virtual nsresult NativeGetColor(ColorID aID, nscolor& aResult) override;
|
|
virtual nsresult GetIntImpl(IntID aID, int32_t& aResult) override;
|
|
virtual nsresult GetFloatImpl(FloatID aID, float& aResult) override;
|
|
virtual bool GetFontImpl(FontID aID, nsString& aFontName,
|
|
gfxFontStyle& aFontStyle) override;
|
|
|
|
virtual char16_t GetPasswordCharacterImpl() override {
|
|
// unicode value for the bullet character, used for password textfields.
|
|
return 0x2022;
|
|
}
|
|
|
|
static bool UseOverlayScrollbars();
|
|
|
|
virtual nsTArray<LookAndFeelInt> GetIntCacheImpl() override;
|
|
virtual void SetIntCacheImpl(
|
|
const nsTArray<LookAndFeelInt>& aLookAndFeelIntCache) override;
|
|
|
|
protected:
|
|
static bool SystemWantsOverlayScrollbars();
|
|
static bool AllowOverlayScrollbarsOverlap();
|
|
|
|
static bool SystemWantsDarkTheme();
|
|
static nscolor ProcessSelectionBackground(nscolor aColor);
|
|
|
|
private:
|
|
int32_t mUseOverlayScrollbars;
|
|
bool mUseOverlayScrollbarsCached;
|
|
|
|
int32_t mAllowOverlayScrollbarsOverlap;
|
|
bool mAllowOverlayScrollbarsOverlapCached;
|
|
|
|
int32_t mSystemUsesDarkTheme;
|
|
bool mSystemUsesDarkThemeCached;
|
|
|
|
nscolor mColorTextSelectBackground;
|
|
nscolor mColorTextSelectBackgroundDisabled;
|
|
nscolor mColorHighlight;
|
|
nscolor mColorMenuHover;
|
|
nscolor mColorTextSelectForeground;
|
|
nscolor mColorMenuHoverText;
|
|
nscolor mColorButtonText;
|
|
bool mHasColorButtonText;
|
|
nscolor mColorButtonHoverText;
|
|
nscolor mColorText;
|
|
nscolor mColorWindowText;
|
|
nscolor mColorActiveCaption;
|
|
nscolor mColorActiveBorder;
|
|
nscolor mColorGrayText;
|
|
nscolor mColorInactiveBorder;
|
|
nscolor mColorInactiveCaption;
|
|
nscolor mColorScrollbar;
|
|
nscolor mColorThreeDHighlight;
|
|
nscolor mColorMenu;
|
|
nscolor mColorWindowFrame;
|
|
nscolor mColorFieldText;
|
|
nscolor mColorDialog;
|
|
nscolor mColorDialogText;
|
|
nscolor mColorDragTargetZone;
|
|
nscolor mColorChromeActive;
|
|
nscolor mColorChromeInactive;
|
|
nscolor mColorFocusRing;
|
|
nscolor mColorTextSelect;
|
|
nscolor mColorDisabledToolbarText;
|
|
nscolor mColorMenuSelect;
|
|
nscolor mColorCellHighlight;
|
|
nscolor mColorEvenTreeRow;
|
|
nscolor mColorOddTreeRow;
|
|
nscolor mColorActiveSourceListSelection;
|
|
|
|
bool mInitialized;
|
|
|
|
void EnsureInit();
|
|
};
|
|
|
|
#endif // nsLookAndFeel_h_
|