#ifndef ASH_PUBLIC_CPP_TAB_CLUSTER_TAB_CLUSTER_UI_ITEM_H_
#define ASH_PUBLIC_CPP_TAB_CLUSTER_TAB_CLUSTER_UI_ITEM_H_
#include <string>
#include "ash/public/cpp/ash_public_export.h"
#include "base/memory/raw_ptr.h"
namespace aura {
class Window;
}
namespace ash {
class ASH_PUBLIC_EXPORT TabClusterUIItem {
public:
struct Info {
Info();
Info(const Info&);
Info& operator=(const Info&);
~Info();
std::string title;
std::string source;
int cluster_id = -1;
double boundary_strength = 0.0;
raw_ptr<aura::Window> browser_window = nullptr;
bool is_loading = false;
};
TabClusterUIItem();
explicit TabClusterUIItem(const Info& info);
TabClusterUIItem(const TabClusterUIItem&) = delete;
TabClusterUIItem& operator=(const TabClusterUIItem&) = delete;
~TabClusterUIItem();
void Init(const Info& info);
Info current_info() const { return current_info_; }
Info old_info() const { return old_info_; }
void SetCurrentClusterId(int cluster_id);
void SetCurrentBoundaryStrength(double boundary_strength);
private:
Info current_info_;
Info old_info_;
};
}
#endif