1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef ASH_SYSTEM_PHONEHUB_QUICK_ACTION_CONTROLLER_BASE_H_ 6 #define ASH_SYSTEM_PHONEHUB_QUICK_ACTION_CONTROLLER_BASE_H_ 7 8 #include "ash/ash_export.h" 9 #include "ash/system/phonehub/quick_action_item.h" 10 11 namespace ash { 12 13 class QuickActionItem; 14 15 // Base class for controllers of quick action item. 16 // To add a new quick action item, implement this class, and add to the list in 17 // QuickActionsView::InitQuickActionItems(). 18 class ASH_EXPORT QuickActionControllerBase : public QuickActionItem::Delegate { 19 public: 20 virtual ~QuickActionControllerBase() = default; 21 22 // Create the view. Subclasses instantiate QuickActionItem. 23 // The view will be owned by views hierarchy. The view will be always deleted 24 // after the controller is destructed. 25 virtual QuickActionItem* CreateItem() = 0; 26 }; 27 28 } // namespace ash 29 30 #endif // ASH_SYSTEM_PHONEHUB_QUICK_ACTION_CONTROLLER_BASE_H_ 31