michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsLookAndFeel_h_ michael@0: #define nsLookAndFeel_h_ michael@0: #include "nsXPLookAndFeel.h" michael@0: michael@0: class nsLookAndFeel: public nsXPLookAndFeel { michael@0: public: michael@0: nsLookAndFeel(); michael@0: virtual ~nsLookAndFeel(); michael@0: michael@0: virtual nsresult NativeGetColor(ColorID aID, nscolor &aResult); michael@0: virtual nsresult GetIntImpl(IntID aID, int32_t &aResult); michael@0: virtual nsresult GetFloatImpl(FloatID aID, float &aResult); michael@0: virtual bool GetFontImpl(FontID aID, nsString& aFontName, michael@0: gfxFontStyle& aFontStyle, michael@0: float aDevPixPerCSSPixel); michael@0: virtual char16_t GetPasswordCharacterImpl() michael@0: { michael@0: // unicode value for the bullet character, used for password textfields. michael@0: return 0x2022; michael@0: } michael@0: michael@0: static bool UseOverlayScrollbars(); michael@0: michael@0: protected: michael@0: michael@0: // Apple hasn't defined a constant for scollbars with two arrows on each end, so we'll use this one. michael@0: static const int kThemeScrollBarArrowsBoth = 2; michael@0: static const int kThemeScrollBarArrowsUpperLeft = 3; michael@0: michael@0: static bool SystemWantsOverlayScrollbars(); michael@0: static bool AllowOverlayScrollbarsOverlap(); michael@0: }; michael@0: michael@0: #endif // nsLookAndFeel_h_