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