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

Side by Side Diff: chrome/browser/ui/virtual_keyboard/virtual_keyboard_manager.cc

Issue 8771015: Rename Desktop->RootWindow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/ui/virtual_keyboard/virtual_keyboard_manager.h" 5 #include "chrome/browser/ui/virtual_keyboard/virtual_keyboard_manager.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/extension_event_router.h" 9 #include "chrome/browser/extensions/extension_event_router.h"
10 #include "chrome/browser/extensions/extension_function_dispatcher.h" 10 #include "chrome/browser/extensions/extension_function_dispatcher.h"
(...skipping 19 matching lines...) Expand all
30 #include "ui/gfx/screen.h" 30 #include "ui/gfx/screen.h"
31 #include "ui/views/ime/text_input_type_tracker.h" 31 #include "ui/views/ime/text_input_type_tracker.h"
32 #include "ui/views/widget/widget.h" 32 #include "ui/views/widget/widget.h"
33 33
34 #if defined(OS_CHROMEOS) 34 #if defined(OS_CHROMEOS)
35 #include "chrome/browser/chromeos/input_method/input_method_manager.h" 35 #include "chrome/browser/chromeos/input_method/input_method_manager.h"
36 #include "chrome/browser/chromeos/input_method/virtual_keyboard_selector.h" 36 #include "chrome/browser/chromeos/input_method/virtual_keyboard_selector.h"
37 #endif 37 #endif
38 38
39 #if defined(USE_AURA) 39 #if defined(USE_AURA)
40 #include "ui/aura/desktop.h" 40 #include "ui/aura/root_window.h"
41 #include "ui/aura/desktop_observer.h" 41 #include "ui/aura/root_window_observer.h"
42 #include "ui/aura_shell/shell.h" 42 #include "ui/aura_shell/shell.h"
43 #include "ui/aura_shell/shell_window_ids.h" 43 #include "ui/aura_shell/shell_window_ids.h"
44 #endif 44 #endif
45 45
46 namespace { 46 namespace {
47 47
48 const int kDefaultKeyboardHeight = 300; 48 const int kDefaultKeyboardHeight = 300;
49 const int kKeyboardSlideDuration = 300; // In milliseconds 49 const int kKeyboardSlideDuration = 300; // In milliseconds
50 const char kOnTextInputTypeChanged[] = 50 const char kOnTextInputTypeChanged[] =
51 "experimental.input.virtualKeyboard.onTextInputTypeChanged"; 51 "experimental.input.virtualKeyboard.onTextInputTypeChanged";
52 52
53 // The default position of the keyboard widget should be at the bottom, 53 // The default position of the keyboard widget should be at the bottom,
54 // spanning the entire width of the desktop. 54 // spanning the entire width of the root window.
55 gfx::Rect GetKeyboardPosition(int height) { 55 gfx::Rect GetKeyboardPosition(int height) {
56 gfx::Rect area = gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point()); 56 gfx::Rect area = gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point());
57 return gfx::Rect(area.x(), area.y() + area.height() - height, 57 return gfx::Rect(area.x(), area.y() + area.height() - height,
58 area.width(), height); 58 area.width(), height);
59 } 59 }
60 60
61 } // namespace 61 } // namespace
62 62
63 // TODO(sad): Is the default profile always going to be the one we want? 63 // TODO(sad): Is the default profile always going to be the one we want?
64 64
65 class KeyboardWidget 65 class KeyboardWidget
66 : public views::Widget, 66 : public views::Widget,
67 public ui::AnimationDelegate, 67 public ui::AnimationDelegate,
68 public TabContentsObserver, 68 public TabContentsObserver,
69 public ExtensionFunctionDispatcher::Delegate, 69 public ExtensionFunctionDispatcher::Delegate,
70 #if defined(OS_CHROMEOS) 70 #if defined(OS_CHROMEOS)
71 public chromeos::input_method::InputMethodManager::VirtualKeyboardObserver , 71 public chromeos::input_method::InputMethodManager::VirtualKeyboardObserver ,
72 #endif 72 #endif
73 #if defined(USE_AURA) 73 #if defined(USE_AURA)
74 public aura::DesktopObserver, 74 public aura::RootWindowObserver,
75 #endif 75 #endif
76 public content::NotificationObserver, 76 public content::NotificationObserver,
77 public views::Widget::Observer, 77 public views::Widget::Observer,
78 public views::TextInputTypeObserver { 78 public views::TextInputTypeObserver {
79 public: 79 public:
80 KeyboardWidget(); 80 KeyboardWidget();
81 virtual ~KeyboardWidget(); 81 virtual ~KeyboardWidget();
82 82
83 // Show the keyboard for the target widget. The events from the keyboard will 83 // Show the keyboard for the target widget. The events from the keyboard will
84 // be sent to |widget|. 84 // be sent to |widget|.
85 void ShowKeyboardForWidget(views::Widget* widget); 85 void ShowKeyboardForWidget(views::Widget* widget);
86 86
87 // Updates the bounds to reflect the current screen/desktop bounds. 87 // Updates the bounds to reflect the current screen/root window bounds.
88 void ResetBounds(); 88 void ResetBounds();
89 89
90 // Overridden from views::Widget 90 // Overridden from views::Widget
91 void Hide() OVERRIDE; 91 void Hide() OVERRIDE;
92 92
93 private: 93 private:
94 // Sets the target widget, adds/removes Widget::Observer, reparents etc. 94 // Sets the target widget, adds/removes Widget::Observer, reparents etc.
95 void SetTarget(Widget* target); 95 void SetTarget(Widget* target);
96 96
97 // Returns the widget of the active browser, or NULL if there is no such 97 // Returns the widget of the active browser, or NULL if there is no such
(...skipping 26 matching lines...) Expand all
124 124
125 #if defined(OS_CHROMEOS) 125 #if defined(OS_CHROMEOS)
126 // Overridden from input_method::InputMethodManager::VirtualKeyboardObserver. 126 // Overridden from input_method::InputMethodManager::VirtualKeyboardObserver.
127 virtual void VirtualKeyboardChanged( 127 virtual void VirtualKeyboardChanged(
128 chromeos::input_method::InputMethodManager* manager, 128 chromeos::input_method::InputMethodManager* manager,
129 const chromeos::input_method::VirtualKeyboard& virtual_keyboard, 129 const chromeos::input_method::VirtualKeyboard& virtual_keyboard,
130 const std::string& virtual_keyboard_layout); 130 const std::string& virtual_keyboard_layout);
131 #endif 131 #endif
132 132
133 #if defined(USE_AURA) 133 #if defined(USE_AURA)
134 // Overridden from aura::DesktopObserver. 134 // Overridden from aura::RootWindowObserver.
135 virtual void OnDesktopResized(const gfx::Size& new_size) OVERRIDE; 135 virtual void OnRootWindowResized(const gfx::Size& new_size) OVERRIDE;
136 #endif 136 #endif
137 137
138 // Overridden from NotificationObserver. 138 // Overridden from NotificationObserver.
139 virtual void Observe(int type, 139 virtual void Observe(int type,
140 const content::NotificationSource& source, 140 const content::NotificationSource& source,
141 const content::NotificationDetails& details) OVERRIDE; 141 const content::NotificationDetails& details) OVERRIDE;
142 142
143 // Overridden from views::Widget::Observer. 143 // Overridden from views::Widget::Observer.
144 virtual void OnWidgetClosing(Widget* widget) OVERRIDE; 144 virtual void OnWidgetClosing(Widget* widget) OVERRIDE;
145 virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE; 145 virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 content::NOTIFICATION_APP_TERMINATING, 220 content::NOTIFICATION_APP_TERMINATING,
221 content::NotificationService::AllSources()); 221 content::NotificationService::AllSources());
222 222
223 #if defined(OS_CHROMEOS) 223 #if defined(OS_CHROMEOS)
224 chromeos::input_method::InputMethodManager* manager = 224 chromeos::input_method::InputMethodManager* manager =
225 chromeos::input_method::InputMethodManager::GetInstance(); 225 chromeos::input_method::InputMethodManager::GetInstance();
226 manager->AddVirtualKeyboardObserver(this); 226 manager->AddVirtualKeyboardObserver(this);
227 #endif 227 #endif
228 228
229 #if defined(USE_AURA) 229 #if defined(USE_AURA)
230 aura::Desktop::GetInstance()->AddObserver(this); 230 aura::RootWindow::GetInstance()->AddObserver(this);
231 #endif 231 #endif
232 } 232 }
233 233
234 KeyboardWidget::~KeyboardWidget() { 234 KeyboardWidget::~KeyboardWidget() {
235 if (target_) 235 if (target_)
236 target_->RemoveObserver(this); 236 target_->RemoveObserver(this);
237 views::TextInputTypeTracker::GetInstance()->RemoveTextInputTypeObserver(this); 237 views::TextInputTypeTracker::GetInstance()->RemoveTextInputTypeObserver(this);
238 #if defined(OS_CHROMEOS) 238 #if defined(OS_CHROMEOS)
239 chromeos::input_method::InputMethodManager* manager = 239 chromeos::input_method::InputMethodManager* manager =
240 chromeos::input_method::InputMethodManager::GetInstance(); 240 chromeos::input_method::InputMethodManager::GetInstance();
241 manager->RemoveVirtualKeyboardObserver(this); 241 manager->RemoveVirtualKeyboardObserver(this);
242 #endif 242 #endif
243 243
244 #if defined(USE_AURA) 244 #if defined(USE_AURA)
245 aura::Desktop::GetInstance()->RemoveObserver(this); 245 aura::RootWindow::GetInstance()->RemoveObserver(this);
246 #endif 246 #endif
247 // TODO(sad): Do anything else? 247 // TODO(sad): Do anything else?
248 } 248 }
249 249
250 void KeyboardWidget::ShowKeyboardForWidget(views::Widget* widget) { 250 void KeyboardWidget::ShowKeyboardForWidget(views::Widget* widget) {
251 if (target_ == widget && IsVisible() && !animation_->is_animating()) 251 if (target_ == widget && IsVisible() && !animation_->is_animating())
252 return; 252 return;
253 SetTarget(widget); 253 SetTarget(widget);
254 254
255 transform_.reset(new ui::InterpolatedTranslation( 255 transform_.reset(new ui::InterpolatedTranslation(
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 chromeos::input_method::InputMethodManager* manager, 435 chromeos::input_method::InputMethodManager* manager,
436 const chromeos::input_method::VirtualKeyboard& virtual_keyboard, 436 const chromeos::input_method::VirtualKeyboard& virtual_keyboard,
437 const std::string& virtual_keyboard_layout) { 437 const std::string& virtual_keyboard_layout) {
438 const GURL& url = virtual_keyboard.GetURLForLayout(virtual_keyboard_layout); 438 const GURL& url = virtual_keyboard.GetURLForLayout(virtual_keyboard_layout);
439 dom_view_->LoadURL(url); 439 dom_view_->LoadURL(url);
440 VLOG(1) << "VirtualKeyboardChanged: Switched to " << url.spec(); 440 VLOG(1) << "VirtualKeyboardChanged: Switched to " << url.spec();
441 } 441 }
442 #endif 442 #endif
443 443
444 #if defined(USE_AURA) 444 #if defined(USE_AURA)
445 void KeyboardWidget::OnDesktopResized(const gfx::Size& new_size) { 445 void KeyboardWidget::OnRootWindowResized(const gfx::Size& new_size) {
446 ResetBounds(); 446 ResetBounds();
447 } 447 }
448 #endif 448 #endif
449 449
450 void KeyboardWidget::Observe(int type, 450 void KeyboardWidget::Observe(int type,
451 const content::NotificationSource& source, 451 const content::NotificationSource& source,
452 const content::NotificationDetails& details) { 452 const content::NotificationDetails& details) {
453 switch (type) { 453 switch (type) {
454 case chrome::NOTIFICATION_FOCUSED_EDITABLE_NODE_TOUCHED: { 454 case chrome::NOTIFICATION_FOCUSED_EDITABLE_NODE_TOUCHED: {
455 // In case the keyboard hid itself and the focus is still in an editable 455 // In case the keyboard hid itself and the focus is still in an editable
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 536
537 void VirtualKeyboardManager::OnWidgetClosing(views::Widget* widget) { 537 void VirtualKeyboardManager::OnWidgetClosing(views::Widget* widget) {
538 DCHECK_EQ(keyboard_, widget); 538 DCHECK_EQ(keyboard_, widget);
539 keyboard_ = NULL; 539 keyboard_ = NULL;
540 } 540 }
541 541
542 // static 542 // static
543 VirtualKeyboardManager* VirtualKeyboardManager::GetInstance() { 543 VirtualKeyboardManager* VirtualKeyboardManager::GetInstance() {
544 return Singleton<VirtualKeyboardManager>::get(); 544 return Singleton<VirtualKeyboardManager>::get();
545 } 545 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/tab_contents/native_tab_contents_view_aura.cc ('k') | chrome/test/base/in_process_browser_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698