#ifndef ASH_SYSTEM_PHONEHUB_QUICK_ACTION_ITEM_H_
#define ASH_SYSTEM_PHONEHUB_QUICK_ACTION_ITEM_H_
#include <string_view>
#include "ash/ash_export.h"
#include "ash/system/unified/feature_pod_button.h"
#include "base/memory/raw_ptr.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/views/view.h"
namespace views {
class Label;
}
namespace ash {
class ASH_EXPORT QuickActionItem : public views::View {
METADATA_HEADER(QuickActionItem, views::View)
public:
class Delegate {
public:
virtual void OnButtonPressed(bool is_now_enabled) = 0;
};
QuickActionItem(Delegate* delegate,
int label_id,
const gfx::VectorIcon& icon);
~QuickActionItem() override;
QuickActionItem(QuickActionItem&) = delete;
QuickActionItem operator=(QuickActionItem&) = delete;
void SetSubLabel(const std::u16string& sub_label);
void SetSubLabelColor(SkColor color);
void SetTooltip(const std::u16string& text);
void SetToggled(bool toggled);
bool IsToggled() const;
std::u16string_view GetItemLabel() const;
void SetEnabled(bool enabled);
bool HasFocus() const override;
void RequestFocus() override;
FeaturePodIconButton* icon_button() const { return icon_button_; }
private:
raw_ptr<FeaturePodIconButton> icon_button_ = nullptr;
raw_ptr<views::Label> label_ = nullptr;
raw_ptr<views::Label> sub_label_ = nullptr;
SkColor sub_label_color_;
};
}
#endif