| Index: athena/system/status_icon_container_view.cc
 | 
| diff --git a/athena/system/status_icon_container_view.cc b/athena/system/status_icon_container_view.cc
 | 
| deleted file mode 100644
 | 
| index c0c1fcae6cd4245161c28f530529cb85a000dc78..0000000000000000000000000000000000000000
 | 
| --- a/athena/system/status_icon_container_view.cc
 | 
| +++ /dev/null
 | 
| @@ -1,258 +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/status_icon_container_view.h"
 | 
| -
 | 
| -#include "athena/resources/athena_resources.h"
 | 
| -#include "athena/system/network_selector.h"
 | 
| -#include "base/bind.h"
 | 
| -#include "base/macros.h"
 | 
| -#include "base/strings/stringprintf.h"
 | 
| -#include "base/strings/utf_string_conversions.h"
 | 
| -#include "chromeos/dbus/dbus_thread_manager.h"
 | 
| -#include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
 | 
| -#include "chromeos/dbus/power_manager_client.h"
 | 
| -#include "chromeos/dbus/update_engine_client.h"
 | 
| -#include "chromeos/network/network_state.h"
 | 
| -#include "chromeos/network/network_state_handler.h"
 | 
| -#include "chromeos/network/network_state_handler_observer.h"
 | 
| -#include "chromeos/network/network_type_pattern.h"
 | 
| -#include "extensions/shell/common/version.h"
 | 
| -#include "ui/aura/window.h"
 | 
| -#include "ui/base/resource/resource_bundle.h"
 | 
| -#include "ui/gfx/image/image.h"
 | 
| -#include "ui/gfx/image/image_skia.h"
 | 
| -#include "ui/gfx/image/image_skia_operations.h"
 | 
| -#include "ui/views/controls/image_view.h"
 | 
| -#include "ui/views/controls/label.h"
 | 
| -#include "ui/views/layout/box_layout.h"
 | 
| -
 | 
