Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(590)

Unified Diff: content/child/webthemeengine_impl_win.cc

Issue 154643005: Remove references to non-Aura Win WebThemeEngine implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove files from the gypi also Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/child/webthemeengine_impl_win.h ('k') | content/content_child.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/child/webthemeengine_impl_win.cc
diff --git a/content/child/webthemeengine_impl_win.cc b/content/child/webthemeengine_impl_win.cc
deleted file mode 100644
index 562e0488c0fdeec6c489b484a70d03160821a83c..0000000000000000000000000000000000000000
--- a/content/child/webthemeengine_impl_win.cc
+++ /dev/null
@@ -1,1014 +0,0 @@
-// Copyright 2014 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.
-
-#include "content/child/webthemeengine_impl_win.h"
-
-#include <vsstyle.h> // To convert to ui::NativeTheme::State
-
-#include "base/logging.h"
-#include "skia/ext/platform_canvas.h"
-#include "skia/ext/skia_utils_win.h"
-#include "third_party/WebKit/public/platform/WebRect.h"
-#include "ui/gfx/win/dpi.h"
-#include "ui/native_theme/native_theme.h"
-
-using blink::WebCanvas;
-using blink::WebColor;
-using blink::WebRect;
-using blink::WebSize;
-
-namespace content {
-
-static RECT WebRectToRECT(const WebRect& rect) {
- RECT result;
- result.left = rect.x;
- result.top = rect.y;
- result.right = rect.x + rect.width;
- result.bottom = rect.y + rect.height;
- return result;
-}
-
-static ui::NativeTheme::State WebButtonStateToGfx(
- int part, int state, ui::NativeTheme::ButtonExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- // Native buttons have a different focus style.
- extra->is_focused = false;
- extra->has_border = false;
- extra->background_color = ui::NativeTheme::instance()->GetSystemColor(
- ui::NativeTheme::kColorId_ButtonBackgroundColor);
-
- if (part == BP_PUSHBUTTON) {
- switch (state) {
- case PBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case PBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case PBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case PBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case PBS_DEFAULTED:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = true;
- break;
- case PBS_DEFAULTED_ANIMATING:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- }
- } else if (part == BP_RADIOBUTTON) {
- switch (state) {
- case RBS_UNCHECKEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_UNCHECKEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_UNCHECKEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_UNCHECKEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_CHECKEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_CHECKEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_CHECKEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case RBS_CHECKEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- } else if (part == BP_CHECKBOX) {
- switch (state) {
- case CBS_UNCHECKEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_UNCHECKEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_UNCHECKEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_UNCHECKEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_CHECKEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_CHECKEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_CHECKEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_CHECKEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = true;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_MIXEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = true;
- extra->is_default = false;
- break;
- case CBS_MIXEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = true;
- extra->is_default = false;
- break;
- case CBS_MIXEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = true;
- extra->is_default = false;
- break;
- case CBS_MIXEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = true;
- extra->is_default = false;
- break;
- case CBS_IMPLICITNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_IMPLICITHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_IMPLICITPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_IMPLICITDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_EXCLUDEDNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_EXCLUDEDHOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_EXCLUDEDPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CBS_EXCLUDEDDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- } else if (part == BP_GROUPBOX) {
- switch (state) {
- case GBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case GBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- } else if (part == BP_COMMANDLINK) {
- switch (state) {
- case CMDLS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLS_DEFAULTED:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = true;
- break;
- case CMDLS_DEFAULTED_ANIMATING:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- } else if (part == BP_COMMANDLINKGLYPH) {
- switch (state) {
- case CMDLGS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLGS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLGS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLGS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = false;
- break;
- case CMDLGS_DEFAULTED:
- gfx_state = ui::NativeTheme::kNormal;
- extra->checked = false;
- extra->indeterminate = false;
- extra->is_default = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintButton(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect) {
- ui::NativeTheme::Part native_part = ui::NativeTheme::kPushButton;
- switch (part) {
- case BP_PUSHBUTTON:
- native_part = ui::NativeTheme::kPushButton;
- break;
- case BP_CHECKBOX:
- native_part = ui::NativeTheme::kCheckbox;
- break;
- case BP_RADIOBUTTON:
- native_part = ui::NativeTheme::kRadio;
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebButtonStateToGfx(part, state,
- &extra.button);
- extra.button.classic_state = classic_state;
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebListMenuStateToGfx(int part, int state) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
-
- switch (part) {
- case CP_DROPDOWNBUTTON:
- switch (state) {
- case CBXS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- break;
- case CBXS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- break;
- case CBXS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- break;
- case CBXS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintMenuList(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect) {
- ui::NativeTheme::Part native_part = ui::NativeTheme::kMenuList;
- switch (part) {
- case CP_DROPDOWNBUTTON:
- native_part = ui::NativeTheme::kMenuList;
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- ui::NativeTheme::State native_state = WebListMenuStateToGfx(part, state);
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::ExtraParams extra;
- extra.menu_list.classic_state = classic_state;
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebScrollbarArrowStateToGfx(
- int state, ui::NativeTheme::Part* part,
- ui::NativeTheme::ScrollbarArrowExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (state) {
- case ABS_UPNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *part = ui::NativeTheme::kScrollbarUpArrow;
- extra->is_hovering = false;
- break;
- case ABS_UPHOT:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarUpArrow;
- extra->is_hovering = false;
- break;
- case ABS_UPPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *part = ui::NativeTheme::kScrollbarUpArrow;
- extra->is_hovering = false;
- break;
- case ABS_UPDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *part = ui::NativeTheme::kScrollbarUpArrow;
- extra->is_hovering = false;
- break;
- case ABS_DOWNNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *part = ui::NativeTheme::kScrollbarDownArrow;
- extra->is_hovering = false;
- break;
- case ABS_DOWNHOT:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarDownArrow;
- extra->is_hovering = false;
- break;
- case ABS_DOWNPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *part = ui::NativeTheme::kScrollbarDownArrow;
- extra->is_hovering = false;
- break;
- case ABS_DOWNDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *part = ui::NativeTheme::kScrollbarDownArrow;
- extra->is_hovering = false;
- break;
- case ABS_LEFTNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *part = ui::NativeTheme::kScrollbarLeftArrow;
- extra->is_hovering = false;
- break;
- case ABS_LEFTHOT:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarLeftArrow;
- extra->is_hovering = false;
- break;
- case ABS_LEFTPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *part = ui::NativeTheme::kScrollbarLeftArrow;
- extra->is_hovering = false;
- break;
- case ABS_LEFTDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *part = ui::NativeTheme::kScrollbarLeftArrow;
- extra->is_hovering = false;
- break;
- case ABS_RIGHTNORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *part = ui::NativeTheme::kScrollbarRightArrow;
- extra->is_hovering = false;
- break;
- case ABS_RIGHTHOT:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarRightArrow;
- extra->is_hovering = false;
- break;
- case ABS_RIGHTPRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *part = ui::NativeTheme::kScrollbarRightArrow;
- extra->is_hovering = false;
- break;
- case ABS_RIGHTDISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *part = ui::NativeTheme::kScrollbarRightArrow;
- extra->is_hovering = false;
- break;
- case ABS_UPHOVER:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarUpArrow;
- extra->is_hovering = true;
- break;
- case ABS_DOWNHOVER:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarDownArrow;
- extra->is_hovering = true;
- break;
- case ABS_LEFTHOVER:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarLeftArrow;
- extra->is_hovering = true;
- break;
- case ABS_RIGHTHOVER:
- gfx_state = ui::NativeTheme::kHovered;
- *part = ui::NativeTheme::kScrollbarRightArrow;
- extra->is_hovering = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintScrollbarArrow(
- WebCanvas* canvas, int state, int classic_state, const WebRect& rect) {
- ui::NativeTheme::Part native_part;
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebScrollbarArrowStateToGfx(
- state, &native_part, &extra.scrollbar_arrow);
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebScrollbarThumbStateToGfx(
- int state, ui::NativeTheme::ScrollbarThumbExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (state) {
- case SCRBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->is_hovering = false;
- break;
- case SCRBS_HOVER:
- gfx_state = ui::NativeTheme::kHovered;
- extra->is_hovering = true;
- break;
- case SCRBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->is_hovering = false;
- break;
- case SCRBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->is_hovering = false;
- break;
- case SCRBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->is_hovering = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintScrollbarThumb(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect) {
- ui::NativeTheme::Part native_part;
- if (part == SBP_THUMBBTNHORZ) {
- native_part = ui::NativeTheme::kScrollbarHorizontalThumb;
- } else if (part == SBP_THUMBBTNVERT) {
- native_part = ui::NativeTheme::kScrollbarVerticalThumb;
- } else if (part == SBP_GRIPPERHORZ) {
- native_part = ui::NativeTheme::kScrollbarHorizontalGripper;
- } else if (part == SBP_GRIPPERVERT) {
- native_part = ui::NativeTheme::kScrollbarVerticalGripper;
- } else {
- NOTREACHED() << "Invalid part: " << part;
- }
-
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebScrollbarThumbStateToGfx(
- state, &extra.scrollbar_thumb);
-
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebScrollbarTrackStateToGfx(
- int part, int state, ui::NativeTheme::Part* gfx_part,
- ui::NativeTheme::ScrollbarTrackExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (part) {
- case SBP_LOWERTRACKHORZ:
- switch (state) {
- case SCRBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_HOVER:
- case SCRBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- case SBP_UPPERTRACKHORZ:
- switch (state) {
- case SCRBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_HOVER:
- case SCRBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *gfx_part = ui::NativeTheme::kScrollbarHorizontalTrack;
- extra->is_upper = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- case SBP_LOWERTRACKVERT:
- switch (state) {
- case SCRBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_HOVER:
- case SCRBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = false;
- break;
- case SCRBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- case SBP_UPPERTRACKVERT:
- switch (state) {
- case SCRBS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_HOVER:
- case SCRBS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = true;
- break;
- case SCRBS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- *gfx_part = ui::NativeTheme::kScrollbarVerticalTrack;
- extra->is_upper = true;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintScrollbarTrack(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect, const WebRect& align_rect) {
- ui::NativeTheme::Part native_part;
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebScrollbarTrackStateToGfx(
- part, state, &native_part, &extra.scrollbar_track);
- extra.scrollbar_track.classic_state = classic_state;
- extra.scrollbar_track.track_x = align_rect.x;
- extra.scrollbar_track.track_y = align_rect.y;
- extra.scrollbar_track.track_width = align_rect.width;
- extra.scrollbar_track.track_height = align_rect.height;
-
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebSpinButtonStateToGfx(
- int part, int state, ui::NativeTheme::InnerSpinButtonExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (part) {
- case SPNP_UP:
- switch (state) {
- case UPS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->spin_up = true;
- extra->read_only = false;
- break;
- case UPS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->spin_up = true;
- extra->read_only = false;
- break;
- case UPS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->spin_up = true;
- extra->read_only = false;
- break;
- case UPS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->spin_up = true;
- extra->read_only = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- case SPNP_DOWN:
- switch (state) {
- case DNS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->spin_up = false;
- extra->read_only = false;
- break;
- case DNS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->spin_up = false;
- extra->read_only = false;
- break;
- case DNS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->spin_up = false;
- extra->read_only = false;
- break;
- case DNS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->spin_up = false;
- extra->read_only = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintSpinButton(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect) {
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebSpinButtonStateToGfx(
- part, state, &extra.inner_spin);
- extra.inner_spin.classic_state = classic_state;
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- ui::NativeTheme::instance()->Paint(canvas,
- ui::NativeTheme::kInnerSpinButton,
- native_state,
- gfx_rect,
- extra);
-}
-
-static ui::NativeTheme::State WebTextFieldStateToGfx(
- int part, int state, ui::NativeTheme::TextFieldExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (part) {
- case EP_EDITTEXT:
- switch (state) {
- case ETS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- extra->is_read_only = false;
- extra->is_focused = false;
- break;
- case ETS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- extra->is_read_only = false;
- extra->is_focused = false;
- break;
- case ETS_SELECTED:
- gfx_state = ui::NativeTheme::kPressed;
- extra->is_read_only = false;
- extra->is_focused = false;
- break;
- case ETS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- extra->is_read_only = false;
- extra->is_focused = false;
- break;
- case ETS_FOCUSED:
- gfx_state = ui::NativeTheme::kNormal;
- extra->is_read_only = false;
- extra->is_focused = true;
- break;
- case ETS_READONLY:
- gfx_state = ui::NativeTheme::kNormal;
- extra->is_read_only = true;
- extra->is_focused = false;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintTextField(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect, WebColor color, bool fill_content_area,
- bool draw_edges) {
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebTextFieldStateToGfx(
- part, state, &extra.text_field);
- extra.text_field.fill_content_area = fill_content_area;
- extra.text_field.draw_edges = draw_edges;
- extra.text_field.background_color = color;
- extra.text_field.classic_state = classic_state;
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
-
- ui::NativeTheme::instance()->Paint(canvas,
- ui::NativeTheme::kTextField, native_state, gfx_rect, extra);
-}
-
-static ui::NativeTheme::State WebTrackbarStateToGfx(
- int part,
- int state,
- ui::NativeTheme::TrackbarExtraParams* extra) {
- ui::NativeTheme::State gfx_state = ui::NativeTheme::kNormal;
- switch (state) {
- case TUS_NORMAL:
- gfx_state = ui::NativeTheme::kNormal;
- break;
- case TUS_HOT:
- gfx_state = ui::NativeTheme::kHovered;
- break;
- case TUS_PRESSED:
- gfx_state = ui::NativeTheme::kPressed;
- break;
- case TUS_DISABLED:
- gfx_state = ui::NativeTheme::kDisabled;
- break;
- default:
- NOTREACHED() << "Invalid state: " << state;
- break;
- }
-
- switch (part) {
- case TKP_TRACK:
- case TKP_THUMBBOTTOM:
- extra->vertical = false;
- break;
- case TKP_TRACKVERT:
- case TKP_THUMBVERT:
- extra->vertical = true;
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
-
- return gfx_state;
-}
-
-void WebThemeEngineImpl::paintTrackbar(
- WebCanvas* canvas, int part, int state, int classic_state,
- const WebRect& rect) {
- ui::NativeTheme::Part native_part = ui::NativeTheme::kTrackbarTrack;
- switch (part) {
- case TKP_TRACK:
- case TKP_TRACKVERT:
- native_part = ui::NativeTheme::kTrackbarTrack;
- break;
- case TKP_THUMBBOTTOM:
- case TKP_THUMBVERT:
- native_part = ui::NativeTheme::kTrackbarThumb;
- break;
- default:
- NOTREACHED() << "Invalid part: " << part;
- break;
- }
-
- ui::NativeTheme::ExtraParams extra;
- ui::NativeTheme::State native_state = WebTrackbarStateToGfx(part, state,
- &extra.trackbar);
- gfx::Rect gfx_rect(rect.x, rect.y, rect.width, rect.height);
- extra.trackbar.classic_state = classic_state;
- ui::NativeTheme::instance()->Paint(canvas, native_part,
- native_state, gfx_rect, extra);
-}
-
-void WebThemeEngineImpl::paintProgressBar(
- WebCanvas* canvas, const WebRect& barRect, const WebRect& valueRect,
- bool determinate, double animatedSeconds)
-{
- gfx::Rect gfx_rect(barRect.x, barRect.y, barRect.width, barRect.height);
- ui::NativeTheme::ExtraParams extra;
- extra.progress_bar.animated_seconds = animatedSeconds;
- extra.progress_bar.determinate = determinate;
- extra.progress_bar.value_rect_x = valueRect.x;
- extra.progress_bar.value_rect_y = valueRect.y;
- extra.progress_bar.value_rect_width = valueRect.width;
- extra.progress_bar.value_rect_height = valueRect.height;
- ui::NativeTheme::instance()->Paint(canvas, ui::NativeTheme::kProgressBar,
- ui::NativeTheme::kNormal, gfx_rect,
- extra);
-}
-
-WebSize WebThemeEngineImpl::getSize(int part) {
- switch (part) {
- case SBP_ARROWBTN: {
- gfx::Size size = ui::NativeTheme::instance()->GetPartSize(
- ui::NativeTheme::kScrollbarUpArrow,
- ui::NativeTheme::kNormal,
- ui::NativeTheme::ExtraParams());
- // GetPartSize returns a size of (0, 0) when not using a themed style
- // (i.e. Windows Classic). Returning a non-zero size in this context
- // creates repaint conflicts, particularly in the window titlebar area
- // which significantly degrades performance. Fallback to using a system
- // metric if required.
- if (size.width() == 0) {
- int width = static_cast<int>(GetSystemMetrics(SM_CXVSCROLL) /
- gfx::win::GetDeviceScaleFactor());
- size = gfx::Size(width, width);
- }
- return WebSize(size.width(), size.height());
- }
- default:
- NOTREACHED() << "Unhandled part: " << part;
- }
- return WebSize();
-}
-
-} // namespace content
« no previous file with comments | « content/child/webthemeengine_impl_win.h ('k') | content/content_child.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698