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

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm

Issue 2921083003: [Mac] Touch Bar Support for Dialogs (Closed)
Patch Set: Added test and renamed methods Created 3 years, 6 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
Index: chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm
index e172131151c3656c7eb743e9bf10582ea3d40ad7..e57bf053cc2995d241c82094d4f478f42cf6d509 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm
@@ -10,6 +10,8 @@
#include "base/logging.h"
#include "base/mac/bundle_locations.h"
#include "base/mac/foundation_util.h"
+#include "base/mac/mac_util.h"
+#import "base/mac/sdk_forward_declarations.h"
#include "base/strings/sys_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
@@ -20,17 +22,33 @@
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h"
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_tree_browser_cell.h"
#import "chrome/browser/ui/cocoa/browser_window_controller.h"
+#include "chrome/common/chrome_features.h"
+#include "chrome/grit/generated_resources.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/bookmarks/managed/managed_bookmark_service.h"
#include "components/strings/grit/components_strings.h"
+#include "ui/base/cocoa/touch_bar_util.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/l10n/l10n_util_mac.h"
#include "ui/base/material_design/material_design_controller.h"
+#include "ui/strings/grit/ui_strings.h"
using bookmarks::BookmarkExpandedStateTracker;
using bookmarks::BookmarkModel;
using bookmarks::BookmarkNode;
+namespace {
+
+// Touch bar identifier.
+NSString* const kBookmarkEditDialogTouchBarId = @"bookmark-edit-dialog";
+
+// Touch bar item identifiers.
+NSString* const kNewFolderTouchBarId = @"NEW-FOLDER";
+NSString* const kCancelTouchBarId = @"CANCEL";
+NSString* const kSaveTouchBarId = @"SAVE";
+
+} // end namespace
+
@interface BookmarkEditorBaseController ()
// Return the folder tree object for the given path.
@@ -341,6 +359,52 @@ NSString* const kOkEnabledName = @"okEnabled";
[self autorelease];
}
+- (NSTouchBar*)makeTouchBar {
+ if (!base::FeatureList::IsEnabled(features::kBrowserTouchBar))
+ return nil;
+
+ base::scoped_nsobject<NSTouchBar> touchBar([[ui::NSTouchBar() alloc] init]);
+ [touchBar setCustomizationIdentifier:ui::GetTouchBarId(
+ kBookmarkEditDialogTouchBarId)];
+ [touchBar setDelegate:self];
+
+ NSArray* dialogItems = @[
+ ui::GetTouchBarItemId(kBookmarkEditDialogTouchBarId, kNewFolderTouchBarId),
+ ui::GetTouchBarItemId(kBookmarkEditDialogTouchBarId, kCancelTouchBarId),
+ ui::GetTouchBarItemId(kBookmarkEditDialogTouchBarId, kSaveTouchBarId)
+ ];
+
+ [touchBar setDefaultItemIdentifiers:dialogItems];
+ [touchBar setCustomizationAllowedItemIdentifiers:dialogItems];
+ return touchBar.autorelease();
+}
+
+- (NSTouchBarItem*)touchBar:(NSTouchBar*)touchBar
+ makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier {
+ NSButton* button = nil;
+ if ([identifier hasSuffix:kNewFolderTouchBarId]) {
+ button =
+ [NSButton buttonWithTitle:l10n_util::GetNSString(
+ IDS_BOOKMARK_EDITOR_NEW_FOLDER_BUTTON)
+ target:self
+ action:@selector(newFolder:)];
+ } else if ([identifier hasSuffix:kCancelTouchBarId]) {
+ button = [NSButton buttonWithTitle:l10n_util::GetNSString(IDS_APP_CANCEL)
+ target:self
+ action:@selector(cancel:)];
+ } else if ([identifier hasSuffix:kSaveTouchBarId]) {
+ button = ui::GetBlueTouchBarButton(l10n_util::GetNSString(IDS_SAVE), self,
+ @selector(ok:));
+ } else {
+ return nil;
+ }
+
+ base::scoped_nsobject<NSCustomTouchBarItem> item(
+ [[ui::NSCustomTouchBarItem() alloc] initWithIdentifier:identifier]);
+ [item setView:button];
+ return item.autorelease();
+}
+
#pragma mark Folder Tree Management
- (BookmarkModel*)bookmarkModel {

Powered by Google App Engine
This is Rietveld 408576698