| Index: athena/system/system_ui_impl.cc
|
| diff --git a/athena/system/system_ui_impl.cc b/athena/system/system_ui_impl.cc
|
| deleted file mode 100644
|
| index d2e81426207b60af9995b14b377170d20324622d..0000000000000000000000000000000000000000
|
| --- a/athena/system/system_ui_impl.cc
|
| +++ /dev/null
|
| @@ -1,190 +0,0 @@
|
| -// Copyright 2014 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 "athena/system/public/system_ui.h"
|
| -
|
| -#include "athena/screen/public/screen_manager.h"
|
| -#include "athena/system/background_controller.h"
|
| -#include "athena/system/orientation_controller.h"
|
| -#include "athena/system/shutdown_dialog.h"
|
| -#include "athena/system/status_icon_container_view.h"
|
| -#include "athena/system/time_view.h"
|
| -#include "athena/util/athena_constants.h"
|
| -#include "athena/util/container_priorities.h"
|
| -#include "athena/util/fill_layout_manager.h"
|
| -#include "athena/wm/public/window_manager.h"
|
| -#include "athena/wm/public/window_manager_observer.h"
|
| -#include "base/logging.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/views/view.h"
|
| -#include "ui/views/widget/widget.h"
|
| -#include "ui/wm/core/visibility_controller.h"
|
| -#include "ui/wm/core/window_animations.h"
|
| -
|
| -namespace athena {
|
| -namespace {
|
| -
|
| -SystemUI* instance = nullptr;
|
| -
|
| -// View which positions the TimeView on the left and the StatusIconView on the
|
| -// right.
|
| -class SystemInfoView : public views::View {
|
| - public:
|
| - SystemInfoView(SystemUI::ColorScheme color_scheme)
|
| - : time_view_(new TimeView(color_scheme)),
|
| - status_icon_view_(new StatusIconContainerView(color_scheme)) {
|
| - AddChildView(time_view_);
|
| - AddChildView(status_icon_view_);
|
| - }
|
| -
|
| - ~SystemInfoView() override {}
|
| -
|
| - // views::View:
|
| - virtual gfx::Size GetPreferredSize() const override {
|
| - // The view should be as wide as its parent view.
|
| - return gfx::Size(0,
|
| - std::max(time_view_->GetPreferredSize().height(),
|
| - status_icon_view_->GetPreferredSize().height()));
|
| - }
|
| -
|
| - virtual void Layout() override {
|
| - time_view_->SetBoundsRect(gfx::Rect(time_view_->GetPreferredSize()));
|
| - gfx::Size status_icon_preferred_size =
|
| - status_icon_view_->GetPreferredSize();
|
| - status_icon_view_->SetBoundsRect(
|
| - gfx::Rect(width() - status_icon_preferred_size.width(),
|
| - 0,
|
| - status_icon_preferred_size.width(),
|
| - status_icon_preferred_size.height()));
|
| - }
|
| -
|
| - virtual void ChildPreferredSizeChanged(views::View* child) override {
|
| - // Relayout to take into account changes in |status_icon_view_|'s width.
|
| - // Assume that |time_view_|'s and |status_icon_view_|'s preferred height
|
| - // does not change.
|
| - Layout();
|
| - }
|
| -
|
| - private:
|
| - views::View* time_view_;
|
| - views::View* status_icon_view_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SystemInfoView);
|
| -};
|
| -
|
| -class SystemUIImpl : public SystemUI, public WindowManagerObserver {
|
| - public:
|
| - SystemUIImpl(scoped_refptr<base::TaskRunner> blocking_task_runner)
|
| - : orientation_controller_(new OrientationController()),
|
| - background_container_(nullptr),
|
| - system_info_widget_(nullptr) {
|
| - orientation_controller_->InitWith(blocking_task_runner);
|
| - WindowManager::Get()->AddObserver(this);
|
| - }
|
| -
|
| - ~SystemUIImpl() override {
|
| - WindowManager::Get()->RemoveObserver(this);
|
| -
|
| - // Stops file watching now if exists. Waiting until message loop shutdon
|
| - // leads to FilePathWatcher crash.
|
| - orientation_controller_->Shutdown();
|
| - }
|
| -
|
| - void Init() {
|
| - ScreenManager* screen_manager = ScreenManager::Get();
|
| - background_container_ = screen_manager->CreateContainer(
|
| - ScreenManager::ContainerParams("AthenaBackground", CP_BACKGROUND));
|
| - background_container_->SetLayoutManager(
|
| - new FillLayoutManager(background_container_));
|
| -
|
| - shutdown_dialog_.reset(new ShutdownDialog());
|
| - background_controller_.reset(
|
| - new BackgroundController(background_container_));
|
| - }
|
| -
|
| - private:
|
| - // SystemUI:
|
| - void SetBackgroundImage(const gfx::ImageSkia& image) override {
|
| - background_controller_->SetImage(image);
|
| - }
|
| -
|
| - // WindowManagerObserver:
|
| - void OnOverviewModeEnter() override {
|
| - DCHECK(!system_info_widget_);
|
| -
|
| - ScreenManager* screen_manager = ScreenManager::Get();
|
| - aura::Window* container = screen_manager->CreateContainer(
|
| - ScreenManager::ContainerParams("SystemInfo", CP_SYSTEM_INFO));
|
| - wm::SetChildWindowVisibilityChangesAnimated(container);
|
| -
|
| - system_info_widget_ = new views::Widget();
|
| - views::Widget::InitParams widget_params(
|
| - views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
|
| - widget_params.parent = container;
|
| - widget_params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
|
| - widget_params.bounds =
|
| - gfx::Rect(0, 0, container->bounds().width(), kSystemUIHeight);
|
| - system_info_widget_->Init(widget_params);
|
| - system_info_widget_->SetContentsView(
|
| - new SystemInfoView(SystemUI::COLOR_SCHEME_LIGHT));
|
| -
|
| - wm::SetWindowVisibilityAnimationType(
|
| - system_info_widget_->GetNativeWindow(),
|
| - wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL);
|
| - wm::SetWindowVisibilityAnimationVerticalPosition(
|
| - system_info_widget_->GetNativeWindow(), -kSystemUIHeight);
|
| -
|
| - system_info_widget_->Show();
|
| - }
|
| -
|
| - void OnOverviewModeExit() override {
|
| - // Deleting the container deletes its child windows which deletes
|
| - // |system_info_widget_|.
|
| - delete system_info_widget_->GetNativeWindow()->parent();
|
| - system_info_widget_ = nullptr;
|
| - }
|
| -
|
| - void OnSplitViewModeEnter() override {}
|
| -
|
| - void OnSplitViewModeExit() override {}
|
| -
|
| - scoped_ptr<OrientationController> orientation_controller_;
|
| - scoped_ptr<ShutdownDialog> shutdown_dialog_;
|
| - scoped_ptr<BackgroundController> background_controller_;
|
| -
|
| - // The parent container for the background.
|
| - aura::Window* background_container_;
|
| -
|
| - views::Widget* system_info_widget_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SystemUIImpl);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -// static
|
| -SystemUI* SystemUI::Create(
|
| - scoped_refptr<base::TaskRunner> blocking_task_runner) {
|
| - SystemUIImpl* system_ui = new SystemUIImpl(blocking_task_runner);
|
| - instance = system_ui;
|
| - system_ui->Init();
|
| - return instance;
|
| -}
|
| -
|
| -// static
|
| -SystemUI* SystemUI::Get() {
|
| - DCHECK(instance);
|
| - return instance;
|
| -}
|
| -
|
| -// static
|
| -void SystemUI::Shutdown() {
|
| - CHECK(instance);
|
| - delete instance;
|
| - instance = nullptr;
|
| -}
|
| -
|
| -} // namespace athena
|
|
|