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

Side by Side Diff: examples/keyboard/keyboard.cc

Issue 815003002: Nukes ViewManager arg from ViewManagerDelegate::OnEmbed (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: format Created 6 years 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 unified diff | Download patch
« no previous file with comments | « examples/ganesh_app/ganesh_app.cc ('k') | examples/media_viewer/media_viewer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/macros.h" 5 #include "base/macros.h"
6 #include "base/strings/string_util.h" 6 #include "base/strings/string_util.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "examples/keyboard/keyboard.mojom.h" 8 #include "examples/keyboard/keyboard.mojom.h"
9 #include "examples/keyboard/keyboard_delegate.h" 9 #include "examples/keyboard/keyboard_delegate.h"
10 #include "examples/keyboard/keyboard_view.h" 10 #include "examples/keyboard/keyboard_view.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 DISALLOW_COPY_AND_ASSIGN(KeyboardServiceImpl); 46 DISALLOW_COPY_AND_ASSIGN(KeyboardServiceImpl);
47 }; 47 };
48 48
49 class Keyboard : public ApplicationDelegate, 49 class Keyboard : public ApplicationDelegate,
50 public ViewManagerDelegate, 50 public ViewManagerDelegate,
51 public KeyboardDelegate { 51 public KeyboardDelegate {
52 public: 52 public:
53 Keyboard() 53 Keyboard()
54 : shell_(nullptr), 54 : shell_(nullptr),
55 keyboard_service_factory_(this), 55 keyboard_service_factory_(this),
56 view_manager_(NULL),
57 keyboard_service_(NULL), 56 keyboard_service_(NULL),
58 target_(0) {} 57 target_(0) {}
59 58
60 virtual ~Keyboard() { 59 virtual ~Keyboard() {
61 } 60 }
62 61
63 void set_target(Id id) { target_ = id; } 62 void set_target(Id id) { target_ = id; }
64 63
65 void set_keyboard_service(KeyboardServiceImpl* keyboard) { 64 void set_keyboard_service(KeyboardServiceImpl* keyboard) {
66 keyboard_service_ = keyboard; 65 keyboard_service_ = keyboard;
(...skipping 24 matching lines...) Expand all
91 views::Widget::InitParams params( 90 views::Widget::InitParams params(
92 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 91 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
93 params.native_widget = new NativeWidgetViewManager(widget, shell_, view); 92 params.native_widget = new NativeWidgetViewManager(widget, shell_, view);
94 params.delegate = widget_delegate; 93 params.delegate = widget_delegate;
95 params.bounds = gfx::Rect(view->bounds().width, view->bounds().height); 94 params.bounds = gfx::Rect(view->bounds().width, view->bounds().height);
96 widget->Init(params); 95 widget->Init(params);
97 widget->Show(); 96 widget->Show();
98 } 97 }
99 98
100 // ViewManagerDelegate: 99 // ViewManagerDelegate:
101 virtual void OnEmbed(ViewManager* view_manager, 100 virtual void OnEmbed(View* root,
102 View* root,
103 ServiceProviderImpl* exported_services, 101 ServiceProviderImpl* exported_services,
104 scoped_ptr<ServiceProvider> imported_services) override { 102 scoped_ptr<ServiceProvider> imported_services) override {
105 // TODO: deal with OnEmbed() being invoked multiple times. 103 // TODO: deal with OnEmbed() being invoked multiple times.
106 view_manager_ = view_manager;
107 CreateWidget(root); 104 CreateWidget(root);
108 } 105 }
109 virtual void OnViewManagerDisconnected( 106 virtual void OnViewManagerDisconnected(
110 ViewManager* view_manager) override { 107 ViewManager* view_manager) override {
111 DCHECK_EQ(view_manager_, view_manager);
112 view_manager_ = NULL;
113 base::MessageLoop::current()->Quit(); 108 base::MessageLoop::current()->Quit();
114 } 109 }
115 110
116 // KeyboardDelegate: 111 // KeyboardDelegate:
117 virtual void OnKeyPressed(int key_code, int event_flags) override { 112 virtual void OnKeyPressed(int key_code, int event_flags) override {
118 if (!target_) 113 if (!target_)
119 return; 114 return;
120 keyboard_service_->client()->OnKeyboardEvent(target_, key_code, 115 keyboard_service_->client()->OnKeyboardEvent(target_, key_code,
121 event_flags); 116 event_flags);
122 } 117 }
123 118
124 Shell* shell_; 119 Shell* shell_;
125 120
126 InterfaceFactoryImplWithContext<KeyboardServiceImpl, Keyboard> 121 InterfaceFactoryImplWithContext<KeyboardServiceImpl, Keyboard>
127 keyboard_service_factory_; 122 keyboard_service_factory_;
128 123
129 scoped_ptr<ViewsInit> views_init_; 124 scoped_ptr<ViewsInit> views_init_;
130 125
131 ViewManager* view_manager_;
132 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; 126 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_;
133 127
134 KeyboardServiceImpl* keyboard_service_; 128 KeyboardServiceImpl* keyboard_service_;
135 129
136 Id target_; 130 Id target_;
137 131
138 DISALLOW_COPY_AND_ASSIGN(Keyboard); 132 DISALLOW_COPY_AND_ASSIGN(Keyboard);
139 }; 133 };
140 134
141 KeyboardServiceImpl::KeyboardServiceImpl(Keyboard* keyboard) 135 KeyboardServiceImpl::KeyboardServiceImpl(Keyboard* keyboard)
142 : keyboard_(keyboard) { 136 : keyboard_(keyboard) {
143 keyboard_->set_keyboard_service(this); 137 keyboard_->set_keyboard_service(this);
144 } 138 }
145 139
146 void KeyboardServiceImpl::SetTarget(uint32_t view_id) { 140 void KeyboardServiceImpl::SetTarget(uint32_t view_id) {
147 keyboard_->set_target(view_id); 141 keyboard_->set_target(view_id);
148 } 142 }
149 143
150 } // namespace examples 144 } // namespace examples
151 } // namespace mojo 145 } // namespace mojo
152 146
153 MojoResult MojoMain(MojoHandle shell_handle) { 147 MojoResult MojoMain(MojoHandle shell_handle) {
154 mojo::ApplicationRunnerChromium runner(new mojo::examples::Keyboard); 148 mojo::ApplicationRunnerChromium runner(new mojo::examples::Keyboard);
155 return runner.Run(shell_handle); 149 return runner.Run(shell_handle);
156 } 150 }
OLDNEW
« no previous file with comments | « examples/ganesh_app/ganesh_app.cc ('k') | examples/media_viewer/media_viewer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698