1 // Copyright 2015 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.
5 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_
6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_
8 #include "base/strings/string16.h"
10 #include "chrome/browser/ui/browser.h"
11 #include "content/public/browser/download_item.h"
12 #include "content/public/browser/page_navigator.h"
13 #include "ui/gfx/image/image.h"
15 class DownloadCommands
{
18 SHOW_IN_FOLDER
= 1, // Open a folder view window with the item selected.
19 OPEN_WHEN_COMPLETE
, // Open the download when it's finished.
20 ALWAYS_OPEN_TYPE
, // Default this file extension to always open.
21 PLATFORM_OPEN
, // Open using platform handler.
22 CANCEL
, // Cancel the download.
23 PAUSE
, // Pause a download.
24 RESUME
, // Resume a download.
25 DISCARD
, // Discard the malicious download.
26 KEEP
, // Keep the malicious download.
27 RETRY
, // Retry the download.
28 LEARN_MORE_SCANNING
, // Show information about download scanning.
29 LEARN_MORE_INTERRUPTED
, // Show information about interrupted downloads.
32 // |download_item| must outlive DownloadCommands.
33 explicit DownloadCommands(content::DownloadItem
* download_item
);
34 virtual ~DownloadCommands() {}
36 gfx::Image
GetCommandIcon(Command command
);
38 bool IsCommandEnabled(Command command
) const;
39 bool IsCommandChecked(Command command
) const;
40 bool IsCommandVisible(Command command
) const;
41 void ExecuteCommand(Command command
);
43 #if defined(OS_WIN) || defined(OS_LINUX) || \
44 (defined(OS_MACOSX) && !defined(OS_IOS))
45 bool IsDownloadPdf() const;
46 bool CanOpenPdfInSystemViewer() const;
50 Browser
* GetBrowser() const;
52 int GetCommandIconId(Command command
);
54 int GetAlwaysOpenStringId() const;
56 content::DownloadItem
* const download_item_
;
59 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_