| Index: ui/base/native_theme/native_theme.h
|
| ===================================================================
|
| --- ui/base/native_theme/native_theme.h (revision 137002)
|
| +++ ui/base/native_theme/native_theme.h (working copy)
|
| @@ -1,273 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef UI_BASE_NATIVE_THEME_NATIVE_THEME_H_
|
| -#define UI_BASE_NATIVE_THEME_NATIVE_THEME_H_
|
| -#pragma once
|
| -
|
| -#include "third_party/skia/include/core/SkColor.h"
|
| -#include "ui/base/ui_export.h"
|
| -#include "ui/gfx/native_widget_types.h"
|
| -
|
| -class SkCanvas;
|
| -
|
| -namespace gfx {
|
| -class Rect;
|
| -class Size;
|
| -}
|
| -
|
| -namespace ui {
|
| -
|
| -// This class supports drawing UI controls (like buttons, text fields, lists,
|
| -// comboboxes, etc) that look like the native UI controls of the underlying
|
| -// platform, such as Windows or Linux. It also supplies default colors for
|
| -// dialog box backgrounds, etc., which are obtained from the system theme where
|
| -// possible.
|
| -//
|
| -// The supported control types are listed in the Part enum. These parts can be
|
| -// in any state given by the State enum, where the actual definition of the
|
| -// state is part-specific. The supported colors are listed in the ColorId enum.
|
| -//
|
| -// Some parts require more information than simply the state in order to be
|
| -// drawn correctly, and this information is given to the Paint() method via the
|
| -// ExtraParams union. Each part that requires more information has its own
|
| -// field in the union.
|
| -//
|
| -// NativeTheme also supports getting the default size of a given part with
|
| -// the GetPartSize() method.
|
| -class UI_EXPORT NativeTheme {
|
| - public:
|
| - // The part to be painted / sized.
|
| - enum Part {
|
| - kCheckbox,
|
| - kInnerSpinButton,
|
| - kMenuList,
|
| - kMenuCheck,
|
| - kMenuCheckBackground,
|
| - kMenuPopupArrow,
|
| - kMenuPopupBackground,
|
| - kMenuPopupGutter,
|
| - kMenuPopupSeparator,
|
| - kMenuItemBackground,
|
| - kProgressBar,
|
| - kPushButton,
|
| - kRadio,
|
| -
|
| - // The order of the arrow enums is important, do not change without also
|
| - // changing the code in platform implementations.
|
| - kScrollbarDownArrow,
|
| - kScrollbarLeftArrow,
|
| - kScrollbarRightArrow,
|
| - kScrollbarUpArrow,
|
| -
|
| - kScrollbarHorizontalThumb,
|
| - kScrollbarVerticalThumb,
|
| - kScrollbarHorizontalTrack,
|
| - kScrollbarVerticalTrack,
|
| - kScrollbarHorizontalGripper,
|
| - kScrollbarVerticalGripper,
|
| - kSliderTrack,
|
| - kSliderThumb,
|
| - kTabPanelBackground,
|
| - kTextField,
|
| - kTrackbarThumb,
|
| - kTrackbarTrack,
|
| - kWindowResizeGripper,
|
| - kMaxPart,
|
| - };
|
| -
|
| - // The state of the part.
|
| - enum State {
|
| - kDisabled,
|
| - kHovered,
|
| - kNormal,
|
| - kPressed,
|
| - kMaxState,
|
| - };
|
| -
|
| - // Each structure below holds extra information needed when painting a given
|
| - // part.
|
| -
|
| - struct ButtonExtraParams {
|
| - bool checked;
|
| - bool indeterminate; // Whether the button state is indeterminate.
|
| - bool is_default; // Whether the button is default button.
|
| - bool has_border;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - SkColor background_color;
|
| - };
|
| -
|
| - struct InnerSpinButtonExtraParams {
|
| - bool spin_up;
|
| - bool read_only;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - };
|
| -
|
| - struct MenuArrowExtraParams {
|
| - bool pointing_right;
|
| - // Used for the disabled state to indicate if the item is both disabled and
|
| - // selected.
|
| - bool is_selected;
|
| - };
|
| -
|
| - struct MenuCheckExtraParams {
|
| - bool is_radio;
|
| - // Used for the disabled state to indicate if the item is both disabled and
|
| - // selected.
|
| - bool is_selected;
|
| - };
|
| -
|
| - struct MenuItemExtraParams {
|
| - bool is_selected;
|
| - };
|
| -
|
| - struct MenuListExtraParams {
|
| - bool has_border;
|
| - bool has_border_radius;
|
| - int arrow_x;
|
| - int arrow_y;
|
| - SkColor background_color;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - };
|
| -
|
| - struct MenuSeparatorExtraParams {
|
| - bool has_gutter;
|
| - };
|
| -
|
| - struct ProgressBarExtraParams {
|
| - double animated_seconds;
|
| - bool determinate;
|
| - int value_rect_x;
|
| - int value_rect_y;
|
| - int value_rect_width;
|
| - int value_rect_height;
|
| - };
|
| -
|
| - struct ScrollbarArrowExtraParams {
|
| - bool is_hovering;
|
| - };
|
| -
|
| - struct ScrollbarTrackExtraParams {
|
| - bool is_upper;
|
| - int track_x;
|
| - int track_y;
|
| - int track_width;
|
| - int track_height;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - };
|
| -
|
| - struct ScrollbarThumbExtraParams {
|
| - bool is_hovering;
|
| - };
|
| -
|
| - struct SliderExtraParams {
|
| - bool vertical;
|
| - bool in_drag;
|
| - };
|
| -
|
| - struct TextFieldExtraParams {
|
| - bool is_text_area;
|
| - bool is_listbox;
|
| - SkColor background_color;
|
| - bool is_read_only;
|
| - bool is_focused;
|
| - bool fill_content_area;
|
| - bool draw_edges;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - };
|
| -
|
| - struct TrackbarExtraParams {
|
| - bool vertical;
|
| - int classic_state; // Used on Windows when uxtheme is not available.
|
| - };
|
| -
|
| - union ExtraParams {
|
| - ButtonExtraParams button;
|
| - InnerSpinButtonExtraParams inner_spin;
|
| - MenuArrowExtraParams menu_arrow;
|
| - MenuCheckExtraParams menu_check;
|
| - MenuItemExtraParams menu_item;
|
| - MenuListExtraParams menu_list;
|
| - MenuSeparatorExtraParams menu_separator;
|
| - ProgressBarExtraParams progress_bar;
|
| - ScrollbarArrowExtraParams scrollbar_arrow;
|
| - ScrollbarTrackExtraParams scrollbar_track;
|
| - ScrollbarThumbExtraParams scrollbar_thumb;
|
| - SliderExtraParams slider;
|
| - TextFieldExtraParams text_field;
|
| - TrackbarExtraParams trackbar;
|
| - };
|
| -
|
| - // Return the size of the part.
|
| - virtual gfx::Size GetPartSize(Part part,
|
| - State state,
|
| - const ExtraParams& extra) const = 0;
|
| -
|
| - // Paint the part to the canvas.
|
| - virtual void Paint(SkCanvas* canvas,
|
| - Part part,
|
| - State state,
|
| - const gfx::Rect& rect,
|
| - const ExtraParams& extra) const = 0;
|
| -
|
| - // Supports theme specific colors.
|
| - void SetScrollbarColors(unsigned inactive_color,
|
| - unsigned active_color,
|
| - unsigned track_color) const;
|
| -
|
| - // Colors for GetSystemColor().
|
| - enum ColorId {
|
| - // Dialogs
|
| - kColorId_DialogBackground,
|
| - // FocusableBorder
|
| - kColorId_FocusedBorderColor,
|
| - kColorId_UnfocusedBorderColor,
|
| - // TextButton
|
| - kColorId_TextButtonBackgroundColor,
|
| - kColorId_TextButtonEnabledColor,
|
| - kColorId_TextButtonDisabledColor,
|
| - kColorId_TextButtonHighlightColor,
|
| - kColorId_TextButtonHoverColor,
|
| - // MenuItem
|
| - kColorId_EnabledMenuItemForegroundColor,
|
| - kColorId_DisabledMenuItemForegroundColor,
|
| - kColorId_FocusedMenuItemBackgroundColor,
|
| - kColorId_MenuSeparatorColor,
|
| - // Label
|
| - kColorId_LabelEnabledColor,
|
| - kColorId_LabelDisabledColor,
|
| - kColorId_LabelBackgroundColor,
|
| - // Textfield
|
| - kColorId_TextfieldDefaultColor,
|
| - kColorId_TextfieldDefaultBackground,
|
| - kColorId_TextfieldSelectionColor,
|
| - kColorId_TextfieldSelectionBackgroundFocused,
|
| - kColorId_TextfieldSelectionBackgroundUnfocused,
|
| - // TODO(benrg): move other hardcoded colors here.
|
| - };
|
| -
|
| - // Return a color from the system theme.
|
| - virtual SkColor GetSystemColor(ColorId color_id) const = 0;
|
| -
|
| - // Returns a shared instance of the native theme.
|
| - // The returned object should not be deleted by the caller. This function
|
| - // is not thread safe and should only be called from the UI thread.
|
| - // Each port of NativeTheme should provide its own implementation of this
|
| - // function, returning the port's subclass.
|
| - static const NativeTheme* instance();
|
| -
|
| - protected:
|
| - NativeTheme() {}
|
| - virtual ~NativeTheme() {}
|
| -
|
| - static unsigned int thumb_inactive_color_;
|
| - static unsigned int thumb_active_color_;
|
| - static unsigned int track_color_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(NativeTheme);
|
| -};
|
| -
|
| -} // namespace ui
|
| -
|
| -#endif // UI_BASE_NATIVE_THEME_NATIVE_THEME_H_
|
|
|