• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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