network_detailed_view.h revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
10a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger// Copyright (c) 2012 The Chromium Authors. All rights reserved. 20a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger// Use of this source code is governed by a BSD-style license that can be 30a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger// found in the LICENSE file. 40a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 50a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#ifndef ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H 60a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H 70a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 80a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "ash/system/tray/tray_details_view.h" 90a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "chromeos/network/network_state_handler.h" 100a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 110a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergernamespace ash { 120a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergernamespace tray { 130a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 140a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger// Abstract base class for all NetworkDetailedView derived subclasses, 150a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger// which includes NetworkWifiDetailedView and NetworkStateListDetailedView. 160a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerclass NetworkDetailedView : public TrayDetailsView { 170a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger public: 180a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger enum DetailedViewType { 190a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger LIST_VIEW, 200a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger STATE_LIST_VIEW, 210a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger WIFI_VIEW, 220a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger }; 230a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 240a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger explicit NetworkDetailedView(SystemTrayItem* owner) 250a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger : TrayDetailsView(owner) { 260a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger } 270a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 280a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual void Init() = 0; 290a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 300a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual DetailedViewType GetViewType() const = 0; 310a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 320a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // Called when network manager state has changed. 330a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // (Generic update for NetworkTray <> AshSystemTrayDelegate interface). 340a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual void ManagerChanged() = 0; 350a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 360a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // Called when the contents of the network list have changed. 370a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // (Called only from TrayNetworkStateObserver). 380a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual void NetworkListChanged() = 0; 390a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 400a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // Called when a network service property has changed. 410a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger // (Called only from TrayNetworkStateObserver). 420a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual void NetworkServiceChanged(const chromeos::NetworkState* network) = 0; 430a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 440a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger protected: 450a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual ~NetworkDetailedView() {} 460a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger}; 470a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 480a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger} // namespace tray 490a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger} // namespace ash 500a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 510a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#endif // ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H 520a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger