diff options
Diffstat (limited to 'chromium/ash/system/chromeos/network/tray_network.h')
-rw-r--r-- | chromium/ash/system/chromeos/network/tray_network.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/chromium/ash/system/chromeos/network/tray_network.h b/chromium/ash/system/chromeos/network/tray_network.h new file mode 100644 index 00000000000..240c5c1a669 --- /dev/null +++ b/chromium/ash/system/chromeos/network/tray_network.h @@ -0,0 +1,71 @@ +// 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. + +#ifndef ASH_SYSTEM_CHROMEOS_NETWORK_TRAY_NETWORK_H +#define ASH_SYSTEM_CHROMEOS_NETWORK_TRAY_NETWORK_H + +#include <set> + +#include "ash/system/chromeos/network/network_icon.h" +#include "ash/system/chromeos/network/network_observer.h" +#include "ash/system/chromeos/network/tray_network_state_observer.h" +#include "ash/system/tray/system_tray_item.h" +#include "base/memory/scoped_ptr.h" +#include "base/time/time.h" + +namespace chromeos { +class NetworkState; +} + +namespace ash { +namespace internal { + +namespace tray { +class NetworkDefaultView; +class NetworkDetailedView; +class NetworkTrayView; +} + +class TrayNetwork : public SystemTrayItem, + public NetworkObserver, + public TrayNetworkStateObserver::Delegate { + public: + explicit TrayNetwork(SystemTray* system_tray); + virtual ~TrayNetwork(); + + tray::NetworkDetailedView* detailed() { return detailed_; } + + // SystemTrayItem + virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; + virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; + virtual views::View* CreateDetailedView(user::LoginStatus status) OVERRIDE; + virtual void DestroyTrayView() OVERRIDE; + virtual void DestroyDefaultView() OVERRIDE; + virtual void DestroyDetailedView() OVERRIDE; + virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE; + virtual void UpdateAfterShelfAlignmentChange( + ShelfAlignment alignment) OVERRIDE; + + // NetworkObserver + virtual void RequestToggleWifi() OVERRIDE; + + // TrayNetworkStateObserver::Delegate + virtual void NetworkStateChanged(bool list_changed) OVERRIDE; + virtual void NetworkServiceChanged( + const chromeos::NetworkState* network) OVERRIDE; + + private: + tray::NetworkTrayView* tray_; + tray::NetworkDefaultView* default_; + tray::NetworkDetailedView* detailed_; + bool request_wifi_view_; + scoped_ptr<TrayNetworkStateObserver> network_state_observer_; + + DISALLOW_COPY_AND_ASSIGN(TrayNetwork); +}; + +} // namespace internal +} // namespace ash + +#endif // ASH_SYSTEM_CHROMEOS_NETWORK_TRAY_NETWORK_H |