Chromium Code Reviews| Index: ui/chromeos/network/network_list_md.h |
| diff --git a/ui/chromeos/network/network_list_md.h b/ui/chromeos/network/network_list_md.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..390ca9cda97c1eeeea7c822df5282c9b31b10012 |
| --- /dev/null |
| +++ b/ui/chromeos/network/network_list_md.h |
| @@ -0,0 +1,92 @@ |
| +// 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. |
| + |
| +#ifndef UI_CHROMEOS_NETWORK_NETWORK_LIST_MD_H_ |
| +#define UI_CHROMEOS_NETWORK_NETWORK_LIST_MD_H_ |
| + |
| +#include <map> |
| +#include <memory> |
| +#include <set> |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/macros.h" |
| +#include "chromeos/network/network_state_handler.h" |
| +#include "ui/chromeos/network/network_icon_animation_observer.h" |
| +#include "ui/chromeos/network/network_list_view_base.h" |
| +#include "ui/chromeos/ui_chromeos_export.h" |
| +#include "ui/gfx/image/image_skia.h" |
| +#include "ui/views/controls/button/button.h" |
| + |
| +namespace views { |
| +class Label; |
| +class View; |
| +} |
| + |
| +namespace ui { |
| + |
| +struct NetworkInfo; |
| +class NetworkListDelegate; |
| + |
| +// A list of available networks of a given type. This class is used for all |
| +// network types except VPNs. For VPNs, see the |VPNList| class. |
| +class UI_CHROMEOS_EXPORT NetworkListViewMd |
| + : public NetworkListViewBase, |
| + public network_icon::AnimationObserver, |
| + public views::ButtonListener { |
| + public: |
| + explicit NetworkListViewMd(NetworkListDelegate* delegate); |
| + ~NetworkListViewMd() override; |
| + |
| + // NetworkListViewBase: |
| + void Update() override; |
| + bool IsNetworkEntry(views::View* view, |
| + std::string* service_path) const override; |
| + |
| + private: |
| + class WiFiHeaderRowView; |
| + |
| + void UpdateNetworks( |
| + const chromeos::NetworkStateHandler::NetworkStateList& networks); |
| + void UpdateNetworkIcons(); |
| + void OrderNetworks(); |
| + void UpdateNetworkListInternal(); |
| + void HandleRelayout(); |
| + bool UpdateNetworkListEntries(std::set<std::string>* new_service_paths); |
| + bool UpdateNetworkChildren(std::set<std::string>* new_service_paths, |
| + int* child_index, |
| + bool wifi); |
| + bool UpdateNetworkChild(int index, const NetworkInfo* info); |
| + bool PlaceViewAtIndex(views::View* view, int index); |
| + bool UpdateInfoLabel(int message_id, int index, views::Label** label); |
| + bool UpdateWiFiHeaderRow(bool enabled, int index, WiFiHeaderRowView** view); |
|
Evan Stade
2016/09/23 01:37:59
these are all in dire need of documentation
varkha
2016/09/23 04:50:36
Done.
|
| + |
| + // network_icon::AnimationObserver: |
| + void NetworkIconChanged() override; |
| + |
| + // views::ButtonListener: |
| + void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
| + |
| + NetworkListDelegate* delegate_; |
| + |
| + views::Label* no_wifi_networks_view_; |
| + views::Label* no_cellular_networks_view_; |
| + WiFiHeaderRowView* wifi_header_view_; |
| + |
| + // An owned list of network info. |
| + std::vector<std::unique_ptr<NetworkInfo>> network_list_; |
| + |
| + typedef std::map<views::View*, std::string> NetworkMap; |
| + NetworkMap network_map_; |
| + |
| + // A map of network service paths to their view. |
| + typedef std::map<std::string, views::View*> ServicePathMap; |
| + ServicePathMap service_path_map_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(NetworkListViewMd); |
| +}; |
| + |
| +} // namespace ui |
| + |
| +#endif // UI_CHROMEOS_NETWORK_NETWORK_LIST_MD_H_ |