Chromium Code Reviews

Side by Side Diff: chrome/browser/chromeos/dom_ui/network_menu_ui.cc

Issue 3675002: Add network_menu_ui.cc and network_menu.js (Closed)
Patch Set: . Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
(Empty)
1 // Copyright (c) 2010 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 #include "chrome/browser/chromeos/dom_ui/network_menu_ui.h"
6
7 #include "base/values.h"
8 #include "base/string_util.h"
9 #include "chrome/app/chrome_dll_resource.h"
10 #include "chrome/browser/chromeos/status/network_menu.h"
11 #include "chrome/browser/chromeos/views/native_menu_domui.h"
12 #include "chrome/common/url_constants.h"
13 #include "googleurl/src/gurl.h"
14 #include "grit/browser_resources.h"
15 #include "views/controls/menu/menu_2.h"
16
17 namespace {
18
19 ////////////////////////////////////////////////////////////////////////////////
20 //
21 // MenuHandler
22 //
23 ////////////////////////////////////////////////////////////////////////////////
24
25 // The handler for Javascript messages related to the "system" view.
26 class NetworkMenuHandler : public chromeos::MenuHandlerBase,
27 public base::SupportsWeakPtr<NetworkMenuHandler> {
28 public:
29 NetworkMenuHandler();
30 virtual ~NetworkMenuHandler();
31
32 // DOMMessageHandler implementation.
33 virtual void RegisterMessages();
34
35 private:
36 void HandleAction(const ListValue* values);
37
38 DISALLOW_COPY_AND_ASSIGN(NetworkMenuHandler);
39 };
40
41 void NetworkMenuHandler::RegisterMessages() {
42 dom_ui_->RegisterMessageCallback(
43 "action",
44 NewCallback(this,
45 &NetworkMenuHandler::HandleAction));
46 }
47
48 void NetworkMenuHandler::HandleAction(const ListValue* values) {
49 menus::MenuModel* model = GetMenuModel();
50 if (model)
51 static_cast<chromeos::NetworkMenuUI*>(dom_ui_)->ModelAction(model, values);
52 }
53
54 NetworkMenuHandler::NetworkMenuHandler() {
55 }
56
57 NetworkMenuHandler::~NetworkMenuHandler() {
58 }
59
60 } // namespace
61
62 namespace chromeos {
63
64 ////////////////////////////////////////////////////////////////////////////////
65 //
66 // NetworkMenuUI
67 //
68 ////////////////////////////////////////////////////////////////////////////////
69
70 NetworkMenuUI::NetworkMenuUI(TabContents* contents)
71 : chromeos::MenuUI(
72 contents,
73 ALLOW_THIS_IN_INITIALIZER_LIST(
74 CreateMenuUIHTMLSource(*this,
75 chrome::kChromeUINetworkMenu,
76 "NetworkMenu",
77 IDR_NETWORK_MENU_JS,
78 -1))) {
79 NetworkMenuHandler* handler = new NetworkMenuHandler();
80 AddMessageHandler((handler)->Attach(this));
81 }
82
83 void NetworkMenuUI::AddCustomConfigValues(DictionaryValue* config) const {
84 }
85
86 void NetworkMenuUI::ModelAction(const menus::MenuModel* model,
87 const ListValue* values) {
88 //const NetworkMenu* network_menu = static_cast<const NetworkMenu*>(model);
89 // Invoke model methods here.
90 }
91
92 DictionaryValue* NetworkMenuUI::CreateMenuItem(const menus::MenuModel* model,
93 int index,
94 const char* type,
95 int* max_icon_width,
96 bool* has_accel) const {
97 // Create a MenuUI menu item, then append network specific values.
98 DictionaryValue* item = MenuUI::CreateMenuItem(model,
99 index,
100 type,
101 max_icon_width,
102 has_accel);
103 // Network menu specific values.
104 const NetworkMenu* network_menu = static_cast<const NetworkMenu*>(model);
105 NetworkMenu::NetworkInfo info;
106 bool found = network_menu->GetNetworkAt(index, &info);
107
108 item->SetBoolean("visible", found);
109 item->SetString("network_type", info.network_type);
110 item->SetString("status", info.status);
111 item->SetString("message", info.message);
112 item->SetString("ip_address", info.ip_address);
113 item->SetBoolean("need_passphrase", info.need_passphrase);
114 item->SetBoolean("remembered", info.remembered);
115 return item;
116 }
117
118 views::Menu2* NetworkMenuUI::CreateMenu2(menus::MenuModel* model) {
119 views::Menu2* menu = new views::Menu2(model);
120 NativeMenuDOMUI::SetMenuURL(
121 menu, GURL(StringPrintf("chrome://%s", chrome::kChromeUINetworkMenu)));
122 return menu;
123 }
124
125 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/dom_ui/network_menu_ui.h ('k') | chrome/browser/chromeos/status/network_menu.h » ('j') | no next file with comments »

Powered by Google App Engine