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

Side by Side Diff: ash/root_window_controller.cc

Issue 13164002: Create and show the virtual keyboard. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix upstream Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « ash/root_window_controller.h ('k') | ash/shell/shell_delegate_impl.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/root_window_controller.h" 5 #include "ash/root_window_controller.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/ash_constants.h" 9 #include "ash/ash_constants.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "ui/aura/client/capture_client.h" 42 #include "ui/aura/client/capture_client.h"
43 #include "ui/aura/client/focus_client.h" 43 #include "ui/aura/client/focus_client.h"
44 #include "ui/aura/client/tooltip_client.h" 44 #include "ui/aura/client/tooltip_client.h"
45 #include "ui/aura/root_window.h" 45 #include "ui/aura/root_window.h"
46 #include "ui/aura/window.h" 46 #include "ui/aura/window.h"
47 #include "ui/aura/window_observer.h" 47 #include "ui/aura/window_observer.h"
48 #include "ui/aura/window_tracker.h" 48 #include "ui/aura/window_tracker.h"
49 #include "ui/base/models/menu_model.h" 49 #include "ui/base/models/menu_model.h"
50 #include "ui/gfx/display.h" 50 #include "ui/gfx/display.h"
51 #include "ui/gfx/screen.h" 51 #include "ui/gfx/screen.h"
52 #include "ui/keyboard/keyboard_controller.h"
53 #include "ui/keyboard/keyboard_util.h"
52 #include "ui/views/controls/menu/menu_runner.h" 54 #include "ui/views/controls/menu/menu_runner.h"
53 #include "ui/views/corewm/visibility_controller.h" 55 #include "ui/views/corewm/visibility_controller.h"
54 #include "ui/views/view_model.h" 56 #include "ui/views/view_model.h"
55 #include "ui/views/view_model_utils.h" 57 #include "ui/views/view_model_utils.h"
56 58
57 namespace ash { 59 namespace ash {
58 namespace { 60 namespace {
59 61
60 // Duration for the animation that hides the boot splash screen, in 62 // Duration for the animation that hides the boot splash screen, in
61 // milliseconds. This should be short enough in relation to 63 // milliseconds. This should be short enough in relation to
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 aura::Window* panel_container = GetContainer( 285 aura::Window* panel_container = GetContainer(
284 internal::kShellWindowId_PanelContainer); 286 internal::kShellWindowId_PanelContainer);
285 panel_layout_manager_ = 287 panel_layout_manager_ =
286 new internal::PanelLayoutManager(panel_container); 288 new internal::PanelLayoutManager(panel_container);
287 panel_container_handler_.reset( 289 panel_container_handler_.reset(
288 new ToplevelWindowEventHandler(panel_container)); 290 new ToplevelWindowEventHandler(panel_container));
289 panel_container->SetLayoutManager(panel_layout_manager_); 291 panel_container->SetLayoutManager(panel_layout_manager_);
290 } 292 }
291 if (Shell::GetInstance()->delegate()->IsUserLoggedIn()) 293 if (Shell::GetInstance()->delegate()->IsUserLoggedIn())
292 shelf_->CreateLauncher(); 294 shelf_->CreateLauncher();
295
296 // TODO(bryeung): Move this to CreateContainersInRootWindow when the
297 // keyboard controller will take care of deferring creation of the keyboard.
298 InitKeyboard();
293 } 299 }
294 300
295 void RootWindowController::CreateContainers() { 301 void RootWindowController::CreateContainers() {
296 CreateContainersInRootWindow(root_window_.get()); 302 CreateContainersInRootWindow(root_window_.get());
297 303
298 // Create touch observer HUD if needed. HUD should be created after the 304 // Create touch observer HUD if needed. HUD should be created after the
299 // containers have been created, so that its widget can be added to them. 305 // containers have been created, so that its widget can be added to them.
300 CommandLine* command_line = CommandLine::ForCurrentProcess(); 306 CommandLine* command_line = CommandLine::ForCurrentProcess();
301 if (command_line->HasSwitch(switches::kAshTouchHud)) { 307 if (command_line->HasSwitch(switches::kAshTouchHud)) {
302 int64 id = root_window_->GetProperty(kDisplayIdKey); 308 int64 id = root_window_->GetProperty(kDisplayIdKey);
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 bool RootWindowController::IsImmersiveMode() const { 495 bool RootWindowController::IsImmersiveMode() const {
490 aura::Window* container = workspace_controller_->GetActiveWorkspaceWindow(); 496 aura::Window* container = workspace_controller_->GetActiveWorkspaceWindow();
491 for (size_t i = 0; i < container->children().size(); ++i) { 497 for (size_t i = 0; i < container->children().size(); ++i) {
492 aura::Window* child = container->children()[i]; 498 aura::Window* child = container->children()[i];
493 if (child->IsVisible() && child->GetProperty(kImmersiveModeKey)) 499 if (child->IsVisible() && child->GetProperty(kImmersiveModeKey))
494 return true; 500 return true;
495 } 501 }
496 return false; 502 return false;
497 } 503 }
498 504
505 void RootWindowController::InitKeyboard() {
506 if (keyboard::IsKeyboardEnabled()) {
507 aura::Window* parent = root_window();
508
509 keyboard::KeyboardControllerProxy* proxy =
510 Shell::GetInstance()->delegate()->CreateKeyboardControllerProxy();
511 keyboard_controller_.reset(
512 new keyboard::KeyboardController(proxy));
513 aura::Window* keyboard_container =
514 keyboard_controller_->GetContainerWindow();
515 parent->AddChild(keyboard_container);
516 // TODO(bryeung): move this to the controller on visibility changed
517 parent->StackChildAtTop(keyboard_container);
518 keyboard_container->Show();
519 }
520 }
521
522
499 //////////////////////////////////////////////////////////////////////////////// 523 ////////////////////////////////////////////////////////////////////////////////
500 // RootWindowController, private: 524 // RootWindowController, private:
501 525
502 void RootWindowController::CreateContainersInRootWindow( 526 void RootWindowController::CreateContainersInRootWindow(
503 aura::RootWindow* root_window) { 527 aura::RootWindow* root_window) {
504 // These containers are just used by PowerButtonController to animate groups 528 // These containers are just used by PowerButtonController to animate groups
505 // of containers simultaneously without messing up the current transformations 529 // of containers simultaneously without messing up the current transformations
506 // on those containers. These are direct children of the root window; all of 530 // on those containers. These are direct children of the root window; all of
507 // the other containers are their children. 531 // the other containers are their children.
508 532
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 "OverlayContainer", 674 "OverlayContainer",
651 lock_screen_related_containers); 675 lock_screen_related_containers);
652 SetUsesScreenCoordinates(overlay_container); 676 SetUsesScreenCoordinates(overlay_container);
653 677
654 CreateContainer(kShellWindowId_PowerButtonAnimationContainer, 678 CreateContainer(kShellWindowId_PowerButtonAnimationContainer,
655 "PowerButtonAnimationContainer", root_window) ; 679 "PowerButtonAnimationContainer", root_window) ;
656 } 680 }
657 681
658 } // namespace internal 682 } // namespace internal
659 } // namespace ash 683 } // namespace ash
OLDNEW
« no previous file with comments | « ash/root_window_controller.h ('k') | ash/shell/shell_delegate_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698