bookmark_node_applescript.h revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_ 621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_ 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#import <Cocoa/Cocoa.h> 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#import "chrome/browser/ui/cocoa/applescript/element_applescript.h" 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass BookmarkModel; 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass BookmarkNode; 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Contains all the elements that are common to both a bookmark folder and 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// bookmark item. 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@interface BookmarkNodeAppleScript : ElementAppleScript { 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen @protected 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const BookmarkNode* bookmarkNode_; // weak. 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Contains the temporary title when a scripter creates a new folder/item with 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // title specified like 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // |make new bookmark folder with properties {title:"foo"}|. 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen NSString* tempTitle_; 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Does not actually create a folder/item but just sets its ID, the folder is 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// created in insertInBookmarksFolder: in the corresponding bookmarks folder. 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (id)init; 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Does not make a folder/item but instead uses an existing one. 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (id)initWithBookmarkNode:(const BookmarkNode*)aBookmarkNode; 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Assigns a node, sets its unique ID and also copies temporary values. 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)setBookmarkNode:(const BookmarkNode*)aBookmarkNode; 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Get and Set title. 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (NSString*)title; 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)setTitle:(NSString*)aTitle; 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 40201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch// Returns the index with respect to its parent bookmark folder. 41201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch- (NSNumber*)index; 42201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Returns the bookmark model of the browser, returns NULL if there is an error. 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (BookmarkModel*)bookmarkModel; 45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@end 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif // CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_ 49