1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 7 #pragma once 8 9 #import <Cocoa/Cocoa.h> 10 11 #include "base/memory/scoped_nsobject.h" 12 #include "base/memory/scoped_ptr.h" 13 #include "chrome/browser/bookmarks/bookmark_model.h" 14 15 class BookmarkModelObserverForCocoa; 16 17 // A controller for dialog to let the user create a new folder or 18 // rename an existing folder. Accessible from a context menu on a 19 // bookmark button or the bookmark bar. 20 @interface BookmarkNameFolderController : NSWindowController { 21 @private 22 IBOutlet NSTextField* nameField_; 23 IBOutlet NSButton* okButton_; 24 25 NSWindow* parentWindow_; // weak 26 Profile* profile_; // weak 27 28 // Weak; owned by the model. Can be NULL (see below). Either node_ 29 // is non-NULL (renaming a folder), or parent_ is non-NULL (adding a 30 // new one). 31 const BookmarkNode* node_; 32 const BookmarkNode* parent_; 33 int newIndex_; 34 35 scoped_nsobject<NSString> initialName_; 36 37 // Ping me when things change out from under us. 38 scoped_ptr<BookmarkModelObserverForCocoa> observer_; 39 } 40 41 // Use the 1st initializer for a "rename existing folder" request. 42 // 43 // Use the 2nd initializer for an "add folder" request. If creating a 44 // new folder |parent| and |newIndex| specify where to put the new 45 // node. 46 - (id)initWithParentWindow:(NSWindow*)window 47 profile:(Profile*)profile 48 node:(const BookmarkNode*)node; 49 - (id)initWithParentWindow:(NSWindow*)window 50 profile:(Profile*)profile 51 parent:(const BookmarkNode*)parent 52 newIndex:(int)newIndex; 53 - (void)runAsModalSheet; 54 - (IBAction)cancel:(id)sender; 55 - (IBAction)ok:(id)sender; 56 @end 57 58 @interface BookmarkNameFolderController(TestingAPI) 59 - (NSString*)folderName; 60 - (void)setFolderName:(NSString*)name; 61 - (NSButton*)okButton; 62 @end 63 64 #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 65