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

Unified Diff: chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm

Issue 310383004: Make a controller interface for media galleries dialogs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698