| -namespace athena {
 | 
| -namespace {
 | 
| -
 | 
| -views::Label* CreateLabel(SystemUI::ColorScheme color_scheme,
 | 
| -                          const std::string& text) {
 | 
| -  views::Label* label = new views::Label(base::UTF8ToUTF16(text));
 | 
| -  label->SetEnabledColor((color_scheme == SystemUI::COLOR_SCHEME_LIGHT)
 | 
| -                             ? SK_ColorWHITE
 | 
| -                             : SK_ColorDKGRAY);
 | 
| -  label->SetAutoColorReadabilityEnabled(false);
 | 
| -  label->SetSubpixelRenderingEnabled(false);
 | 
| -  label->SetFontList(gfx::FontList().DeriveWithStyle(gfx::Font::BOLD));
 | 
| -  return label;
 | 
| -}
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -class StatusIconContainerView::PowerStatus
 | 
| -    : public chromeos::PowerManagerClient::Observer {
 | 
| - public:
 | 
| -  PowerStatus(SystemUI::ColorScheme color_scheme,
 | 
| -              views::ImageView* icon)
 | 
| -      : color_scheme_(color_scheme),
 | 
| -        icon_(icon) {
 | 
| -    chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(
 | 
| -        this);
 | 
| -    chromeos::DBusThreadManager::Get()
 | 
| -        ->GetPowerManagerClient()
 | 
| -        ->RequestStatusUpdate();
 | 
| -  }
 | 
| -
 | 
| -  ~PowerStatus() override {
 | 
| -    chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(
 | 
| -        this);
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  const gfx::ImageSkia GetPowerIcon(
 | 
| -      const power_manager::PowerSupplyProperties& proto) const {
 | 
| -    // Width and height of battery images.
 | 
| -    const int kBatteryImageHeight = 25;
 | 
| -    const int kBatteryImageWidth = 25;
 | 
| -
 | 
| -    // Number of different power states.
 | 
| -    const int kNumPowerImages = 15;
 | 
| -
 | 
| -    gfx::Image all = ui::ResourceBundle::GetSharedInstance().GetImageNamed(
 | 
| -        (color_scheme_ == SystemUI::COLOR_SCHEME_LIGHT)
 | 
| -            ? IDR_AURA_UBER_TRAY_POWER_SMALL
 | 
| -            : IDR_AURA_UBER_TRAY_POWER_SMALL_DARK);
 | 
| -    int horiz_offset = IsCharging(proto) ? 1 : 0;
 | 
| -    int vert_offset = -1;
 | 
| -    if (proto.battery_percent() >= 100) {
 | 
| -      vert_offset = kNumPowerImages - 1;
 | 
| -    } else {
 | 
| -      vert_offset = static_cast<int>((kNumPowerImages - 1) *
 | 
| -                                     proto.battery_percent() / 100);
 | 
| -      vert_offset = std::max(std::min(vert_offset, kNumPowerImages - 2), 0);
 | 
| -    }
 | 
| -    gfx::Rect region(horiz_offset * kBatteryImageWidth,
 | 
| -                     vert_offset * kBatteryImageHeight,
 | 
| -                     kBatteryImageWidth,
 | 
| -                     kBatteryImageHeight);
 | 
| -    return gfx::ImageSkiaOperations::ExtractSubset(*all.ToImageSkia(), region);
 | 
| -  }
 | 
| -
 | 
| -  bool IsCharging(const power_manager::PowerSupplyProperties& proto) const {
 | 
| -    return proto.external_power() !=
 | 
| -           power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED;
 | 
| -  }
 | 
| -
 | 
| -  // chromeos::PowerManagerClient::Observer:
 | 
| -  virtual void PowerChanged(
 | 
| -      const power_manager::PowerSupplyProperties& proto) override {
 | 
| -    icon_->SetImage(GetPowerIcon(proto));
 | 
| -  }
 | 
| -
 | 
| -  SystemUI::ColorScheme color_scheme_;
 | 
| -  views::ImageView* icon_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(PowerStatus);
 | 
| -};
 | 
| -
 | 
| -class StatusIconContainerView::NetworkStatus
 | 
| -    : public chromeos::NetworkStateHandlerObserver {
 | 
| - public:
 | 
| -  explicit NetworkStatus(views::Label* label) : label_(label) {
 | 
| -    chromeos::NetworkStateHandler* handler =
 | 
| -        chromeos::NetworkHandler::Get()->network_state_handler();
 | 
| -    handler->AddObserver(this, FROM_HERE);
 | 
| -  }
 | 
| -
 | 
| -  ~NetworkStatus() override {
 | 
| -    chromeos::NetworkStateHandler* handler =
 | 
| -        chromeos::NetworkHandler::Get()->network_state_handler();
 | 
| -    handler->RemoveObserver(this, FROM_HERE);
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  void Update() {
 | 
| -    std::string status = "<unknown>";
 | 
| -    chromeos::NetworkStateHandler* handler =
 | 
| -        chromeos::NetworkHandler::Get()->network_state_handler();
 | 
| -    const chromeos::NetworkState* network = handler->DefaultNetwork();
 | 
| -    if (!network) {
 | 
| -      network = handler->ConnectedNetworkByType(
 | 
| -          chromeos::NetworkTypePattern::NonVirtual());
 | 
| -    }
 | 
| -    if (network) {
 | 
| -      status = base::StringPrintf(
 | 
| -          "%s (%s)", network->ip_address().c_str(), network->name().c_str());
 | 
| -    }
 | 
| -    label_->SetText(base::UTF8ToUTF16(status));
 | 
| -  }
 | 
| -
 | 
| -  // chromeos::NetworkStateHandlerObserver:
 | 
| -  virtual void DefaultNetworkChanged(
 | 
| -      const chromeos::NetworkState* network) override {
 | 
| -    Update();
 | 
| -  }
 | 
| -
 | 
| -  virtual void NetworkConnectionStateChanged(
 | 
| -      const chromeos::NetworkState* network) override {
 | 
| -    Update();
 | 
| -  }
 | 
| -
 | 
| -  virtual void NetworkPropertiesUpdated(
 | 
| -      const chromeos::NetworkState* network) override {
 | 
| -    Update();
 | 
| -  }
 | 
| -
 | 
| -  views::Label* label_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(NetworkStatus);
 | 
| -};
 | 
| -
 | 
| -void StartUpdateCallback(
 | 
| -    chromeos::UpdateEngineClient::UpdateCheckResult result) {
 | 
| -  VLOG(1) << "Callback from RequestUpdateCheck, result " << result;
 | 
| -}
 | 
| -
 | 
| -class StatusIconContainerView::UpdateStatus
 | 
| -    : public chromeos::UpdateEngineClient::Observer {
 | 
| - public:
 | 
| -  UpdateStatus(SystemUI::ColorScheme color_scheme, views::ImageView* icon)
 | 
| -      : color_scheme_(color_scheme),
 | 
| -        icon_(icon) {
 | 
| -    chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(
 | 
| -        this);
 | 
| -    chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->
 | 
| -        RequestUpdateCheck(base::Bind(StartUpdateCallback));
 | 
| -  }
 | 
| -
 | 
| -  ~UpdateStatus() override {
 | 
| -    chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(
 | 
| -        this);
 | 
| -  }
 | 
| -
 | 
| -  // chromeos::UpdateEngineClient::Observer:
 | 
| -  virtual void UpdateStatusChanged(
 | 
| -      const chromeos::UpdateEngineClient::Status& status) override {
 | 
| -    if (status.status !=
 | 
| -        chromeos::UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) {
 | 
| -      return;
 | 
| -    }
 | 
| -    int image_id = (color_scheme_ == SystemUI::COLOR_SCHEME_LIGHT)
 | 
| -                       ? IDR_AURA_UBER_TRAY_UPDATE
 | 
| -                       : IDR_AURA_UBER_TRAY_UPDATE_DARK;
 | 
| -    icon_->SetImage(
 | 
| -        ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(image_id));
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  SystemUI::ColorScheme color_scheme_;
 | 
| -  views::ImageView* icon_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(UpdateStatus);
 | 
| -};
 | 
| -
 | 
| -StatusIconContainerView::StatusIconContainerView(
 | 
| -    SystemUI::ColorScheme color_scheme) {
 | 
| -  const int kHorizontalSpacing = 10;
 | 
| -  const int kVerticalSpacing = 3;
 | 
| -  const int kBetweenChildSpacing = 10;
 | 
| -  SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
 | 
| -                                        kHorizontalSpacing,
 | 
| -                                        kVerticalSpacing,
 | 
| -                                        kBetweenChildSpacing));
 | 
| -
 | 
| -  std::string version_text =
 | 
| -      base::StringPrintf("%s (Build %s)", PRODUCT_VERSION, LAST_CHANGE);
 | 
| -  AddChildView(CreateLabel(color_scheme, version_text));
 | 
| -
 | 
| -  AddChildView(CreateLabel(color_scheme, "Network:"));
 | 
| -  views::Label* network_label = CreateLabel(color_scheme, std::string());
 | 
| -  AddChildView(network_label);
 | 
| -  if (chromeos::NetworkHandler::IsInitialized())
 | 
| -    network_status_.reset(new NetworkStatus(network_label));
 | 
| -
 | 
| -  views::ImageView* battery_view = new views::ImageView();
 | 
| -  AddChildView(battery_view);
 | 
| -  power_status_.reset(new PowerStatus(color_scheme, battery_view));
 | 
| -
 | 
| -  views::ImageView* update_view = new views::ImageView();
 | 
| -  AddChildView(update_view);
 | 
| -  update_status_.reset(new UpdateStatus(color_scheme, update_view));
 | 
| -}
 | 
| -
 | 
| -StatusIconContainerView::~StatusIconContainerView() {
 | 
| -}
 | 
| -
 | 
| -bool StatusIconContainerView::OnMousePressed(const ui::MouseEvent& event) {
 | 
| -  CreateNetworkSelector();
 | 
| -  return true;
 | 
| -}
 | 
| -
 | 
| -void StatusIconContainerView::OnGestureEvent(ui::GestureEvent* event) {
 | 
| -  if (event->type() == ui::ET_GESTURE_TAP) {
 | 
| -    CreateNetworkSelector();
 | 
| -    event->SetHandled();
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -void StatusIconContainerView::ChildPreferredSizeChanged(views::View* child) {
 | 
| -  PreferredSizeChanged();
 | 
| -}
 | 
| -
 | 
| -}  // namespace athena
 | 
| 
 |