Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: ui/base/models/simple_menu_model.cc

Issue 851853002: It is time. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Trying to reup because the last upload failed. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/models/simple_menu_model.h ('k') | ui/base/models/table_model.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/models/simple_menu_model.cc
diff --git a/ui/base/models/simple_menu_model.cc b/ui/base/models/simple_menu_model.cc
deleted file mode 100644
index 336fd4139a85095ab464e0c33d4dc52a91f09082..0000000000000000000000000000000000000000
--- a/ui/base/models/simple_menu_model.cc
+++ /dev/null
@@ -1,461 +0,0 @@
-// Copyright (c) 2012 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 "ui/base/models/simple_menu_model.h"
-
-#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/gfx/image/image.h"
-
-namespace ui {
-
-const int kSeparatorId = -1;
-
-struct SimpleMenuModel::Item {
- int command_id;
- base::string16 label;
- base::string16 sublabel;
- base::string16 minor_text;
- gfx::Image icon;
- ItemType type;
- int group_id;
- MenuModel* submenu;
- ButtonMenuItemModel* button_model;
- MenuSeparatorType separator_type;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// SimpleMenuModel::Delegate, public:
-
-bool SimpleMenuModel::Delegate::IsCommandIdVisible(int command_id) const {
- return true;
-}
-
-bool SimpleMenuModel::Delegate::IsItemForCommandIdDynamic(
- int command_id) const {
- return false;
-}
-
-base::string16 SimpleMenuModel::Delegate::GetLabelForCommandId(
- int command_id) const {
- return base::string16();
-}
-
-base::string16 SimpleMenuModel::Delegate::GetSublabelForCommandId(
- int command_id) const {
- return base::string16();
-}
-
-base::string16 SimpleMenuModel::Delegate::GetMinorTextForCommandId(
- int command_id) const {
- return base::string16();
-}
-
-bool SimpleMenuModel::Delegate::GetIconForCommandId(
- int command_id, gfx::Image* image_skia) const {
- return false;
-}
-
-void SimpleMenuModel::Delegate::CommandIdHighlighted(int command_id) {
-}
-
-void SimpleMenuModel::Delegate::ExecuteCommand(
- int command_id, int event_flags) {
- ExecuteCommand(command_id, event_flags);
-}
-
-void SimpleMenuModel::Delegate::MenuWillShow(SimpleMenuModel* /*source*/) {
-}
-
-void SimpleMenuModel::Delegate::MenuClosed(SimpleMenuModel* /*source*/) {
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// SimpleMenuModel, public:
-
-SimpleMenuModel::SimpleMenuModel(Delegate* delegate)
- : delegate_(delegate),
- menu_model_delegate_(NULL),
- method_factory_(this) {
-}
-
-SimpleMenuModel::~SimpleMenuModel() {
-}
-
-void SimpleMenuModel::AddItem(int command_id, const base::string16& label) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_COMMAND, -1, NULL, NULL, NORMAL_SEPARATOR };
- AppendItem(item);
-}
-
-void SimpleMenuModel::AddItemWithStringId(int command_id, int string_id) {
- AddItem(command_id, l10n_util::GetStringUTF16(string_id));
-}
-
-void SimpleMenuModel::AddCheckItem(int command_id,
- const base::string16& label) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_CHECK, -1, NULL, NULL, NORMAL_SEPARATOR };
- AppendItem(item);
-}
-
-void SimpleMenuModel::AddCheckItemWithStringId(int command_id, int string_id) {
- AddCheckItem(command_id, l10n_util::GetStringUTF16(string_id));
-}
-
-void SimpleMenuModel::AddRadioItem(int command_id,
- const base::string16& label,
- int group_id) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_RADIO, group_id, NULL, NULL,
- NORMAL_SEPARATOR };
- AppendItem(item);
-}
-
-void SimpleMenuModel::AddRadioItemWithStringId(int command_id, int string_id,
- int group_id) {
- AddRadioItem(command_id, l10n_util::GetStringUTF16(string_id), group_id);
-}
-
-void SimpleMenuModel::AddSeparator(MenuSeparatorType separator_type) {
- if (items_.empty()) {
- if (separator_type == NORMAL_SEPARATOR) {
- return;
- }
- DCHECK_EQ(SPACING_SEPARATOR, separator_type);
- } else if (items_.back().type == TYPE_SEPARATOR) {
- DCHECK_EQ(NORMAL_SEPARATOR, separator_type);
- DCHECK_EQ(NORMAL_SEPARATOR, items_.back().separator_type);
- return;
- }
-#if !defined(USE_AURA)
- if (separator_type == SPACING_SEPARATOR)
- NOTIMPLEMENTED();
-#endif
- Item item = { kSeparatorId, base::string16(), base::string16(),
- base::string16(), gfx::Image(), TYPE_SEPARATOR, -1, NULL, NULL,
- separator_type };
- AppendItem(item);
-}
-
-void SimpleMenuModel::RemoveTrailingSeparators() {
- while (!items_.empty() && items_.back().type == TYPE_SEPARATOR)
- items_.pop_back();
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::AddButtonItem(int command_id,
- ButtonMenuItemModel* model) {
- Item item = { command_id, base::string16(), base::string16(),
- base::string16(), gfx::Image(), TYPE_BUTTON_ITEM, -1, NULL,
- model, NORMAL_SEPARATOR };
- AppendItem(item);
-}
-
-void SimpleMenuModel::AddSubMenu(int command_id,
- const base::string16& label,
- MenuModel* model) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_SUBMENU, -1, model, NULL, NORMAL_SEPARATOR };
- AppendItem(item);
-}
-
-void SimpleMenuModel::AddSubMenuWithStringId(int command_id,
- int string_id, MenuModel* model) {
- AddSubMenu(command_id, l10n_util::GetStringUTF16(string_id), model);
-}
-
-void SimpleMenuModel::InsertItemAt(int index,
- int command_id,
- const base::string16& label) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_COMMAND, -1, NULL, NULL, NORMAL_SEPARATOR };
- InsertItemAtIndex(item, index);
-}
-
-void SimpleMenuModel::InsertItemWithStringIdAt(
- int index, int command_id, int string_id) {
- InsertItemAt(index, command_id, l10n_util::GetStringUTF16(string_id));
-}
-
-void SimpleMenuModel::InsertSeparatorAt(int index,
- MenuSeparatorType separator_type) {
-#if !defined(USE_AURA)
- if (separator_type != NORMAL_SEPARATOR) {
- NOTIMPLEMENTED();
- }
-#endif
- Item item = { kSeparatorId, base::string16(), base::string16(),
- base::string16(), gfx::Image(), TYPE_SEPARATOR, -1, NULL, NULL,
- separator_type };
- InsertItemAtIndex(item, index);
-}
-
-void SimpleMenuModel::InsertCheckItemAt(int index,
- int command_id,
- const base::string16& label) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_CHECK, -1, NULL, NULL, NORMAL_SEPARATOR };
- InsertItemAtIndex(item, index);
-}
-
-void SimpleMenuModel::InsertCheckItemWithStringIdAt(
- int index, int command_id, int string_id) {
- InsertCheckItemAt(index, command_id, l10n_util::GetStringUTF16(string_id));
-}
-
-void SimpleMenuModel::InsertRadioItemAt(int index,
- int command_id,
- const base::string16& label,
- int group_id) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_RADIO, group_id, NULL, NULL,
- NORMAL_SEPARATOR };
- InsertItemAtIndex(item, index);
-}
-
-void SimpleMenuModel::InsertRadioItemWithStringIdAt(
- int index, int command_id, int string_id, int group_id) {
- InsertRadioItemAt(
- index, command_id, l10n_util::GetStringUTF16(string_id), group_id);
-}
-
-void SimpleMenuModel::InsertSubMenuAt(int index,
- int command_id,
- const base::string16& label,
- MenuModel* model) {
- Item item = { command_id, label, base::string16(), base::string16(),
- gfx::Image(), TYPE_SUBMENU, -1, model, NULL,
- NORMAL_SEPARATOR };
- InsertItemAtIndex(item, index);
-}
-
-void SimpleMenuModel::InsertSubMenuWithStringIdAt(
- int index, int command_id, int string_id, MenuModel* model) {
- InsertSubMenuAt(index, command_id, l10n_util::GetStringUTF16(string_id),
- model);
-}
-
-void SimpleMenuModel::RemoveItemAt(int index) {
- items_.erase(items_.begin() + ValidateItemIndex(index));
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::SetIcon(int index, const gfx::Image& icon) {
- items_[ValidateItemIndex(index)].icon = icon;
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::SetSublabel(int index, const base::string16& sublabel) {
- items_[ValidateItemIndex(index)].sublabel = sublabel;
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::SetMinorText(int index,
- const base::string16& minor_text) {
- items_[ValidateItemIndex(index)].minor_text = minor_text;
-}
-
-void SimpleMenuModel::Clear() {
- items_.clear();
- MenuItemsChanged();
-}
-
-int SimpleMenuModel::GetIndexOfCommandId(int command_id) {
- for (ItemVector::iterator i = items_.begin(); i != items_.end(); ++i) {
- if (i->command_id == command_id)
- return static_cast<int>(std::distance(items_.begin(), i));
- }
- return -1;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// SimpleMenuModel, MenuModel implementation:
-
-bool SimpleMenuModel::HasIcons() const {
- for (ItemVector::const_iterator i = items_.begin(); i != items_.end(); ++i) {
- if (!i->icon.IsEmpty())
- return true;
- }
-
- return false;
-}
-
-int SimpleMenuModel::GetItemCount() const {
- return static_cast<int>(items_.size());
-}
-
-MenuModel::ItemType SimpleMenuModel::GetTypeAt(int index) const {
- return items_[ValidateItemIndex(index)].type;
-}
-
-ui::MenuSeparatorType SimpleMenuModel::GetSeparatorTypeAt(int index) const {
- return items_[ValidateItemIndex(index)].separator_type;
-}
-
-int SimpleMenuModel::GetCommandIdAt(int index) const {
- return items_[ValidateItemIndex(index)].command_id;
-}
-
-base::string16 SimpleMenuModel::GetLabelAt(int index) const {
- if (IsItemDynamicAt(index))
- return delegate_->GetLabelForCommandId(GetCommandIdAt(index));
- return items_[ValidateItemIndex(index)].label;
-}
-
-base::string16 SimpleMenuModel::GetSublabelAt(int index) const {
- if (IsItemDynamicAt(index))
- return delegate_->GetSublabelForCommandId(GetCommandIdAt(index));
- return items_[ValidateItemIndex(index)].sublabel;
-}
-
-base::string16 SimpleMenuModel::GetMinorTextAt(int index) const {
- if (IsItemDynamicAt(index))
- return delegate_->GetMinorTextForCommandId(GetCommandIdAt(index));
- return items_[ValidateItemIndex(index)].minor_text;
-}
-
-bool SimpleMenuModel::IsItemDynamicAt(int index) const {
- if (delegate_)
- return delegate_->IsItemForCommandIdDynamic(GetCommandIdAt(index));
- return false;
-}
-
-bool SimpleMenuModel::GetAcceleratorAt(int index,
- ui::Accelerator* accelerator) const {
- if (delegate_) {
- return delegate_->GetAcceleratorForCommandId(GetCommandIdAt(index),
- accelerator);
- }
- return false;
-}
-
-bool SimpleMenuModel::IsItemCheckedAt(int index) const {
- if (!delegate_)
- return false;
- MenuModel::ItemType item_type = GetTypeAt(index);
- return (item_type == TYPE_CHECK || item_type == TYPE_RADIO) ?
- delegate_->IsCommandIdChecked(GetCommandIdAt(index)) : false;
-}
-
-int SimpleMenuModel::GetGroupIdAt(int index) const {
- return items_[ValidateItemIndex(index)].group_id;
-}
-
-bool SimpleMenuModel::GetIconAt(int index, gfx::Image* icon) {
- if (IsItemDynamicAt(index))
- return delegate_->GetIconForCommandId(GetCommandIdAt(index), icon);
-
- ValidateItemIndex(index);
- if (items_[index].icon.IsEmpty())
- return false;
-
- *icon = items_[index].icon;
- return true;
-}
-
-ButtonMenuItemModel* SimpleMenuModel::GetButtonMenuItemAt(int index) const {
- return items_[ValidateItemIndex(index)].button_model;
-}
-
-bool SimpleMenuModel::IsEnabledAt(int index) const {
- int command_id = GetCommandIdAt(index);
- if (!delegate_ || command_id == kSeparatorId || GetButtonMenuItemAt(index))
- return true;
- return delegate_->IsCommandIdEnabled(command_id);
-}
-
-bool SimpleMenuModel::IsVisibleAt(int index) const {
- int command_id = GetCommandIdAt(index);
- if (!delegate_ || command_id == kSeparatorId || GetButtonMenuItemAt(index))
- return true;
- return delegate_->IsCommandIdVisible(command_id);
-}
-
-void SimpleMenuModel::HighlightChangedTo(int index) {
- if (delegate_)
- delegate_->CommandIdHighlighted(GetCommandIdAt(index));
-}
-
-void SimpleMenuModel::ActivatedAt(int index) {
- if (delegate_)
- delegate_->ExecuteCommand(GetCommandIdAt(index), 0);
-}
-
-void SimpleMenuModel::ActivatedAt(int index, int event_flags) {
- if (delegate_)
- delegate_->ExecuteCommand(GetCommandIdAt(index), event_flags);
-}
-
-MenuModel* SimpleMenuModel::GetSubmenuModelAt(int index) const {
- return items_[ValidateItemIndex(index)].submenu;
-}
-
-void SimpleMenuModel::MenuWillShow() {
- if (delegate_)
- delegate_->MenuWillShow(this);
-}
-
-void SimpleMenuModel::MenuClosed() {
- // Due to how menus work on the different platforms, ActivatedAt will be
- // called after this. It's more convenient for the delegate to be called
- // afterwards though, so post a task.
- base::MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&SimpleMenuModel::OnMenuClosed, method_factory_.GetWeakPtr()));
-}
-
-void SimpleMenuModel::SetMenuModelDelegate(
- ui::MenuModelDelegate* menu_model_delegate) {
- menu_model_delegate_ = menu_model_delegate;
-}
-
-MenuModelDelegate* SimpleMenuModel::GetMenuModelDelegate() const {
- return menu_model_delegate_;
-}
-
-void SimpleMenuModel::OnMenuClosed() {
- if (delegate_)
- delegate_->MenuClosed(this);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// SimpleMenuModel, Protected:
-
-void SimpleMenuModel::MenuItemsChanged() {
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// SimpleMenuModel, Private:
-
-int SimpleMenuModel::ValidateItemIndex(int index) const {
- CHECK_GE(index, 0);
- CHECK_LT(static_cast<size_t>(index), items_.size());
- return index;
-}
-
-void SimpleMenuModel::AppendItem(const Item& item) {
- ValidateItem(item);
- items_.push_back(item);
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::InsertItemAtIndex(const Item& item, int index) {
- ValidateItem(item);
- items_.insert(items_.begin() + index, item);
- MenuItemsChanged();
-}
-
-void SimpleMenuModel::ValidateItem(const Item& item) {
-#ifndef NDEBUG
- if (item.type == TYPE_SEPARATOR) {
- DCHECK_EQ(item.command_id, kSeparatorId);
- } else {
- DCHECK_GE(item.command_id, 0);
- }
-#endif // NDEBUG
-}
-
-} // namespace ui
« no previous file with comments | « ui/base/models/simple_menu_model.h ('k') | ui/base/models/table_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698