#include "athena/screen/public/screen_manager.h"
#include "athena/system/background_controller.h"
#include "athena/system/orientation_controller.h"
-#include "athena/system/power_button_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/container_priorities.h"
namespace athena {
namespace {
-SystemUI* instance = NULL;
+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,
- aura::Window* system_modal_container)
+ SystemInfoView(SystemUI::ColorScheme color_scheme)
: time_view_(new TimeView(color_scheme)),
- status_icon_view_(
- new StatusIconContainerView(color_scheme, system_modal_container)) {
+ status_icon_view_(new StatusIconContainerView(color_scheme)) {
AddChildView(time_view_);
AddChildView(status_icon_view_);
}
- virtual ~SystemInfoView() {
- }
+ ~SystemInfoView() override {}
// views::View:
- virtual gfx::Size GetPreferredSize() const OVERRIDE {
+ 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 {
+ virtual void Layout() override {
time_view_->SetBoundsRect(gfx::Rect(time_view_->GetPreferredSize()));
gfx::Size status_icon_preferred_size =
status_icon_view_->GetPreferredSize();
status_icon_preferred_size.height()));
}
- virtual void ChildPreferredSizeChanged(views::View* child) OVERRIDE {
+ 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.
public:
SystemUIImpl(scoped_refptr<base::TaskRunner> blocking_task_runner)
: orientation_controller_(new OrientationController()),
- background_container_(NULL),
- system_modal_container_(NULL) {
+ background_container_(nullptr) {
orientation_controller_->InitWith(blocking_task_runner);
}
- virtual ~SystemUIImpl() {
+ ~SystemUIImpl() override {
// Stops file watching now if exists. Waiting until message loop shutdon
// leads to FilePathWatcher crash.
orientation_controller_->Shutdown();
ScreenManager::ContainerParams("AthenaBackground", CP_BACKGROUND));
background_container_->SetLayoutManager(
new FillLayoutManager(background_container_));
- ScreenManager::ContainerParams system_modal_params(
- "AthenaSystemModalContainer", CP_SYSTEM_MODAL);
- system_modal_params.can_activate_children = true;
- system_modal_container_ =
- screen_manager->CreateContainer(system_modal_params);
- login_screen_system_modal_container_ = screen_manager->CreateContainer(
- ScreenManager::ContainerParams("AthenaLoginScreenSystemModalContainer",
- CP_LOGIN_SCREEN_SYSTEM_MODAL));
-
- // Use |login_screen_system_modal_container_| for the power button's dialog
- // because it needs to show over the login screen.
- // TODO(pkotwicz): Pick the most appropriate container based on whether the
- // user has logged in.
- power_button_controller_.reset(
- new PowerButtonController(login_screen_system_modal_container_));
+
+ shutdown_dialog_.reset(new ShutdownDialog());
background_controller_.reset(
new BackgroundController(background_container_));
}
- virtual void SetBackgroundImage(const gfx::ImageSkia& image) OVERRIDE {
+ private:
+ // SystemUI:
+ virtual void SetBackgroundImage(const gfx::ImageSkia& image) override {
background_controller_->SetImage(image);
}
- virtual views::View* CreateSystemInfoView(ColorScheme color_scheme) OVERRIDE {
- return new SystemInfoView(color_scheme, system_modal_container_);
+ virtual views::View* CreateSystemInfoView(ColorScheme color_scheme) override {
+ return new SystemInfoView(color_scheme);
}
- private:
scoped_ptr<OrientationController> orientation_controller_;
- scoped_ptr<PowerButtonController> power_button_controller_;
+ scoped_ptr<ShutdownDialog> shutdown_dialog_;
scoped_ptr<BackgroundController> background_controller_;
// The parent container for the background.
void SystemUI::Shutdown() {
CHECK(instance);
delete instance;
- instance = NULL;
+ instance = nullptr;
}
} // namespace athena