09f7b59a3526eae767977ec00693d675fbc2aa9f
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / bookmarks / bookmark_name_folder_controller.h
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
8 #import <Cocoa/Cocoa.h>
9
10 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_ptr.h"
12
13 class BookmarkModelObserverForCocoa;
14 class BookmarkNode;
15 class Profile;
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   base::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_