| Index: views/examples/menu_example.cc
|
| diff --git a/views/examples/menu_example.cc b/views/examples/menu_example.cc
|
| deleted file mode 100644
|
| index a68b08a9933b49047447d1cc31baf289afab0dee..0000000000000000000000000000000000000000
|
| --- a/views/examples/menu_example.cc
|
| +++ /dev/null
|
| @@ -1,216 +0,0 @@
|
| -// Copyright (c) 2011 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 "views/examples/menu_example.h"
|
| -
|
| -#include <set>
|
| -
|
| -#include "base/utf_string_conversions.h"
|
| -#include "ui/base/models/simple_menu_model.h"
|
| -#include "views/controls/button/menu_button.h"
|
| -#include "views/controls/button/text_button.h"
|
| -#include "views/controls/menu/menu_2.h"
|
| -#include "views/controls/menu/view_menu_delegate.h"
|
| -#include "views/layout/fill_layout.h"
|
| -#include "views/view.h"
|
| -
|
| -namespace {
|
| -
|
| -class ExampleMenuModel : public ui::SimpleMenuModel,
|
| - public ui::SimpleMenuModel::Delegate {
|
| - public:
|
| - ExampleMenuModel();
|
| -
|
| - void RunMenuAt(const gfx::Point& point);
|
| -
|
| - // Overridden from ui::SimpleMenuModel::Delegate:
|
| - virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
|
| - virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
|
| - virtual bool GetAcceleratorForCommandId(
|
| - int command_id,
|
| - ui::Accelerator* accelerator) OVERRIDE;
|
| - virtual void ExecuteCommand(int command_id) OVERRIDE;
|
| -
|
| - private:
|
| - enum {
|
| - kGroupMakeDecision,
|
| - };
|
| -
|
| - enum {
|
| - kCommandDoSomething,
|
| - kCommandSelectAscii,
|
| - kCommandSelectUtf8,
|
| - kCommandSelectUtf16,
|
| - kCommandCheckApple,
|
| - kCommandCheckOrange,
|
| - kCommandCheckKiwi,
|
| - kCommandGoHome,
|
| - };
|
| -
|
| - scoped_ptr<views::Menu2> menu_;
|
| - scoped_ptr<ui::SimpleMenuModel> submenu_;
|
| - std::set<int> checked_fruits_;
|
| - int current_encoding_command_id_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ExampleMenuModel);
|
| -};
|
| -
|
| -class ExampleMenuButton : public views::MenuButton,
|
| - public views::ViewMenuDelegate {
|
| - public:
|
| - ExampleMenuButton(const string16& test, bool show_menu_marker);
|
| - virtual ~ExampleMenuButton();
|
| -
|
| - private:
|
| - // Overridden from views::ViewMenuDelegate:
|
| - virtual void RunMenu(views::View* source, const gfx::Point& point) OVERRIDE;
|
| -
|
| - scoped_ptr<ExampleMenuModel> menu_model_;
|
| - DISALLOW_COPY_AND_ASSIGN(ExampleMenuButton);
|
| -};
|
| -
|
| -// ExampleMenuModel ---------------------------------------------------------
|
| -
|
| -ExampleMenuModel::ExampleMenuModel()
|
| - : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)),
|
| - current_encoding_command_id_(kCommandSelectAscii) {
|
| - AddItem(kCommandDoSomething, WideToUTF16(L"Do Something"));
|
| - AddSeparator();
|
| - AddRadioItem(kCommandSelectAscii,
|
| - WideToUTF16(L"ASCII"), kGroupMakeDecision);
|
| - AddRadioItem(kCommandSelectUtf8,
|
| - WideToUTF16(L"UTF-8"), kGroupMakeDecision);
|
| - AddRadioItem(kCommandSelectUtf16,
|
| - WideToUTF16(L"UTF-16"), kGroupMakeDecision);
|
| - AddSeparator();
|
| - AddCheckItem(kCommandCheckApple, WideToUTF16(L"Apple"));
|
| - AddCheckItem(kCommandCheckOrange, WideToUTF16(L"Orange"));
|
| - AddCheckItem(kCommandCheckKiwi, WideToUTF16(L"Kiwi"));
|
| - AddSeparator();
|
| - AddItem(kCommandGoHome, WideToUTF16(L"Go Home"));
|
| -
|
| - submenu_.reset(new ui::SimpleMenuModel(this));
|
| - submenu_->AddItem(kCommandDoSomething, WideToUTF16(L"Do Something 2"));
|
| - AddSubMenu(0, ASCIIToUTF16("Submenu"), submenu_.get());
|
| - menu_.reset(new views::Menu2(this));
|
| -}
|
| -
|
| -void ExampleMenuModel::RunMenuAt(const gfx::Point& point) {
|
| - menu_->RunMenuAt(point, views::Menu2::ALIGN_TOPRIGHT);
|
| -}
|
| -
|
| -bool ExampleMenuModel::IsCommandIdChecked(int command_id) const {
|
| - // Radio items.
|
| - if (command_id == current_encoding_command_id_)
|
| - return true;
|
| -
|
| - // Check items.
|
| - if (checked_fruits_.find(command_id) != checked_fruits_.end())
|
| - return true;
|
| -
|
| - return false;
|
| -}
|
| -
|
| -bool ExampleMenuModel::IsCommandIdEnabled(int command_id) const {
|
| - // All commands are enabled except for kCommandGoHome.
|
| - return command_id != kCommandGoHome;
|
| -}
|
| -
|
| -bool ExampleMenuModel::GetAcceleratorForCommandId(
|
| - int command_id,
|
| - ui::Accelerator* accelerator) {
|
| - // We don't use this in the example.
|
| - return false;
|
| -}
|
| -
|
| -void ExampleMenuModel::ExecuteCommand(int command_id) {
|
| - switch (command_id) {
|
| - case kCommandDoSomething: {
|
| - LOG(INFO) << "Done something";
|
| - break;
|
| - }
|
| -
|
| - // Radio items.
|
| - case kCommandSelectAscii: {
|
| - current_encoding_command_id_ = kCommandSelectAscii;
|
| - LOG(INFO) << "Selected ASCII";
|
| - break;
|
| - }
|
| - case kCommandSelectUtf8: {
|
| - current_encoding_command_id_ = kCommandSelectUtf8;
|
| - LOG(INFO) << "Selected UTF-8";
|
| - break;
|
| - }
|
| - case kCommandSelectUtf16: {
|
| - current_encoding_command_id_ = kCommandSelectUtf16;
|
| - LOG(INFO) << "Selected UTF-16";
|
| - break;
|
| - }
|
| -
|
| - // Check items.
|
| - case kCommandCheckApple:
|
| - case kCommandCheckOrange:
|
| - case kCommandCheckKiwi: {
|
| - // Print what fruit is checked.
|
| - const char* checked_fruit = "";
|
| - if (command_id == kCommandCheckApple) {
|
| - checked_fruit = "Apple";
|
| - } else if (command_id == kCommandCheckOrange) {
|
| - checked_fruit = "Orange";
|
| - } else if (command_id == kCommandCheckKiwi) {
|
| - checked_fruit = "Kiwi";
|
| - }
|
| - LOG(INFO) << "Checked " << checked_fruit;
|
| -
|
| - // Update the check status.
|
| - std::set<int>::iterator iter = checked_fruits_.find(command_id);
|
| - if (iter == checked_fruits_.end())
|
| - checked_fruits_.insert(command_id);
|
| - else
|
| - checked_fruits_.erase(iter);
|
| - break;
|
| - }
|
| - }
|
| -}
|
| -
|
| -// ExampleMenuButton -----------------------------------------------------------
|
| -
|
| -ExampleMenuButton::ExampleMenuButton(const string16& test,
|
| - bool show_menu_marker)
|
| - : ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - views::MenuButton(NULL, test, this, show_menu_marker)) {
|
| -}
|
| -
|
| -ExampleMenuButton::~ExampleMenuButton() {
|
| -}
|
| -
|
| -void ExampleMenuButton::RunMenu(views::View* source, const gfx::Point& point) {
|
| - if (!menu_model_.get())
|
| - menu_model_.reset(new ExampleMenuModel);
|
| -
|
| - menu_model_->RunMenuAt(point);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace examples {
|
| -
|
| -MenuExample::MenuExample(ExamplesMain* main)
|
| - : ExampleBase(main, "Menu") {
|
| -}
|
| -
|
| -MenuExample::~MenuExample() {
|
| -}
|
| -
|
| -void MenuExample::CreateExampleView(views::View* container) {
|
| - // views::Menu2 is not a sub class of View, hence we cannot directly
|
| - // add to the container. Instead, we add a button to open a menu.
|
| - const bool show_menu_marker = true;
|
| - ExampleMenuButton* menu_button = new ExampleMenuButton(
|
| - ASCIIToUTF16("Open a menu"), show_menu_marker);
|
| - container->SetLayoutManager(new views::FillLayout);
|
| - container->AddChildView(menu_button);
|
| -}
|
| -
|
| -} // namespace examples
|
|
|