Chromium Code Reviews| Index: chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm |
| diff --git a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm |
| index d2976f266942c9687a21e6ebac2d71584f9aa743..e375a840130c3965745235145356fbd963da0152 100644 |
| --- a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm |
| +++ b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm |
| @@ -30,7 +30,7 @@ |
| - (void)onAcceptButton:(id)sender; |
| - (void)onCancelButton:(id)sender; |
| -- (void)onAddFolderClicked:(id)sender; |
| +- (void)onAuxilliaryButton:(id)sender; |
| @end |
| @@ -46,9 +46,9 @@ |
| dialog_->OnCancelClicked(); |
| } |
| -- (void)onAddFolderClicked:(id)sender { |
| +- (void)onAuxilliaryButton:(id)sender { |
| DCHECK(dialog_); |
| - dialog_->OnAddFolderClicked(); |
| + dialog_->OnAuxilliaryButtonClicked(); |
| } |
| @end |
| @@ -75,7 +75,7 @@ MediaGalleriesDialogCocoa::MediaGalleriesDialogCocoa( |
| [alert_ setInformativeText: |
| base::SysUTF16ToNSString(controller_->GetSubtext())]; |
| [alert_ addButtonWithTitle: |
| - l10n_util::GetNSString(IDS_MEDIA_GALLERIES_DIALOG_CONFIRM) |
| + base::SysUTF16ToNSString(controller_->GetAcceptButtonText()) |
| keyEquivalent:kKeyEquivalentReturn |
| target:cocoa_controller_ |
| action:@selector(onAcceptButton:)]; |
| @@ -84,11 +84,13 @@ MediaGalleriesDialogCocoa::MediaGalleriesDialogCocoa( |
| keyEquivalent:kKeyEquivalentEscape |
| target:cocoa_controller_ |
| action:@selector(onCancelButton:)]; |
| - [alert_ addButtonWithTitle: |
| - l10n_util::GetNSString(IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY) |
| - keyEquivalent:kKeyEquivalentNone |
| - target:cocoa_controller_ |
| - action:@selector(onAddFolderClicked:)]; |
| + base::string16 auxilliaryButtonLabel = controller_->GetAuxilliaryButtonText(); |
| + if (!auxilliaryButtonLabel.empty()) { |
| + [alert_ addButtonWithTitle:base::SysUTF16ToNSString(auxilliaryButtonLabel) |
| + keyEquivalent:kKeyEquivalentNone |
| + target:cocoa_controller_ |
| + action:@selector(onAuxilliaryButton:)]; |
| + } |
| [[alert_ closeButton] setTarget:cocoa_controller_]; |
| [[alert_ closeButton] setAction:@selector(onCancelButton:)]; |
| @@ -115,10 +117,7 @@ void MediaGalleriesDialogCocoa::InitDialogControls() { |
| [main_container_ setCornerRadius:0]; |
| [main_container_ setContentViewMargins:NSZeroSize]; |
| [main_container_ setTitlePosition:NSNoTitle]; |
| - [main_container_ setBorderColor:[NSColor colorWithCalibratedRed:0.625 |
| - green:0.625 |
| - blue:0.625 |
| - alpha:1.0]]; |
| + [main_container_ setBorderColor:[NSColor disabledControlTextColor]]; |
| base::scoped_nsobject<NSScrollView> scroll_view( |
| [[NSScrollView alloc] initWithFrame: |
| @@ -129,14 +128,21 @@ void MediaGalleriesDialogCocoa::InitDialogControls() { |
| [scroll_view setAutohidesScrollers:YES]; |
| [[main_container_ contentView] addSubview:scroll_view]; |
| - // Add gallery permission checkboxes inside the scrolling view. |
| + // Add gallery checkboxes inside the scrolling view. |
| checkbox_container_.reset([[FlippedView alloc] initWithFrame:NSZeroRect]); |
| - CGFloat y_pos = CreateCheckboxes(0, controller_->AttachedPermissions()); |
| - |
| - if (!controller_->UnattachedPermissions().empty()) { |
| - y_pos = CreateCheckboxSeparator(y_pos); |
| - y_pos = CreateCheckboxes(y_pos, controller_->UnattachedPermissions()); |
| + std::vector<base::string16> headers = controller_->GetSectionHeaders(); |
| + CGFloat y_pos = 0; |
| + for (size_t i = 0; i < headers.size(); i++) { |
| + MediaGalleriesDialogController::Entries entries = |
| + controller_->GetSectionEntries(i); |
| + if (!entries.empty()) { |
| + if (!headers[i].empty()) { |
| + y_pos = CreateCheckboxSeparator(y_pos, |
| + base::SysUTF16ToNSString(headers[i])); |
| + } |
| + y_pos = CreateCheckboxes(y_pos, entries); |
| + } |
| } |
| // Give the container a reasonable initial size so that the scroll_view can |
| @@ -168,23 +174,21 @@ void MediaGalleriesDialogCocoa::InitDialogControls() { |
| CGFloat MediaGalleriesDialogCocoa::CreateCheckboxes( |
| CGFloat y_pos, |
| - const MediaGalleriesDialogController::GalleryPermissionsVector& |
| - permissions) { |
| - for (MediaGalleriesDialogController::GalleryPermissionsVector:: |
| - const_iterator iter = permissions.begin(); |
| - iter != permissions.end(); iter++) { |
| - const MediaGalleriesDialogController::GalleryPermission& permission = *iter; |
| + const MediaGalleriesDialogController::Entries& entries) { |
| + for (MediaGalleriesDialogController::Entries::const_iterator iter = |
| + entries.begin(); iter != entries.end(); iter++) { |
|
Lei Zhang
2014/06/05 07:56:25
++iter
vandebo (ex-Chrome)
2014/06/05 19:25:29
Done.
|
| + const MediaGalleriesDialogController::Entry& entry = *iter; |
| base::scoped_nsobject<MediaGalleryListEntry> checkbox_entry( |
| [[MediaGalleryListEntry alloc] |
| initWithFrame:NSZeroRect |
| controller:this |
| - prefId:permission.gallery_id |
| - galleryName:permission.pref_info.GetGalleryDisplayName() |
| - subscript:permission.pref_info.GetGalleryAdditionalDetails() |
| - tooltip:permission.pref_info.GetGalleryTooltip() |
| - showFolderViewer:false]); |
| + prefId:entry.pref_info.pref_id |
| + galleryName:entry.pref_info.GetGalleryDisplayName() |
| + subscript:entry.pref_info.GetGalleryAdditionalDetails() |
| + tooltip:entry.pref_info.GetGalleryTooltip() |
| + showFolderViewer:controller_->ShowFolderViewer(entry)]); |
| - [checkbox_entry setState:permission.allowed]; |
| + [checkbox_entry setState:entry.selected]; |
| [checkbox_entry setFrameOrigin:NSMakePoint(0, y_pos)]; |
| y_pos = NSMaxY([checkbox_entry frame]) + kCheckboxMargin; |
| @@ -195,7 +199,8 @@ CGFloat MediaGalleriesDialogCocoa::CreateCheckboxes( |
| return y_pos; |
| } |
| -CGFloat MediaGalleriesDialogCocoa::CreateCheckboxSeparator(CGFloat y_pos) { |
| +CGFloat MediaGalleriesDialogCocoa::CreateCheckboxSeparator(CGFloat y_pos, |
| + NSString* header) { |
| base::scoped_nsobject<NSBox> separator( |
| [[NSBox alloc] initWithFrame:NSMakeRect( |
| 0, y_pos + kCheckboxMargin * 0.5, kCheckboxMaxWidth, 1.0)]); |
| @@ -212,8 +217,7 @@ CGFloat MediaGalleriesDialogCocoa::CreateCheckboxSeparator(CGFloat y_pos) { |
| [unattached_label setBezeled:NO]; |
| [unattached_label setAttributedStringValue: |
| constrained_window::GetAttributedLabelString( |
| - base::SysUTF16ToNSString( |
| - controller_->GetUnattachedLocationsHeader()), |
| + header, |
| chrome_style::kTextFontStyle, |
| NSNaturalTextAlignment, |
| NSLineBreakByClipping |
| @@ -241,8 +245,8 @@ void MediaGalleriesDialogCocoa::OnCancelClicked() { |
| window_->CloseWebContentsModalDialog(); |
| } |
| -void MediaGalleriesDialogCocoa::OnAddFolderClicked() { |
| - controller_->OnAddFolderClicked(); |
| +void MediaGalleriesDialogCocoa::OnAuxilliaryButtonClicked() { |
| + controller_->OnAuxilliaryButtonClicked(); |
| } |
| void MediaGalleriesDialogCocoa::UpdateGalleries() { |
| @@ -254,17 +258,22 @@ void MediaGalleriesDialogCocoa::OnConstrainedWindowClosed( |
| controller_->DialogFinished(accepted_); |
| } |
| -void MediaGalleriesDialogCocoa::OnCheckboxToggled(GalleryDialogId gallery_id, |
| +void MediaGalleriesDialogCocoa::OnCheckboxToggled(MediaGalleryPrefId pref_id, |
| bool checked) { |
| - controller_->DidToggleGallery(gallery_id, checked); |
| + controller_->DidToggleEntry(pref_id, checked); |
| [[[alert_ buttons] objectAtIndex:0] setEnabled: |
| controller_->IsAcceptAllowed()]; |
| } |
| +void MediaGalleriesDialogCocoa::OnFolderViewerClicked( |
| + MediaGalleryPrefId prefId) { |
| + controller_->DidClickOpenFolderViewer(prefId); |
| +} |
| + |
| ui::MenuModel* MediaGalleriesDialogCocoa::GetContextMenu( |
| - GalleryDialogId gallery_id) { |
| - return controller_->GetContextMenu(gallery_id); |
| + MediaGalleryPrefId pref_id) { |
| + return controller_->GetContextMenu(pref_id); |
| } |
| // static |