menu_model.cc revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org// Use of this source code is governed by a BSD-style license that can be 3474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org// found in the LICENSE file. 4474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 5474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "ui/base/models/menu_model.h" 6474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 7474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgnamespace ui { 8474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 9474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgbool MenuModel::IsVisibleAt(int index) const { 10474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return true; 11474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 12474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 13474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org// static 146fefe538d859300e7febe78271828198c10f1b52fgalligan@chromium.orgbool MenuModel::GetModelAndIndexForCommandId(int command_id, 15474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org MenuModel** model, 16474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int* index) { 17474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org const int item_count = (*model)->GetItemCount(); 18474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (int i = 0; i < item_count; ++i) { 19474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org const int candidate_index = i; 20474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if ((*model)->GetTypeAt(candidate_index) == TYPE_SUBMENU) { 21ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org MenuModel* submenu_model = (*model)->GetSubmenuModelAt(candidate_index); 22ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org if (GetModelAndIndexForCommandId(command_id, &submenu_model, index)) { 23ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org *model = submenu_model; 24ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org return true; 25ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org } 26ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org } 27474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if ((*model)->GetCommandIdAt(candidate_index) == command_id) { 28474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *index = candidate_index; 29474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return true; 30474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 31474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 32474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return false; 33474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 34474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 35474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgbase::string16 MenuModel::GetSublabelAt(int index) const { 36474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return base::string16(); 37474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 38474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 39474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgconst gfx::Font* MenuModel::GetLabelFontAt(int index) const { 40474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return NULL; 41474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 42474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 43474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgconst gfx::Font* MenuModel::GetSublabelFontAt(int index) const { 44474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return NULL; 45474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 46474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 47474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org// Default implementation ignores the event flags. 48474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgvoid MenuModel::ActivatedAt(int index, int event_flags) { 49474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ActivatedAt(index); 50474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 51474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 52474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} // namespace ui 53474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org