| OLD | NEW | 
|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "views/controls/menu/menu_scroll_view_container.h" | 5 #include "views/controls/menu/menu_scroll_view_container.h" | 
| 6 | 6 | 
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) | 
| 8 #include <windows.h> | 8 #include <windows.h> | 
| 9 #include <uxtheme.h> | 9 #include <uxtheme.h> | 
| 10 #include <Vssym32.h> | 10 #include <Vssym32.h> | 
| 11 #endif | 11 #endif | 
| 12 | 12 | 
| 13 #include "gfx/canvas_skia.h" | 13 #include "gfx/canvas.h" | 
| 14 #include "gfx/color_utils.h" | 14 #include "gfx/color_utils.h" | 
| 15 #include "views/border.h" | 15 #include "views/border.h" | 
| 16 #include "third_party/skia/include/effects/SkGradientShader.h" | 16 #include "third_party/skia/include/effects/SkGradientShader.h" | 
| 17 #include "views/controls/menu/menu_config.h" | 17 #include "views/controls/menu/menu_config.h" | 
| 18 #include "views/controls/menu/menu_controller.h" | 18 #include "views/controls/menu/menu_controller.h" | 
| 19 #include "views/controls/menu/menu_item_view.h" | 19 #include "views/controls/menu/menu_item_view.h" | 
| 20 #include "views/controls/menu/submenu_view.h" | 20 #include "views/controls/menu/submenu_view.h" | 
| 21 | 21 | 
| 22 #if defined(OS_WIN) | 22 #if defined(OS_WIN) | 
| 23 #include "gfx/native_theme_win.h" | 23 #include "gfx/native_theme_win.h" | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 76   } | 76   } | 
| 77 | 77 | 
| 78   virtual int OnPerformDrop(const DropTargetEvent& event) { | 78   virtual int OnPerformDrop(const DropTargetEvent& event) { | 
| 79     return DragDropTypes::DRAG_NONE; | 79     return DragDropTypes::DRAG_NONE; | 
| 80   } | 80   } | 
| 81 | 81 | 
| 82   virtual void Paint(gfx::Canvas* canvas) { | 82   virtual void Paint(gfx::Canvas* canvas) { | 
| 83     const MenuConfig& config = MenuConfig::instance(); | 83     const MenuConfig& config = MenuConfig::instance(); | 
| 84 | 84 | 
| 85 #if defined(OS_WIN) | 85 #if defined(OS_WIN) | 
| 86     HDC dc = canvas->AsCanvasSkia()->beginPlatformPaint(); | 86     HDC dc = canvas->beginPlatformPaint(); | 
| 87 | 87 | 
| 88     // The background. | 88     // The background. | 
| 89     RECT item_bounds = { 0, 0, width(), height() }; | 89     RECT item_bounds = { 0, 0, width(), height() }; | 
| 90     NativeTheme::instance()->PaintMenuItemBackground( | 90     NativeTheme::instance()->PaintMenuItemBackground( | 
| 91         NativeTheme::MENU, dc, MENU_POPUPITEM, MPI_NORMAL, false, | 91         NativeTheme::MENU, dc, MENU_POPUPITEM, MPI_NORMAL, false, | 
| 92         &item_bounds); | 92         &item_bounds); | 
| 93     canvas->AsCanvasSkia()->endPlatformPaint(); | 93     canvas->endPlatformPaint(); | 
| 94 | 94 | 
| 95     SkColor arrow_color = color_utils::GetSysSkColor(COLOR_MENUTEXT); | 95     SkColor arrow_color = color_utils::GetSysSkColor(COLOR_MENUTEXT); | 
| 96 #else | 96 #else | 
| 97     SkColor arrow_color = SK_ColorBLACK; | 97     SkColor arrow_color = SK_ColorBLACK; | 
| 98 #endif | 98 #endif | 
| 99 | 99 | 
| 100     // Then the arrow. | 100     // Then the arrow. | 
| 101     int x = width() / 2; | 101     int x = width() / 2; | 
| 102     int y = (height() - config.scroll_arrow_height) / 2; | 102     int y = (height() - config.scroll_arrow_height) / 2; | 
| 103     int delta_y = 1; | 103     int delta_y = 1; | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 178                  SubmenuView::kSubmenuBorderSize)); | 178                  SubmenuView::kSubmenuBorderSize)); | 
| 179 } | 179 } | 
| 180 | 180 | 
| 181 void MenuScrollViewContainer::PaintBackground(gfx::Canvas* canvas) { | 181 void MenuScrollViewContainer::PaintBackground(gfx::Canvas* canvas) { | 
| 182   if (background()) { | 182   if (background()) { | 
| 183     View::PaintBackground(canvas); | 183     View::PaintBackground(canvas); | 
| 184     return; | 184     return; | 
| 185   } | 185   } | 
| 186 | 186 | 
| 187 #if defined(OS_WIN) | 187 #if defined(OS_WIN) | 
| 188   HDC dc = canvas->AsCanvasSkia()->beginPlatformPaint(); | 188   HDC dc = canvas->beginPlatformPaint(); | 
| 189   RECT bounds = {0, 0, width(), height()}; | 189   RECT bounds = {0, 0, width(), height()}; | 
| 190   NativeTheme::instance()->PaintMenuBackground( | 190   NativeTheme::instance()->PaintMenuBackground( | 
| 191       NativeTheme::MENU, dc, MENU_POPUPBACKGROUND, 0, &bounds); | 191       NativeTheme::MENU, dc, MENU_POPUPBACKGROUND, 0, &bounds); | 
| 192   canvas->AsCanvasSkia()->endPlatformPaint(); | 192   canvas->endPlatformPaint(); | 
| 193 #elif defined(OS_CHROMEOS) | 193 #elif defined(OS_CHROMEOS) | 
| 194   static const SkColor kGradientColors[2] = { | 194   static const SkColor kGradientColors[2] = { | 
| 195       SK_ColorWHITE, | 195       SK_ColorWHITE, | 
| 196       SkColorSetRGB(0xF0, 0xF0, 0xF0) | 196       SkColorSetRGB(0xF0, 0xF0, 0xF0) | 
| 197   }; | 197   }; | 
| 198 | 198 | 
| 199   static const SkScalar kGradientPoints[2] = { | 199   static const SkScalar kGradientPoints[2] = { | 
| 200       SkIntToScalar(0), | 200       SkIntToScalar(0), | 
| 201       SkIntToScalar(1) | 201       SkIntToScalar(1) | 
| 202   }; | 202   }; | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 213   SkPaint paint; | 213   SkPaint paint; | 
| 214   paint.setShader(shader); | 214   paint.setShader(shader); | 
| 215   shader->unref(); | 215   shader->unref(); | 
| 216 | 216 | 
| 217   paint.setStyle(SkPaint::kFill_Style); | 217   paint.setStyle(SkPaint::kFill_Style); | 
| 218   paint.setXfermodeMode(SkXfermode::kSrc_Mode); | 218   paint.setXfermodeMode(SkXfermode::kSrc_Mode); | 
| 219 | 219 | 
| 220   canvas->FillRectInt(0, 0, width(), height(), paint); | 220   canvas->FillRectInt(0, 0, width(), height(), paint); | 
| 221 #else | 221 #else | 
| 222   // This is the same as COLOR_TOOLBAR. | 222   // This is the same as COLOR_TOOLBAR. | 
| 223   canvas->AsCanvasSkia()->drawColor(SkColorSetRGB(210, 225, 246), | 223   canvas->drawColor(SkColorSetRGB(210, 225, 246), SkXfermode::kSrc_Mode); | 
| 224                                     SkXfermode::kSrc_Mode); |  | 
| 225 #endif | 224 #endif | 
| 226 } | 225 } | 
| 227 | 226 | 
| 228 void MenuScrollViewContainer::Layout() { | 227 void MenuScrollViewContainer::Layout() { | 
| 229   gfx::Insets insets = GetInsets(); | 228   gfx::Insets insets = GetInsets(); | 
| 230   int x = insets.left(); | 229   int x = insets.left(); | 
| 231   int y = insets.top(); | 230   int y = insets.top(); | 
| 232   int width = View::width() - insets.width(); | 231   int width = View::width() - insets.width(); | 
| 233   int content_height = height() - insets.height(); | 232   int content_height = height() - insets.height(); | 
| 234   if (!scroll_up_button_->IsVisible()) { | 233   if (!scroll_up_button_->IsVisible()) { | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 267 } | 266 } | 
| 268 | 267 | 
| 269 bool MenuScrollViewContainer::GetAccessibleRole( | 268 bool MenuScrollViewContainer::GetAccessibleRole( | 
| 270     AccessibilityTypes::Role* role) { | 269     AccessibilityTypes::Role* role) { | 
| 271   DCHECK(role); | 270   DCHECK(role); | 
| 272   *role = AccessibilityTypes::ROLE_MENUPOPUP; | 271   *role = AccessibilityTypes::ROLE_MENUPOPUP; | 
| 273   return true; | 272   return true; | 
| 274 } | 273 } | 
| 275 | 274 | 
| 276 }  // namespace views | 275 }  // namespace views | 
| OLD | NEW | 
|---|