diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 23:03:07 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 23:03:07 +0000 |
commit | 267c03d478d9c83ef8c37999f3abb1cd822881ff (patch) | |
tree | 6286c650d0ec58cdee9c7482fda929252bd985b5 /gfx/native_theme_win.h | |
parent | 7c085463177741a3844215675577bba3de1be836 (diff) | |
download | chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.zip chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.tar.gz chromium_src-267c03d478d9c83ef8c37999f3abb1cd822881ff.tar.bz2 |
Move src/gfx/ to src/ui/gfx
To reduce the size of this change I've left stub header files in src/gfx/. Once all includes have been updated I'll delete the stub files.
BUG=71063
TEST=Still doing test builds.
Review URL: http://codereview.chromium.org/6246027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73530 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gfx/native_theme_win.h')
-rw-r--r-- | gfx/native_theme_win.h | 307 |
1 files changed, 2 insertions, 305 deletions
diff --git a/gfx/native_theme_win.h b/gfx/native_theme_win.h index 72a5432..c45b5fc 100644 --- a/gfx/native_theme_win.h +++ b/gfx/native_theme_win.h @@ -12,310 +12,7 @@ #define APP_GFX_NATIVE_THEME_WIN_H_ #pragma once -#include <windows.h> -#include <uxtheme.h> -#include "base/basictypes.h" -#include "gfx/size.h" -#include "third_party/skia/include/core/SkColor.h" - -namespace skia { -class PlatformCanvas; -} // namespace skia - -namespace gfx { - -// TODO: Define class member enums to replace part_id and state_id parameters -// that are currently defined in <vssym32.h>. Afterward, classic_state should -// be removed and class users wouldn't need to include <vssym32.h> anymore. -// This would enable HOT state on non-themed UI (like when RDP'ing) and would -// simplify usage. -// TODO: This class should probably be changed to be platform independent at -// the same time. -class NativeTheme { - public: - enum ThemeName { - BUTTON, - LIST, - MENU, - MENULIST, - SCROLLBAR, - STATUS, - TAB, - TEXTFIELD, - TRACKBAR, - WINDOW, - PROGRESS, - SPIN, - LAST - }; - - // This enumeration is used within PaintMenuArrow in order to indicate the - // direction the menu arrow should point to. - enum MenuArrowDirection { - LEFT_POINTING_ARROW, - RIGHT_POINTING_ARROW - }; - - enum ControlState { - CONTROL_NORMAL, - CONTROL_HIGHLIGHTED, - CONTROL_DISABLED - }; - - typedef HRESULT (WINAPI* DrawThemeBackgroundPtr)(HANDLE theme, - HDC hdc, - int part_id, - int state_id, - const RECT* rect, - const RECT* clip_rect); - typedef HRESULT (WINAPI* DrawThemeBackgroundExPtr)(HANDLE theme, - HDC hdc, - int part_id, - int state_id, - const RECT* rect, - const DTBGOPTS* opts); - typedef HRESULT (WINAPI* GetThemeColorPtr)(HANDLE hTheme, - int part_id, - int state_id, - int prop_id, - COLORREF* color); - typedef HRESULT (WINAPI* GetThemeContentRectPtr)(HANDLE hTheme, - HDC hdc, - int part_id, - int state_id, - const RECT* rect, - RECT* content_rect); - typedef HRESULT (WINAPI* GetThemePartSizePtr)(HANDLE hTheme, - HDC hdc, - int part_id, - int state_id, - RECT* rect, - int ts, - SIZE* size); - typedef HANDLE (WINAPI* OpenThemeDataPtr)(HWND window, - LPCWSTR class_list); - typedef HRESULT (WINAPI* CloseThemeDataPtr)(HANDLE theme); - - typedef void (WINAPI* SetThemeAppPropertiesPtr) (DWORD flags); - typedef BOOL (WINAPI* IsThemeActivePtr)(); - typedef HRESULT (WINAPI* GetThemeIntPtr)(HANDLE hTheme, - int part_id, - int state_id, - int prop_id, - int *value); - - HRESULT PaintButton(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect) const; - - HRESULT PaintDialogBackground(HDC dc, bool active, RECT* rect) const; - - HRESULT PaintListBackground(HDC dc, bool enabled, RECT* rect) const; - - // |arrow_direction| determines whether the arrow is pointing to the left or - // to the right. In RTL locales, sub-menus open from right to left and - // therefore the menu arrow should point to the left and not to the right. - HRESULT PaintMenuArrow(ThemeName theme, - HDC hdc, - int part_id, - int state_id, - RECT* rect, - MenuArrowDirection arrow_direction, - ControlState state) const; - - HRESULT PaintMenuBackground(ThemeName theme, - HDC hdc, - int part_id, - int state_id, - RECT* rect) const; - - HRESULT PaintMenuCheck(ThemeName theme, - HDC hdc, - int part_id, - int state_id, - RECT* rect, - ControlState state) const; - - HRESULT PaintMenuCheckBackground(ThemeName theme, - HDC hdc, - int part_id, - int state_id, - RECT* rect) const; - - HRESULT PaintMenuGutter(HDC hdc, - int part_id, - int state_id, - RECT* rect) const; - - HRESULT PaintMenuItemBackground(ThemeName theme, - HDC hdc, - int part_id, - int state_id, - bool selected, - RECT* rect) const; - - HRESULT PaintMenuList(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect) const; - - HRESULT PaintMenuSeparator(HDC hdc, - int part_id, - int state_id, - RECT* rect) const; - - // Paints a scrollbar arrow. |classic_state| should have the appropriate - // classic part number ORed in already. - HRESULT PaintScrollbarArrow(HDC hdc, - int state_id, - int classic_state, - RECT* rect) const; - - // Paints a scrollbar track section. |align_rect| is only used in classic - // mode, and makes sure the checkerboard pattern in |target_rect| is aligned - // with one presumed to be in |align_rect|. - HRESULT PaintScrollbarTrack(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* target_rect, - RECT* align_rect, - skia::PlatformCanvas* canvas) const; - - // Paints a scrollbar thumb or gripper. - HRESULT PaintScrollbarThumb(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect) const; - - HRESULT PaintSpinButton(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect) const; - - HRESULT PaintStatusGripper(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect) const; - - HRESULT PaintTabPanelBackground(HDC dc, RECT* rect) const; - - HRESULT PaintTextField(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect, - COLORREF color, - bool fill_content_area, - bool draw_edges) const; - - HRESULT PaintTrackbar(HDC hdc, - int part_id, - int state_id, - int classic_state, - RECT* rect, - skia::PlatformCanvas* canvas) const; - - HRESULT PaintProgressBar(HDC hdc, - RECT* bar_rect, - RECT* value_rect, - bool determinate, - double animated_seconds, - skia::PlatformCanvas* canvas) const; - - bool IsThemingActive() const; - - HRESULT GetThemePartSize(ThemeName themeName, - HDC hdc, - int part_id, - int state_id, - RECT* rect, - int ts, - SIZE* size) const; - - HRESULT GetThemeColor(ThemeName theme, - int part_id, - int state_id, - int prop_id, - SkColor* color) const; - - // Get the theme color if theming is enabled. If theming is unsupported - // for this part, use Win32's GetSysColor to find the color specified - // by default_sys_color. - SkColor GetThemeColorWithDefault(ThemeName theme, - int part_id, - int state_id, - int prop_id, - int default_sys_color) const; - - HRESULT GetThemeInt(ThemeName theme, - int part_id, - int state_id, - int prop_id, - int *result) const; - - // Get the thickness of the border associated with the specified theme, - // defaulting to GetSystemMetrics edge size if themes are disabled. - // In Classic Windows, borders are typically 2px; on XP+, they are 1px. - Size GetThemeBorderSize(ThemeName theme) const; - - // Disables all theming for top-level windows in the entire process, from - // when this method is called until the process exits. All the other - // methods in this class will continue to work, but their output will ignore - // the user's theme. This is meant for use when running tests that require - // consistent visual results. - void DisableTheming() const; - - // Closes cached theme handles so we can unload the DLL or update our UI - // for a theme change. - void CloseHandles() const; - - // Returns true if classic theme is in use. - bool IsClassicTheme(ThemeName name) const; - - // Gets our singleton instance. - static const NativeTheme* instance(); - - private: - NativeTheme(); - ~NativeTheme(); - - HRESULT PaintFrameControl(HDC hdc, - RECT* rect, - UINT type, - UINT state, - ControlState control_state) const; - - // Returns a handle to the theme data. - HANDLE GetThemeHandle(ThemeName theme_name) const; - - // Function pointers into uxtheme.dll. - DrawThemeBackgroundPtr draw_theme_; - DrawThemeBackgroundExPtr draw_theme_ex_; - GetThemeColorPtr get_theme_color_; - GetThemeContentRectPtr get_theme_content_rect_; - GetThemePartSizePtr get_theme_part_size_; - OpenThemeDataPtr open_theme_; - CloseThemeDataPtr close_theme_; - SetThemeAppPropertiesPtr set_theme_properties_; - IsThemeActivePtr is_theme_active_; - GetThemeIntPtr get_theme_int_; - - // Handle to uxtheme.dll. - HMODULE theme_dll_; - - // A cache of open theme handles. - mutable HANDLE theme_handles_[LAST]; - - DISALLOW_COPY_AND_ASSIGN(NativeTheme); -}; - -} // namespace gfx +#include "ui/gfx/native_theme_win.h" +// TODO(sail): remove this file once all includes have been updated. #endif // APP_GFX_NATIVE_THEME_WIN_H_ |