/* * Copyright (C) 2008, 2011 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef PopupMenuStyle_h #define PopupMenuStyle_h #include "Color.h" #include "FontCascade.h" #include "Length.h" #include "TextFlags.h" namespace WebCore { class PopupMenuStyle { public: enum PopupMenuType { SelectPopup, AutofillPopup }; enum BackgroundColorType { DefaultBackgroundColor, CustomBackgroundColor }; enum PopupMenuSize { PopupMenuSizeNormal, PopupMenuSizeSmall, PopupMenuSizeMini }; PopupMenuStyle(const Color& foreground, const Color& background, const FontCascade& font, bool visible, bool isDisplayNone, bool hasDefaultAppearance, Length textIndent, TextDirection textDirection, bool hasTextDirectionOverride, BackgroundColorType backgroundColorType = DefaultBackgroundColor, PopupMenuType menuType = SelectPopup, PopupMenuSize menuSize = PopupMenuSizeNormal) : m_foregroundColor(foreground) , m_backgroundColor(background) , m_font(font) , m_visible(visible) , m_isDisplayNone(isDisplayNone) , m_hasDefaultAppearance(hasDefaultAppearance) , m_textIndent(textIndent) , m_textDirection(textDirection) , m_hasTextDirectionOverride(hasTextDirectionOverride) , m_backgroundColorType(backgroundColorType) , m_menuType(menuType) , m_menuSize(menuSize) { } const Color& foregroundColor() const { return m_foregroundColor; } const Color& backgroundColor() const { return m_backgroundColor; } const FontCascade& font() const { return m_font; } bool isVisible() const { return m_visible; } bool isDisplayNone() const { return m_isDisplayNone; } bool hasDefaultAppearance() const { return m_hasDefaultAppearance; } Length textIndent() const { return m_textIndent; } TextDirection textDirection() const { return m_textDirection; } bool hasTextDirectionOverride() const { return m_hasTextDirectionOverride; } BackgroundColorType backgroundColorType() const { return m_backgroundColorType; } PopupMenuType menuType() const { return m_menuType; } PopupMenuSize menuSize() const { return m_menuSize; } private: Color m_foregroundColor; Color m_backgroundColor; FontCascade m_font; bool m_visible; bool m_isDisplayNone; bool m_hasDefaultAppearance; Length m_textIndent; TextDirection m_textDirection; bool m_hasTextDirectionOverride; BackgroundColorType m_backgroundColorType; PopupMenuType m_menuType; PopupMenuSize m_menuSize; }; } // namespace WebCore #endif // PopupMenuStyle_h