15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/models/menu_model.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool MenuModel::IsVisibleAt(int index) const {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool MenuModel::GetModelAndIndexForCommandId(int command_id,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             MenuModel** model,
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             int* index) {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const int item_count = (*model)->GetItemCount();
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (int i = 0; i < item_count; ++i) {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const int candidate_index = i;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if ((*model)->GetTypeAt(candidate_index) == TYPE_SUBMENU) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      MenuModel* submenu_model = (*model)->GetSubmenuModelAt(candidate_index);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if (GetModelAndIndexForCommandId(command_id, &submenu_model, index)) {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        *model = submenu_model;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return true;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      }
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if ((*model)->GetCommandIdAt(candidate_index) == command_id) {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *index = candidate_index;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return true;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::string16 MenuModel::GetSublabelAt(int index) const {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return base::string16();
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::string16 MenuModel::GetMinorTextAt(int index) const {
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return base::string16();
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const gfx::FontList* MenuModel::GetLabelFontListAt(int index) const {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Default implementation ignores the event flags.
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MenuModel::ActivatedAt(int index, int event_flags) {
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ActivatedAt(index);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ui
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)