[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 1 | // Copyright (c) 2012 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_BROWSER_COMMANDS_H_ |
| 6 | #define CHROME_BROWSER_UI_BROWSER_COMMANDS_H_ |
| 7 | #pragma once |
| 8 | |
[email protected] | 2cd4fde | 2012-06-26 03:10:26 | [diff] [blame] | 9 | #include <string> |
| 10 | |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 11 | #include "chrome/browser/debugger/devtools_toggle_action.h" |
| 12 | #include "content/public/common/page_zoom.h" |
| 13 | #include "webkit/glue/window_open_disposition.h" |
| 14 | |
| 15 | class Browser; |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 16 | class CommandObserver; |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 17 | class GURL; |
| 18 | class Profile; |
[email protected] | 2cd4fde | 2012-06-26 03:10:26 | [diff] [blame] | 19 | class TabContents; |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 20 | |
| 21 | namespace content { |
| 22 | class WebContents; |
| 23 | struct SSLStatus; |
| 24 | } |
| 25 | |
| 26 | namespace chrome { |
| 27 | |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 28 | // For all commands, where a tab is not specified, the active tab is assumed. |
| 29 | |
| 30 | bool IsCommandEnabled(Browser* browser, int command); |
| 31 | bool SupportsCommand(Browser* browser, int command); |
| 32 | bool ExecuteCommand(Browser* browser, int command); |
| 33 | bool ExecuteCommandWithDisposition(Browser* browser, |
| 34 | int command, |
| 35 | WindowOpenDisposition disposition); |
| 36 | void UpdateCommandEnabled(Browser* browser, int command, bool enabled); |
| 37 | void AddCommandObserver(Browser*, int command, CommandObserver* observer); |
| 38 | void RemoveCommandObserver(Browser*, int command, CommandObserver* observer); |
| 39 | |
| 40 | int GetContentRestrictions(const Browser* browser); |
| 41 | |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 42 | // Opens a new window with the default blank tab. |
| 43 | void NewEmptyWindow(Profile* profile); |
| 44 | |
| 45 | // Opens a new window with the default blank tab. This bypasses metrics and |
| 46 | // various internal bookkeeping; NewEmptyWindow (above) is preferred. |
| 47 | Browser* OpenEmptyWindow(Profile* profile); |
| 48 | |
| 49 | // Opens a new window with the tabs from |profile|'s TabRestoreService. |
| 50 | void OpenWindowWithRestoredTabs(Profile* profile); |
| 51 | |
| 52 | // Opens the specified URL in a new browser window in an incognito session. |
| 53 | // If there is already an existing active incognito session for the specified |
| 54 | // |profile|, that session is re-used. |
| 55 | void OpenURLOffTheRecord(Profile* profile, const GURL& url); |
| 56 | |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 57 | bool CanGoBack(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 58 | void GoBack(Browser* browser, WindowOpenDisposition disposition); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 59 | bool CanGoForward(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 60 | void GoForward(Browser* browser, WindowOpenDisposition disposition); |
| 61 | bool NavigateToIndexWithDisposition(Browser* browser, |
| 62 | int index, |
| 63 | WindowOpenDisposition disp); |
| 64 | void Reload(Browser* browser, WindowOpenDisposition disposition); |
| 65 | void ReloadIgnoringCache(Browser* browser, WindowOpenDisposition disposition); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 66 | bool CanReload(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 67 | void Home(Browser* browser, WindowOpenDisposition disposition); |
| 68 | void OpenCurrentURL(Browser* browser); |
| 69 | void Stop(Browser* browser); |
| 70 | void NewWindow(Browser* browser); |
| 71 | void NewIncognitoWindow(Browser* browser); |
| 72 | void CloseWindow(Browser* browser); |
| 73 | void NewTab(Browser* browser); |
| 74 | void CloseTab(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 75 | void RestoreTab(Browser* browser); |
| 76 | bool CanRestoreTab(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 77 | void SelectNextTab(Browser* browser); |
| 78 | void SelectPreviousTab(Browser* browser); |
| 79 | void OpenTabpose(Browser* browser); // Mac-only |
| 80 | void MoveTabNext(Browser* browser); |
| 81 | void MoveTabPrevious(Browser* browser); |
| 82 | void SelectNumberedTab(Browser* browser, int index); |
| 83 | void SelectLastTab(Browser* browser); |
| 84 | void DuplicateTab(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 85 | bool CanDuplicateTab(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 86 | void ConvertPopupToTabbedBrowser(Browser* browser); |
| 87 | void Exit(); |
| 88 | void BookmarkCurrentPage(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 89 | bool CanBookmarkCurrentPage(const Browser* browser); |
| 90 | void BookmarkAllTabs(Browser* browser); |
| 91 | bool CanBookmarkAllTabs(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 92 | void PinCurrentPageToStartScreen(Browser* browser); |
| 93 | void SavePage(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 94 | bool CanSavePage(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 95 | void ShowFindBar(Browser* browser); |
| 96 | void ShowPageInfo(Browser* browser, |
| 97 | content::WebContents* web_contents, |
| 98 | const GURL& url, |
| 99 | const content::SSLStatus& ssl, |
| 100 | bool show_history); |
| 101 | void ShowChromeToMobileBubble(Browser* browser); |
| 102 | void Print(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 103 | bool CanPrint(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 104 | void AdvancedPrint(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 105 | bool CanAdvancedPrint(const Browser* browser); |
[email protected] | d53e403 | 2012-06-29 18:58:34 | [diff] [blame] | 106 | void PrintToDestination(Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 107 | void EmailPageLocation(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 108 | bool CanEmailPageLocation(const Browser* browser); |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 109 | void Cut(Browser* browser); |
| 110 | void Copy(Browser* browser); |
| 111 | void Paste(Browser* browser); |
| 112 | void Find(Browser* browser); |
| 113 | void FindNext(Browser* browser); |
| 114 | void FindPrevious(Browser* browser); |
| 115 | void FindInPage(Browser* browser, bool find_next, bool forward_direction); |
| 116 | void Zoom(Browser* browser, content::PageZoom zoom); |
| 117 | void FocusToolbar(Browser* browser); |
| 118 | void FocusLocationBar(Browser* browser); |
| 119 | void FocusSearch(Browser* browser); |
| 120 | void FocusAppMenu(Browser* browser); |
| 121 | void FocusBookmarksToolbar(Browser* browser); |
| 122 | void FocusNextPane(Browser* browser); |
| 123 | void FocusPreviousPane(Browser* browser); |
| 124 | void ToggleDevToolsWindow(Browser* browser, DevToolsToggleAction action); |
| 125 | bool CanOpenTaskManager(); |
| 126 | void OpenTaskManager(Browser* browser, bool highlight_background_resources); |
| 127 | void OpenFeedbackDialog(Browser* browser); |
| 128 | void ToggleBookmarkBar(Browser* browser); |
| 129 | void ShowAppMenu(Browser* browser); |
| 130 | void ShowAvatarMenu(Browser* browser); |
| 131 | void OpenUpdateChromeDialog(Browser* browser); |
| 132 | void ToggleSpeechInput(Browser* browser); |
| 133 | |
[email protected] | 2cd4fde | 2012-06-26 03:10:26 | [diff] [blame] | 134 | // Opens view-source tab for given tab contents. |
| 135 | void ViewSource(Browser* browser, TabContents* tab); |
| 136 | |
| 137 | // Opens view-source tab for any frame within given tab contents. |
| 138 | void ViewSource(Browser* browser, |
| 139 | TabContents* tab, |
| 140 | const GURL& url, |
| 141 | const std::string& content_state); |
| 142 | |
| 143 | void ViewSelectedSource(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 144 | bool CanViewSource(const Browser* browser); |
| 145 | |
[email protected] | 619f8618 | 2012-07-03 21:30:18 | [diff] [blame^] | 146 | void CreateApplicationShortcuts(Browser* browser); |
[email protected] | 5d9829491 | 2012-06-27 22:57:40 | [diff] [blame] | 147 | bool CanCreateApplicationShortcuts(const Browser* browser); |
[email protected] | 2cd4fde | 2012-06-26 03:10:26 | [diff] [blame] | 148 | |
[email protected] | 40df6f5 | 2012-06-28 17:08:52 | [diff] [blame] | 149 | void ConvertTabToAppWindow(Browser* browser, content::WebContents* contents); |
| 150 | |
[email protected] | a37d4b0 | 2012-06-25 21:56:10 | [diff] [blame] | 151 | } // namespace chrome |
| 152 | |
| 153 | #endif // CHROME_BROWSER_UI_BROWSER_COMMANDS_H_ |