148486893f46d2e12e926682a3ecb908716bc66c4Chris Lattner// Copyright (c) 2011 The Chromium Authors. All rights reserved. 29769ab22265b313171d201b5928688524a01bd87Misha Brukman// Use of this source code is governed by a BSD-style license that can be 36fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell// found in the LICENSE file. 46fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell 57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner#ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner#define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 79769ab22265b313171d201b5928688524a01bd87Misha Brukman 86fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell#import <Cocoa/Cocoa.h> 9febdf58538c2510ec1c24d3a856420792c53debeChris Lattner 10bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer#include "base/mac/scoped_nsobject.h" 1102dea8b39f3acad5de1df36273444d149145e7fcDan Gohman#include "base/memory/scoped_ptr.h" 12009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 13009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattnerclass BookmarkModelObserverForCocoa; 14674be02d525d4e24bc6943ed9274958c580bcfbcJakub Staszakclass BookmarkNode; 15674be02d525d4e24bc6943ed9274958c580bcfbcJakub Staszakclass Profile; 16009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 175a96f93573439be771ce9609fa2a5754c94485b6Chris Lattner// A controller for dialog to let the user create a new folder or 18255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruth// rename an existing folder. Accessible from a context menu on a 190b8c9a80f20772c3793201ab5b251d3520b9cea3Chandler Carruth// bookmark button or the bookmark bar. 200b8c9a80f20772c3793201ab5b251d3520b9cea3Chandler Carruth@interface BookmarkNameFolderController : NSWindowController { 2140be1e85665d10f5444186f0e7106e368dd735b8Filip Pizlo @private 221f6efa3996dd1929fbc129203ce5009b620e6969Michael J. Spencer IBOutlet NSTextField* nameField_; 23009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner IBOutlet NSButton* okButton_; 24d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke 25d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke NSWindow* parentWindow_; // weak 26e6e8826870bee3facb04f950f0bd725f8a88623dBill Wendling Profile* profile_; // weak 27009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 2812ddd409535b52a7fa5157ded9a4cedd161fedb6Benjamin Kramer // Weak; owned by the model. Can be NULL (see below). Either node_ 293821176b2eb9fe5e66929f3df6f204fa6cb2e4d6Chris Lattner // is non-NULL (renaming a folder), or parent_ is non-NULL (adding a 30009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner // new one). 3118961504fc2b299578dba817900a0696cf3ccc4dChris Lattner const BookmarkNode* node_; 3217fcdd5e1b78b829068ca657c97357a39d6e768bChris Lattner const BookmarkNode* parent_; 33a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman int newIndex_; 34a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman 35a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman base::scoped_nsobject<NSString> initialName_; 36a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman 37a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman // Ping me when things change out from under us. 380a0e68a7eac0513505aff3079e2d5d6864e51895Gabor Greif scoped_ptr<BookmarkModelObserverForCocoa> observer_; 390e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman} 400e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman 410e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman// Use the 1st initializer for a "rename existing folder" request. 420e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman// 430e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman// Use the 2nd initializer for an "add folder" request. If creating a 440e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman// new folder |parent| and |newIndex| specify where to put the new 450e1a9f27bd6451897144f99ff2b2081986077896Michael Gottesman// node. 461012919ed8b3e2cd4b421c104ce9d8f4e20ced9dGabor Greif- (id)initWithParentWindow:(NSWindow*)window 470a0e68a7eac0513505aff3079e2d5d6864e51895Gabor Greif profile:(Profile*)profile 487eef1800ea8745a814b86c8610086e9f16312dcaGabor Greif node:(const BookmarkNode*)node; 49c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif- (id)initWithParentWindow:(NSWindow*)window 50c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif profile:(Profile*)profile 51c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif parent:(const BookmarkNode*)parent 52f3841fcbd587c31aa9842b3f33bd57de40c9f443Gabor Greif newIndex:(int)newIndex; 530a0e68a7eac0513505aff3079e2d5d6864e51895Gabor Greif- (void)runAsModalSheet; 547309be6735666143bd9835b275dc8501617a2591Gabor Greif- (IBAction)cancel:(id)sender; 5518961504fc2b299578dba817900a0696cf3ccc4dChris Lattner- (IBAction)ok:(id)sender; 5618961504fc2b299578dba817900a0696cf3ccc4dChris Lattner@end 57a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman 58a1456e1cb8ade1befa7fc9cdac8fd542862cbcd8Michael Gottesman@interface BookmarkNameFolderController(TestingAPI) 59bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer- (NSString*)folderName; 60bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer- (void)setFolderName:(NSString*)name; 61bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer- (NSButton*)okButton; 62bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer@end 63bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer 64bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4Reid Spencer#endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_NAME_FOLDER_CONTROLLER_H_ 651f6efa3996dd1929fbc129203ce5009b620e6969Michael J. Spencer