summaryrefslogtreecommitdiffstats
path: root/ui/aura_shell/desktop_layout_manager.cc
blob: b86c31fb873f8c39284458e388408e85165cc797 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/aura_shell/desktop_layout_manager.h"

#include "ui/aura/window.h"
#include "views/widget/widget.h"

namespace aura_shell {
namespace internal {

////////////////////////////////////////////////////////////////////////////////
// DesktopLayoutManager, public:

DesktopLayoutManager::DesktopLayoutManager(aura::Window* owner)
    : owner_(owner),
      background_widget_(NULL),
      launcher_widget_(NULL),
      status_area_widget_(NULL) {
}

DesktopLayoutManager::~DesktopLayoutManager() {
}

////////////////////////////////////////////////////////////////////////////////
// DesktopLayoutManager, aura::LayoutManager implementation:

void DesktopLayoutManager::OnWindowResized() {
  background_widget_->SetBounds(
      gfx::Rect(owner_->bounds().width(), owner_->bounds().height()));

  gfx::Rect launcher_bounds = launcher_widget_->GetWindowScreenBounds();
  launcher_widget_->SetBounds(
      gfx::Rect(owner_->bounds().width() / 2 - launcher_bounds.width() / 2,
                owner_->bounds().bottom() - launcher_bounds.height(),
                launcher_bounds.width(),
                launcher_bounds.height()));

  gfx::Rect status_area_bounds = status_area_widget_->GetWindowScreenBounds();
  status_area_widget_->SetBounds(
      gfx::Rect(owner_->bounds().right() - status_area_bounds.width(),
                0,
                status_area_bounds.width(),
                status_area_bounds.height()));
}

}  // namespace internal
}  // namespace aura_shell