Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: ash/common/system/chromeos/network/network_state_list_detailed_view.h

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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.
4
5 #ifndef ASH_COMMON_SYSTEM_CHROMEOS_NETWORK_NETWORK_STATE_LIST_DETAILED_VIEW_H_
6 #define ASH_COMMON_SYSTEM_CHROMEOS_NETWORK_NETWORK_STATE_LIST_DETAILED_VIEW_H_
7
8 #include <memory>
9 #include <string>
10
11 #include "ash/common/login_status.h"
12 #include "ash/common/system/chromeos/network/network_detailed_view.h"
13 #include "ash/common/system/chromeos/network/network_list_delegate.h"
14 #include "base/macros.h"
15 #include "base/memory/weak_ptr.h"
16 #include "ui/gfx/image/image.h"
17 #include "ui/views/controls/button/button.h"
18 #include "ui/views/controls/button/custom_button.h"
19
20 namespace chromeos {
21 class NetworkTypePattern;
22 }
23
24 namespace ash {
25 class NetworkListViewBase;
26 }
27
28 namespace views {
29 class BubbleDialogDelegateView;
30 class ImageButton;
31 }
32
33 namespace ash {
34 class SystemTrayItem;
35 class ThrobberView;
36 class TrayPopupHeaderButton;
37
38 namespace tray {
39
40 class NetworkStateListDetailedView
41 : public NetworkDetailedView,
42 public NetworkListDelegate,
43 public base::SupportsWeakPtr<NetworkStateListDetailedView> {
44 public:
45 enum ListType { LIST_TYPE_NETWORK, LIST_TYPE_VPN };
46
47 NetworkStateListDetailedView(SystemTrayItem* owner,
48 ListType list_type,
49 LoginStatus login);
50 ~NetworkStateListDetailedView() override;
51
52 // Overridden from NetworkDetailedView:
53 void Init() override;
54 DetailedViewType GetViewType() const override;
55 void Update() override;
56
57 private:
58 class InfoBubble;
59
60 // TrayDetailsView:
61 void HandleViewClicked(views::View* view) override;
62 void HandleButtonPressed(views::Button* sender,
63 const ui::Event& event) override;
64 void CreateExtraTitleRowButtons() override;
65
66 // Launches the WebUI settings in a browser and closes the system menu.
67 void ShowSettings();
68
69 // Create UI components.
70 void CreateHeaderEntry();
71 void CreateNetworkExtra();
72
73 // Update UI components.
74 void UpdateTechnologyButton(TrayPopupHeaderButton* button,
75 const chromeos::NetworkTypePattern& technology);
76 void UpdateNetworkList();
77 void UpdateHeaderButtons();
78
79 bool OrderChild(views::View* view, int index);
80
81 // Adds a settings entry when logged in, and an entry for changing proxy
82 // settings otherwise.
83 void CreateSettingsEntry();
84
85 // Sets the visibility and focusability of Network Info Button and
86 // WiFi scanning indicator. This will hide Network info button and display
87 // the scanning indicator when |is_scanning| is true.
88 void SetScanningStateForThrobberView(bool is_scanning);
89
90 // Create and manage the network info bubble.
91 void ToggleInfoBubble();
92 bool ResetInfoBubble();
93 void OnInfoBubbleDestroyed();
94 views::View* CreateNetworkInfoView();
95 const gfx::ImageSkia* GetControlledByExtensionIcon();
96
97 // Creates the view of an extra icon appearing next to the network name
98 // indicating that the network is controlled by an extension. If no extension
99 // is registered for this network, returns |nullptr|.
100 views::View* CreateControlledByExtensionView(const NetworkInfo& info);
101
102 // Periodically request a network scan.
103 void CallRequestScan();
104
105 // Handle toggile mobile action
106 void ToggleMobile();
107
108 // NetworkListDelegate:
109 views::View* CreateViewForNetwork(const NetworkInfo& info) override;
110 bool IsViewHovered(views::View* view) override;
111 chromeos::NetworkTypePattern GetNetworkTypePattern() const override;
112 void UpdateViewForNetwork(views::View* view,
113 const NetworkInfo& info) override;
114 views::Label* CreateInfoLabel() override;
115 void OnNetworkEntryClicked(views::View* sender) override;
116 void OnOtherWifiClicked() override;
117 void RelayoutScrollList() override;
118
119 // Type of list (all networks or vpn)
120 ListType list_type_;
121
122 // Track login state.
123 LoginStatus login_;
124
125 // Tracks the WiFi scanning state to help detect if the state has changed. Use
126 // NetworkHandler::GetScanningByType() if you require the current wifi
127 // scanning state.
128 bool prev_wifi_scanning_state_;
129
130 // Not used for material design.
131 views::ImageButton* info_icon_;
132
133 // Only used in material design.
134 views::CustomButton* info_button_md_;
135 views::CustomButton* settings_button_md_;
136 views::CustomButton* proxy_settings_button_md_;
137
138 // A small bubble for displaying network info.
139 views::BubbleDialogDelegateView* info_bubble_;
140
141 // WiFi scanning throbber.
142 ThrobberView* scanning_throbber_;
143
144 gfx::Image controlled_by_extension_icon_;
145
146 std::unique_ptr<NetworkListViewBase> network_list_view_;
147
148 DISALLOW_COPY_AND_ASSIGN(NetworkStateListDetailedView);
149 };
150
151 } // namespace tray
152 } // namespace ash
153
154 #endif // ASH_COMMON_SYSTEM_CHROMEOS_NETWORK_NETWORK_STATE_LIST_DETAILED_VIEW_H _
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698