// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_BASE_IOS_CRU_CONTEXT_MENU_HOLDER_H_ #define UI_BASE_IOS_CRU_CONTEXT_MENU_HOLDER_H_ #import #include "base/ios/block_types.h" // This class simply stores the information necessary to build a menu: // a menu title, a list of item titles and associated actions (blocks). @interface CRUContextMenuHolder : NSObject // Designated initializer. - (instancetype)init; // Menu title; can be nil. @property(nonatomic, copy) NSString* menuTitle; // A list of menu item titles in the order they will appear in the menu. @property(nonatomic, readonly, copy) NSArray* itemTitles; // A number of menu items. @property(nonatomic, readonly) NSUInteger itemCount; // Adds an item at the end of the menu. - (void)appendItemWithTitle:(NSString*)title action:(ProceduralBlock)action; // Adds an item at the end of the menu. If |dismissImmediately| is YES, // then tapping this item will cause the context menu to be dismissed without // any animation. - (void)appendItemWithTitle:(NSString*)title action:(ProceduralBlock)action dismissImmediately:(BOOL)dismissImmediately; // Performs the action for the item at the given index. - (void)performActionAtIndex:(NSUInteger)index; // Returns YES if the action at |index| should cause the context menu to // dismiss without any animation. - (BOOL)shouldDismissImmediatelyOnClickedAtIndex:(NSUInteger)index; @end #endif // UI_BASE_IOS_CRU_CONTEXT_MENU_HOLDER_H_