Home | History | Annotate | Download | only in bookmarks
      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