chromium/chrome/browser/ui/views/toolbar/pinned_action_toolbar_button.h

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

#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_PINNED_ACTION_TOOLBAR_BUTTON_H_
#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_PINNED_ACTION_TOOLBAR_BUTTON_H_

#include <memory>
#include <optional>
#include <string>
#include <type_traits>

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container_layout.h"
#include "chrome/browser/ui/views/toolbar/pinned_toolbar_button_status_indicator.h"
#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/models/simple_menu_model.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/label_button.h"

class Browser;
class PinnedToolbarActionsContainer;

class PinnedActionToolbarButton : public ToolbarButton,
                                  public ui::SimpleMenuModel::Delegate {};

class PinnedActionToolbarButtonActionViewInterface
    : public ToolbarButtonActionViewInterface {};

extern const ui::ClassProperty<
    std::underlying_type_t<PinnedToolbarActionFlexPriority>>* const
    kToolbarButtonFlexPriorityKey;

#endif  // CHROME_BROWSER_UI_VIEWS_TOOLBAR_PINNED_ACTION_TOOLBAR_BUTTON_H_