| Index: views/controls/menu/menu_item_view.cc
|
| diff --git a/views/controls/menu/menu_item_view.cc b/views/controls/menu/menu_item_view.cc
|
| index cdc0421131c5406fa3e120829bc7719f2ffc2ff3..e0bd038496a74e4cac0e7b6d0ae820f9b50406d9 100644
|
| --- a/views/controls/menu/menu_item_view.cc
|
| +++ b/views/controls/menu/menu_item_view.cc
|
| @@ -5,6 +5,7 @@
|
| #include "views/controls/menu/menu_item_view.h"
|
|
|
| #include "app/l10n_util.h"
|
| +#include "app/menus/menu_model.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "gfx/canvas.h"
|
| #include "grit/app_strings.h"
|
| @@ -237,6 +238,43 @@ void MenuItemView::Cancel() {
|
| }
|
| }
|
|
|
| +MenuItemView* MenuItemView::AppendMenuItemFromModel(menus::MenuModel* model,
|
| + int index,
|
| + int id) {
|
| + SkBitmap icon;
|
| + std::wstring label;
|
| + MenuItemView::Type type;
|
| + menus::MenuModel::ItemType menu_type = model->GetTypeAt(index);
|
| + switch (menu_type) {
|
| + case menus::MenuModel::TYPE_COMMAND:
|
| + model->GetIconAt(index, &icon);
|
| + type = MenuItemView::NORMAL;
|
| + label = UTF16ToWide(model->GetLabelAt(index));
|
| + break;
|
| + case menus::MenuModel::TYPE_CHECK:
|
| + type = MenuItemView::CHECKBOX;
|
| + label = UTF16ToWide(model->GetLabelAt(index));
|
| + break;
|
| + case menus::MenuModel::TYPE_RADIO:
|
| + type = MenuItemView::RADIO;
|
| + label = UTF16ToWide(model->GetLabelAt(index));
|
| + break;
|
| + case menus::MenuModel::TYPE_SEPARATOR:
|
| + type = MenuItemView::SEPARATOR;
|
| + break;
|
| + case menus::MenuModel::TYPE_SUBMENU:
|
| + type = MenuItemView::SUBMENU;
|
| + label = UTF16ToWide(model->GetLabelAt(index));
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + type = MenuItemView::NORMAL;
|
| + break;
|
| + }
|
| +
|
| + return AppendMenuItemImpl(id, label, icon, type);
|
| +}
|
| +
|
| MenuItemView* MenuItemView::AppendMenuItemImpl(int item_id,
|
| const std::wstring& label,
|
| const SkBitmap& icon,
|
|
|