diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-18 16:22:50 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-18 16:22:50 +0000 |
commit | 5964b17f51e9a6757925ba73ace6f4b276914e30 (patch) | |
tree | 54d8c39c6b1d64c311fc65135f6ef8489d7b3510 /ui/gfx/native_theme_base.cc | |
parent | d411c01d6b59e90f82ab2f20aad81f240bba0bff (diff) | |
download | chromium_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.cc | 137 |
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, |