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

Side by Side Diff: ui/views/controls/menu/native_menu_win.cc

Issue 1477253002: Use a single views::MenuConfig instance for each platform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simplify more things Created 5 years 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 unified diff | Download patch
OLDNEW
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/native_menu_win.h" 5 #include "ui/views/controls/menu/native_menu_win.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 false); 264 false);
265 skia::DrawToNativeContext( 265 skia::DrawToNativeContext(
266 canvas.sk_canvas(), dc, 266 canvas.sk_canvas(), dc,
267 draw_item_struct->rcItem.left + kItemLeftMargin, 267 draw_item_struct->rcItem.left + kItemLeftMargin,
268 draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom - 268 draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom -
269 draw_item_struct->rcItem.top - skia_icon->height()) / 2, NULL); 269 draw_item_struct->rcItem.top - skia_icon->height()) / 2, NULL);
270 } else if (type == ui::MenuModel::TYPE_CHECK && 270 } else if (type == ui::MenuModel::TYPE_CHECK &&
271 data->native_menu_win->model_->IsItemCheckedAt( 271 data->native_menu_win->model_->IsItemCheckedAt(
272 data->model_index)) { 272 data->model_index)) {
273 // Manually render a checkbox. 273 // Manually render a checkbox.
274 ui::NativeThemeWin* native_theme = ui::NativeThemeWin::instance(); 274 const MenuConfig& config = MenuConfig::instance();
275 const MenuConfig& config = MenuConfig::instance(native_theme);
276 NativeTheme::State state; 275 NativeTheme::State state;
277 if (draw_item_struct->itemState & ODS_DISABLED) { 276 if (draw_item_struct->itemState & ODS_DISABLED) {
278 state = NativeTheme::kDisabled; 277 state = NativeTheme::kDisabled;
279 } else { 278 } else {
280 state = draw_item_struct->itemState & ODS_SELECTED ? 279 state = draw_item_struct->itemState & ODS_SELECTED ?
281 NativeTheme::kHovered : NativeTheme::kNormal; 280 NativeTheme::kHovered : NativeTheme::kNormal;
282 } 281 }
283 gfx::Canvas canvas(gfx::Size(config.check_width, config.check_height), 282 gfx::Canvas canvas(gfx::Size(config.check_width, config.check_height),
284 1.0f, 283 1.0f,
285 false); 284 false);
286 NativeTheme::ExtraParams extra; 285 NativeTheme::ExtraParams extra;
287 extra.menu_check.is_radio = false; 286 extra.menu_check.is_radio = false;
288 gfx::Rect bounds(0, 0, config.check_width, config.check_height); 287 gfx::Rect bounds(0, 0, config.check_width, config.check_height);
289 288
290 // Draw the background and the check. 289 // Draw the background and the check.
290 ui::NativeThemeWin* native_theme = ui::NativeThemeWin::instance();
291 native_theme->Paint( 291 native_theme->Paint(
292 canvas.sk_canvas(), NativeTheme::kMenuCheckBackground, 292 canvas.sk_canvas(), NativeTheme::kMenuCheckBackground,
293 state, bounds, extra); 293 state, bounds, extra);
294 native_theme->Paint( 294 native_theme->Paint(
295 canvas.sk_canvas(), NativeTheme::kMenuCheck, state, bounds, extra); 295 canvas.sk_canvas(), NativeTheme::kMenuCheck, state, bounds, extra);
296 296
297 // Draw checkbox to menu. 297 // Draw checkbox to menu.
298 skia::DrawToNativeContext(canvas.sk_canvas(), dc, 298 skia::DrawToNativeContext(canvas.sk_canvas(), dc,
299 draw_item_struct->rcItem.left + kItemLeftMargin, 299 draw_item_struct->rcItem.left + kItemLeftMargin,
300 draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom - 300 draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom -
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 749
750 //////////////////////////////////////////////////////////////////////////////// 750 ////////////////////////////////////////////////////////////////////////////////
751 // MenuWrapper, public: 751 // MenuWrapper, public:
752 752
753 // static 753 // static
754 MenuWrapper* MenuWrapper::CreateWrapper(ui::MenuModel* model) { 754 MenuWrapper* MenuWrapper::CreateWrapper(ui::MenuModel* model) {
755 return new NativeMenuWin(model, NULL); 755 return new NativeMenuWin(model, NULL);
756 } 756 }
757 757
758 } // namespace views 758 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698