PopupMenuStyle.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright (C) 2008, 2011 Apple Inc. All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions
  6. * are met:
  7. * 1. Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * 2. Redistributions in binary form must reproduce the above copyright
  10. * notice, this list of conditions and the following disclaimer in the
  11. * documentation and/or other materials provided with the distribution.
  12. *
  13. * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
  14. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  15. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  16. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
  17. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  18. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  19. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  20. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  21. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  23. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. */
  25. #ifndef PopupMenuStyle_h
  26. #define PopupMenuStyle_h
  27. #include "Color.h"
  28. #include "Font.h"
  29. #include "Length.h"
  30. #include "TextDirection.h"
  31. namespace WebCore {
  32. class PopupMenuStyle {
  33. public:
  34. enum PopupMenuType { SelectPopup, AutofillPopup };
  35. enum BackgroundColorType { DefaultBackgroundColor, CustomBackgroundColor };
  36. PopupMenuStyle(const Color& foreground, const Color& background, const Font& font, bool visible, bool isDisplayNone, Length textIndent, TextDirection textDirection, bool hasTextDirectionOverride, BackgroundColorType backgroundColorType = DefaultBackgroundColor, PopupMenuType menuType = SelectPopup)
  37. : m_foregroundColor(foreground)
  38. , m_backgroundColor(background)
  39. , m_font(font)
  40. , m_visible(visible)
  41. , m_isDisplayNone(isDisplayNone)
  42. , m_textIndent(textIndent)
  43. , m_textDirection(textDirection)
  44. , m_hasTextDirectionOverride(hasTextDirectionOverride)
  45. , m_backgroundColorType(backgroundColorType)
  46. , m_menuType(menuType)
  47. {
  48. }
  49. const Color& foregroundColor() const { return m_foregroundColor; }
  50. const Color& backgroundColor() const { return m_backgroundColor; }
  51. const Font& font() const { return m_font; }
  52. bool isVisible() const { return m_visible; }
  53. bool isDisplayNone() const { return m_isDisplayNone; }
  54. Length textIndent() const { return m_textIndent; }
  55. TextDirection textDirection() const { return m_textDirection; }
  56. bool hasTextDirectionOverride() const { return m_hasTextDirectionOverride; }
  57. BackgroundColorType backgroundColorType() const { return m_backgroundColorType; }
  58. PopupMenuType menuType() const { return m_menuType; }
  59. private:
  60. Color m_foregroundColor;
  61. Color m_backgroundColor;
  62. Font m_font;
  63. bool m_visible;
  64. bool m_isDisplayNone;
  65. Length m_textIndent;
  66. TextDirection m_textDirection;
  67. bool m_hasTextDirectionOverride;
  68. BackgroundColorType m_backgroundColorType;
  69. PopupMenuType m_menuType;
  70. };
  71. } // namespace WebCore
  72. #endif // PopupMenuStyle_h