chromium/ios/chrome/browser/ui/popup_menu/public/cells/popup_menu_item.h

// Copyright 2018 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_UI_POPUP_MENU_PUBLIC_CELLS_POPUP_MENU_ITEM_H_
#define IOS_CHROME_BROWSER_UI_POPUP_MENU_PUBLIC_CELLS_POPUP_MENU_ITEM_H_

#import <UIKit/UIKit.h>

// Identifier for the action associated with a popup menu item.
typedef NS_ENUM(NSInteger, PopupMenuAction) {
  PopupMenuActionReload,
  PopupMenuActionStop,
  PopupMenuActionOpenDownloads,
  PopupMenuActionOpenNewTab,
  PopupMenuActionOpenNewIncognitoTab,
  PopupMenuActionReadLater,
  PopupMenuActionPageBookmark,
  PopupMenuActionTranslate,
  PopupMenuActionFindInPage,
  PopupMenuActionRequestDesktop,
  PopupMenuActionRequestMobile,
  PopupMenuActionSiteInformation,
  PopupMenuActionReportIssue,
  PopupMenuActionHelp,
  PopupMenuActionTextZoom,
  PopupMenuActionPriceNotifications,
#if !defined(NDEBUG)
  PopupMenuActionViewSource,
#endif  // !defined(NDEBUG)
  PopupMenuActionOpenNewWindow,
  PopupMenuActionFollow,
  PopupMenuActionBookmarks,
  PopupMenuActionReadingList,
  PopupMenuActionRecentTabs,
  PopupMenuActionHistory,
  PopupMenuActionSettings,
  // Textual popup menu
  PopupMenuActionEnterpriseInfoMessage,
};

// Protocol defining a popup item.
@protocol PopupMenuItem

// Action identifier for the popup item.
@property(nonatomic, assign) PopupMenuAction actionIdentifier;

// Returns the size needed to display the cell associated with this item.
- (CGSize)cellSizeForWidth:(CGFloat)width;

@end

#endif  // IOS_CHROME_BROWSER_UI_POPUP_MENU_PUBLIC_CELLS_POPUP_MENU_ITEM_H_