Home | History | Annotate | Download | only in network
      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_SYSTEM_CHROMEOS_NETWORK_NETWORK_ICON_H_
      6 #define ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_ICON_H_
      7 
      8 #include <string>
      9 
     10 #include "ash/ash_export.h"
     11 #include "base/strings/string16.h"
     12 #include "ui/gfx/image/image_skia.h"
     13 
     14 namespace chromeos {
     15 class NetworkState;
     16 }
     17 
     18 namespace ash {
     19 namespace network_icon {
     20 
     21 class AnimationObserver;
     22 
     23 // Type of icon which dictates color theme and VPN badging
     24 enum IconType {
     25   ICON_TYPE_TRAY,  // light icons with VPN badges
     26   ICON_TYPE_DEFAULT_VIEW,  // dark icons with VPN badges
     27   ICON_TYPE_LIST,  // dark icons without VPN badges
     28 };
     29 
     30 // Gets the image for the network associated with |service_path|. |network| must
     31 // not be NULL. |icon_type| determines the color theme and whether or not to
     32 // show the VPN badge. This caches badged icons per network per |icon_type|.
     33 ASH_EXPORT gfx::ImageSkia GetImageForNetwork(
     34     const chromeos::NetworkState* network,
     35     IconType icon_type);
     36 
     37 // Gets the fulls strength image for a connected network type.
     38 ASH_EXPORT gfx::ImageSkia GetImageForConnectedNetwork(
     39     IconType icon_type,
     40     const std::string& network_type);
     41 
     42 // Gets the image for a connecting network type.
     43 ASH_EXPORT gfx::ImageSkia GetImageForConnectingNetwork(
     44     IconType icon_type,
     45     const std::string& network_type);
     46 
     47 // Gets the image for a disconnected network type.
     48 ASH_EXPORT gfx::ImageSkia GetImageForDisconnectedNetwork(
     49     IconType icon_type,
     50     const std::string& network_type);
     51 
     52 // Returns the label for |network| based on |icon_type|. |network| can be NULL.
     53 ASH_EXPORT base::string16 GetLabelForNetwork(
     54     const chromeos::NetworkState* network,
     55     IconType icon_type);
     56 
     57 // Updates and returns the appropriate message id if the cellular network
     58 // is uninitialized.
     59 ASH_EXPORT int GetCellularUninitializedMsg();
     60 
     61 // Gets the correct icon and label for |icon_type|. Also sets |animating|
     62 // based on whether or not the icon is animating (i.e. connecting).
     63 ASH_EXPORT void GetDefaultNetworkImageAndLabel(IconType icon_type,
     64                                                gfx::ImageSkia* image,
     65                                                base::string16* label,
     66                                                bool* animating);
     67 
     68 // Called when the list of networks changes. Retreives the list of networks
     69 // from the global NetworkStateHandler instance and removes cached entries
     70 // that are no longer in the list.
     71 ASH_EXPORT void PurgeNetworkIconCache();
     72 
     73 }  // namespace network_icon
     74 }  // namespace ash
     75 
     76 #endif  // ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_ICON_H_
     77