Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/views/controls/menu/menu_scroll_view_container.h" | 5 #include "ui/views/controls/menu/menu_scroll_view_container.h" |
| 6 | 6 |
| 7 #include "third_party/skia/include/core/SkPaint.h" | 7 #include "third_party/skia/include/core/SkPaint.h" |
| 8 #include "third_party/skia/include/core/SkPath.h" | 8 #include "third_party/skia/include/core/SkPath.h" |
| 9 #include "ui/base/accessibility/accessible_view_state.h" | 9 #include "ui/base/accessibility/accessible_view_state.h" |
| 10 #include "ui/gfx/canvas.h" | 10 #include "ui/gfx/canvas.h" |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 Layout(); | 263 Layout(); |
| 264 } | 264 } |
| 265 | 265 |
| 266 void MenuScrollViewContainer::CreateDefaultBorder() { | 266 void MenuScrollViewContainer::CreateDefaultBorder() { |
| 267 arrow_location_ = BubbleBorder::NONE; | 267 arrow_location_ = BubbleBorder::NONE; |
| 268 bubble_border_ = NULL; | 268 bubble_border_ = NULL; |
| 269 | 269 |
| 270 const MenuConfig& menu_config = | 270 const MenuConfig& menu_config = |
| 271 content_view_->GetMenuItem()->GetMenuConfig(); | 271 content_view_->GetMenuItem()->GetMenuConfig(); |
| 272 | 272 |
| 273 #if defined(OS_CHROMEOS) | |
|
sky
2013/02/13 00:06:53
This should be based on whether the NativeTheme is
Mr4D (OOO till 08-26)
2013/02/13 00:34:15
Okay, I looked at the NativeThemeAura as requested
| |
| 274 // On ChromeOS the border gets drawn with the shadow. Furthermore no | |
| 275 // additional padding is wanted. | |
| 276 set_border(Border::CreateEmptyBorder( | |
| 277 menu_config.menu_vertical_border_size, | |
| 278 menu_config.menu_horizontal_border_size, | |
| 279 menu_config.menu_vertical_border_size, | |
| 280 menu_config.menu_horizontal_border_size)); | |
| 281 #else | |
| 273 int padding = menu_config.corner_radius > 0 ? | 282 int padding = menu_config.corner_radius > 0 ? |
| 274 kBorderPaddingDueToRoundedCorners : 0; | 283 kBorderPaddingDueToRoundedCorners : 0; |
| 284 | |
| 275 int top = menu_config.menu_vertical_border_size + padding; | 285 int top = menu_config.menu_vertical_border_size + padding; |
| 276 int left = menu_config.menu_horizontal_border_size + padding; | 286 int left = menu_config.menu_horizontal_border_size + padding; |
| 277 int bottom = menu_config.menu_vertical_border_size + padding; | 287 int bottom = menu_config.menu_vertical_border_size + padding; |
| 278 int right = menu_config.menu_horizontal_border_size + padding; | 288 int right = menu_config.menu_horizontal_border_size + padding; |
| 279 | 289 |
| 280 if (NativeTheme::IsNewMenuStyleEnabled()) { | 290 if (NativeTheme::IsNewMenuStyleEnabled()) { |
| 281 set_border(views::Border::CreateBorderPainter( | 291 set_border(views::Border::CreateBorderPainter( |
| 282 new views::RoundRectPainter(menu_config.native_theme->GetSystemColor( | 292 new views::RoundRectPainter(menu_config.native_theme->GetSystemColor( |
| 283 ui::NativeTheme::kColorId_MenuBorderColor), | 293 ui::NativeTheme::kColorId_MenuBorderColor), |
| 284 menu_config.corner_radius), | 294 menu_config.corner_radius), |
| 285 gfx::Insets(top, left, bottom, right))); | 295 gfx::Insets(top, left, bottom, right))); |
| 286 } else { | 296 } else { |
| 287 set_border(Border::CreateEmptyBorder(top, left, bottom, right)); | 297 set_border(Border::CreateEmptyBorder(top, left, bottom, right)); |
| 288 } | 298 } |
| 299 #endif | |
| 289 } | 300 } |
| 290 | 301 |
| 291 void MenuScrollViewContainer::CreateBubbleBorder() { | 302 void MenuScrollViewContainer::CreateBubbleBorder() { |
| 292 bubble_border_ = | 303 bubble_border_ = |
| 293 new BubbleBorder(arrow_location_, BubbleBorder::NO_SHADOW, SK_ColorWHITE); | 304 new BubbleBorder(arrow_location_, BubbleBorder::NO_SHADOW, SK_ColorWHITE); |
| 294 set_border(bubble_border_); | 305 set_border(bubble_border_); |
| 295 set_background(new BubbleBackground(bubble_border_)); | 306 set_background(new BubbleBackground(bubble_border_)); |
| 296 } | 307 } |
| 297 | 308 |
| 298 BubbleBorder::ArrowLocation | 309 BubbleBorder::ArrowLocation |
| 299 MenuScrollViewContainer::BubbleBorderTypeFromAnchor( | 310 MenuScrollViewContainer::BubbleBorderTypeFromAnchor( |
| 300 MenuItemView::AnchorPosition anchor) { | 311 MenuItemView::AnchorPosition anchor) { |
| 301 switch (anchor) { | 312 switch (anchor) { |
| 302 case views::MenuItemView::BUBBLE_LEFT: | 313 case views::MenuItemView::BUBBLE_LEFT: |
| 303 return BubbleBorder::RIGHT_CENTER; | 314 return BubbleBorder::RIGHT_CENTER; |
| 304 case views::MenuItemView::BUBBLE_RIGHT: | 315 case views::MenuItemView::BUBBLE_RIGHT: |
| 305 return BubbleBorder::LEFT_CENTER; | 316 return BubbleBorder::LEFT_CENTER; |
| 306 case views::MenuItemView::BUBBLE_ABOVE: | 317 case views::MenuItemView::BUBBLE_ABOVE: |
| 307 return BubbleBorder::BOTTOM_CENTER; | 318 return BubbleBorder::BOTTOM_CENTER; |
| 308 case views::MenuItemView::BUBBLE_BELOW: | 319 case views::MenuItemView::BUBBLE_BELOW: |
| 309 return BubbleBorder::TOP_CENTER; | 320 return BubbleBorder::TOP_CENTER; |
| 310 default: | 321 default: |
| 311 return BubbleBorder::NONE; | 322 return BubbleBorder::NONE; |
| 312 } | 323 } |
| 313 } | 324 } |
| 314 | 325 |
| 315 } // namespace views | 326 } // namespace views |
| OLD | NEW |