root/ui/views/controls/menu/menu.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. IsItemChecked
  2. IsItemDefault
  3. GetLabel
  4. GetAcceleratorInfo
  5. GetIcon
  6. GetItemCount
  7. IsItemSeparator
  8. HasIcon
  9. SupportsCommand
  10. IsCommandEnabled
  11. GetContextualLabel
  12. IsRightToLeftUILayout
  13. GetEmptyIcon
  14. anchor_
  15. anchor_
  16. AppendMenuItem
  17. AddMenuItem
  18. AppendSubMenu
  19. AddSubMenu
  20. AppendSubMenuWithIcon
  21. AppendMenuItemWithLabel
  22. AddMenuItemWithLabel
  23. AppendDelegateMenuItem
  24. AddDelegateMenuItem
  25. AppendSeparator
  26. AppendMenuItemWithIcon
  27. AddMenuItemWithIcon
  28. anchor_

// 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/views/controls/menu/menu.h"

#include "base/i18n/rtl.h"
#include "ui/gfx/image/image_skia.h"

namespace views {

bool Menu::Delegate::IsItemChecked(int id) const {
  return false;
}

bool Menu::Delegate::IsItemDefault(int id) const {
  return false;
}

base::string16 Menu::Delegate::GetLabel(int id) const {
  return base::string16();
}

bool Menu::Delegate::GetAcceleratorInfo(int id, ui::Accelerator* accel) {
  return false;
}

const gfx::ImageSkia& Menu::Delegate::GetIcon(int id) const {
  return GetEmptyIcon();
}

int Menu::Delegate::GetItemCount() const {
  return 0;
}

bool Menu::Delegate::IsItemSeparator(int id) const {
  return false;
}

bool Menu::Delegate::HasIcon(int id) const {
  return false;
}

bool Menu::Delegate::SupportsCommand(int id) const {
  return true;
}

bool Menu::Delegate::IsCommandEnabled(int id) const {
  return true;
}

bool Menu::Delegate::GetContextualLabel(int id, base::string16* out) const {
  return false;
}

bool Menu::Delegate::IsRightToLeftUILayout() const {
  return base::i18n::IsRTL();
}

const gfx::ImageSkia& Menu::Delegate::GetEmptyIcon() const {
  static const gfx::ImageSkia* empty_icon = new gfx::ImageSkia();
  return *empty_icon;
}

Menu::Menu(Delegate* delegate, AnchorPoint anchor)
    : delegate_(delegate),
      anchor_(anchor) {
}

Menu::Menu(Menu* parent)
    : delegate_(parent->delegate_),
      anchor_(parent->anchor_) {
}

Menu::~Menu() {
}

void Menu::AppendMenuItem(int item_id,
                          const base::string16& label,
                          MenuItemType type) {
  AddMenuItem(-1, item_id, label, type);
}

void Menu::AddMenuItem(int index,
                       int item_id,
                       const base::string16& label,
                       MenuItemType type) {
  if (type == SEPARATOR)
    AddSeparator(index);
  else
    AddMenuItemInternal(index, item_id, label, gfx::ImageSkia(), type);
}

Menu* Menu::AppendSubMenu(int item_id, const base::string16& label) {
  return AddSubMenu(-1, item_id, label);
}

Menu* Menu::AddSubMenu(int index, int item_id, const base::string16& label) {
  return AddSubMenuWithIcon(index, item_id, label, gfx::ImageSkia());
}

Menu* Menu::AppendSubMenuWithIcon(int item_id,
                                  const base::string16& label,
                                  const gfx::ImageSkia& icon) {
  return AddSubMenuWithIcon(-1, item_id, label, icon);
}

void Menu::AppendMenuItemWithLabel(int item_id, const base::string16& label) {
  AddMenuItemWithLabel(-1, item_id, label);
}

void Menu::AddMenuItemWithLabel(int index,
                                int item_id,
                                const base::string16& label) {
  AddMenuItem(index, item_id, label, Menu::NORMAL);
}

void Menu::AppendDelegateMenuItem(int item_id) {
  AddDelegateMenuItem(-1, item_id);
}

void Menu::AddDelegateMenuItem(int index, int item_id) {
  AddMenuItem(index, item_id, base::string16(), Menu::NORMAL);
}

void Menu::AppendSeparator() {
  AddSeparator(-1);
}

void Menu::AppendMenuItemWithIcon(int item_id,
                                  const base::string16& label,
                                  const gfx::ImageSkia& icon) {
  AddMenuItemWithIcon(-1, item_id, label, icon);
}

void Menu::AddMenuItemWithIcon(int index,
                               int item_id,
                               const base::string16& label,
                               const gfx::ImageSkia& icon) {
  AddMenuItemInternal(index, item_id, label, icon, Menu::NORMAL);
}

Menu::Menu() : delegate_(NULL), anchor_(TOPLEFT) {
}

}  // namespace views

/* [<][>][^][v][top][bottom][index][help] */