| Index: chrome/browser/chromeos/network_menu_button.h
|
| ===================================================================
|
| --- chrome/browser/chromeos/network_menu_button.h (revision 0)
|
| +++ chrome/browser/chromeos/network_menu_button.h (revision 0)
|
| @@ -0,0 +1,116 @@
|
| +// Copyright (c) 2006-2008 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 CHROME_BROWSER_CHROMEOS_NETWORK_MENU_BUTTON_H_
|
| +#define CHROME_BROWSER_CHROMEOS_NETWORK_MENU_BUTTON_H_
|
| +
|
| +#include <vector>
|
| +
|
| +#include "chrome/browser/chromeos/password_dialog_view.h"
|
| +#include "third_party/skia/include/core/SkBitmap.h"
|
| +#include "views/controls/button/menu_button.h"
|
| +#include "views/controls/menu/menu_2.h"
|
| +#include "views/controls/menu/view_menu_delegate.h"
|
| +
|
| +class Browser;
|
| +
|
| +// The network menu button in the status area.
|
| +// This class will handle getting the wifi networks and populating the menu.
|
| +// It will also handle the status icon changing and connecting to another
|
| +// wifi network.
|
| +class NetworkMenuButton : public views::MenuButton,
|
| + public views::ViewMenuDelegate,
|
| + public views::Menu2Model,
|
| + public PasswordDialogDelegate {
|
| + public:
|
| + struct WifiNetwork {
|
| + WifiNetwork() { }
|
| + WifiNetwork(const string16& ssid, const string16& encryption, int strength)
|
| + : ssid(ssid),
|
| + encryption(encryption),
|
| + strength(strength) { }
|
| +
|
| + string16 ssid;
|
| + string16 encryption;
|
| + int strength;
|
| + };
|
| +
|
| + explicit NetworkMenuButton(Browser* browser);
|
| + virtual ~NetworkMenuButton() {}
|
| +
|
| + // views::Menu2Model implementation.
|
| + virtual bool HasIcons() const { return false; }
|
| + virtual int GetItemCount() const;
|
| + virtual views::Menu2Model::ItemType GetTypeAt(int index) const;
|
| + virtual int GetCommandIdAt(int index) const;
|
| + virtual string16 GetLabelAt(int index) const;
|
| + virtual bool IsLabelDynamicAt(int index) const { return true; }
|
| + virtual bool GetAcceleratorAt(int index,
|
| + views::Accelerator* accelerator) const { return false; }
|
| + virtual bool IsItemCheckedAt(int index) const;
|
| + virtual int GetGroupIdAt(int index) const { return 0; }
|
| + virtual bool GetIconAt(int index, SkBitmap* icon) const { return false; }
|
| + virtual bool IsEnabledAt(int index) const;
|
| + virtual Menu2Model* GetSubmenuModelAt(int index) const { return NULL; }
|
| + virtual void HighlightChangedTo(int index) {}
|
| + virtual void ActivatedAt(int index);
|
| + virtual void MenuWillShow() {}
|
| +
|
| + // PasswordDialogDelegate implementation.
|
| + virtual bool OnPasswordDialogCancel();
|
| + virtual bool OnPasswordDialogAccept(const string16& password);
|
| +
|
| + private:
|
| + // views::ViewMenuDelegate implementation.
|
| + virtual void RunMenu(views::View* source, const gfx::Point& pt,
|
| + gfx::NativeView hwnd);
|
| +
|
| + // Helper method to add a wifi network to the model.
|
| + void AddWifiNetwork(const string16& ssid, const string16& encryption,
|
| + int strength);
|
| +
|
| + // Refreshes the wifi networks model using real data.
|
| + void RefreshWifiNetworks();
|
| +
|
| + // Connect to the specified wireless network with password.
|
| + // Returns whether or not connection was successful.
|
| + bool ConnectToWifiNetwork(const string16& ssid, const string16& password);
|
| +
|
| + // Gets the wifi image for specified wifi network.
|
| + SkBitmap GetWifiImage(WifiNetwork wifi_network) const;
|
| +
|
| + // Set to true if we are currently refreshing the menu.
|
| + bool refreshing_menu_;
|
| +
|
| + // The number of wifi strength images.
|
| + static const int kNumWifiImages;
|
| +
|
| + // Wifi strength images.
|
| + static SkBitmap* wifi_images_[];
|
| +
|
| + // Wired image.
|
| + static SkBitmap* wired_image_;
|
| +
|
| + // Disconnected image.
|
| + static SkBitmap* disconnected_image_;
|
| +
|
| + // The currently connected wifi network ssid.
|
| + string16 current_ssid_;
|
| +
|
| + // The wifi netowrk ssid we are attempting to connect to.
|
| + string16 connecting_ssid_;
|
| +
|
| + // A list of wifi networks.
|
| + std::vector<WifiNetwork> wifi_networks_;
|
| +
|
| + // The network menu.
|
| + views::Menu2 network_menu_;
|
| +
|
| + // The browser window that owns us.
|
| + Browser* browser_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(NetworkMenuButton);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_CHROMEOS_NETWORK_MENU_BUTTON_H_
|
|
|
| Property changes on: chrome/browser/chromeos/network_menu_button.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|