Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ash / system / chromeos / network / network_detailed_view.h
blob12d0be17c9e15a6c816f6a8074f34b192cbc8f2c
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H
6 #define ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H
8 #include "ash/system/tray/tray_details_view.h"
9 #include "chromeos/network/network_state_handler.h"
11 namespace ash {
12 namespace tray {
14 // Abstract base class for all NetworkDetailedView derived subclasses,
15 // which includes NetworkWifiDetailedView and NetworkStateListDetailedView.
16 class NetworkDetailedView : public TrayDetailsView {
17 public:
18 enum DetailedViewType {
19 LIST_VIEW,
20 STATE_LIST_VIEW,
21 WIFI_VIEW,
24 explicit NetworkDetailedView(SystemTrayItem* owner)
25 : TrayDetailsView(owner) {
28 virtual void Init() = 0;
30 virtual DetailedViewType GetViewType() const = 0;
32 // Called when the contents of the network list have changed or when any
33 // Manager properties (e.g. technology state) have changed.
34 // (Called only from TrayNetworkStateObserver).
35 virtual void Update() = 0;
37 protected:
38 ~NetworkDetailedView() override {}
41 } // namespace tray
42 } // namespace ash
44 #endif // ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_DETAILED_VIEW_H