chromium/ui/views/actions/action_view_controller.h

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

#ifndef UI_VIEWS_ACTIONS_ACTION_VIEW_CONTROLLER_H_
#define UI_VIEWS_ACTIONS_ACTION_VIEW_CONTROLLER_H_

#include <map>
#include <memory>
#include <utility>

#include "base/callback_list.h"
#include "base/memory/weak_ptr.h"
#include "ui/actions/actions.h"
#include "ui/views/view_tracker.h"
#include "ui/views/views_export.h"

// ActionViewController is the main view controller to be instantiated or
// subclassed. See README.md for more details.
namespace views {

class View;

// ActionViewControllerBase provides a base class for the templated
// ActionViewControllerTemplate.
class VIEWS_EXPORT ActionViewControllerBase {};

// ActionViewControllerTemplate is the templated core functionality that manages
// the relationship between the action item and the view. The template allows
// the action view controller to be generalized to any view class.
template <typename ViewT>
class VIEWS_EXPORT ActionViewControllerTemplate
    : public ActionViewControllerBase {};

class VIEWS_EXPORT ActionViewController {};

}  // namespace views

#endif  // UI_VIEWS_ACTIONS_ACTION_VIEW_CONTROLLER_H_