OLD | NEW |
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 "ui/aura/desktop.h" | 5 #include "ui/aura/desktop.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 namespace { | 34 namespace { |
35 | 35 |
36 // Default bounds for the host window. | 36 // Default bounds for the host window. |
37 static const int kDefaultHostWindowX = 200; | 37 static const int kDefaultHostWindowX = 200; |
38 static const int kDefaultHostWindowY = 200; | 38 static const int kDefaultHostWindowY = 200; |
39 static const int kDefaultHostWindowWidth = 1280; | 39 static const int kDefaultHostWindowWidth = 1280; |
40 static const int kDefaultHostWindowHeight = 1024; | 40 static const int kDefaultHostWindowHeight = 1024; |
41 | 41 |
42 } // namespace | 42 } // namespace |
43 | 43 |
44 // static | |
45 Desktop* Desktop::instance_ = NULL; | 44 Desktop* Desktop::instance_ = NULL; |
46 | |
47 // static | |
48 ui::Compositor*(*Desktop::compositor_factory_)() = NULL; | 45 ui::Compositor*(*Desktop::compositor_factory_)() = NULL; |
| 46 bool Desktop::use_fullscreen_host_window_ = false; |
49 | 47 |
50 Desktop::Desktop() | 48 Desktop::Desktop() |
51 : Window(NULL), | 49 : Window(NULL), |
52 host_(aura::DesktopHost::Create(GetInitialHostWindowBounds())), | 50 host_(aura::DesktopHost::Create(GetInitialHostWindowBounds())), |
53 ALLOW_THIS_IN_INITIALIZER_LIST(schedule_paint_factory_(this)), | 51 ALLOW_THIS_IN_INITIALIZER_LIST(schedule_paint_factory_(this)), |
54 active_window_(NULL), | 52 active_window_(NULL), |
55 in_destructor_(false), | 53 in_destructor_(false), |
56 screen_(new ScreenAura), | 54 screen_(new ScreenAura), |
57 capture_window_(NULL), | 55 capture_window_(NULL), |
58 mouse_pressed_handler_(NULL), | 56 mouse_pressed_handler_(NULL), |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 Window* Desktop::GetFocusedWindow() { | 402 Window* Desktop::GetFocusedWindow() { |
405 return focused_window_; | 403 return focused_window_; |
406 } | 404 } |
407 | 405 |
408 bool Desktop::IsFocusedWindow(const Window* window) const { | 406 bool Desktop::IsFocusedWindow(const Window* window) const { |
409 return focused_window_ == window; | 407 return focused_window_ == window; |
410 } | 408 } |
411 | 409 |
412 void Desktop::Init() { | 410 void Desktop::Init() { |
413 Window::Init(); | 411 Window::Init(); |
414 SetBounds(gfx::Rect(gfx::Point(), host_->GetSize())); | 412 SetBounds(gfx::Rect(host_->GetSize())); |
415 Show(); | 413 Show(); |
416 compositor()->SetRootLayer(layer()); | 414 compositor()->SetRootLayer(layer()); |
417 } | 415 } |
418 | 416 |
419 gfx::Rect Desktop::GetInitialHostWindowBounds() const { | 417 gfx::Rect Desktop::GetInitialHostWindowBounds() const { |
| 418 gfx::Rect bounds(kDefaultHostWindowX, kDefaultHostWindowY, |
| 419 kDefaultHostWindowWidth, kDefaultHostWindowHeight); |
| 420 |
420 const string size_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 421 const string size_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
421 switches::kAuraHostWindowSize); | 422 switches::kAuraHostWindowSize); |
422 | |
423 int width = 0, height = 0; | |
424 vector<string> parts; | 423 vector<string> parts; |
425 base::SplitString(size_str, 'x', &parts); | 424 base::SplitString(size_str, 'x', &parts); |
426 if (parts.size() != 2 || | 425 int parsed_width = 0, parsed_height = 0; |
427 !base::StringToInt(parts[0], &width) || | 426 if (parts.size() == 2 && |
428 !base::StringToInt(parts[1], &height) || | 427 base::StringToInt(parts[0], &parsed_width) && parsed_width > 0 && |
429 width <= 0 || height <= 0) { | 428 base::StringToInt(parts[1], &parsed_height) && parsed_height > 0) { |
430 width = kDefaultHostWindowWidth; | 429 bounds.set_size(gfx::Size(parsed_width, parsed_height)); |
431 height = kDefaultHostWindowHeight; | 430 } else if (use_fullscreen_host_window_) { |
| 431 bounds = gfx::Rect(DesktopHost::GetNativeDisplaySize()); |
432 } | 432 } |
433 return gfx::Rect(kDefaultHostWindowX, kDefaultHostWindowY, width, height); | 433 |
| 434 return bounds; |
434 } | 435 } |
435 | 436 |
436 } // namespace aura | 437 } // namespace aura |
OLD | NEW |