diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-09 07:35:32 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-09 07:35:32 +0000 |
commit | 213dac2f0bff9162502fe325b6ebb85a255efcb2 (patch) | |
tree | 3640cb1f19976e38677b8632537d2d41f8444d0f /chrome/browser/views/download_shelf_view.h | |
parent | 6de53d401aa8dc6c7e0a9874c71a95ce88ade50d (diff) | |
download | chromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.zip chromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.tar.gz chromium_src-213dac2f0bff9162502fe325b6ebb85a255efcb2.tar.bz2 |
Move browser/views to browser/ui/views
TBR=brettw
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/4694005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65508 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/download_shelf_view.h')
-rw-r--r-- | chrome/browser/views/download_shelf_view.h | 152 |
1 files changed, 5 insertions, 147 deletions
diff --git a/chrome/browser/views/download_shelf_view.h b/chrome/browser/views/download_shelf_view.h index d307d6d..628abba 100644 --- a/chrome/browser/views/download_shelf_view.h +++ b/chrome/browser/views/download_shelf_view.h @@ -2,154 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ -#define CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ +#ifndef CHROME_BROWSER_DOWNLOAD_SHELF_VIEW_H_ +#define CHROME_BROWSER_DOWNLOAD_SHELF_VIEW_H_ #pragma once -#include "app/slide_animation.h" -#include "chrome/browser/download/download_shelf.h" -#include "chrome/browser/views/accessible_pane_view.h" -#include "views/controls/button/button.h" -#include "views/controls/link.h" -#include "views/mouse_watcher.h" +#include "chrome/browser/ui/views/download_shelf_view.h" +// TODO(beng): remove this file once all includes have been updated. -namespace views { -class ImageButton; -class ImageView; -} +#endif // CHROME_BROWSER_DOWNLOAD_SHELF_VIEW_H_ -class BaseDownloadItemModel; -class Browser; -class BrowserView; - -class DownloadAnimation; -class DownloadItemView; - -// DownloadShelfView is a view that contains individual views for each download, -// as well as a close button and a link to show all downloads. -// -// DownloadShelfView does not hold an infinite number of download views, rather -// it'll automatically remove views once a certain point is reached. -class DownloadShelfView : public AccessiblePaneView, - public AnimationDelegate, - public DownloadShelf, - public views::ButtonListener, - public views::LinkController, - public views::MouseWatcherListener { - public: - DownloadShelfView(Browser* browser, BrowserView* parent); - virtual ~DownloadShelfView(); - - // Sent from the DownloadItemView when the user opens an item. - void OpenedDownload(DownloadItemView* view); - - // Implementation of View. - virtual gfx::Size GetPreferredSize(); - virtual void Layout(); - virtual void Paint(gfx::Canvas* canvas); - - // Implementation of AnimationDelegate. - virtual void AnimationProgressed(const Animation* animation); - virtual void AnimationEnded(const Animation* animation); - - // Implementation of LinkController. - // Invoked when the user clicks the 'show all downloads' link button. - virtual void LinkActivated(views::Link* source, int event_flags); - - // Implementation of ButtonListener. - // Invoked when the user clicks the close button. Asks the browser to - // hide the download shelf. - virtual void ButtonPressed(views::Button* button, const views::Event& event); - - // Implementation of DownloadShelf. - virtual void AddDownload(BaseDownloadItemModel* download_model); - virtual bool IsShowing() const; - virtual bool IsClosing() const; - virtual void Show(); - virtual void Close(); - virtual Browser* browser() const { return browser_; } - - // Implementation of MouseWatcherDelegate. - virtual void MouseMovedOutOfView(); - - // Override views::FocusChangeListener method from AccessiblePaneView. - virtual void FocusWillChange(View* focused_before, - View* focused_now); - - // Removes a specified download view. The supplied view is deleted after - // it's removed. - void RemoveDownloadView(views::View* view); - - protected: - // From AccessiblePaneView - virtual views::View* GetDefaultFocusableChild(); - - private: - void Init(); - - // Adds a View representing a download to this DownloadShelfView. - // DownloadShelfView takes ownership of the View, and will delete it as - // necessary. - void AddDownloadView(DownloadItemView* view); - - // Paints the border. - void PaintBorder(gfx::Canvas* canvas); - - // Returns true if the shelf is wide enough to show the first download item. - bool CanFitFirstDownloadItem(); - - // Called on theme change. - void UpdateButtonColors(); - - // Overridden from views::View. - virtual void OnThemeChanged(); - - // Called when the "close shelf" animation ended. - void Closed(); - - // Returns true if we can auto close. We can auto-close if all the items on - // the shelf have been opened. - bool CanAutoClose(); - - // Called when any view |view| gains or loses focus. If it's one of our - // DownloadItemView children, call SchedulePaint on its bounds - // so that its focus rect is repainted. - void SchedulePaintForDownloadItem(views::View* view); - - // Get the rect that perfectly surrounds a DownloadItemView so we can - // draw a focus rect around it. - gfx::Rect GetFocusRectBounds(const DownloadItemView* download_item_view); - - // The browser for this shelf. - Browser* browser_; - - // The animation for adding new items to the shelf. - scoped_ptr<SlideAnimation> new_item_animation_; - - // The show/hide animation for the shelf itself. - scoped_ptr<SlideAnimation> shelf_animation_; - - // The download views. These are also child Views, and deleted when - // the DownloadShelfView is deleted. - std::vector<DownloadItemView*> download_views_; - - // An image displayed on the right of the "Show all downloads..." link. - views::ImageView* arrow_image_; - - // Link for showing all downloads. This is contained as a child, and deleted - // by View. - views::Link* show_all_view_; - - // Button for closing the downloads. This is contained as a child, and - // deleted by View. - views::ImageButton* close_button_; - - // The window this shelf belongs to. - BrowserView* parent_; - - views::MouseWatcher mouse_watcher_; - - DISALLOW_COPY_AND_ASSIGN(DownloadShelfView); -}; - -#endif // CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ |