Commit 688a0b34 authored by Ahmed Mehfooz's avatar Ahmed Mehfooz Committed by Commit Bot

Hook up API for pin button in HoldingSpaceItemChipView

This CL makes the pin button that shows up on item chips
on hover functional.

Bug: 1130086
Change-Id: Ibe8857d746c6cdc406ecf1dd1b75264b722d3d70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2419634
Commit-Queue: Ahmed Mehfooz <amehfooz@chromium.org>
Reviewed-by: default avatarDavid Black <dmblack@google.com>
Cr-Commit-Position: refs/heads/master@{#808773}
parent 3b1eb2b4
......@@ -4,8 +4,11 @@
#include "ash/system/holding_space/holding_space_item_chip_view.h"
#include "ash/public/cpp/holding_space/holding_space_client.h"
#include "ash/public/cpp/holding_space/holding_space_constants.h"
#include "ash/public/cpp/holding_space/holding_space_controller.h"
#include "ash/public/cpp/holding_space/holding_space_item.h"
#include "ash/public/cpp/holding_space/holding_space_model.h"
#include "ash/public/cpp/shelf_config.h"
#include "ash/style/ash_color_provider.h"
#include "ash/system/holding_space/holding_space_item_view.h"
......@@ -73,10 +76,8 @@ HoldingSpaceItemChipView::~HoldingSpaceItemChipView() = default;
void HoldingSpaceItemChipView::OnMouseEvent(ui::MouseEvent* event) {
switch (event->type()) {
case ui::ET_MOUSE_ENTERED:
pin_->SetVisible(IsMouseHovered());
break;
case ui::ET_MOUSE_EXITED:
pin_->SetVisible(IsMouseHovered());
UpdatePin();
break;
default:
break;
......@@ -86,10 +87,18 @@ void HoldingSpaceItemChipView::OnMouseEvent(ui::MouseEvent* event) {
void HoldingSpaceItemChipView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
if (sender == pin_) {
pin_->SetToggled(!pin_->toggled());
// TODO(amehfooz): Toggle pin
}
DCHECK_EQ(sender, pin_);
bool is_item_pinned = HoldingSpaceController::Get()->model()->GetItem(
HoldingSpaceItem::GetFileBackedItemId(HoldingSpaceItem::Type::kPinnedFile,
item()->file_path()));
pin_->SetToggled(!is_item_pinned);
if (is_item_pinned)
HoldingSpaceController::Get()->client()->UnpinItem(*item());
else
HoldingSpaceController::Get()->client()->PinItem(*item());
UpdatePin();
}
void HoldingSpaceItemChipView::AddPinButton() {
......@@ -114,6 +123,20 @@ void HoldingSpaceItemChipView::Update() {
gfx::Size(kHoldingSpaceChipIconSize, kHoldingSpaceChipIconSize));
}
void HoldingSpaceItemChipView::UpdatePin() {
if (!IsMouseHovered()) {
pin_->SetVisible(false);
return;
}
bool is_item_pinned = HoldingSpaceController::Get()->model()->GetItem(
HoldingSpaceItem::GetFileBackedItemId(HoldingSpaceItem::Type::kPinnedFile,
item()->file_path()));
pin_->SetToggled(!is_item_pinned);
pin_->SetVisible(true);
}
BEGIN_METADATA(HoldingSpaceItemChipView, HoldingSpaceItemView)
END_METADATA
......
......@@ -47,6 +47,7 @@ class ASH_EXPORT HoldingSpaceItemChipView : public HoldingSpaceItemView,
private:
void AddPinButton();
void Update();
void UpdatePin();
tray::RoundedImageView* image_ = nullptr;
views::Label* label_ = nullptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment