blob: 17a2b59b36c2b8109dba0d9c3a22149a51d16183 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/user_education/test/test_custom_help_bubble_view.h"
#include "ui/base/interaction/element_identifier.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/view_class_properties.h"
namespace user_education::test {
TestCustomHelpBubbleView::TestCustomHelpBubbleView(
views::View* anchor_view,
views::BubbleBorder::Arrow arrow)
: views::BubbleDialogDelegateView(anchor_view, arrow) {
SetProperty(views::kElementIdentifierKey, kBubbleId);
auto* const layout = SetLayoutManager(std::make_unique<views::FlexLayout>());
layout->SetOrientation(views::LayoutOrientation::kVertical);
cancel_button_ = AddChildView(std::make_unique<views::LabelButton>(
base::BindOnce(&TestCustomHelpBubbleView::NotifyUserAction,
base::Unretained(this), UserAction::kCancel),
u"Cancel"));
cancel_button_->SetProperty(views::kElementIdentifierKey, kCancelButtonId);
dismiss_button_ = AddChildView(std::make_unique<views::LabelButton>(
base::BindOnce(&TestCustomHelpBubbleView::NotifyUserAction,
base::Unretained(this), UserAction::kDismiss),
u"Dismiss"));
dismiss_button_->SetProperty(views::kElementIdentifierKey, kDismissButtonId);
action_button_ = AddChildView(std::make_unique<views::LabelButton>(
base::BindOnce(&TestCustomHelpBubbleView::NotifyUserAction,
base::Unretained(this), UserAction::kAction),
u"Action"));
action_button_->SetProperty(views::kElementIdentifierKey, kActionButtonId);
snooze_button_ = AddChildView(std::make_unique<views::LabelButton>(
base::BindOnce(&TestCustomHelpBubbleView::NotifyUserAction,
base::Unretained(this), UserAction::kSnooze),
u"Snooze"));
snooze_button_->SetProperty(views::kElementIdentifierKey, kSnoozeButtonId);
}
TestCustomHelpBubbleView::~TestCustomHelpBubbleView() {
cancel_button_ = nullptr;
dismiss_button_ = nullptr;
action_button_ = nullptr;
snooze_button_ = nullptr;
}
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TestCustomHelpBubbleView, kBubbleId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TestCustomHelpBubbleView,
kCancelButtonId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TestCustomHelpBubbleView,
kDismissButtonId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TestCustomHelpBubbleView,
kActionButtonId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TestCustomHelpBubbleView,
kSnoozeButtonId);
BEGIN_METADATA(TestCustomHelpBubbleView)
END_METADATA
} // namespace user_education::test