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

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

Issue 2730015: Mac/clang: Uncontentious fixes. (Closed)
Patch Set: '' Created 10 years, 6 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/shell_dialogs.h" 5 #include "chrome/browser/shell_dialogs.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 #include <CoreServices/CoreServices.h> 8 #include <CoreServices/CoreServices.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 11 matching lines...) Expand all
22 class SelectFileDialogImpl; 22 class SelectFileDialogImpl;
23 23
24 // A bridge class to act as the modal delegate to the save/open sheet and send 24 // A bridge class to act as the modal delegate to the save/open sheet and send
25 // the results to the C++ class. 25 // the results to the C++ class.
26 @interface SelectFileDialogBridge : NSObject<NSOpenSavePanelDelegate> { 26 @interface SelectFileDialogBridge : NSObject<NSOpenSavePanelDelegate> {
27 @private 27 @private
28 SelectFileDialogImpl* selectFileDialogImpl_; // WEAK; owns us 28 SelectFileDialogImpl* selectFileDialogImpl_; // WEAK; owns us
29 } 29 }
30 30
31 - (id)initWithSelectFileDialogImpl:(SelectFileDialogImpl*)s; 31 - (id)initWithSelectFileDialogImpl:(SelectFileDialogImpl*)s;
32 - (void)endedPanel:(NSSavePanel *)panel 32 - (void)endedPanel:(NSSavePanel*)panel
33 withReturn:(int)returnCode 33 withReturn:(int)returnCode
34 context:(void *)context; 34 context:(void *)context;
35 35
36 // NSSavePanel delegate method 36 // NSSavePanel delegate method
37 - (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename; 37 - (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename;
38 38
39 @end 39 @end
40 40
41 // Implementation of SelectFileDialog that shows Cocoa dialogs for choosing a 41 // Implementation of SelectFileDialog that shows Cocoa dialogs for choosing a
42 // file or folder. 42 // file or folder.
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 @implementation SelectFileDialogBridge 318 @implementation SelectFileDialogBridge
319 319
320 - (id)initWithSelectFileDialogImpl:(SelectFileDialogImpl*)s { 320 - (id)initWithSelectFileDialogImpl:(SelectFileDialogImpl*)s {
321 self = [super init]; 321 self = [super init];
322 if (self != nil) { 322 if (self != nil) {
323 selectFileDialogImpl_ = s; 323 selectFileDialogImpl_ = s;
324 } 324 }
325 return self; 325 return self;
326 } 326 }
327 327
328 - (void)endedPanel:(id)panel 328 - (void)endedPanel:(NSSavePanel*)panel
329 withReturn:(int)returnCode 329 withReturn:(int)returnCode
330 context:(void *)context { 330 context:(void *)context {
331 int index = 0; 331 int index = 0;
332 SelectFileDialogImpl::SheetContext* context_struct = 332 SelectFileDialogImpl::SheetContext* context_struct =
333 (SelectFileDialogImpl::SheetContext*)context; 333 (SelectFileDialogImpl::SheetContext*)context;
334 334
335 SelectFileDialog::Type type = context_struct->type; 335 SelectFileDialog::Type type = context_struct->type;
336 NSWindow* parentWindow = context_struct->owning_window; 336 NSWindow* parentWindow = context_struct->owning_window;
337 delete context_struct; 337 delete context_struct;
338 338
339 bool isMulti = type == SelectFileDialog::SELECT_OPEN_MULTI_FILE; 339 bool isMulti = type == SelectFileDialog::SELECT_OPEN_MULTI_FILE;
340 340
341 std::vector<FilePath> paths; 341 std::vector<FilePath> paths;
342 bool did_cancel = returnCode == NSCancelButton; 342 bool did_cancel = returnCode == NSCancelButton;
343 if (!did_cancel) { 343 if (!did_cancel) {
344 if (type == SelectFileDialog::SELECT_SAVEAS_FILE) { 344 if (type == SelectFileDialog::SELECT_SAVEAS_FILE) {
345 paths.push_back(FilePath(base::SysNSStringToUTF8([panel filename]))); 345 paths.push_back(FilePath(base::SysNSStringToUTF8([panel filename])));
346 346
347 NSView* accessoryView = [panel accessoryView]; 347 NSView* accessoryView = [panel accessoryView];
348 if (accessoryView) { 348 if (accessoryView) {
349 NSPopUpButton* popup = [accessoryView viewWithTag:kFileTypePopupTag]; 349 NSPopUpButton* popup = [accessoryView viewWithTag:kFileTypePopupTag];
350 if (popup) { 350 if (popup) {
351 // File type indexes are 1-based. 351 // File type indexes are 1-based.
352 index = [popup indexOfSelectedItem] + 1; 352 index = [popup indexOfSelectedItem] + 1;
353 } 353 }
354 } else { 354 } else {
355 index = 1; 355 index = 1;
356 } 356 }
357 } else { 357 } else {
358 NSArray* filenames = [panel filenames]; 358 CHECK([panel isKindOfClass:[NSOpenPanel class]]);
359 NSArray* filenames = [static_cast<NSOpenPanel*>(panel) filenames];
359 for (NSString* filename in filenames) 360 for (NSString* filename in filenames)
360 paths.push_back(FilePath(base::SysNSStringToUTF8(filename))); 361 paths.push_back(FilePath(base::SysNSStringToUTF8(filename)));
361 } 362 }
362 } 363 }
363 364
364 selectFileDialogImpl_->FileWasSelected(panel, 365 selectFileDialogImpl_->FileWasSelected(panel,
365 parentWindow, 366 parentWindow,
366 did_cancel, 367 did_cancel,
367 isMulti, 368 isMulti,
368 paths, 369 paths,
369 index); 370 index);
370 [panel release]; 371 [panel release];
371 } 372 }
372 373
373 - (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename { 374 - (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename {
374 return selectFileDialogImpl_->ShouldEnableFilename(sender, filename); 375 return selectFileDialogImpl_->ShouldEnableFilename(sender, filename);
375 } 376 }
376 377
377 @end 378 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698