| Index: components/mus/example/window_type_launcher/window_type_launcher.cc
|
| diff --git a/components/mus/example/window_type_launcher/window_type_launcher.cc b/components/mus/example/window_type_launcher/window_type_launcher.cc
|
| deleted file mode 100644
|
| index 67c642c2687ce4273587a98b51f539a6af49e50b..0000000000000000000000000000000000000000
|
| --- a/components/mus/example/window_type_launcher/window_type_launcher.cc
|
| +++ /dev/null
|
| @@ -1,367 +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 "components/mus/example/window_type_launcher/window_type_launcher.h"
|
| -
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "mojo/application/public/cpp/application_connection.h"
|
| -#include "mojo/application/public/cpp/application_impl.h"
|
| -#include "mojo/converters/geometry/geometry_type_converters.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/aura/window_event_dispatcher.h"
|
| -#include "ui/compositor/layer.h"
|
| -#include "ui/gfx/canvas.h"
|
| -#include "ui/views/context_menu_controller.h"
|
| -#include "ui/views/controls/button/button.h"
|
| -#include "ui/views/controls/button/label_button.h"
|
| -#include "ui/views/controls/menu/menu_delegate.h"
|
| -#include "ui/views/controls/menu/menu_item_view.h"
|
| -#include "ui/views/controls/menu/menu_runner.h"
|
| -#include "ui/views/layout/grid_layout.h"
|
| -#include "ui/views/mus/aura_init.h"
|
| -#include "ui/views/mus/window_manager_connection.h"
|
| -#include "ui/views/widget/widget.h"
|
| -#include "ui/views/widget/widget_delegate.h"
|
| -
|
| -using views::MenuItemView;
|
| -using views::MenuRunner;
|
| -
|
| -namespace {
|
| -
|
| -SkColor g_colors[] = { SK_ColorRED,
|
| - SK_ColorYELLOW,
|
| - SK_ColorBLUE,
|
| - SK_ColorGREEN };
|
| -int g_color_index = 0;
|
| -
|
| -class ModalWindow : public views::WidgetDelegateView,
|
| - public views::ButtonListener {
|
| - public:
|
| - explicit ModalWindow(ui::ModalType modal_type)
|
| - : modal_type_(modal_type),
|
| - color_(g_colors[g_color_index]),
|
| - open_button_(new views::LabelButton(this,
|
| - base::ASCIIToUTF16("Moar!"))) {
|
| - ++g_color_index %= arraysize(g_colors);
|
| - open_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - AddChildView(open_button_);
|
| - }
|
| - ~ModalWindow() override {}
|
| -
|
| - static void OpenModalWindow(aura::Window* parent, ui::ModalType modal_type) {
|
| - views::Widget* widget =
|
| - views::Widget::CreateWindowWithParent(new ModalWindow(modal_type),
|
| - parent);
|
| - widget->GetNativeView()->SetName("ModalWindow");
|
| - widget->Show();
|
| - }
|
| -
|
| - // Overridden from views::View:
|
| - void OnPaint(gfx::Canvas* canvas) override {
|
| - canvas->FillRect(GetLocalBounds(), color_);
|
| - }
|
| - gfx::Size GetPreferredSize() const override { return gfx::Size(200, 200); }
|
| - void Layout() override {
|
| - gfx::Size open_ps = open_button_->GetPreferredSize();
|
| - gfx::Rect local_bounds = GetLocalBounds();
|
| - open_button_->SetBounds(
|
| - 5, local_bounds.bottom() - open_ps.height() - 5,
|
| - open_ps.width(), open_ps.height());
|
| - }
|
| -
|
| - // Overridden from views::WidgetDelegate:
|
| - views::View* GetContentsView() override { return this; }
|
| - bool CanResize() const override { return true; }
|
| - base::string16 GetWindowTitle() const override {
|
| - return base::ASCIIToUTF16("Modal Window");
|
| - }
|
| - ui::ModalType GetModalType() const override { return modal_type_; }
|
| -
|
| - // Overridden from views::ButtonListener:
|
| - void ButtonPressed(views::Button* sender, const ui::Event& event) override {
|
| - DCHECK(sender == open_button_);
|
| - OpenModalWindow(GetWidget()->GetNativeView(), modal_type_);
|
| - }
|
| -
|
| - private:
|
| - ui::ModalType modal_type_;
|
| - SkColor color_;
|
| - views::LabelButton* open_button_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ModalWindow);
|
| -};
|
| -
|
| -class NonModalTransient : public views::WidgetDelegateView {
|
| - public:
|
| - NonModalTransient()
|
| - : color_(g_colors[g_color_index]) {
|
| - ++g_color_index %= arraysize(g_colors);
|
| - }
|
| - ~NonModalTransient() override {}
|
| -
|
| - static void OpenNonModalTransient(aura::Window* parent) {
|
| - views::Widget* widget =
|
| - views::Widget::CreateWindowWithParent(new NonModalTransient, parent);
|
| - widget->GetNativeView()->SetName("NonModalTransient");
|
| - widget->Show();
|
| - }
|
| -
|
| - static void ToggleNonModalTransient(aura::Window* parent) {
|
| - if (!non_modal_transient_) {
|
| - non_modal_transient_ =
|
| - views::Widget::CreateWindowWithParent(new NonModalTransient, parent);
|
| - non_modal_transient_->GetNativeView()->SetName("NonModalTransient");
|
| - }
|
| - if (non_modal_transient_->IsVisible())
|
| - non_modal_transient_->Hide();
|
| - else
|
| - non_modal_transient_->Show();
|
| - }
|
| -
|
| - // Overridden from views::View:
|
| - void OnPaint(gfx::Canvas* canvas) override {
|
| - canvas->FillRect(GetLocalBounds(), color_);
|
| - }
|
| - gfx::Size GetPreferredSize() const override { return gfx::Size(250, 250); }
|
| -
|
| - // Overridden from views::WidgetDelegate:
|
| - views::View* GetContentsView() override { return this; }
|
| - bool CanResize() const override { return true; }
|
| - base::string16 GetWindowTitle() const override {
|
| - return base::ASCIIToUTF16("Non-Modal Transient");
|
| - }
|
| - void DeleteDelegate() override {
|
| - if (GetWidget() == non_modal_transient_)
|
| - non_modal_transient_ = NULL;
|
| -
|
| - delete this;
|
| - }
|
| -
|
| - private:
|
| - SkColor color_;
|
| -
|
| - static views::Widget* non_modal_transient_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(NonModalTransient);
|
| -};
|
| -
|
| -// static
|
| -views::Widget* NonModalTransient::non_modal_transient_ = NULL;
|
| -
|
| -void AddViewToLayout(views::GridLayout* layout, views::View* view) {
|
| - layout->StartRow(0, 0);
|
| - layout->AddView(view);
|
| - layout->AddPaddingRow(0, 5);
|
| -}
|
| -
|
| -// The contents view/delegate of a window that shows some buttons that create
|
| -// various window types.
|
| -class WindowTypeLauncherView : public views::WidgetDelegateView,
|
| - public views::ButtonListener,
|
| - public views::MenuDelegate,
|
| - public views::ContextMenuController {
|
| - public:
|
| - WindowTypeLauncherView()
|
| - : create_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Create Window"))),
|
| - panel_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Create Panel"))),
|
| - create_nonresizable_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Create Non-Resizable Window"))),
|
| - bubble_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Create Pointy Bubble"))),
|
| - lock_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Lock Screen"))),
|
| - widgets_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Show Example Widgets"))),
|
| - system_modal_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Open System Modal Window"))),
|
| - window_modal_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Open Window Modal Window"))),
|
| - child_modal_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Open Child Modal Window"))),
|
| - transient_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Open Non-Modal Transient Window"))),
|
| - examples_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Open Views Examples Window"))),
|
| - show_hide_window_button_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Show/Hide a Window"))),
|
| - show_web_notification_(new views::LabelButton(
|
| - this, base::ASCIIToUTF16("Show a web/app notification"))) {
|
| - create_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - panel_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - create_nonresizable_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - bubble_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - lock_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - widgets_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - system_modal_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - window_modal_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - child_modal_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - transient_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - examples_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - show_hide_window_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - show_web_notification_->SetStyle(views::Button::STYLE_BUTTON);
|
| -
|
| - views::GridLayout* layout = new views::GridLayout(this);
|
| - layout->SetInsets(5, 5, 5, 5);
|
| - SetLayoutManager(layout);
|
| - views::ColumnSet* column_set = layout->AddColumnSet(0);
|
| - column_set->AddColumn(views::GridLayout::LEADING,
|
| - views::GridLayout::CENTER,
|
| - 0,
|
| - views::GridLayout::USE_PREF,
|
| - 0,
|
| - 0);
|
| - AddViewToLayout(layout, create_button_);
|
| - AddViewToLayout(layout, panel_button_);
|
| - AddViewToLayout(layout, create_nonresizable_button_);
|
| - AddViewToLayout(layout, bubble_button_);
|
| - AddViewToLayout(layout, lock_button_);
|
| - AddViewToLayout(layout, widgets_button_);
|
| - AddViewToLayout(layout, system_modal_button_);
|
| - AddViewToLayout(layout, window_modal_button_);
|
| - AddViewToLayout(layout, child_modal_button_);
|
| - AddViewToLayout(layout, transient_button_);
|
| - AddViewToLayout(layout, examples_button_);
|
| - AddViewToLayout(layout, show_hide_window_button_);
|
| - AddViewToLayout(layout, show_web_notification_);
|
| - set_context_menu_controller(this);
|
| - }
|
| - ~WindowTypeLauncherView() override {}
|
| -
|
| - private:
|
| - typedef std::pair<aura::Window*, gfx::Rect> WindowAndBoundsPair;
|
| -
|
| - enum MenuCommands {
|
| - COMMAND_NEW_WINDOW = 1,
|
| - COMMAND_TOGGLE_FULLSCREEN = 3,
|
| - };
|
| -
|
| - // Overridden from views::View:
|
| - void OnPaint(gfx::Canvas* canvas) override {
|
| - canvas->FillRect(GetLocalBounds(), SK_ColorWHITE);
|
| - }
|
| - bool OnMousePressed(const ui::MouseEvent& event) override {
|
| - // Overridden so we get OnMouseReleased and can show the context menu.
|
| - return true;
|
| - }
|
| -
|
| - // Overridden from views::WidgetDelegate:
|
| - views::View* GetContentsView() override { return this; }
|
| - bool CanResize() const override { return true; }
|
| - base::string16 GetWindowTitle() const override {
|
| - return base::ASCIIToUTF16("Examples: Window Builder");
|
| - }
|
| - bool CanMaximize() const override { return true; }
|
| - bool CanMinimize() const override { return true; }
|
| -
|
| - // Overridden from views::ButtonListener:
|
| - void ButtonPressed(views::Button* sender, const ui::Event& event) override {
|
| - if (sender == create_button_) {
|
| - NOTIMPLEMENTED();
|
| - } else if (sender == panel_button_) {
|
| - NOTIMPLEMENTED();
|
| - }
|
| - else if (sender == create_nonresizable_button_) {
|
| - NOTIMPLEMENTED();
|
| - }
|
| - else if (sender == bubble_button_) {
|
| - NOTIMPLEMENTED();
|
| - }
|
| - else if (sender == lock_button_) {
|
| - NOTIMPLEMENTED();
|
| - }
|
| - else if (sender == widgets_button_) {
|
| - NOTIMPLEMENTED();
|
| - }
|
| - else if (sender == system_modal_button_) {
|
| - ModalWindow::OpenModalWindow(GetWidget()->GetNativeView(),
|
| - ui::MODAL_TYPE_SYSTEM);
|
| - } else if (sender == window_modal_button_) {
|
| - ModalWindow::OpenModalWindow(GetWidget()->GetNativeView(),
|
| - ui::MODAL_TYPE_WINDOW);
|
| - } else if (sender == child_modal_button_) {
|
| - } else if (sender == transient_button_) {
|
| - NonModalTransient::OpenNonModalTransient(GetWidget()->GetNativeView());
|
| - } else if (sender == show_hide_window_button_) {
|
| - NonModalTransient::ToggleNonModalTransient(GetWidget()->GetNativeView());
|
| - }
|
| - }
|
| -
|
| - // Overridden from views::MenuDelegate:
|
| - void ExecuteCommand(int id, int event_flags) override {
|
| - switch (id) {
|
| - case COMMAND_NEW_WINDOW:
|
| - NOTIMPLEMENTED();
|
| - break;
|
| - case COMMAND_TOGGLE_FULLSCREEN:
|
| - GetWidget()->SetFullscreen(!GetWidget()->IsFullscreen());
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| - }
|
| -
|
| - // Override from views::ContextMenuController:
|
| - void ShowContextMenuForView(views::View* source,
|
| - const gfx::Point& point,
|
| - ui::MenuSourceType source_type) override {
|
| - MenuItemView* root = new MenuItemView(this);
|
| - root->AppendMenuItem(COMMAND_NEW_WINDOW,
|
| - base::ASCIIToUTF16("New Window"),
|
| - MenuItemView::NORMAL);
|
| - root->AppendMenuItem(COMMAND_TOGGLE_FULLSCREEN,
|
| - base::ASCIIToUTF16("Toggle FullScreen"),
|
| - MenuItemView::NORMAL);
|
| - // MenuRunner takes ownership of root.
|
| - menu_runner_.reset(new MenuRunner(
|
| - root, MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU));
|
| - if (menu_runner_->RunMenuAt(GetWidget(),
|
| - NULL,
|
| - gfx::Rect(point, gfx::Size()),
|
| - views::MENU_ANCHOR_TOPLEFT,
|
| - source_type) == MenuRunner::MENU_DELETED) {
|
| - return;
|
| - }
|
| - }
|
| -
|
| - views::LabelButton* create_button_;
|
| - views::LabelButton* panel_button_;
|
| - views::LabelButton* create_nonresizable_button_;
|
| - views::LabelButton* bubble_button_;
|
| - views::LabelButton* lock_button_;
|
| - views::LabelButton* widgets_button_;
|
| - views::LabelButton* system_modal_button_;
|
| - views::LabelButton* window_modal_button_;
|
| - views::LabelButton* child_modal_button_;
|
| - views::LabelButton* transient_button_;
|
| - views::LabelButton* examples_button_;
|
| - views::LabelButton* show_hide_window_button_;
|
| - views::LabelButton* show_web_notification_;
|
| - scoped_ptr<views::MenuRunner> menu_runner_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(WindowTypeLauncherView);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -WindowTypeLauncher::WindowTypeLauncher() {}
|
| -WindowTypeLauncher::~WindowTypeLauncher() {}
|
| -
|
| -bool WindowTypeLauncher::ConfigureIncomingConnection(
|
| - mojo::ApplicationConnection* connection) {
|
| - return false;
|
| -}
|
| -
|
| -void WindowTypeLauncher::Initialize(mojo::ApplicationImpl* app) {
|
| - aura_init_.reset(new views::AuraInit(app, "views_mus_resources.pak"));
|
| -
|
| - views::WindowManagerConnection::Create(app);
|
| -
|
| - views::Widget* widget = new views::Widget;
|
| - views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
|
| - params.delegate = new WindowTypeLauncherView;
|
| - widget->Init(params);
|
| - widget->Show();
|
| -}
|
|
|