| // 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 IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_TABS_ANIMATION_COMMANDS_H_ |
| #define IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_TABS_ANIMATION_COMMANDS_H_ |
| |
| #include <objc/NSObjCRuntime.h> |
| |
| #import "base/ios/block_types.h" |
| #import "ios/chrome/browser/browsing_data/model/tabs_closure_util.h" |
| |
| // Protocol for animating tabs in the tab grid. |
| @protocol TabsAnimationCommands |
| |
| // Triggers the tabs closure animation on the tab grid for the WebStates in |
| // `tabsToClose`, for the groups in `groupsWithTabsToClose`, and if |
| // `animateAllInactiveTabs` is true, then for the inactive tabs banner. It also |
| // triggers the closure of the selected WebStates through`completionHandler` |
| // after running the animation. |
| - (void)animateTabsClosureForTabs:(std::set<web::WebStateID>)tabsToClose |
| groups: |
| (std::map<tab_groups::TabGroupId, std::set<int>>) |
| groupsWithTabsToClose |
| sharedGroups:(std::set<tab_groups::TabGroupId>)sharedGroups |
| allInactiveTabs:(BOOL)animateAllInactiveTabs |
| completionHandler:(ProceduralBlock)completionHandler; |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_TABS_ANIMATION_COMMANDS_H_ |