Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Unified Diff: ios/chrome/browser/ui/tools_menu/tools_menu_model.h

Issue 2706293008: [ios] Creates ToolsMenuModel Class (Closed)
Patch Set: Format Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/ui/tools_menu/BUILD.gn ('k') | ios/chrome/browser/ui/tools_menu/tools_menu_model.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/ui/tools_menu/tools_menu_model.h
diff --git a/ios/chrome/browser/ui/tools_menu/tools_menu_model.h b/ios/chrome/browser/ui/tools_menu/tools_menu_model.h
new file mode 100644
index 0000000000000000000000000000000000000000..2965b49115a1d3c976c66ccfe50cd466d8538a0c
--- /dev/null
+++ b/ios/chrome/browser/ui/tools_menu/tools_menu_model.h
@@ -0,0 +1,83 @@
+// Copyright 2017 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 IOS_CHROME_BROWSER_UI_TOOLS_MENU_TOOLS_MENU_MODEL_H_
+#define IOS_CHROME_BROWSER_UI_TOOLS_MENU_TOOLS_MENU_MODEL_H_
+
+#import <Foundation/Foundation.h>
+
+// New Tab item accessibility Identifier.
+extern NSString* const kToolsMenuNewTabId;
+// New incognito Tab item accessibility Identifier.
+extern NSString* const kToolsMenuNewIncognitoTabId;
+// Close all Tabs item accessibility Identifier.
+extern NSString* const kToolsMenuCloseAllTabsId;
+// Close all incognito Tabs item accessibility Identifier.
+extern NSString* const kToolsMenuCloseAllIncognitoTabsId;
+// Bookmarks item accessibility Identifier.
+extern NSString* const kToolsMenuBookmarksId;
+// Reading List item accessibility Identifier.
+extern NSString* const kToolsMenuReadingListId;
+// Other Devices item accessibility Identifier.
+extern NSString* const kToolsMenuOtherDevicesId;
+// History item accessibility Identifier.
+extern NSString* const kToolsMenuHistoryId;
+// Report an issue item accessibility Identifier.
+extern NSString* const kToolsMenuReportAnIssueId;
+// Find in Page item accessibility Identifier.
+extern NSString* const kToolsMenuFindInPageId;
+// Reader Mode item accessibility Identifier.
+extern NSString* const kToolsMenuReaderMode;
+// Request desktop item accessibility Identifier.
+extern NSString* const kToolsMenuRequestDesktopId;
+// Settings item accessibility Identifier.
+extern NSString* const kToolsMenuSettingsId;
+// Help item accessibility Identifier.
+extern NSString* const kToolsMenuHelpId;
+// Suggestions item accessibility Identifier.
+extern NSString* const kToolsMenuSuggestionsId;
+
+// Total number of possible menu items.
+const int kToolsMenuNumberOfItems = 15;
+
+// Initialization table for all possible commands to initialize the
+// tools menu at run time. Data initialized into this structure is not mutable.
+struct MenuItemInfo {
+ int title_id;
+ NSString* accessibility_id;
+ int command_id;
+ int toolbar_types;
+ // |visibility| is applied if a menu item is included for a given
+ // |toolbar_types|. A value of 0 means the menu item is always visible for
+ // the given |toolbar_types|.
+ int visibility;
+ // Custom class, if any, for the menu item, or |nil|.
+ Class item_class;
+};
+
+// Flags for different toolbar types
+typedef NS_OPTIONS(NSUInteger, ToolbarType) {
+ // clang-format off
+ ToolbarTypeNone = 0,
+ ToolbarTypeWebiPhone = 1 << 0,
+ ToolbarTypeWebiPad = 1 << 1,
+ ToolbarTypeNoTabsiPad = 1 << 2,
+ ToolbarTypeSwitcheriPhone = 1 << 3,
+ ToolbarTypeWebAll = ToolbarTypeWebiPhone | ToolbarTypeWebiPad,
+ ToolbarTypeAll = ToolbarTypeWebAll |
+ ToolbarTypeSwitcheriPhone |
+ ToolbarTypeNoTabsiPad,
+ // clang-format on
+};
+
+// All possible items.
+extern const MenuItemInfo itemInfoList[kToolsMenuNumberOfItems];
+
+// Returns true if a given item should be visible based on the Toolbar type
+// and if incognito mode or not.
+bool ToolsMenuItemShouldBeVisible(const MenuItemInfo& item,
+ bool incognito,
+ ToolbarType toolbarType);
+
+#endif // IOS_CHROME_BROWSER_UI_TOOLS_MENU_TOOLS_MENU_MODEL_H_
« no previous file with comments | « ios/chrome/browser/ui/tools_menu/BUILD.gn ('k') | ios/chrome/browser/ui/tools_menu/tools_menu_model.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698