15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2010 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#import <Cocoa/Cocoa.h>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#import "chrome/browser/ui/cocoa/applescript/element_applescript.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BookmarkModel;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BookmarkNode;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Contains all the elements that are common to both a bookmark folder and
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// bookmark item.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@interface BookmarkNodeAppleScript : ElementAppleScript {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @protected
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* bookmarkNode_;  // weak.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Contains the temporary title when a scripter creates a new folder/item with
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // title specified like
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // |make new bookmark folder with properties {title:"foo"}|.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NSString* tempTitle_;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Does not actually create a folder/item but just sets its ID, the folder is
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// created in insertInBookmarksFolder: in the corresponding bookmarks folder.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)init;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Does not make a folder/item but instead uses an existing one.
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)initWithBookmarkNode:(const BookmarkNode*)aBookmarkNode;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Assigns a node, sets its unique ID and also copies temporary values.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (void)setBookmarkNode:(const BookmarkNode*)aBookmarkNode;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Get and Set title.
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)title;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (void)setTitle:(NSString*)aTitle;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the index with respect to its parent bookmark folder.
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSNumber*)index;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the bookmark model of the browser, returns NULL if there is an error.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (BookmarkModel*)bookmarkModel;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_NODE_APPLESCRIPT_H_
49