summaryrefslogtreecommitdiffstats
path: root/ui/gfx/native_theme_base.cc
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-18 16:22:50 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-18 16:22:50 +0000
commit5964b17f51e9a6757925ba73ace6f4b276914e30 (patch)
tree54d8c39c6b1d64c311fc65135f6ef8489d7b3510 /ui/gfx/native_theme_base.cc
parentd411c01d6b59e90f82ab2f20aad81f240bba0bff (diff)
downloadchromium_src-5964b17f51e9a6757925ba73ace6f4b276914e30.zip
chromium_src-5964b17f51e9a6757925ba73ace6f4b276914e30.tar.gz
chromium_src-5964b17f51e9a6757925ba73ace6f4b276914e30.tar.bz2
Aura: Use same views menu setup on win_aura and linux_aura
Resolves some TODOs I added in menu_config_win.cc and menu_item_view_win.cc, and harmonizes our menu rendering code between windows and linux Aura. BUG=100586 TEST=manual Review URL: http://codereview.chromium.org/8302017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106068 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/native_theme_base.cc')
-rw-r--r--ui/gfx/native_theme_base.cc137
1 files changed, 101 insertions, 36 deletions
diff --git a/ui/gfx/native_theme_base.cc b/ui/gfx/native_theme_base.cc
index 9446a79..95ba5aa 100644
--- a/ui/gfx/native_theme_base.cc
+++ b/ui/gfx/native_theme_base.cc
@@ -61,6 +61,30 @@ gfx::Size NativeThemeBase::GetPartSize(Part part,
State state,
const ExtraParams& extra) const {
switch (part) {
+ // Please keep these in the order of NativeTheme::Part.
+ case kCheckbox:
+ return gfx::Size(kCheckboxAndRadioWidth, kCheckboxAndRadioHeight);
+ case kInnerSpinButton:
+ return gfx::Size(scrollbar_width_, 0);
+ case kMenuList:
+ return gfx::Size(); // No default size.
+ case kMenuCheck:
+ case kMenuCheckBackground:
+ case kMenuPopupArrow:
+ NOTIMPLEMENTED();
+ break;
+ case kMenuPopupBackground:
+ return gfx::Size(); // No default size.
+ case kMenuPopupGutter:
+ case kMenuPopupSeparator:
+ NOTIMPLEMENTED();
+ break;
+ case kMenuItemBackground:
+ case kProgressBar:
+ case kPushButton:
+ return gfx::Size(); // No default size.
+ case kRadio:
+ return gfx::Size(kCheckboxAndRadioWidth, kCheckboxAndRadioHeight);
case kScrollbarDownArrow:
case kScrollbarUpArrow:
return gfx::Size(scrollbar_width_, button_length_);
@@ -73,33 +97,28 @@ gfx::Size NativeThemeBase::GetPartSize(Part part,
case kScrollbarVerticalThumb:
// This matches Firefox on Linux.
return gfx::Size(scrollbar_width_, 2 * scrollbar_width_);
- break;
case kScrollbarHorizontalTrack:
return gfx::Size(0, scrollbar_width_);
case kScrollbarVerticalTrack:
return gfx::Size(scrollbar_width_, 0);
- case kCheckbox:
- case kRadio:
- return gfx::Size(kCheckboxAndRadioWidth, kCheckboxAndRadioHeight);
+ case kScrollbarHorizontalGripper:
+ case kScrollbarVerticalGripper:
+ NOTIMPLEMENTED();
+ break;
+ case kSliderTrack:
+ return gfx::Size(); // No default size.
case kSliderThumb:
// These sizes match the sizes in Chromium Win.
return gfx::Size(kSliderThumbWidth, kSliderThumbHeight);
- case kInnerSpinButton:
- return gfx::Size(scrollbar_width_, 0);
- case kPushButton:
+ case kTabPanelBackground:
+ NOTIMPLEMENTED();
+ break;
case kTextField:
- case kMenuList:
- case kSliderTrack:
- case kProgressBar:
return gfx::Size(); // No default size.
- case kMenuCheck:
- case kMenuCheckBackground:
- case kMenuPopupArrow:
- case kMenuPopupBackground:
- case kMenuPopupGutter:
- case kMenuPopupSeparator:
- case kMenuItemBackground:
- NOTIMPLEMENTED() << " theme part: " << part;
+ case kTrackbarThumb:
+ case kTrackbarTrack:
+ case kWindowResizeGripper:
+ NOTIMPLEMENTED();
break;
default:
NOTREACHED() << "Unknown theme part: " << part;
@@ -240,6 +259,40 @@ void NativeThemeBase::Paint(SkCanvas* canvas,
const gfx::Rect& rect,
const ExtraParams& extra) const {
switch (part) {
+ // Please keep these in the order of NativeTheme::Part.
+ case kCheckbox:
+ PaintCheckbox(canvas, state, rect, extra.button);
+ break;
+ case kInnerSpinButton:
+ PaintInnerSpinButton(canvas, state, rect, extra.inner_spin);
+ break;
+ case kMenuList:
+ PaintMenuList(canvas, state, rect, extra.menu_list);
+ break;
+ case kMenuCheck:
+ case kMenuCheckBackground:
+ case kMenuPopupArrow:
+ NOTIMPLEMENTED();
+ break;
+ case kMenuPopupBackground:
+ PaintMenuPopupBackground(canvas, state, rect, extra.menu_list);
+ break;
+ case kMenuPopupGutter:
+ case kMenuPopupSeparator:
+ NOTIMPLEMENTED();
+ break;
+ case kMenuItemBackground:
+ PaintMenuItemBackground(canvas, state, rect, extra.menu_list);
+ break;
+ case kProgressBar:
+ PaintProgressBar(canvas, state, rect, extra.progress_bar);
+ break;
+ case kPushButton:
+ PaintButton(canvas, state, rect, extra.button);
+ break;
+ case kRadio:
+ PaintRadio(canvas, state, rect, extra.button);
+ break;
case kScrollbarDownArrow:
case kScrollbarUpArrow:
case kScrollbarLeftArrow:
@@ -254,20 +307,9 @@ void NativeThemeBase::Paint(SkCanvas* canvas,
case kScrollbarVerticalTrack:
PaintScrollbarTrack(canvas, part, state, extra.scrollbar_track, rect);
break;
- case kCheckbox:
- PaintCheckbox(canvas, state, rect, extra.button);
- break;
- case kRadio:
- PaintRadio(canvas, state, rect, extra.button);
- break;
- case kPushButton:
- PaintButton(canvas, state, rect, extra.button);
- break;
- case kTextField:
- PaintTextField(canvas, state, rect, extra.text_field);
- break;
- case kMenuList:
- PaintMenuList(canvas, state, rect, extra.menu_list);
+ case kScrollbarHorizontalGripper:
+ case kScrollbarVerticalGripper:
+ NOTIMPLEMENTED();
break;
case kSliderTrack:
PaintSliderTrack(canvas, state, rect, extra.slider);
@@ -275,11 +317,16 @@ void NativeThemeBase::Paint(SkCanvas* canvas,
case kSliderThumb:
PaintSliderThumb(canvas, state, rect, extra.slider);
break;
- case kInnerSpinButton:
- PaintInnerSpinButton(canvas, state, rect, extra.inner_spin);
+ case kTabPanelBackground:
+ NOTIMPLEMENTED();
break;
- case kProgressBar:
- PaintProgressBar(canvas, state, rect, extra.progress_bar);
+ case kTextField:
+ PaintTextField(canvas, state, rect, extra.text_field);
+ break;
+ case kTrackbarThumb:
+ case kTrackbarTrack:
+ case kWindowResizeGripper:
+ NOTIMPLEMENTED();
break;
default:
NOTREACHED() << "Unknown theme part: " << part;
@@ -619,6 +666,24 @@ void NativeThemeBase::PaintMenuList(
canvas->drawPath(path, paint);
}
+void NativeThemeBase::PaintMenuPopupBackground(
+ SkCanvas* canvas,
+ State state,
+ const gfx::Rect& rect,
+ const MenuListExtraParams& menu_list) const {
+ // This is the same as COLOR_TOOLBAR.
+ canvas->drawColor(SkColorSetRGB(210, 225, 246),
+ SkXfermode::kSrc_Mode);
+}
+
+void NativeThemeBase::PaintMenuItemBackground(
+ SkCanvas* canvas,
+ State state,
+ const gfx::Rect& rect,
+ const MenuListExtraParams& menu_list) const {
+ // By default don't draw anything over the normal background.
+}
+
void NativeThemeBase::PaintSliderTrack(SkCanvas* canvas,
State state,
const gfx::Rect& rect,