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

Side by Side Diff: chrome/browser/cocoa/keyword_editor_cocoa_controller.mm

Issue 536086: Mac: Save/restore task manager window pos and size. (Closed)
Patch Set: comments Created 10 years, 11 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #import "base/mac_util.h" 7 #import "base/mac_util.h"
8 #include "base/singleton.h" 8 #include "base/singleton.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #import "chrome/browser/cocoa/edit_search_engine_cocoa_controller.h" 11 #import "chrome/browser/cocoa/edit_search_engine_cocoa_controller.h"
12 #import "chrome/browser/cocoa/nswindow_local_state.h"
13 #import "chrome/browser/cocoa/keyword_editor_cocoa_controller.h" 12 #import "chrome/browser/cocoa/keyword_editor_cocoa_controller.h"
13 #import "chrome/browser/cocoa/window_size_autosaver.h"
14 #include "chrome/browser/profile.h" 14 #include "chrome/browser/profile.h"
15 #include "chrome/browser/search_engines/template_url_table_model.h" 15 #include "chrome/browser/search_engines/template_url_table_model.h"
16 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
17 #include "chrome/common/pref_service.h" 17 #include "chrome/common/pref_service.h"
18 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
19 #include "skia/ext/skia_utils_mac.h" 19 #include "skia/ext/skia_utils_mac.h"
20 #include "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" 20 #include "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h"
21 21
22 @interface KeywordEditorCocoaController (Private) 22 @interface KeywordEditorCocoaController (Private)
23 - (void)adjustEditingButtons; 23 - (void)adjustEditingButtons;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 NSString* nibpath = [mac_util::MainAppBundle() 137 NSString* nibpath = [mac_util::MainAppBundle()
138 pathForResource:@"KeywordEditor" 138 pathForResource:@"KeywordEditor"
139 ofType:@"nib"]; 139 ofType:@"nib"];
140 if ((self = [super initWithWindowNibPath:nibpath owner:self])) { 140 if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
141 profile_ = profile; 141 profile_ = profile;
142 controller_.reset(new KeywordEditorController(profile_)); 142 controller_.reset(new KeywordEditorController(profile_));
143 observer_.reset(new KeywordEditorModelObserver(self)); 143 observer_.reset(new KeywordEditorModelObserver(self));
144 controller_->table_model()->SetObserver(observer_.get()); 144 controller_->table_model()->SetObserver(observer_.get());
145 controller_->url_model()->AddObserver(observer_.get()); 145 controller_->url_model()->AddObserver(observer_.get());
146 groupCell_.reset([[NSTextFieldCell alloc] init]); 146 groupCell_.reset([[NSTextFieldCell alloc] init]);
147
148 if (g_browser_process && g_browser_process->local_state()) {
149 sizeSaver_.reset([[WindowSizeAutosaver alloc]
150 initWithWindow:[self window]
151 prefService:g_browser_process->local_state()
152 path:prefs::kKeywordEditorWindowPlacement
153 state:kSaveWindowRect]);
154 }
147 } 155 }
148 return self; 156 return self;
149 } 157 }
150 158
151 - (void)dealloc { 159 - (void)dealloc {
152 controller_->table_model()->SetObserver(NULL); 160 controller_->table_model()->SetObserver(NULL);
153 controller_->url_model()->RemoveObserver(observer_.get()); 161 controller_->url_model()->RemoveObserver(observer_.get());
154 [tableView_ setDataSource:nil]; 162 [tableView_ setDataSource:nil];
155 observer_.reset(); 163 observer_.reset();
156 [super dealloc]; 164 [super dealloc];
157 } 165 }
158 166
159 - (void)awakeFromNib { 167 - (void)awakeFromNib {
160 // Make sure the button fits its label, but keep it the same height as the 168 // Make sure the button fits its label, but keep it the same height as the
161 // other two buttons. 169 // other two buttons.
162 [GTMUILocalizerAndLayoutTweaker sizeToFitView:makeDefaultButton_]; 170 [GTMUILocalizerAndLayoutTweaker sizeToFitView:makeDefaultButton_];
163 NSSize size = [makeDefaultButton_ frame].size; 171 NSSize size = [makeDefaultButton_ frame].size;
164 size.height = NSHeight([addButton_ frame]); 172 size.height = NSHeight([addButton_ frame]);
165 [makeDefaultButton_ setFrameSize:size]; 173 [makeDefaultButton_ setFrameSize:size];
166 174
167 // Restore the window position.
168 if (g_browser_process && g_browser_process->local_state()) {
169 PrefService* prefs = g_browser_process->local_state();
170 NSWindow* window = [self window];
171 [window restoreWindowPositionFromPrefs:prefs
172 withPath:prefs::kKeywordEditorWindowPlacement];
173 }
174
175 [self adjustEditingButtons]; 175 [self adjustEditingButtons];
176 [tableView_ setDoubleAction:@selector(editKeyword:)]; 176 [tableView_ setDoubleAction:@selector(editKeyword:)];
177 [tableView_ setTarget:self]; 177 [tableView_ setTarget:self];
178 } 178 }
179 179
180 // When the window closes, clean ourselves up. 180 // When the window closes, clean ourselves up.
181 - (void)windowWillClose:(NSNotification*)notif { 181 - (void)windowWillClose:(NSNotification*)notif {
182 [self autorelease]; 182 [self autorelease];
183 183
184 ProfileControllerMap* map = Singleton<ProfileControllerMap>::get(); 184 ProfileControllerMap* map = Singleton<ProfileControllerMap>::get();
185 ProfileControllerMap::iterator it = map->find(profile_); 185 ProfileControllerMap::iterator it = map->find(profile_);
186 // It should not be possible for this to be missing. 186 // It should not be possible for this to be missing.
187 // TODO(shess): Except that the unit test reaches in directly. 187 // TODO(shess): Except that the unit test reaches in directly.
188 // Consider circling around and refactoring that. 188 // Consider circling around and refactoring that.
189 //DCHECK(it != map->end()); 189 //DCHECK(it != map->end());
190 if (it != map->end()) { 190 if (it != map->end()) {
191 map->erase(it); 191 map->erase(it);
192 } 192 }
193 } 193 }
194 194
195 // Remeber the position of the keyword editor.
196 - (void)windowDidMove:(NSNotification*)notif {
197 if (g_browser_process && g_browser_process->local_state()) {
198 NSWindow* window = [self window];
199 [window saveWindowPositionToPrefs:g_browser_process->local_state()
200 withPath:prefs::kKeywordEditorWindowPlacement];
201 }
202 }
203
204 - (void)modelChanged { 195 - (void)modelChanged {
205 [tableView_ reloadData]; 196 [tableView_ reloadData];
206 [self adjustEditingButtons]; 197 [self adjustEditingButtons];
207 } 198 }
208 199
209 - (KeywordEditorController*)controller { 200 - (KeywordEditorController*)controller {
210 return controller_.get(); 201 return controller_.get();
211 } 202 }
212 203
213 - (void)sheetDidEnd:(NSWindow*)sheet 204 - (void)sheetDidEnd:(NSWindow*)sheet
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 controller_->table_model()->last_search_engine_index() + 1; 395 controller_->table_model()->last_search_engine_index() + 1;
405 DCHECK_NE(row, otherGroupId); 396 DCHECK_NE(row, otherGroupId);
406 if (row >= otherGroupId) { 397 if (row >= otherGroupId) {
407 return row - 2; // Other group. 398 return row - 2; // Other group.
408 } else { 399 } else {
409 return row - 1; // Default group. 400 return row - 1; // Default group.
410 } 401 }
411 } 402 }
412 403
413 @end 404 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698