/* -*- 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 ScrollbarStyles_h #define ScrollbarStyles_h #include #include "nsStyleConsts.h" namespace mozilla { struct ScrollbarStyles { // Always one of NS_STYLE_OVERFLOW_SCROLL, NS_STYLE_OVERFLOW_HIDDEN, // or NS_STYLE_OVERFLOW_AUTO. uint8_t mHorizontal; uint8_t mVertical; // Always one of NS_STYLE_SCROLL_BEHAVIOR_AUTO, // NS_STYLE_SCROLL_BEHAVIOR_INSTANT, or // NS_STYLE_SCROLL_BEHAVIOR_SMOOTH uint8_t mScrollBehavior; ScrollbarStyles(uint8_t aH, uint8_t aV, uint8_t aB) : mHorizontal(aH), mVertical(aV), mScrollBehavior(aB) {} ScrollbarStyles() {} bool operator==(const ScrollbarStyles& aStyles) const { return aStyles.mHorizontal == mHorizontal && aStyles.mVertical == mVertical && aStyles.mScrollBehavior == mScrollBehavior; } bool operator!=(const ScrollbarStyles& aStyles) const { return aStyles.mHorizontal != mHorizontal || aStyles.mVertical != mVertical || aStyles.mScrollBehavior != mScrollBehavior; } bool IsHiddenInBothDirections() { return mHorizontal == NS_STYLE_OVERFLOW_HIDDEN && mVertical == NS_STYLE_OVERFLOW_HIDDEN; } }; } #endif