blob: 159a5e44571158b16aa78516028254efb0069eb6 [file] [log] [blame]
// Copyright 2019 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 COMPONENTS_TAB_GROUPS_TAB_GROUP_VISUAL_DATA_H_
#define COMPONENTS_TAB_GROUPS_TAB_GROUP_VISUAL_DATA_H_
#include <stddef.h>
#include <string>
#include "base/component_export.h"
#include "components/tab_groups/tab_group_color.h"
#include "third_party/skia/include/core/SkColor.h"
namespace tab_groups {
class COMPONENT_EXPORT(TAB_GROUPS) TabGroupVisualData {
public:
// Construct a TabGroupVisualData with placeholder name and random color.
TabGroupVisualData();
TabGroupVisualData(std::u16string title,
tab_groups::TabGroupColorId color,
bool is_collapsed = false);
TabGroupVisualData(std::u16string title,
uint32_t color_int,
bool is_collapsed = false);
TabGroupVisualData(const TabGroupVisualData& other) = default;
TabGroupVisualData(TabGroupVisualData&& other) = default;
TabGroupVisualData& operator=(const TabGroupVisualData& other) = default;
TabGroupVisualData& operator=(TabGroupVisualData&& other) = default;
const std::u16string& title() const { return title_; }
const tab_groups::TabGroupColorId& color() const { return color_; }
bool is_collapsed() const { return is_collapsed_; }
// Checks whether two instances are visually equivalent.
bool operator==(const TabGroupVisualData& other) const {
return title_ == other.title_ && color_ == other.color_;
}
bool operator!=(const TabGroupVisualData& other) const {
return !(*this == other);
}
private:
std::u16string title_;
tab_groups::TabGroupColorId color_;
bool is_collapsed_;
};
} // namespace tab_groups
#endif // COMPONENTS_TAB_GROUPS_TAB_GROUP_VISUAL_DATA_H_