Index: ui/views/controls/menu/menu_model_adapter.cc |
diff --git a/ui/views/controls/menu/menu_model_adapter.cc b/ui/views/controls/menu/menu_model_adapter.cc |
index 1b1c45a6982b55e2645fa95b63d46b9d2ce072d5..f606fc8e14f6fde210419d854a51d729c8cc7024 100644 |
--- a/ui/views/controls/menu/menu_model_adapter.cc |
+++ b/ui/views/controls/menu/menu_model_adapter.cc |
@@ -50,6 +50,10 @@ MenuItemView* MenuModelAdapter::CreateMenu() { |
return item; |
} |
+MenuItemView* MenuModelAdapter::CreateCustomItem(MenuItemView* parent, int id) { |
+ return NULL; |
+} |
+ |
// MenuModelAdapter, MenuDelegate implementation: |
void MenuModelAdapter::ExecuteCommand(int id) { |
@@ -183,8 +187,13 @@ void MenuModelAdapter::BuildMenuImpl(MenuItemView* menu, ui::MenuModel* model) { |
bool has_icons = model->HasIcons(); |
const int item_count = model->GetItemCount(); |
for (int i = 0; i < item_count; ++i) { |
- MenuItemView* item = menu->AppendMenuItemFromModel( |
- model, i, model->GetCommandIdAt(i)); |
+ MenuItemView* item = CreateCustomItem(menu, model->GetCommandIdAt(i)); |
+ if (item) { |
+ menu->CreateSubmenu(); |
+ menu->GetSubmenu()->AddChildViewAt(item, i); |
+ } else { |
+ item = menu->AppendMenuItemFromModel(model, i, model->GetCommandIdAt(i)); |
+ } |
if (item) |
item->SetVisible(model->IsVisibleAt(i)); |