blob: 2791db20ab461d57b0f1e13c1640c9b7b031b658 [file] [log] [blame]
// Copyright 2014 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.
#include <map>
#include <string>
// Represents the set of icons for an extension.
class ExtensionIconSet {
// Get an icon from the set, optionally falling back to a smaller or bigger
// size. MatchType is exclusive (do not OR them together).
enum MatchType {
// Access to the underlying map from icon size->{path, bitmap}.
typedef std::map<int, std::string> IconMap;
const IconMap& map() const { return map_; }
bool empty() const { return map_.empty(); }
// Remove all icons from the set.
void Clear();
// Add an icon path to the set. If a path for the specified size is already
// present, it is overwritten.
void Add(int size, const std::string& path);
// Gets path value of the icon found when searching for |size| using
// |mathc_type|.
const std::string& Get(int size, MatchType match_type) const;
// Returns true iff the set contains the specified path.
bool ContainsPath(const std::string& path) const;
// Returns icon size if the set contains the specified path or 0 if not found.
int GetIconSizeFromPath(const std::string& path) const;
IconMap map_;