chromium/components/user_education/views/help_bubble_factory_mac.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_USER_EDUCATION_VIEWS_HELP_BUBBLE_FACTORY_MAC_H_
#define COMPONENTS_USER_EDUCATION_VIEWS_HELP_BUBBLE_FACTORY_MAC_H_

#include "base/memory/raw_ptr.h"
#include "components/user_education/common/help_bubble_factory.h"

namespace user_education {

class HelpBubbleDelegate;

// Factory implementation for HelpBubbleViews.
class HelpBubbleFactoryMac : public HelpBubbleFactory {
 public:
  explicit HelpBubbleFactoryMac(const HelpBubbleDelegate* delegate);
  ~HelpBubbleFactoryMac() override;

  DECLARE_FRAMEWORK_SPECIFIC_METADATA()

  // HelpBubbleFactory:
  std::unique_ptr<HelpBubble> CreateBubble(ui::TrackedElement* element,
                                           HelpBubbleParams params) override;
  bool CanBuildBubbleForTrackedElement(
      const ui::TrackedElement* element) const override;

 private:
  raw_ptr<const HelpBubbleDelegate> delegate_;
};

}  // namespace user_education

#endif  // COMPONENTS_USER_EDUCATION_VIEWS_HELP_BUBBLE_FACTORY_MAC_H_