| Index: chrome/browser/download_util.h
|
| ===================================================================
|
| --- chrome/browser/download_util.h (revision 2162)
|
| +++ chrome/browser/download_util.h (working copy)
|
| @@ -1,192 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -//
|
| -// Download utilities.
|
| -
|
| -#ifndef CHROME_BROWSER_DOWNLOAD_UTIL_H__
|
| -#define CHROME_BROWSER_DOWNLOAD_UTIL_H__
|
| -
|
| -#include <objidl.h>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/task.h"
|
| -#include "chrome/browser/views/download_item_view.h"
|
| -#include "chrome/views/event.h"
|
| -#include "chrome/views/menu.h"
|
| -#include "chrome/views/view.h"
|
| -
|
| -class DownloadItem;
|
| -class SkBitmap;
|
| -
|
| -namespace download_util {
|
| -
|
| -// DownloadContextMenu ---------------------------------------------------------
|
| -
|
| -// The base class of context menus that provides the various commands.
|
| -// Subclasses are responsible for creating and running the menu.
|
| -class BaseContextMenu : public Menu::Delegate {
|
| - public:
|
| - explicit BaseContextMenu(DownloadItem* download);
|
| - virtual ~BaseContextMenu();
|
| -
|
| - enum ContextMenuCommands {
|
| - SHOW_IN_FOLDER = 1, // Open an Explorer window with the item highlighted
|
| - COPY_LINK, // Copy the download's URL to the clipboard
|
| - COPY_PATH, // Copy the download's full path to the clipboard
|
| - COPY_FILE, // Copy the downloaded file to the clipboard
|
| - OPEN_WHEN_COMPLETE, // Open the download when it's finished
|
| - ALWAYS_OPEN_TYPE, // Default this file extension to always open
|
| - REMOVE_ITEM, // Remove the download
|
| - CANCEL, // Cancel the download
|
| - MENU_LAST
|
| - };
|
| -
|
| - // Menu::Delegate interface
|
| - virtual bool IsItemChecked(int id) const;
|
| - virtual bool IsItemDefault(int id) const;
|
| - virtual std::wstring GetLabel(int id) const;
|
| - virtual bool SupportsCommand(int id) const;
|
| - virtual bool IsCommandEnabled(int id) const;
|
| - virtual void ExecuteCommand(int id);
|
| -
|
| - protected:
|
| - // Information source.
|
| - DownloadItem* download_;
|
| -
|
| - private:
|
| - DISALLOW_EVIL_CONSTRUCTORS(BaseContextMenu);
|
| -};
|
| -
|
| -// Menu for the download shelf.
|
| -class DownloadShelfContextMenu : public BaseContextMenu {
|
| - public:
|
| - DownloadShelfContextMenu(DownloadItem* download,
|
| - HWND window,
|
| - DownloadItemView::BaseDownloadItemModel* model,
|
| - const CPoint& point);
|
| - virtual ~DownloadShelfContextMenu();
|
| -
|
| - virtual bool IsItemDefault(int id) const;
|
| - virtual void ExecuteCommand(int id);
|
| -
|
| - private:
|
| - // A model to control the cancel behavior.
|
| - DownloadItemView::BaseDownloadItemModel* model_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadShelfContextMenu);
|
| -};
|
| -
|
| -// Menu for the download destination view.
|
| -class DownloadDestinationContextMenu : public BaseContextMenu {
|
| - public:
|
| - DownloadDestinationContextMenu(DownloadItem* download,
|
| - HWND window,
|
| - const CPoint& point);
|
| - virtual ~DownloadDestinationContextMenu();
|
| -
|
| - private:
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadDestinationContextMenu);
|
| -};
|
| -
|
| -// DownloadProgressTask --------------------------------------------------------
|
| -
|
| -// A class for managing the timed progress animations for a download view. The
|
| -// view must implement an UpdateDownloadProgress() method.
|
| -template<class DownloadView>
|
| -class DownloadProgressTask : public Task {
|
| - public:
|
| - DownloadProgressTask(DownloadView* view) : view_(view) {}
|
| - virtual ~DownloadProgressTask() {}
|
| - virtual void Run() {
|
| - view_->UpdateDownloadProgress();
|
| - }
|
| - private:
|
| - DownloadView* view_;
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadProgressTask);
|
| -};
|
| -
|
| -// Download opening ------------------------------------------------------------
|
| -
|
| -// Whether it is OK to open this download.
|
| -bool CanOpenDownload(DownloadItem* download);
|
| -
|
| -// Open the file associated with this download (wait for the download to
|
| -// complete if it is in progress).
|
| -void OpenDownload(DownloadItem* download);
|
| -
|
| -// Download progress animations ------------------------------------------------
|
| -
|
| -// Arc sweep angle for use with downloads of unknown size
|
| -const int kUnknownAngleDegrees = 50;
|
| -
|
| -// Rate of progress for use with downloads of unknown size
|
| -const int kUnknownIncrementDegrees = 12;
|
| -
|
| -// Start angle for downloads with known size (midnight position)
|
| -const int kStartAngleDegrees = -90;
|
| -
|
| -// A circle
|
| -const int kMaxDegrees = 360;
|
| -
|
| -// Progress animation timer period, in milliseconds.
|
| -const int kProgressRateMs = 150;
|
| -
|
| -// XP and Vista must support icons of this size.
|
| -const int kSmallIconSize = 16;
|
| -const int kBigIconSize = 32;
|
| -
|
| -// Our progress halo around the icon
|
| -const int kSmallProgressIconSize = 39;
|
| -const int kBigProgressIconSize = 52;
|
| -
|
| -// The offset required to center the icon in the progress bitmaps.
|
| -const int kSmallProgressIconOffset =
|
| - (kSmallProgressIconSize - kSmallIconSize) / 2;
|
| -const int kBigProgressIconOffset = (kBigProgressIconSize - kBigIconSize) / 2;
|
| -
|
| -enum PaintDownloadProgressSize {
|
| - SMALL = 0,
|
| - BIG
|
| -};
|
| -
|
| -// Paint the common download animation progress foreground and background,
|
| -// clipping the foreground to 'percent' full. If percent is -1, then we don't
|
| -// know the total size, so we just draw a rotating segment until we're done.
|
| -//
|
| -// |containing_view| is the View subclass within which the progress animation
|
| -// is drawn (generally either DownloadItemTabView or DownloadItemView). We
|
| -// require the containing View in addition to the canvas because if we are
|
| -// drawing in a right-to-left locale, we need to mirror the position of the
|
| -// progress animation within the containing View.
|
| -void PaintDownloadProgress(ChromeCanvas* canvas,
|
| - ChromeViews::View* containing_view,
|
| - int origin_x,
|
| - int origin_y,
|
| - int start_angle,
|
| - int percent,
|
| - PaintDownloadProgressSize size);
|
| -
|
| -void PaintDownloadComplete(ChromeCanvas* canvas,
|
| - ChromeViews::View* containing_view,
|
| - int origin_x,
|
| - int origin_y,
|
| - double animation_progress,
|
| - PaintDownloadProgressSize size);
|
| -
|
| -// Drag support ----------------------------------------------------------------
|
| -
|
| -// Helper function for download views to use when acting as a drag source for a
|
| -// DownloadItem. If 'icon' is NULL, no image will be accompany the drag.
|
| -void DragDownload(const DownloadItem* download, SkBitmap* icon);
|
| -
|
| -// Executable file support -----------------------------------------------------
|
| -
|
| -// Copy all executable file extensions.
|
| -void InitializeExeTypes(std::set<std::wstring>* exe_extensions);
|
| -
|
| -} // namespace download_util
|
| -
|
| -
|
| -#endif // CHROME_BROWSER_DOWNLOAD_UTIL_H__
|
| -
|
|
|