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 // Similar to GetImageForNetwork but returns the cached image url based on
     38 // |scale_factor| instead.
     39 ASH_EXPORT std::string GetImageUrlForNetwork(
     40     const chromeos::NetworkState* network,
     41     IconType icon_type,
     42     float scale_factor);
     43 
     44 // Gets the fulls strength image for a connected network type.
     45 ASH_EXPORT gfx::ImageSkia GetImageForConnectedNetwork(
     46     IconType icon_type,
     47     const std::string& network_type);
     48 
     49 // Gets the image for a connecting network type.
     50 ASH_EXPORT gfx::ImageSkia GetImageForConnectingNetwork(
     51     IconType icon_type,
     52     const std::string& network_type);
     53 
     54 // Gets the image for a disconnected network type.
     55 ASH_EXPORT gfx::ImageSkia GetImageForDisconnectedNetwork(
     56     IconType icon_type,
     57     const std::string& network_type);
     58 
     59 // Returns the label for |network| based on |icon_type|. |network| can be NULL.
     60 ASH_EXPORT base::string16 GetLabelForNetwork(
     61     const chromeos::NetworkState* network,
     62     IconType icon_type);
     63 
     64 // Updates and returns the appropriate message id if the cellular network
     65 // is uninitialized.
     66 ASH_EXPORT int GetCellularUninitializedMsg();
     67 
     68 // Gets the correct icon and label for |icon_type|. Also sets |animating|
     69 // based on whether or not the icon is animating (i.e. connecting).
     70 ASH_EXPORT void GetDefaultNetworkImageAndLabel(IconType icon_type,
     71                                                gfx::ImageSkia* image,
     72                                                base::string16* label,
     73                                                bool* animating);
     74 
     75 // Called when the list of networks changes. Retreives the list of networks
     76 // from the global NetworkStateHandler instance and removes cached entries
     77 // that are no longer in the list.
     78 ASH_EXPORT void PurgeNetworkIconCache();
     79 
     80 }  // namespace network_icon
     81 }  // namespace ash
     82 
     83 #endif  // ASH_SYSTEM_CHROMEOS_NETWORK_NETWORK_ICON_H_
     84