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

Side by Side Diff: chrome/browser/ui/cocoa/profiles/avatar_menu_bubble_controller.h

Issue 1407103008: mac: Stop using __weak. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 1 month 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include "base/mac/objc_property_releaser.h"
10 #include "base/mac/scoped_nsobject.h" 11 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
12 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" 13 #import "chrome/browser/ui/cocoa/base_bubble_controller.h"
13 #import "ui/base/cocoa/tracking_area.h" 14 #import "ui/base/cocoa/tracking_area.h"
14 15
15 class AvatarMenu; 16 class AvatarMenu;
16 class Browser; 17 class Browser;
17 18
18 // This window controller manages the bubble that displays a "menu" of profiles. 19 // This window controller manages the bubble that displays a "menu" of profiles.
19 // It is brought open by clicking on the avatar icon in the window frame. 20 // It is brought open by clicking on the avatar icon in the window frame.
(...skipping 28 matching lines...) Expand all
48 - (IBAction)switchProfile:(id)sender; 49 - (IBAction)switchProfile:(id)sender;
49 50
50 @end 51 @end
51 52
52 //////////////////////////////////////////////////////////////////////////////// 53 ////////////////////////////////////////////////////////////////////////////////
53 54
54 // This view controller manages the menu item XIB. 55 // This view controller manages the menu item XIB.
55 @interface AvatarMenuItemController : NSViewController<NSAnimationDelegate> { 56 @interface AvatarMenuItemController : NSViewController<NSAnimationDelegate> {
56 @private 57 @private
57 // The parent menu controller; owns this. 58 // The parent menu controller; owns this.
58 __weak AvatarMenuBubbleController* controller_; 59 AvatarMenuBubbleController* controller_; // weak
59 60
60 // The index of the item in the AvatarMenu. 61 // The index of the item in the AvatarMenu.
61 size_t menuIndex_; 62 size_t menuIndex_;
62 63
63 // Tracks whether this item is currently highlighted. 64 // Tracks whether this item is currently highlighted.
64 BOOL isHighlighted_; 65 BOOL isHighlighted_;
65 66
66 // The animation showing the edit link, which is run after the user has 67 // The animation showing the edit link, which is run after the user has
67 // dwelled over the item for a short delay. 68 // dwelled over the item for a short delay.
68 base::scoped_nsobject<NSAnimation> linkAnimation_; 69 base::scoped_nsobject<NSAnimation> linkAnimation_;
69 70
70 // Instance variables that back the outlets. 71 // Instance variables that back the outlets.
71 __weak NSImageView* iconView_; 72 NSImageView* iconView_;
72 __weak NSImageView* activeView_; 73 NSImageView* activeView_;
73 __weak NSTextField* nameField_; 74 NSTextField* nameField_;
74 // These two views sit on top of each other, and only one is visible at a 75 // These two views sit on top of each other, and only one is visible at a
75 // time. The editButton_ is visible when the mouse is over the item and the 76 // time. The editButton_ is visible when the mouse is over the item and the
76 // emailField_ is visible otherwise. 77 // emailField_ is visible otherwise.
77 __weak NSTextField* emailField_; 78 NSTextField* emailField_;
78 __weak NSButton* editButton_; 79 NSButton* editButton_;
80
81 base::mac::ObjCPropertyReleaser propertyReleaser_;
79 } 82 }
80 @property(readonly, nonatomic) size_t menuIndex; 83 @property(readonly, nonatomic) size_t menuIndex;
81 @property(assign, nonatomic) BOOL isHighlighted; 84 @property(assign, nonatomic) BOOL isHighlighted;
82 @property(assign, nonatomic) IBOutlet NSImageView* iconView; 85 @property(retain, nonatomic) IBOutlet NSImageView* iconView;
83 @property(assign, nonatomic) IBOutlet NSImageView* activeView; 86 @property(retain, nonatomic) IBOutlet NSImageView* activeView;
84 @property(assign, nonatomic) IBOutlet NSTextField* nameField; 87 @property(retain, nonatomic) IBOutlet NSTextField* nameField;
85 @property(assign, nonatomic) IBOutlet NSTextField* emailField; 88 @property(retain, nonatomic) IBOutlet NSTextField* emailField;
86 @property(assign, nonatomic) IBOutlet NSButton* editButton; 89 @property(retain, nonatomic) IBOutlet NSButton* editButton;
87 90
88 // Designated initializer. 91 // Designated initializer.
89 - (id)initWithMenuIndex:(size_t)menuIndex 92 - (id)initWithMenuIndex:(size_t)menuIndex
90 menuController:(AvatarMenuBubbleController*)controller; 93 menuController:(AvatarMenuBubbleController*)controller;
91 94
92 // Actions that are forwarded to the |controller_|. 95 // Actions that are forwarded to the |controller_|.
93 - (IBAction)switchToProfile:(id)sender; 96 - (IBAction)switchToProfile:(id)sender;
94 - (IBAction)editProfile:(id)sender; 97 - (IBAction)editProfile:(id)sender;
95 98
96 // Highlights the subviews appropriately for a given event type from the switch 99 // Highlights the subviews appropriately for a given event type from the switch
97 // profile button. 100 // profile button.
98 - (void)highlightForEventType:(NSEventType)type; 101 - (void)highlightForEventType:(NSEventType)type;
99 102
100 @end 103 @end
101 104
102 //////////////////////////////////////////////////////////////////////////////// 105 ////////////////////////////////////////////////////////////////////////////////
103 106
104 // Simple button cell to get tracking and mouse events forwarded back to the 107 // Simple button cell to get tracking and mouse events forwarded back to the
105 // view controller for changing highlight style of the item subviews. This is 108 // view controller for changing highlight style of the item subviews. This is
106 // an invisible button that underlays most of the menu item and is responsible 109 // an invisible button that underlays most of the menu item and is responsible
107 // for performing the switch profile action. 110 // for performing the switch profile action.
108 @interface AvatarMenuItemView : NSView { 111 @interface AvatarMenuItemView : NSView {
109 @private 112 @private
110 // The controller that manages this. 113 // The controller that manages this.
111 __weak AvatarMenuItemController* viewController_; 114 // weak to not form a reference cycle with the controller.
115 __unsafe_unretained AvatarMenuItemController* viewController_;
112 116
113 // Used to highlight the background on hover. 117 // Used to highlight the background on hover.
114 ui::ScopedCrTrackingArea trackingArea_; 118 ui::ScopedCrTrackingArea trackingArea_;
115 } 119 }
116 @property(assign, nonatomic) IBOutlet AvatarMenuItemController* viewController; 120 @property(assign, nonatomic) IBOutlet AvatarMenuItemController* viewController;
117 @end 121 @end
118 122
119 //////////////////////////////////////////////////////////////////////////////// 123 ////////////////////////////////////////////////////////////////////////////////
120 124
121 @interface AccessibilityIgnoredImageCell : NSImageCell 125 @interface AccessibilityIgnoredImageCell : NSImageCell
(...skipping 10 matching lines...) Expand all
132 anchoredAt:(NSPoint)point; 136 anchoredAt:(NSPoint)point;
133 - (void)performLayout; 137 - (void)performLayout;
134 - (NSMutableArray*)items; 138 - (NSMutableArray*)items;
135 @end 139 @end
136 140
137 @interface AvatarMenuItemController (ExposedForTesting) 141 @interface AvatarMenuItemController (ExposedForTesting)
138 - (void)willStartAnimation:(NSAnimation*)animation; 142 - (void)willStartAnimation:(NSAnimation*)animation;
139 @end 143 @end
140 144
141 #endif // CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_ 145 #endif // CHROME_BROWSER_UI_COCOA_PROFILES_AVATAR_MENU_BUBBLE_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698