| 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..e52c6829699190a8303ee9aa0c27b0181416e54d 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)onAuxiliaryButton:(id)sender;
|
|
|
| @end
|
|
|
| @@ -46,9 +46,9 @@
|
| dialog_->OnCancelClicked();
|
| }
|
|
|
| -- (void)onAddFolderClicked:(id)sender {
|
| +- (void)onAuxiliaryButton:(id)sender {
|
| DCHECK(dialog_);
|
| - dialog_->OnAddFolderClicked();
|
| + dialog_->OnAuxiliaryButtonClicked();
|
| }
|
|
|
| @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,23 +84,25 @@ 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 auxiliaryButtonLabel = controller_->GetAuxiliaryButtonText();
|
| + if (!auxiliaryButtonLabel.empty()) {
|
| + [alert_ addButtonWithTitle:base::SysUTF16ToNSString(auxiliaryButtonLabel)
|
| + keyEquivalent:kKeyEquivalentNone
|
| + target:cocoa_controller_
|
| + action:@selector(onAuxiliaryButton:)];
|
| + }
|
| [[alert_ closeButton] setTarget:cocoa_controller_];
|
| [[alert_ closeButton] setAction:@selector(onCancelButton:)];
|
|
|
| InitDialogControls();
|
|
|
| // May be NULL during tests.
|
| - if (controller->web_contents()) {
|
| + if (controller->WebContents()) {
|
| base::scoped_nsobject<CustomConstrainedWindowSheet> sheet(
|
| [[CustomConstrainedWindowSheet alloc]
|
| initWithCustomWindow:[alert_ window]]);
|
| window_.reset(new ConstrainedWindowMac(
|
| - this, controller->web_contents(), sheet));
|
| + this, controller->WebContents(), sheet));
|
| }
|
| }
|
|
|
| @@ -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) {
|
| + 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_->ShouldShowFolderViewer(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::OnAuxiliaryButtonClicked() {
|
| + controller_->DidClickAuxiliaryButton();
|
| }
|
|
|
| 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
|
|
|