#ifndef ASH_SYSTEM_NETWORK_NETWORK_ICON_H_
#define ASH_SYSTEM_NETWORK_NETWORK_ICON_H_
#include <set>
#include <string>
#include "ash/ash_export.h"
#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom-forward.h"
#include "chromeos/services/network_config/public/mojom/network_types.mojom-forward.h"
#include "ui/base/models/image_model.h"
#include "ui/color/color_provider.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/image/canvas_image_source.h"
#include "ui/gfx/image/image_skia.h"
namespace ash {
namespace network_icon {
enum IconType {
ICON_TYPE_TRAY_OOBE,
ICON_TYPE_TRAY_REGULAR,
ICON_TYPE_TRAY_ACTIVE,
ICON_TYPE_DEFAULT_VIEW,
ICON_TYPE_LIST,
ICON_TYPE_FEATURE_POD,
ICON_TYPE_FEATURE_POD_TOGGLED,
ICON_TYPE_FEATURE_POD_DISABLED,
ICON_TYPE_MENU_LIST,
};
enum class SignalStrength { NONE, WEAK, MEDIUM, STRONG };
SkColor GetDefaultColorForIconType(const ui::ColorProvider* color_provider,
IconType icon_type);
const gfx::ImageSkia GetBasicImage(
const ui::ColorProvider* color_provider,
IconType icon_type,
chromeos::network_config::mojom::NetworkType network_type,
bool connected);
ASH_EXPORT gfx::ImageSkia GetImageForNonVirtualNetwork(
const ui::ColorProvider* color_provider,
const chromeos::network_config::mojom::NetworkStateProperties* network,
IconType icon_type,
bool badge_vpn,
bool* animating = nullptr);
ASH_EXPORT gfx::ImageSkia GetImageForVPN(
const ui::ColorProvider* color_provider,
const chromeos::network_config::mojom::NetworkStateProperties* vpn,
IconType icon_type,
bool* animating = nullptr);
ASH_EXPORT gfx::ImageSkia GetImageForWiFiNoConnections(
const ui::ColorProvider* color_provider,
IconType icon_type);
ASH_EXPORT gfx::ImageSkia GetImageForPSimPendingActivationWhileLoggedOut(
const ui::ColorProvider* color_provider,
IconType icon_type);
ASH_EXPORT gfx::ImageSkia GetImageForCarrierLockedNetwork(
const ui::ColorProvider* color_provider,
IconType icon_type);
ASH_EXPORT gfx::ImageSkia GetImageForWiFiEnabledState(
const ui::ColorProvider* color_provider,
bool enabled,
IconType = ICON_TYPE_DEFAULT_VIEW);
ASH_EXPORT ui::ImageModel GetImageModelForWiFiEnabledState(
bool wifi_enabled,
IconType icon_type = ICON_TYPE_DEFAULT_VIEW);
gfx::ImageSkia GetConnectingImageForNetworkType(
const ui::ColorProvider* color_provider,
chromeos::network_config::mojom::NetworkType network_type,
IconType icon_type);
gfx::ImageSkia GetConnectedNetworkWithConnectingVpnImage(
const ui::ColorProvider* color_provider,
const chromeos::network_config::mojom::NetworkStateProperties*
connected_network,
IconType icon_type);
gfx::ImageSkia GetDisconnectedImageForNetworkType(
const ui::ColorProvider* color_provider,
chromeos::network_config::mojom::NetworkType network_type,
IconType icon_type);
ASH_EXPORT std::u16string GetLabelForNetworkList(
const chromeos::network_config::mojom::NetworkStateProperties* network);
ASH_EXPORT void PurgeNetworkIconCache(
const std::set<std::string>& network_guids);
ASH_EXPORT SignalStrength GetSignalStrength(int strength);
}
}
#endif