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

Side by Side Diff: chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm

Issue 7876004: [Mac] Break stale controller refs in infobar close. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Also fix target on the close button. Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "chrome/browser/ui/cocoa/translate/before_translate_infobar_controller. h" 5 #include "chrome/browser/ui/cocoa/translate/before_translate_infobar_controller. h"
6 6
7 #include "base/sys_string_conversions.h" 7 #include "base/sys_string_conversions.h"
8 #include "grit/generated_resources.h" 8 #include "grit/generated_resources.h"
9 #include "ui/base/l10n/l10n_util.h" 9 #include "ui/base/l10n/l10n_util.h"
10 10
(...skipping 12 matching lines...) Expand all
23 NSFont* font = [NSFont systemFontOfSize: 23 NSFont* font = [NSFont systemFontOfSize:
24 [NSFont systemFontSizeForControlSize:NSRegularControlSize]]; 24 [NSFont systemFontSizeForControlSize:NSRegularControlSize]];
25 [[button cell] setFont:font]; 25 [[button cell] setFont:font];
26 return button; 26 return button;
27 } 27 }
28 28
29 } // namespace 29 } // namespace
30 30
31 @implementation BeforeTranslateInfobarController 31 @implementation BeforeTranslateInfobarController
32 32
33 - (void)dealloc {
34 [neverTranslateButton_ setTarget:nil];
35 [alwaysTranslateButton_ setTarget:nil];
36 [super dealloc];
37 }
38
33 - (id) initWithDelegate:(InfoBarDelegate *)delegate 39 - (id) initWithDelegate:(InfoBarDelegate *)delegate
34 owner:(TabContentsWrapper*)owner { 40 owner:(TabContentsWrapper*)owner {
35 if ((self = [super initWithDelegate:delegate owner:owner])) { 41 if ((self = [super initWithDelegate:delegate owner:owner])) {
36 [self initializeExtraControls]; 42 [self initializeExtraControls];
37 } 43 }
38 return self; 44 return self;
39 } 45 }
40 46
41 - (void)initializeExtraControls { 47 - (void)initializeExtraControls {
42 TranslateInfoBarDelegate* delegate = [self delegate]; 48 TranslateInfoBarDelegate* delegate = [self delegate];
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 [visibleControls addObject:neverTranslateButton_.get()]; 99 [visibleControls addObject:neverTranslateButton_.get()];
94 100
95 if ([self delegate]->ShouldShowAlwaysTranslateButton()) 101 if ([self delegate]->ShouldShowAlwaysTranslateButton())
96 [visibleControls addObject:alwaysTranslateButton_.get()]; 102 [visibleControls addObject:alwaysTranslateButton_.get()];
97 103
98 return visibleControls; 104 return visibleControls;
99 } 105 }
100 106
101 // This is called when the "Never Translate [language]" button is pressed. 107 // This is called when the "Never Translate [language]" button is pressed.
102 - (void)neverTranslate:(id)sender { 108 - (void)neverTranslate:(id)sender {
103 [self delegate]->NeverTranslatePageLanguage(); 109 TranslateInfoBarDelegate* delegate = [self delegate];
110 if (delegate)
111 [self delegate]->NeverTranslatePageLanguage();
Nico 2011/09/13 06:25:38 Nit: s/[self delegate]/delegate/
104 } 112 }
105 113
106 // This is called when the "Always Translate [language]" button is pressed. 114 // This is called when the "Always Translate [language]" button is pressed.
107 - (void)alwaysTranslate:(id)sender { 115 - (void)alwaysTranslate:(id)sender {
108 [self delegate]->AlwaysTranslatePageLanguage(); 116 TranslateInfoBarDelegate* delegate = [self delegate];
117 if (delegate)
118 delegate->AlwaysTranslatePageLanguage();
109 } 119 }
110 120
111 - (bool)verifyLayout { 121 - (bool)verifyLayout {
112 if ([optionsPopUp_ isHidden]) 122 if ([optionsPopUp_ isHidden])
113 return false; 123 return false;
114 return [super verifyLayout]; 124 return [super verifyLayout];
115 } 125 }
116 126
117 @end 127 @end
118 128
119 @implementation BeforeTranslateInfobarController (TestingAPI) 129 @implementation BeforeTranslateInfobarController (TestingAPI)
120 130
121 - (NSButton*)alwaysTranslateButton { 131 - (NSButton*)alwaysTranslateButton {
122 return alwaysTranslateButton_.get(); 132 return alwaysTranslateButton_.get();
123 } 133 }
124 - (NSButton*)neverTranslateButton { 134 - (NSButton*)neverTranslateButton {
125 return neverTranslateButton_.get(); 135 return neverTranslateButton_.get();
126 } 136 }
127 137
128 @end 138 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/infobars/infobar_controller.mm ('k') | chrome/browser/ui/cocoa/translate/translate_infobar_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698