Index: mojo/examples/keyboard/keyboard.cc |
diff --git a/mojo/examples/keyboard/keyboard.cc b/mojo/examples/keyboard/keyboard.cc |
deleted file mode 100644 |
index d08b6edb245a91d90168768aff00c5ef10979c95..0000000000000000000000000000000000000000 |
--- a/mojo/examples/keyboard/keyboard.cc |
+++ /dev/null |
@@ -1,156 +0,0 @@ |
-// Copyright 2014 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 "base/macros.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "mojo/application/application_runner_chromium.h" |
-#include "mojo/examples/keyboard/keyboard.mojom.h" |
-#include "mojo/examples/keyboard/keyboard_delegate.h" |
-#include "mojo/examples/keyboard/keyboard_view.h" |
-#include "mojo/public/c/system/main.h" |
-#include "mojo/public/cpp/application/application_connection.h" |
-#include "mojo/public/cpp/application/application_delegate.h" |
-#include "mojo/public/cpp/application/application_impl.h" |
-#include "mojo/public/cpp/application/interface_factory_impl.h" |
-#include "mojo/services/public/cpp/view_manager/view.h" |
-#include "mojo/services/public/cpp/view_manager/view_manager.h" |
-#include "mojo/services/public/cpp/view_manager/view_manager_client_factory.h" |
-#include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" |
-#include "mojo/services/public/interfaces/navigation/navigation.mojom.h" |
-#include "mojo/views/native_widget_view_manager.h" |
-#include "mojo/views/views_init.h" |
-#include "ui/events/event.h" |
-#include "ui/views/layout/fill_layout.h" |
-#include "ui/views/widget/widget.h" |
-#include "ui/views/widget/widget_delegate.h" |
-#include "url/gurl.h" |
- |
-namespace mojo { |
-namespace examples { |
- |
-class Keyboard; |
- |
-class KeyboardServiceImpl : public InterfaceImpl<KeyboardService> { |
- public: |
- explicit KeyboardServiceImpl(Keyboard* keyboard); |
- virtual ~KeyboardServiceImpl() {} |
- |
- // KeyboardService: |
- virtual void SetTarget(uint32_t view_id) override; |
- |
- private: |
- Keyboard* keyboard_; |
- |
- DISALLOW_COPY_AND_ASSIGN(KeyboardServiceImpl); |
-}; |
- |
-class Keyboard : public ApplicationDelegate, |
- public ViewManagerDelegate, |
- public KeyboardDelegate { |
- public: |
- Keyboard() |
- : shell_(nullptr), |
- keyboard_service_factory_(this), |
- view_manager_(NULL), |
- keyboard_service_(NULL), |
- target_(0) {} |
- |
- virtual ~Keyboard() { |
- } |
- |
- void set_target(Id id) { target_ = id; } |
- |
- void set_keyboard_service(KeyboardServiceImpl* keyboard) { |
- keyboard_service_ = keyboard; |
- } |
- |
- private: |
- // Overridden from ApplicationDelegate: |
- virtual void Initialize(ApplicationImpl* app) override { |
- shell_ = app->shell(); |
- view_manager_client_factory_.reset( |
- new ViewManagerClientFactory(shell_, this)); |
- } |
- |
- virtual bool ConfigureIncomingConnection( |
- ApplicationConnection* connection) override { |
- views_init_.reset(new ViewsInit); |
- connection->AddService(view_manager_client_factory_.get()); |
- connection->AddService(&keyboard_service_factory_); |
- return true; |
- } |
- |
- void CreateWidget(View* view) { |
- views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; |
- widget_delegate->GetContentsView()->AddChildView(new KeyboardView(this)); |
- widget_delegate->GetContentsView()->SetLayoutManager(new views::FillLayout); |
- |
- views::Widget* widget = new views::Widget; |
- views::Widget::InitParams params( |
- views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
- params.native_widget = new NativeWidgetViewManager(widget, shell_, view); |
- params.delegate = widget_delegate; |
- params.bounds = gfx::Rect(view->bounds().width, view->bounds().height); |
- widget->Init(params); |
- widget->Show(); |
- } |
- |
- // ViewManagerDelegate: |
- virtual void OnEmbed(ViewManager* view_manager, |
- View* root, |
- ServiceProviderImpl* exported_services, |
- scoped_ptr<ServiceProvider> imported_services) override { |
- // TODO: deal with OnEmbed() being invoked multiple times. |
- view_manager_ = view_manager; |
- CreateWidget(root); |
- } |
- virtual void OnViewManagerDisconnected( |
- ViewManager* view_manager) override { |
- DCHECK_EQ(view_manager_, view_manager); |
- view_manager_ = NULL; |
- base::MessageLoop::current()->Quit(); |
- } |
- |
- // KeyboardDelegate: |
- virtual void OnKeyPressed(int key_code, int event_flags) override { |
- if (!target_) |
- return; |
- keyboard_service_->client()->OnKeyboardEvent(target_, key_code, |
- event_flags); |
- } |
- |
- Shell* shell_; |
- |
- InterfaceFactoryImplWithContext<KeyboardServiceImpl, Keyboard> |
- keyboard_service_factory_; |
- |
- scoped_ptr<ViewsInit> views_init_; |
- |
- ViewManager* view_manager_; |
- scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; |
- |
- KeyboardServiceImpl* keyboard_service_; |
- |
- Id target_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Keyboard); |
-}; |
- |
-KeyboardServiceImpl::KeyboardServiceImpl(Keyboard* keyboard) |
- : keyboard_(keyboard) { |
- keyboard_->set_keyboard_service(this); |
-} |
- |
-void KeyboardServiceImpl::SetTarget(uint32_t view_id) { |
- keyboard_->set_target(view_id); |
-} |
- |
-} // namespace examples |
-} // namespace mojo |
- |
-MojoResult MojoMain(MojoHandle shell_handle) { |
- mojo::ApplicationRunnerChromium runner(new mojo::examples::Keyboard); |
- return runner.Run(shell_handle); |
-} |