1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 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_TAB_APPLESCRIPT_H_ 621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_TAB_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 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass TabContentsWrapper; 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Represents a tab scriptable item in applescript. 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@interface TabAppleScript : ElementAppleScript { 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen @private 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TabContentsWrapper* tabContents_; // weak. 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Contains the temporary URL when a user creates a new folder/item with 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // url specified like 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // |make new tab with properties {url:"http://google.com"}|. 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen NSString* tempURL_; 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Doesn't actually create the tab here but just assigns the ID, tab is created 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// when it calls insertInTabs: of a particular window, it is used in cases 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// where user assigns a tab to a variable like |set var to make new tab|. 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (id)init; 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Does not create a new tab but uses an existing one. 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen- (id)initWithTabContent:(TabContentsWrapper*)aTabContent; 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Assigns a tab, sets its unique ID and also copies temporary values. 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen- (void)setTabContent:(TabContentsWrapper*)aTabContent; 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Return the URL currently visible to the user in the location bar. 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (NSString*)URL; 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Sets the URL, returns an error if it is invalid. 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)setURL:(NSString*)aURL; 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// The title of the tab. 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (NSString*)title; 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Is the tab loading any resource? 45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (NSNumber*)loading; 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Standard user commands. 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesUndoScriptCommand:(NSScriptCommand*)command; 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesRedoScriptCommand:(NSScriptCommand*)command; 50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Edit operations on the page. 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesCutScriptCommand:(NSScriptCommand*)command; 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesCopyScriptCommand:(NSScriptCommand*)command; 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesPasteScriptCommand:(NSScriptCommand*)command; 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Selects all contents on the page. 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesSelectAllScriptCommand:(NSScriptCommand*)command; 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Navigation operations. 60bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesGoBackScriptCommand:(NSScriptCommand*)command; 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesGoForwardScriptCommand:(NSScriptCommand*)command; 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesReloadScriptCommand:(NSScriptCommand*)command; 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesStopScriptCommand:(NSScriptCommand*)command; 64bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 65bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Used to print a tab. 66bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesPrintScriptCommand:(NSScriptCommand*)command; 67bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 68bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Used to save a tab, if no file is specified, prompts the user to enter it. 69bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesSaveScriptCommand:(NSScriptCommand*)command; 70bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 71bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Displays the HTML of the tab in a new tab. 72bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (void)handlesViewSourceScriptCommand:(NSScriptCommand*)command; 73bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 74bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Executes a piece of javascript in the tab. 75bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (id)handlesExecuteJavascriptScriptCommand:(NSScriptCommand*)command; 76bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 77bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@end 78bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 7921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif// CHROME_BROWSER_UI_COCOA_APPLESCRIPT_TAB_APPLESCRIPT_H_ 80