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

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

Issue 2588733002: Upstream Chrome on iOS source code [9/11]. (Closed)
Patch Set: Created 4 years 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
Index: ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h
diff --git a/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..2ce699dc14191158c3a2fe08ee070f5a65eec35e
--- /dev/null
+++ b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h
@@ -0,0 +1,96 @@
+// Copyright 2014 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_VIEW_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_TOOLS_MENU_TOOLS_MENU_VIEW_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+@class ToolsMenuContext;
+
+// TODO(crbug.com/228521): Remove this once the new command/metric handling is
+// implemented. This is a temporary workaround to allow metrics recording to
+// distinguish the action. The value used is in the dynamic range (<
+// IDC_MinimumLabelValue) to avoid collisions.
+#define IDC_TEMP_EDIT_BOOKMARK 3900
+
+// The a11y ID of the tools menu items (used by integration tests).
+extern NSString* const kToolsMenuNewTabId;
+extern NSString* const kToolsMenuNewIncognitoTabId;
+extern NSString* const kToolsMenuCloseAllTabsId;
+extern NSString* const kToolsMenuCloseAllIncognitoTabsId;
+extern NSString* const kToolsMenuBookmarksId;
+extern NSString* const kToolsMenuOtherDevicesId;
+extern NSString* const kToolsMenuHistoryId;
+extern NSString* const kToolsMenuReportAnIssueId;
+extern NSString* const kToolsMenuShareId;
+extern NSString* const kToolsMenuDataSavingsId;
+extern NSString* const kToolsMenuFindInPageId;
+extern NSString* const kToolsMenuReaderMode;
+extern NSString* const kToolsMenuRequestDesktopId;
+extern NSString* const kToolsMenuSettingsId;
+extern NSString* const kToolsMenuHelpId;
+
+// Tools Popup Table Delegate Protocol
+@protocol ToolsPopupTableDelegate<NSObject>
+// Called when a menu item for command |commandID| is selected.
+// TODO(stuartmorgan): This is a temporary shim. Remove it once:
+// - the automatic command-based metrics system is in place, and
+// - we figure out a better way to dismiss the menu (maybe a provided block?)
+- (void)commandWasSelected:(int)commandID;
+@end
+
+// A table view with two icons in the first row and regular text cells in
+// subsequent rows.
+// For each icon and item in the menu there is a corresponding delegate method.
+@interface ToolsMenuViewController : UIViewController
+// Keeps track of the state (Bookmarked or not) of the current visible page.
+// This is used to alter the state of the popup menu (i.e. Add/Edit bookmark).
+@property(nonatomic, assign) BOOL isCurrentPageBookmarked;
+@property(nonatomic, assign) BOOL isTabLoading;
+// The tool button to be shown hovering above the popup.
+@property(nonatomic, readonly) UIButton* toolsButton;
+
+@property(nonatomic, assign) id<ToolsPopupTableDelegate> delegate;
+
+// Initializes the Tools popup menu.
+- (void)initializeMenu:(ToolsMenuContext*)context;
+
+// Returns the optimal height needed to display the menu items.
+// The height returned is usually less than the |suggestedHeight| unless
+// the last row of the menu puts the height just over the |suggestedHeight|.
+// If the Tools menu items is taller than the |suggestedHeight| by at least
+// one menu item, the last visible menu item will be shown partially so user
+// can tell that the Tools menu is scrollable.
+- (CGFloat)optimalHeight:(CGFloat)suggestedHeight;
+
+// Enable or disable menu item by IDC value.
+- (void)setItemEnabled:(BOOL)enabled withTag:(NSInteger)tag;
+
+// Called when the current tab loading state changes.
+- (void)setIsTabLoading:(BOOL)isTabLoading;
+
+// TODO(stuartmorgan): Should the set of options that are passed in to the
+// constructor just have the ability to specify whether commands should be
+// enabled or disabled rather than having these individual setters? crbug/228506
+// Informs tools popup menu whether "Find In Page..." command should be
+// enabled.
+- (void)setCanShowFindBar:(BOOL)enabled;
+
+// Informs tools popup menu whether "Share..." command should be enabled.
+- (void)setCanShowShareMenu:(BOOL)enabled;
+
+// Informs tools popup menu whether the switch to reader mode is possible.
+- (void)setCanUseReaderMode:(BOOL)enabled;
+
+// Informs tools popup menu whether "Request Desktop Site" can be enabled.
+- (void)setCanUseDesktopUserAgent:(BOOL)value;
+
+- (void)animateContentIn;
+
+- (void)hideContent;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_TOOLS_MENU_TOOLS_MENU_VIEW_CONTROLLER_H_
« no previous file with comments | « ios/chrome/browser/ui/tools_menu/tools_menu_context.mm ('k') | ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698