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

Unified Diff: ash/common/system/status_area_widget.cc

Issue 2732813002: chromeos: Move files in //ash/common to //ash, part 1 (Closed)
Patch Set: rebase Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/system/status_area_widget.h ('k') | ash/common/system/status_area_widget_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/status_area_widget.cc
diff --git a/ash/common/system/status_area_widget.cc b/ash/common/system/status_area_widget.cc
deleted file mode 100644
index 3c66000cc01370b64b51649e41d76620c5f2faeb..0000000000000000000000000000000000000000
--- a/ash/common/system/status_area_widget.cc
+++ /dev/null
@@ -1,234 +0,0 @@
-// Copyright (c) 2012 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 "ash/common/system/status_area_widget.h"
-
-#include "ash/common/material_design/material_design_controller.h"
-#include "ash/common/shelf/wm_shelf.h"
-#include "ash/common/system/chromeos/ime_menu/ime_menu_tray.h"
-#include "ash/common/system/chromeos/palette/palette_tray.h"
-#include "ash/common/system/chromeos/palette/palette_utils.h"
-#include "ash/common/system/chromeos/session/logout_button_tray.h"
-#include "ash/common/system/chromeos/virtual_keyboard/virtual_keyboard_tray.h"
-#include "ash/common/system/overview/overview_button_tray.h"
-#include "ash/common/system/status_area_widget_delegate.h"
-#include "ash/common/system/tray/system_tray.h"
-#include "ash/common/system/tray/system_tray_delegate.h"
-#include "ash/common/system/web_notification/web_notification_tray.h"
-#include "ash/common/wm_shell.h"
-#include "ash/common/wm_window.h"
-#include "ash/public/cpp/shell_window_ids.h"
-#include "ash/root_window_controller.h"
-#include "base/i18n/time_formatting.h"
-#include "ui/display/display.h"
-#include "ui/native_theme/native_theme_dark_aura.h"
-
-namespace ash {
-
-StatusAreaWidget::StatusAreaWidget(WmWindow* status_container,
- WmShelf* wm_shelf)
- : status_area_widget_delegate_(new StatusAreaWidgetDelegate),
- overview_button_tray_(nullptr),
- system_tray_(nullptr),
- web_notification_tray_(nullptr),
- logout_button_tray_(nullptr),
- palette_tray_(nullptr),
- virtual_keyboard_tray_(nullptr),
- ime_menu_tray_(nullptr),
- login_status_(LoginStatus::NOT_LOGGED_IN),
- wm_shelf_(wm_shelf) {
- views::Widget::InitParams params(
- views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
- params.delegate = status_area_widget_delegate_;
- params.name = "StatusAreaWidget";
- params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
- status_container->GetRootWindowController()
- ->ConfigureWidgetInitParamsForContainer(
- this, status_container->GetShellWindowId(), &params);
- Init(params);
- set_focus_on_creation(false);
- SetContentsView(status_area_widget_delegate_);
-}
-
-StatusAreaWidget::~StatusAreaWidget() {}
-
-void StatusAreaWidget::CreateTrayViews() {
- AddOverviewButtonTray();
- AddSystemTray();
- AddWebNotificationTray();
- AddPaletteTray();
- AddVirtualKeyboardTray();
- AddImeMenuTray();
- AddLogoutButtonTray();
-
- SystemTrayDelegate* delegate = WmShell::Get()->system_tray_delegate();
- DCHECK(delegate);
- // Initialize after all trays have been created.
- system_tray_->InitializeTrayItems(delegate, web_notification_tray_);
- web_notification_tray_->Initialize();
- logout_button_tray_->Initialize();
- if (palette_tray_)
- palette_tray_->Initialize();
- virtual_keyboard_tray_->Initialize();
- ime_menu_tray_->Initialize();
- overview_button_tray_->Initialize();
- SetShelfAlignment(system_tray_->shelf_alignment());
- UpdateAfterLoginStatusChange(delegate->GetUserLoginStatus());
-}
-
-void StatusAreaWidget::Shutdown() {
- system_tray_->Shutdown();
- // Destroy the trays early, causing them to be removed from the view
- // hierarchy. Do not used scoped pointers since we don't want to destroy them
- // in the destructor if Shutdown() is not called (e.g. in tests).
- delete web_notification_tray_;
- web_notification_tray_ = nullptr;
- // Must be destroyed after |web_notification_tray_|.
- delete system_tray_;
- system_tray_ = nullptr;
- delete ime_menu_tray_;
- ime_menu_tray_ = nullptr;
- delete virtual_keyboard_tray_;
- virtual_keyboard_tray_ = nullptr;
- delete logout_button_tray_;
- logout_button_tray_ = nullptr;
- delete overview_button_tray_;
- overview_button_tray_ = nullptr;
-}
-
-void StatusAreaWidget::SetShelfAlignment(ShelfAlignment alignment) {
- status_area_widget_delegate_->set_alignment(alignment);
- if (system_tray_)
- system_tray_->SetShelfAlignment(alignment);
- if (web_notification_tray_)
- web_notification_tray_->SetShelfAlignment(alignment);
- if (logout_button_tray_)
- logout_button_tray_->SetShelfAlignment(alignment);
- if (virtual_keyboard_tray_)
- virtual_keyboard_tray_->SetShelfAlignment(alignment);
- if (ime_menu_tray_)
- ime_menu_tray_->SetShelfAlignment(alignment);
- if (palette_tray_)
- palette_tray_->SetShelfAlignment(alignment);
- if (overview_button_tray_)
- overview_button_tray_->SetShelfAlignment(alignment);
- status_area_widget_delegate_->UpdateLayout();
-}
-
-void StatusAreaWidget::UpdateAfterLoginStatusChange(LoginStatus login_status) {
- if (login_status_ == login_status)
- return;
- login_status_ = login_status;
- if (system_tray_)
- system_tray_->UpdateAfterLoginStatusChange(login_status);
- if (web_notification_tray_)
- web_notification_tray_->UpdateAfterLoginStatusChange(login_status);
- if (logout_button_tray_)
- logout_button_tray_->UpdateAfterLoginStatusChange(login_status);
- if (overview_button_tray_)
- overview_button_tray_->UpdateAfterLoginStatusChange(login_status);
-}
-
-bool StatusAreaWidget::ShouldShowShelf() const {
- if ((system_tray_ && system_tray_->ShouldShowShelf()) ||
- (web_notification_tray_ &&
- web_notification_tray_->ShouldBlockShelfAutoHide()))
- return true;
-
- if (palette_tray_ && palette_tray_->ShouldBlockShelfAutoHide())
- return true;
-
- if (ime_menu_tray_ && ime_menu_tray_->ShouldBlockShelfAutoHide())
- return true;
-
- return false;
-}
-
-bool StatusAreaWidget::IsMessageBubbleShown() const {
- return ((system_tray_ && system_tray_->IsSystemBubbleVisible()) ||
- (web_notification_tray_ &&
- web_notification_tray_->IsMessageCenterBubbleVisible()));
-}
-
-void StatusAreaWidget::SchedulePaint() {
- status_area_widget_delegate_->SchedulePaint();
- web_notification_tray_->SchedulePaint();
- system_tray_->SchedulePaint();
- virtual_keyboard_tray_->SchedulePaint();
- logout_button_tray_->SchedulePaint();
- ime_menu_tray_->SchedulePaint();
- if (palette_tray_)
- palette_tray_->SchedulePaint();
- overview_button_tray_->SchedulePaint();
-}
-
-const ui::NativeTheme* StatusAreaWidget::GetNativeTheme() const {
- return MaterialDesignController::IsShelfMaterial()
- ? ui::NativeThemeDarkAura::instance()
- : Widget::GetNativeTheme();
-}
-
-void StatusAreaWidget::OnNativeWidgetActivationChanged(bool active) {
- Widget::OnNativeWidgetActivationChanged(active);
- if (active)
- status_area_widget_delegate_->SetPaneFocusAndFocusDefault();
-}
-
-void StatusAreaWidget::UpdateShelfItemBackground(SkColor color) {
- web_notification_tray_->UpdateShelfItemBackground(color);
- system_tray_->UpdateShelfItemBackground(color);
- virtual_keyboard_tray_->UpdateShelfItemBackground(color);
- logout_button_tray_->UpdateShelfItemBackground(color);
- ime_menu_tray_->UpdateShelfItemBackground(color);
- if (palette_tray_)
- palette_tray_->UpdateShelfItemBackground(color);
- overview_button_tray_->UpdateShelfItemBackground(color);
-}
-
-void StatusAreaWidget::AddSystemTray() {
- system_tray_ = new SystemTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(system_tray_);
-}
-
-void StatusAreaWidget::AddWebNotificationTray() {
- DCHECK(system_tray_);
- web_notification_tray_ = new WebNotificationTray(
- wm_shelf_, WmWindow::Get(this->GetNativeWindow()), system_tray_);
- status_area_widget_delegate_->AddTray(web_notification_tray_);
-}
-
-void StatusAreaWidget::AddLogoutButtonTray() {
- logout_button_tray_ = new LogoutButtonTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(logout_button_tray_);
-}
-
-void StatusAreaWidget::AddPaletteTray() {
- const display::Display& display =
- WmWindow::Get(this->GetNativeWindow())->GetDisplayNearestWindow();
-
- // Create the palette only on the internal display, where the stylus is
- // available. We also create a palette on every display if requested from the
- // command line.
- if (display.IsInternal() || palette_utils::IsPaletteEnabledOnEveryDisplay()) {
- palette_tray_ = new PaletteTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(palette_tray_);
- }
-}
-
-void StatusAreaWidget::AddVirtualKeyboardTray() {
- virtual_keyboard_tray_ = new VirtualKeyboardTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(virtual_keyboard_tray_);
-}
-
-void StatusAreaWidget::AddImeMenuTray() {
- ime_menu_tray_ = new ImeMenuTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(ime_menu_tray_);
-}
-
-void StatusAreaWidget::AddOverviewButtonTray() {
- overview_button_tray_ = new OverviewButtonTray(wm_shelf_);
- status_area_widget_delegate_->AddTray(overview_button_tray_);
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/system/status_area_widget.h ('k') | ash/common/system/status_area_widget_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698