| Index: chrome/browser/download_tab_view.h
|
| ===================================================================
|
| --- chrome/browser/download_tab_view.h (revision 2162)
|
| +++ chrome/browser/download_tab_view.h (working copy)
|
| @@ -1,252 +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.
|
| -
|
| -#ifndef CHROME_BROWSER_DONWLOAD_TAB_VIEW_H__
|
| -#define CHROME_BROWSER_DONWLOAD_TAB_VIEW_H__
|
| -
|
| -#include "base/hash_tables.h"
|
| -#include "chrome/browser/cancelable_request.h"
|
| -#include "chrome/browser/download_manager.h"
|
| -#include "chrome/browser/download_util.h"
|
| -#include "chrome/browser/icon_manager.h"
|
| -#include "chrome/browser/native_ui_contents.h"
|
| -#include "chrome/views/event.h"
|
| -#include "chrome/views/label.h"
|
| -#include "chrome/views/link.h"
|
| -#include "chrome/views/scroll_view.h"
|
| -
|
| -class DownloadTabView;
|
| -class SkBitmap;
|
| -class Task;
|
| -
|
| -namespace base {
|
| -class Timer;
|
| -}
|
| -
|
| -class DownloadItemTabView : public ChromeViews::View,
|
| - public ChromeViews::LinkController {
|
| - public:
|
| - DownloadItemTabView();
|
| - virtual ~DownloadItemTabView();
|
| -
|
| - // View overrides
|
| - virtual void Layout();
|
| - virtual void Paint(ChromeCanvas* canvas);
|
| - void PaintBackground(ChromeCanvas* canvas);
|
| - virtual void GetPreferredSize(CSize* out);
|
| - virtual void DidChangeBounds(const CRect& previous, const CRect& current);
|
| - virtual bool OnMousePressed(const ChromeViews::MouseEvent& event);
|
| - virtual bool OnMouseDragged(const ChromeViews::MouseEvent& event);
|
| -
|
| - // Mode specific layouts
|
| - void LayoutDate();
|
| - void LayoutComplete();
|
| - void LayoutCancelled();
|
| - void LayoutInProgress();
|
| -
|
| - // LinkController overrides
|
| - virtual void LinkActivated(ChromeViews::Link* source, int event_flags);
|
| -
|
| - // Used to set our model temporarily during layout and paint operations
|
| - void SetModel(DownloadItem* model, DownloadTabView* parent);
|
| -
|
| -private:
|
| - // Our model.
|
| - DownloadItem* model_;
|
| -
|
| - // Containing view.
|
| - DownloadTabView* parent_;
|
| -
|
| - // Time display.
|
| - ChromeViews::Label* since_;
|
| - ChromeViews::Label* date_;
|
| -
|
| - // The name of the file. Clicking this link will open the download.
|
| - ChromeViews::Link* file_name_;
|
| -
|
| - // The name of the downloaded URL.
|
| - ChromeViews::Label* download_url_;
|
| -
|
| - // The current status of the download.
|
| - ChromeViews::Label* time_remaining_;
|
| - ChromeViews::Label* download_progress_;
|
| -
|
| - // Actions that can be initiated.
|
| - ChromeViews::Link* pause_;
|
| - ChromeViews::Link* cancel_;
|
| - ChromeViews::Link* show_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadItemTabView);
|
| -};
|
| -
|
| -
|
| -// A view that manages each of the individual download views
|
| -// (DownloadItemTabView) in the destination tab.
|
| -class DownloadTabView : public ChromeViews::View,
|
| - public DownloadItem::Observer,
|
| - public DownloadManager::Observer {
|
| - public:
|
| - DownloadTabView(DownloadManager* model);
|
| - ~DownloadTabView();
|
| -
|
| - void Initialize();
|
| -
|
| - DownloadManager* model() const { return model_; }
|
| -
|
| - // View overrides
|
| - virtual void DidChangeBounds(const CRect& previous, const CRect& current);
|
| - virtual void Layout();
|
| - virtual void Paint(ChromeCanvas* canvas);
|
| - virtual bool GetFloatingViewIDForPoint(int x, int y, int* id);
|
| - virtual bool EnumerateFloatingViews(
|
| - ChromeViews::View::FloatingViewPosition position,
|
| - int starting_id, int* id);
|
| - virtual ChromeViews::View* ValidateFloatingViewForID(int id);
|
| -
|
| - // DownloadItem::Observer interface
|
| - virtual void OnDownloadUpdated(DownloadItem* download);
|
| -
|
| - // DownloadManager::Observer interface
|
| - virtual void ModelChanged();
|
| - virtual void SetDownloads(std::vector<DownloadItem*>& downloads);
|
| -
|
| - // IconManager callback interface
|
| - void OnExtractIconComplete(IconManager::Handle handle, SkBitmap* icon_bitmap);
|
| -
|
| - // Progress animation task interface and timer management.
|
| - void UpdateDownloadProgress();
|
| - void StartDownloadProgress();
|
| - void StopDownloadProgress();
|
| -
|
| - // Returns a non owning pointer to an icon in the icon_cache_. If
|
| - // that file extension doesn't exist in our cache, we query Windows
|
| - // and add it to our cache. Returns NULL if we can't determine the
|
| - // icon.
|
| - SkBitmap* LookupIcon(DownloadItem* download);
|
| -
|
| - // Determine if we should draw the date beside a particular download
|
| - bool ShouldDrawDateForDownload(DownloadItem* download);
|
| -
|
| - virtual int GetPageScrollIncrement(ChromeViews::ScrollView* scroll_view,
|
| - bool is_horizontal, bool is_positive);
|
| - virtual int GetLineScrollIncrement(ChromeViews::ScrollView* scroll_view,
|
| - bool is_horizontal, bool is_positive);
|
| -
|
| - int start_angle() const { return start_angle_; }
|
| -
|
| - // Called by a DownloadItemTabView when it becomes selected. Passing a NULL
|
| - // for 'download' causes any selected download to become unselected.
|
| - void ItemBecameSelected(const DownloadItem* download);
|
| - bool ItemIsSelected(DownloadItem* download);
|
| -
|
| - // The destination view's search box text has changed.
|
| - void SetSearchText(const std::wstring& search_text);
|
| -
|
| - private:
|
| - // Creates and attaches to the view the floating view at |index|.
|
| - ChromeViews::View* CreateFloatingViewForIndex(int index);
|
| -
|
| - // Utility functions for operating on DownloadItemTabViews by index.
|
| - void SchedulePaintForViewAtIndex(int index);
|
| - int GetYPositionForIndex(int index);
|
| -
|
| - // Initiates an asynchronous icon extraction.
|
| - void LoadIcon(DownloadItem* download);
|
| -
|
| - // Clears the list of "in progress" downloads and removes the this
|
| - // DownloadTabView from their observer list.
|
| - void ClearDownloadInProgress();
|
| -
|
| - // Our model
|
| - DownloadManager* model_;
|
| -
|
| - // For drawing individual download items
|
| - DownloadItemTabView download_renderer_;
|
| -
|
| - // The current set of visible DownloadItems for this view received from the
|
| - // DownloadManager. DownloadManager owns the DownloadItems. The vector is
|
| - // kept in order, sorted by ascending start time.
|
| - typedef std::vector<DownloadItem*> OrderedDownloads;
|
| - OrderedDownloads downloads_;
|
| -
|
| - // Progress animations
|
| - base::RepeatingTimer<DownloadTabView> progress_timer_;
|
| -
|
| - // Since this view manages the progress animation timers for all the floating
|
| - // views, we need to track the current in progress downloads. This container
|
| - // does not own the DownloadItems.
|
| - base::hash_set<DownloadItem*> in_progress_;
|
| -
|
| - // Provide a start position for downloads with no known size.
|
| - int start_angle_;
|
| -
|
| - ChromeViews::FixedRowHeightScrollHelper scroll_helper_;
|
| -
|
| - // Keep track of the currently selected view, so that we can inform it when
|
| - // the user changes the selection.
|
| - int selected_index_;
|
| -
|
| - // Text in the download search box input by the user.
|
| - std::wstring search_text_;
|
| -
|
| - // For requesting icons from the IconManager.
|
| - CancelableRequestConsumerT<DownloadItem*, 0> icon_consumer_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadTabView);
|
| -};
|
| -
|
| -// DownloadTabUI -------------------------------------------------------------
|
| -
|
| -// DownloadTabUI provides the glue to make DownloadTabView available in
|
| -// NativeUIContents.
|
| -
|
| -class DownloadTabUI : public NativeUI,
|
| - public SearchableUIContainer::Delegate,
|
| - public NotificationObserver {
|
| - public:
|
| - explicit DownloadTabUI(NativeUIContents* contents);
|
| - virtual ~DownloadTabUI();
|
| -
|
| - virtual const std::wstring GetTitle() const;
|
| - virtual const int GetFavIconID() const;
|
| - virtual const int GetSectionIconID() const;
|
| - virtual const std::wstring GetSearchButtonText() const;
|
| - virtual ChromeViews::View* GetView();
|
| - virtual void WillBecomeVisible(NativeUIContents* parent);
|
| - virtual void WillBecomeInvisible(NativeUIContents* parent);
|
| - virtual void Navigate(const PageState& state);
|
| - virtual bool SetInitialFocus();
|
| -
|
| - // Return the URL that can be used to show this view in a NativeUIContents.
|
| - static GURL GetURL();
|
| -
|
| - // Return the NativeUIFactory object for application views. This object is
|
| - // owned by the caller.
|
| - static NativeUIFactory* GetNativeUIFactory();
|
| -
|
| - private:
|
| - // Sent from the search box, updates the search text appropriately.
|
| - virtual void DoSearch(const std::wstring& new_text);
|
| -
|
| - // NotificationObserver method, updates loading state based on whether
|
| - // any downloads are in progress.
|
| - virtual void Observe(NotificationType type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details);
|
| -
|
| - Profile* profile() const { return contents_->profile(); }
|
| -
|
| - // Our host.
|
| - NativeUIContents* contents_;
|
| -
|
| - // The view we return from GetView. The contents of this is the
|
| - // bookmarks_view_
|
| - SearchableUIContainer searchable_container_;
|
| -
|
| - DownloadTabView* download_tab_view_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(DownloadTabUI);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_DONWLOAD_TAB_VIEW_H__
|
|
|