Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: chrome/browser/ui/cocoa/download/download_shelf_controller.h

Issue 1221173003: [Mac] Inform reference counted objects that hold a weak Browser* when the Browser is being destroye… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add HasWeakBrowserPointer protocol. Allow -dealloc without preceding -browserWillBeDestroyed. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/mac/scoped_nsobject.h" 7 #include "base/mac/scoped_nsobject.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #import "chrome/browser/ui/cocoa/has_weak_browser_pointer.h"
9 #import "chrome/browser/ui/cocoa/view_resizer.h" 10 #import "chrome/browser/ui/cocoa/view_resizer.h"
10 #include "ui/base/cocoa/tracking_area.h" 11 #include "ui/base/cocoa/tracking_area.h"
11 12
12 @class AnimatableView; 13 @class AnimatableView;
13 class Browser; 14 class Browser;
14 @class BrowserWindowController; 15 @class BrowserWindowController;
15 @class DownloadItemController; 16 @class DownloadItemController;
16 class DownloadShelf; 17 class DownloadShelf;
17 @class DownloadShelfView; 18 @class DownloadShelfView;
18 @class HyperlinkButtonCell; 19 @class HyperlinkButtonCell;
(...skipping 14 matching lines...) Expand all
33 // download_shelf_controller for the shelf (this file). The shelf's background 34 // download_shelf_controller for the shelf (this file). The shelf's background
34 // is drawn by download_shelf_view. Every item in a shelf is controlled by a 35 // is drawn by download_shelf_view. Every item in a shelf is controlled by a
35 // download_item_controller. 36 // download_item_controller.
36 // 37 //
37 // download_item_mac bridges calls from chromium's c++ world to the objc 38 // download_item_mac bridges calls from chromium's c++ world to the objc
38 // download_item_controller, which is responsible for managing a single item 39 // download_item_controller, which is responsible for managing a single item
39 // on the shelf. The item controller loads its UI from a xib file, where the 40 // on the shelf. The item controller loads its UI from a xib file, where the
40 // UI of an item itself is represented by a button that is drawn by 41 // UI of an item itself is represented by a button that is drawn by
41 // download_item_cell. 42 // download_item_cell.
42 43
43 @interface DownloadShelfController : NSViewController<NSTextViewDelegate> { 44 @interface DownloadShelfController
45 : NSViewController<NSTextViewDelegate, HasWeakBrowserPointer> {
44 @private 46 @private
45 IBOutlet HoverButton* hoverCloseButton_; 47 IBOutlet HoverButton* hoverCloseButton_;
46 48
47 // YES if the download shelf is intended to be displayed. The shelf animates 49 // YES if the download shelf is intended to be displayed. The shelf animates
48 // out when it is closing. During this time, barIsVisible_ is NO although the 50 // out when it is closing. During this time, barIsVisible_ is NO although the
49 // shelf is still visible on screen. 51 // shelf is still visible on screen.
50 BOOL barIsVisible_; 52 BOOL barIsVisible_;
51 53
52 // YES if the containing browser window is fullscreen. 54 // YES if the containing browser window is fullscreen.
53 BOOL isFullscreen_; 55 BOOL isFullscreen_;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 115
114 // Similar to addDownloadItem above, but adds a DownloadItemController. 116 // Similar to addDownloadItem above, but adds a DownloadItemController.
115 - (void)add:(DownloadItemController*)download; 117 - (void)add:(DownloadItemController*)download;
116 118
117 // Remove a download, possibly via clearing browser data. 119 // Remove a download, possibly via clearing browser data.
118 - (void)remove:(DownloadItemController*)download; 120 - (void)remove:(DownloadItemController*)download;
119 121
120 // Called by individual item controllers when their downloads are opened. 122 // Called by individual item controllers when their downloads are opened.
121 - (void)downloadWasOpened:(DownloadItemController*)download; 123 - (void)downloadWasOpened:(DownloadItemController*)download;
122 124
123 // Notification that the download shelf is going to be destroyed and should
124 // release the downloads.
125 - (void)exiting;
126
127 // Return the height of the download shelf. 125 // Return the height of the download shelf.
128 - (float)height; 126 - (float)height;
129 127
130 // Re-layouts all download items based on their current state. 128 // Re-layouts all download items based on their current state.
131 - (void)layoutItems; 129 - (void)layoutItems;
132 130
133 @end 131 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698