// 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_