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

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

Issue 1375313006: For c++, Generate enum classes instead of enum from mojom. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 months 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/spinning_cube/gles2_client_impl.cc ('k') | examples/wm_flow/app/app.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/bind.h" 5 #include "base/bind.h"
6 #include "base/macros.h" 6 #include "base/macros.h"
7 #include "examples/window_manager/debug_panel_host.mojom.h" 7 #include "examples/window_manager/debug_panel_host.mojom.h"
8 #include "examples/window_manager/window_manager.mojom.h" 8 #include "examples/window_manager/window_manager.mojom.h"
9 #include "mojo/application/application_runner_chromium.h" 9 #include "mojo/application/application_runner_chromium.h"
10 #include "mojo/common/binding_set.h" 10 #include "mojo/common/binding_set.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 public InterfaceFactory<::examples::IWindowManager> { 208 public InterfaceFactory<::examples::IWindowManager> {
209 public: 209 public:
210 WindowManagerController(Shell* shell, 210 WindowManagerController(Shell* shell,
211 ApplicationImpl* app, 211 ApplicationImpl* app,
212 ApplicationConnection* connection, 212 ApplicationConnection* connection,
213 window_manager::WindowManagerRoot* wm_root) 213 window_manager::WindowManagerRoot* wm_root)
214 : shell_(shell), 214 : shell_(shell),
215 launcher_ui_(NULL), 215 launcher_ui_(NULL),
216 view_manager_(NULL), 216 view_manager_(NULL),
217 window_manager_root_(wm_root), 217 window_manager_root_(wm_root),
218 navigation_target_(TARGET_DEFAULT), 218 navigation_target_(Target::DEFAULT),
219 app_(app), 219 app_(app),
220 binding_(this) { 220 binding_(this) {
221 connection->AddService<::examples::IWindowManager>(this); 221 connection->AddService<::examples::IWindowManager>(this);
222 } 222 }
223 223
224 ~WindowManagerController() override { 224 ~WindowManagerController() override {
225 // host() may be destroyed by the time we get here. 225 // host() may be destroyed by the time we get here.
226 // TODO: figure out a way to always cleanly remove handler. 226 // TODO: figure out a way to always cleanly remove handler.
227 227
228 // TODO(erg): In the aura version, we removed ourselves from the 228 // TODO(erg): In the aura version, we removed ourselves from the
(...skipping 20 matching lines...) Expand all
249 OnLaunch(source_view_id, target, url); 249 OnLaunch(source_view_id, target, url);
250 } 250 }
251 251
252 // Overridden from mojo::DebugPanelHost: 252 // Overridden from mojo::DebugPanelHost:
253 void CloseTopWindow() override { 253 void CloseTopWindow() override {
254 if (!windows_.empty()) 254 if (!windows_.empty())
255 CloseWindow(windows_.back()->view()->id()); 255 CloseWindow(windows_.back()->view()->id());
256 } 256 }
257 257
258 void NavigateTo(const String& url) override { 258 void NavigateTo(const String& url) override {
259 OnLaunch(control_panel_id_, TARGET_NEW_NODE, url); 259 OnLaunch(control_panel_id_, Target::NEW_NODE, url);
260 } 260 }
261 261
262 void SetNavigationTarget(Target t) override { navigation_target_ = t; } 262 void SetNavigationTarget(Target t) override { navigation_target_ = t; }
263 263
264 // mojo::InterfaceFactory<examples::DebugPanelHost> implementation. 264 // mojo::InterfaceFactory<examples::DebugPanelHost> implementation.
265 void Create( 265 void Create(
266 mojo::ApplicationConnection* connection, 266 mojo::ApplicationConnection* connection,
267 mojo::InterfaceRequest<examples::DebugPanelHost> request) override { 267 mojo::InterfaceRequest<examples::DebugPanelHost> request) override {
268 binding_.Bind(request.Pass()); 268 binding_.Bind(request.Pass());
269 } 269 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 DCHECK_EQ(view_manager_, view_manager); 316 DCHECK_EQ(view_manager_, view_manager);
317 view_manager_ = NULL; 317 view_manager_ = NULL;
318 base::MessageLoop::current()->Quit(); 318 base::MessageLoop::current()->Quit();
319 } 319 }
320 320
321 // Overridden from WindowManagerDelegate: 321 // Overridden from WindowManagerDelegate:
322 void Embed(const String& url, 322 void Embed(const String& url,
323 InterfaceRequest<ServiceProvider> services, 323 InterfaceRequest<ServiceProvider> services,
324 ServiceProviderPtr exposed_services) override { 324 ServiceProviderPtr exposed_services) override {
325 const Id kInvalidSourceViewId = 0; 325 const Id kInvalidSourceViewId = 0;
326 OnLaunch(kInvalidSourceViewId, TARGET_DEFAULT, url); 326 OnLaunch(kInvalidSourceViewId, Target::DEFAULT, url);
327 } 327 }
328 328
329 // Overridden from ui::EventHandler: 329 // Overridden from ui::EventHandler:
330 void OnEvent(ui::Event* event) override { 330 void OnEvent(ui::Event* event) override {
331 View* view = 331 View* view =
332 static_cast<window_manager::ViewTarget*>(event->target())->view(); 332 static_cast<window_manager::ViewTarget*>(event->target())->view();
333 if (event->type() == ui::ET_MOUSE_PRESSED) 333 if (event->type() == ui::ET_MOUSE_PRESSED)
334 view->SetFocus(); 334 view->SetFocus();
335 } 335 }
336 336
(...skipping 10 matching lines...) Expand all
347 return true; 347 return true;
348 } 348 }
349 349
350 // Overriden from ui::AcceleratorTarget: 350 // Overriden from ui::AcceleratorTarget:
351 bool CanHandleAccelerators() const override { return true; } 351 bool CanHandleAccelerators() const override { return true; }
352 352
353 void OnLaunch(uint32 source_view_id, 353 void OnLaunch(uint32 source_view_id,
354 Target requested_target, 354 Target requested_target,
355 const mojo::String& url) { 355 const mojo::String& url) {
356 Target target = navigation_target_; 356 Target target = navigation_target_;
357 if (target == TARGET_DEFAULT) { 357 if (target == Target::DEFAULT) {
358 if (requested_target != TARGET_DEFAULT) { 358 if (requested_target != Target::DEFAULT) {
359 target = requested_target; 359 target = requested_target;
360 } else { 360 } else {
361 // TODO(aa): Should be TARGET_NEW_NODE if source origin and dest origin 361 // TODO(aa): Should be Target::NEW_NODE if source origin and dest origin
362 // are different? 362 // are different?
363 target = TARGET_SOURCE_NODE; 363 target = Target::SOURCE_NODE;
364 } 364 }
365 } 365 }
366 366
367 Window* dest_view = NULL; 367 Window* dest_view = NULL;
368 if (target == TARGET_SOURCE_NODE) { 368 if (target == Target::SOURCE_NODE) {
369 WindowVector::iterator source_view = GetWindowByViewId(source_view_id); 369 WindowVector::iterator source_view = GetWindowByViewId(source_view_id);
370 bool app_initiated = source_view != windows_.end(); 370 bool app_initiated = source_view != windows_.end();
371 if (app_initiated) 371 if (app_initiated)
372 dest_view = *source_view; 372 dest_view = *source_view;
373 else if (!windows_.empty()) 373 else if (!windows_.empty())
374 dest_view = windows_.back(); 374 dest_view = windows_.back();
375 } 375 }
376 376
377 if (!dest_view) { 377 if (!dest_view) {
378 dest_view = CreateWindow(); 378 dest_view = CreateWindow();
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 void NavigatorHostImpl::RequestNavigate(Target target, URLRequestPtr request) { 530 void NavigatorHostImpl::RequestNavigate(Target target, URLRequestPtr request) {
531 window_manager_->RequestNavigate(view_id_, target, request->url); 531 window_manager_->RequestNavigate(view_id_, target, request->url);
532 } 532 }
533 533
534 void NavigatorHostImpl::RequestNavigateHistory(int32_t delta) { 534 void NavigatorHostImpl::RequestNavigateHistory(int32_t delta) {
535 if (history_.empty()) 535 if (history_.empty())
536 return; 536 return;
537 current_index_ = 537 current_index_ =
538 std::max(0, std::min(current_index_ + delta, 538 std::max(0, std::min(current_index_ + delta,
539 static_cast<int32_t>(history_.size()) - 1)); 539 static_cast<int32_t>(history_.size()) - 1));
540 window_manager_->RequestNavigate(view_id_, TARGET_SOURCE_NODE, 540 window_manager_->RequestNavigate(view_id_, Target::SOURCE_NODE,
541 history_[current_index_]); 541 history_[current_index_]);
542 } 542 }
543 543
544 void NavigatorHostImpl::RecordNavigation(const std::string& url) { 544 void NavigatorHostImpl::RecordNavigation(const std::string& url) {
545 if (current_index_ >= 0 && history_[current_index_] == url) { 545 if (current_index_ >= 0 && history_[current_index_] == url) {
546 // This is a navigation to the current entry, ignore. 546 // This is a navigation to the current entry, ignore.
547 return; 547 return;
548 } 548 }
549 history_.erase(history_.begin() + (current_index_ + 1), history_.end()); 549 history_.erase(history_.begin() + (current_index_ + 1), history_.end());
550 history_.push_back(url); 550 history_.push_back(url);
551 ++current_index_; 551 ++current_index_;
552 } 552 }
553 553
554 } // namespace examples 554 } // namespace examples
555 } // namespace mojo 555 } // namespace mojo
556 556
557 MojoResult MojoMain(MojoHandle application_request) { 557 MojoResult MojoMain(MojoHandle application_request) {
558 mojo::ApplicationRunnerChromium runner(new mojo::examples::WindowManager); 558 mojo::ApplicationRunnerChromium runner(new mojo::examples::WindowManager);
559 return runner.Run(application_request); 559 return runner.Run(application_request);
560 } 560 }
OLDNEW
« no previous file with comments | « examples/spinning_cube/gles2_client_impl.cc ('k') | examples/wm_flow/app/app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698