1// Copyright (c) 2010 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_APPLESCRIPT_WINDOW_APPLESCRIPT_H_ 6#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_WINDOW_APPLESCRIPT_H_ 7 8#import <Cocoa/Cocoa.h> 9 10#import "chrome/browser/ui/cocoa/applescript/element_applescript.h" 11 12class Browser; 13class Profile; 14@class TabAppleScript; 15 16// Represents a window class. 17@interface WindowAppleScript : ElementAppleScript { 18 @private 19 Browser* browser_; // weak. 20} 21 22// Creates a new window, returns nil if there is an error. 23- (id)init; 24 25// Creates a new window with a particular profile. 26- (id)initWithProfile:(Profile*)aProfile; 27 28// Does not create a new window but uses an existing one. 29- (id)initWithBrowser:(Browser*)aBrowser; 30 31// Sets and gets the index of the currently selected tab. 32- (NSNumber*)activeTabIndex; 33- (void)setActiveTabIndex:(NSNumber*)anActiveTabIndex; 34 35// Mode refers to whether a window is a normal window or an incognito window 36// it can be set only once while creating the window. 37- (NSString*)mode; 38- (void)setMode:(NSString*)theMode; 39 40// Returns the currently selected tab. 41- (TabAppleScript*)activeTab; 42 43// Tab manipulation functions. 44// The tabs inside the window. 45// Returns |TabAppleScript*| of all the tabs contained 46// within this particular folder. 47- (NSArray*)tabs; 48 49// Insert a tab at the end. 50- (void)insertInTabs:(TabAppleScript*)aTab; 51 52// Insert a tab at some position in the list. 53// Called by applescript which takes care of bounds checking, make sure of it 54// before calling directly. 55- (void)insertInTabs:(TabAppleScript*)aTab atIndex:(int)index; 56 57// Remove a window from the list. 58// Called by applescript which takes care of bounds checking, make sure of it 59// before calling directly. 60- (void)removeFromTabsAtIndex:(int)index; 61 62// Set the index of a window. 63- (void)setOrderedIndex:(NSNumber*)anIndex; 64 65// Used to sort windows by index. 66- (NSComparisonResult)windowComparator:(WindowAppleScript*)otherWindow; 67 68// For standard window functions like zoomable, bounds etc, we dont handle it 69// but instead pass it onto the NSWindow associated with the window. 70- (id)valueForUndefinedKey:(NSString*)key; 71- (void)setValue:(id)value forUndefinedKey:(NSString*)key; 72 73// Used to close window. 74- (void)handlesCloseScriptCommand:(NSCloseCommand*)command; 75 76// The index of the window, windows are ordered front to back. 77- (NSNumber*)orderedIndex; 78 79@end 80 81#endif // CHROME_BROWSER_UI_COCOA_APPLESCRIPT_WINDOW_APPLESCRIPT_H_ 82