diff options
Diffstat (limited to 'app/menus/button_menu_item_model.cc')
-rw-r--r-- | app/menus/button_menu_item_model.cc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/app/menus/button_menu_item_model.cc b/app/menus/button_menu_item_model.cc new file mode 100644 index 0000000..c5064fb --- /dev/null +++ b/app/menus/button_menu_item_model.cc @@ -0,0 +1,65 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "app/menus/button_menu_item_model.h" + +#include "app/l10n_util.h" + +namespace menus { + +ButtonMenuItemModel::ButtonMenuItemModel( + int string_id, + ButtonMenuItemModel::Delegate* delegate) + : item_label_(l10n_util::GetStringUTF16(string_id)), + delegate_(delegate) { +} + +void ButtonMenuItemModel::AddItemWithStringId(int command_id, int string_id) { + Item item = { command_id, TYPE_BUTTON, l10n_util::GetStringUTF16(string_id), + SIDE_BOTH, -1 }; + items_.push_back(item); +} + +void ButtonMenuItemModel::AddItemWithImage(int command_id, + int icon_idr) { + Item item = { command_id, TYPE_BUTTON, string16(), SIDE_BOTH, icon_idr }; + items_.push_back(item); +} + +void ButtonMenuItemModel::AddSpace() { + Item item = { 0, TYPE_SPACE, string16(), SIDE_NONE, -1 }; + items_.push_back(item); +} + +int ButtonMenuItemModel::GetItemCount() const { + return static_cast<int>(items_.size()); +} + +ButtonMenuItemModel::ButtonType ButtonMenuItemModel::GetTypeAt( + int index) const { + return items_[index].type; +} + +int ButtonMenuItemModel::GetCommandIdAt(int index) const { + return items_[index].command_id; +} + +const string16& ButtonMenuItemModel::GetLabelAt(int index) const { + return items_[index].label; +} + +bool ButtonMenuItemModel::GetIconAt(int index, int* icon_idr) const { + if (items_[index].icon_idr == -1) + return false; + + *icon_idr = items_[index].icon_idr; + return true; +} + +void ButtonMenuItemModel::ActivatedCommand(int command_id) { + if (delegate_) + delegate_->ExecuteCommand(command_id); +} + +} // namespace menus |