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

Unified Diff: ash/system/tray_display.cc

Issue 11039034: Move ash/system/network to ash/system/chromeos (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 2 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/system/tray_display.h ('k') | chrome/browser/chromeos/network_message_observer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/tray_display.cc
diff --git a/ash/system/tray_display.cc b/ash/system/tray_display.cc
deleted file mode 100644
index 66c99526b59cb10a732211a1a2a3c27ee25b2b92..0000000000000000000000000000000000000000
--- a/ash/system/tray_display.cc
+++ /dev/null
@@ -1,171 +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/system/tray_display.h"
-
-#include "ash/display/display_controller.h"
-#include "ash/screen_ash.h"
-#include "ash/shell.h"
-#include "ash/system/tray/system_tray.h"
-#include "ash/system/tray/system_tray_delegate.h"
-#include "ash/system/tray/tray_constants.h"
-#include "ash/system/tray/tray_views.h"
-#include "base/utf_string_conversions.h"
-#include "grit/ash_resources.h"
-#include "grit/ash_strings.h"
-#include "ui/aura/display_manager.h"
-#include "ui/aura/env.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/image/image.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-
-#if defined(USE_X11)
-#include "ui/base/x/x11_util.h"
-#endif
-
-namespace ash {
-namespace internal {
-
-class DisplayView : public ash::internal::ActionableView {
- public:
- explicit DisplayView(user::LoginStatus login_status)
- : login_status_(login_status) {
- SetLayoutManager(new
- views::BoxLayout(views::BoxLayout::kHorizontal,
- ash::kTrayPopupPaddingHorizontal, 0,
- ash::kTrayPopupPaddingBetweenItems));
-
- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
- views::ImageView* image =
- new ash::internal::FixedSizedImageView(0, ash::kTrayPopupItemHeight);
- image->SetImage(
- bundle.GetImageNamed(IDR_AURA_UBER_TRAY_DISPLAY).ToImageSkia());
- AddChildView(image);
- label_ = new views::Label();
- AddChildView(label_);
- Update();
- }
-
- virtual ~DisplayView() {}
-
- void Update() {
-#if defined(OS_CHROMEOS)
- switch (Shell::GetInstance()->output_configurator()->output_state()) {
- case chromeos::STATE_INVALID:
- case chromeos::STATE_HEADLESS:
- case chromeos::STATE_SINGLE:
- SetVisible(false);
- return;
- case chromeos::STATE_DUAL_MIRROR: {
- // Simply assumes that the primary display appears first and the
- // secondary display appears next in the list.
- std::vector<std::string> display_names;
-#if defined(USE_X11)
- std::vector<XID> output_ids;
- ui::GetOutputDeviceHandles(&output_ids);
- display_names = ui::GetDisplayNames(output_ids);
-#endif
- if (display_names.size() > 1) {
- label_->SetText(l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
- UTF8ToUTF16(display_names[1])));
- SetVisible(true);
- } else {
- SetVisible(false);
- }
- return;
- }
- case chromeos::STATE_DUAL_PRIMARY_ONLY:
- case chromeos::STATE_DUAL_SECONDARY_ONLY: {
- aura::DisplayManager* display_manager =
- aura::Env::GetInstance()->display_manager();
- if (display_manager->GetNumDisplays() > 1) {
- label_->SetText(l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED,
- UTF8ToUTF16(display_manager->GetDisplayNameFor(
- ScreenAsh::GetSecondaryDisplay()))));
- SetVisible(true);
- } else {
- SetVisible(false);
- }
- return;
- }
- default:
- NOTREACHED();
- }
-#endif // OS_CHROMEOS
- }
-
- private:
- // Overridden from ActionableView.
- virtual bool PerformAction(const ui::Event& event) OVERRIDE {
- if (login_status_ == ash::user::LOGGED_IN_USER ||
- login_status_ == ash::user::LOGGED_IN_OWNER ||
- login_status_ == ash::user::LOGGED_IN_GUEST) {
- ash::Shell::GetInstance()->tray_delegate()->ShowDisplaySettings();
- }
-
- return true;
- }
-
- user::LoginStatus login_status_;
- views::Label* label_;
-
- DISALLOW_COPY_AND_ASSIGN(DisplayView);
-};
-
-TrayDisplay::TrayDisplay()
- : default_(NULL) {
- aura::Env::GetInstance()->display_manager()->AddObserver(this);
-#if defined(OS_CHROMEOS)
- ash::Shell::GetInstance()->output_configurator()->AddObserver(this);
-#endif
-}
-
-TrayDisplay::~TrayDisplay() {
- aura::Env::GetInstance()->display_manager()->RemoveObserver(this);
-#if defined(OS_CHROMEOS)
- ash::Shell::GetInstance()->output_configurator()->RemoveObserver(this);
-#endif
-}
-
-views::View* TrayDisplay::CreateDefaultView(user::LoginStatus status) {
-#if defined(OS_CHROMEOS)
- default_ = new DisplayView(status);
-#endif
- return default_;
-}
-
-void TrayDisplay::DestroyDefaultView() {
- default_ = NULL;
-}
-
-void TrayDisplay::OnDisplayBoundsChanged(const gfx::Display& display) {
- if (default_)
- default_->Update();
-}
-
-void TrayDisplay::OnDisplayAdded(const gfx::Display& new_display) {
- if (default_)
- default_->Update();
-}
-
-void TrayDisplay::OnDisplayRemoved(const gfx::Display& old_display) {
- if (default_)
- default_->Update();
-}
-
-#if defined(OS_CHROMEOS)
-void TrayDisplay::OnDisplayModeChanged() {
- if (default_)
- default_->Update();
-}
-#endif
-
-
-} // namespace internal
-} // namespace ash
« no previous file with comments | « ash/system/tray_display.h ('k') | chrome/browser/chromeos/network_message_observer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698