MediaGalleriesDialogCocoa* dialog_;
}
-@property(nonatomic, assign) MediaGalleriesDialogCocoa* dialog;
+@property(assign, nonatomic) MediaGalleriesDialogCocoa* dialog;
@end
@end
+
@interface MediaGalleriesCheckbox : NSButton {
@private
- MediaGalleriesDialogCocoa* dialog_;
+ MediaGalleriesDialogCocoa* dialog_; // |dialog_| owns |this|.
MediaGalleryPrefId prefId_;
- base::scoped_nsobject<MenuController> menu_controller_;
+ base::scoped_nsobject<MenuController> menuController_;
}
- (id)initWithFrame:(NSRect)frameRect
}
- (NSMenu*)menuForEvent:(NSEvent*)theEvent {
- menu_controller_.reset(
- [[MenuController alloc] initWithModel:dialog_->GetContextMenuModel(prefId_)
+ menuController_.reset(
+ [[MenuController alloc] initWithModel:dialog_->GetContextMenu(prefId_)
useWithPopUpButtonCell:NO]);
- return [menu_controller_ menu];
+ return [menuController_ menu];
}
@end
alert_.reset([[ConstrainedWindowAlert alloc] init]);
[alert_ setMessageText:base::SysUTF16ToNSString(controller_->GetHeader())];
- [alert_ setInformativeText:SysUTF16ToNSString(controller_->GetSubtext())];
+ [alert_ setInformativeText:
+ base::SysUTF16ToNSString(controller_->GetSubtext())];
[alert_ addButtonWithTitle:
l10n_util::GetNSString(IDS_MEDIA_GALLERIES_DIALOG_CONFIRM)
keyEquivalent:kKeyEquivalentReturn
}
void MediaGalleriesDialogCocoa::InitDialogControls() {
- accessory_.reset([[NSBox alloc] init]);
- [accessory_ setBoxType:NSBoxCustom];
- [accessory_ setBorderType:NSLineBorder];
- [accessory_ setBorderWidth:1];
- [accessory_ setCornerRadius:0];
- [accessory_ setTitlePosition:NSNoTitle];
- [accessory_ setBorderColor:[NSColor colorWithCalibratedRed:0.625
- green:0.625
- blue:0.625
- alpha:1.0]];
-
- base::scoped_nsobject<NSScrollView> scroll_view([[NSScrollView alloc]
- initWithFrame:NSMakeRect(0, 0, kCheckboxMaxWidth, kScrollAreaHeight)]);
+ main_container_.reset([[NSBox alloc] init]);
+ [main_container_ setBoxType:NSBoxCustom];
+ [main_container_ setBorderType:NSLineBorder];
+ [main_container_ setBorderWidth:0];
+ [main_container_ setCornerRadius:0];
+ [main_container_ setTitlePosition:NSNoTitle];
+ [main_container_ setBorderColor:[NSColor colorWithCalibratedRed:0.625
+ green:0.625
+ blue:0.625
+ alpha:1.0]];
+
+ base::scoped_nsobject<NSScrollView> scroll_view(
+ [[NSScrollView alloc] initWithFrame:
+ NSMakeRect(0, 0, kCheckboxMaxWidth, kScrollAreaHeight)]);
[scroll_view setHasVerticalScroller:YES];
[scroll_view setHasHorizontalScroller:NO];
[scroll_view setBorderType:NSNoBorder];
[scroll_view setAutohidesScrollers:YES];
- [[accessory_ contentView] addSubview:scroll_view];
+ [[main_container_ contentView] addSubview:scroll_view];
// Add gallery permission checkboxes inside the scrolling view.
checkbox_container_.reset([[FlippedView alloc] initWithFrame:NSZeroRect]);
[scroll_view setFrame:scroll_frame];
}
- [accessory_ setFrame:NSMakeRect(
+ [main_container_ setFrame:NSMakeRect(
0, 0, kCheckboxMaxWidth, NSHeight(scroll_frame))];
- [alert_ setAccessoryView:accessory_];
+ [alert_ setAccessoryView:main_container_];
// As a safeguard against the user skipping reading over the dialog and just
// confirming, the button will be unavailable for dialogs without any checks
const MediaGalleryPrefInfo& gallery,
bool permitted,
CGFloat y_pos) {
+ // Checkbox.
base::scoped_nsobject<MediaGalleriesCheckbox> checkbox(
[[MediaGalleriesCheckbox alloc] initWithFrame:NSZeroRect
dialog:this
[checkbox setAction:@selector(onCheckboxToggled:)];
[checkboxes_ addObject:checkbox];
- // TODO(gbillock): Would be nice to add middle text elide behavior here.
[checkbox setTitle:base::SysUTF16ToNSString(
gallery.GetGalleryDisplayName())];
[checkbox setToolTip:base::SysUTF16ToNSString(gallery.GetGalleryTooltip())];
[checkbox sizeToFit];
NSRect rect = [checkbox bounds];
- rect.origin.y = y_pos;
- rect.origin.x = kCheckboxMargin;
- rect.size.width = std::min(NSWidth(rect), kCheckboxMaxWidth);
- [checkbox setFrame:rect];
- [checkbox_container_ addSubview:checkbox];
+ // Detail text.
base::scoped_nsobject<NSTextField> details(
[[NSTextField alloc] initWithFrame:NSZeroRect]);
[details setEditable:NO];
alpha:1.0]];
[details sizeToFit];
NSRect details_rect = [details bounds];
- details_rect.origin.y = y_pos - 1;
- details_rect.origin.x = kCheckboxMargin + rect.size.width + kCheckboxMargin;
- details_rect.size.width = kCheckboxMaxWidth - details_rect.origin.x;
+
+ // The checkbox will elide so reduce its size so it will all fit.
+ rect.size.width =
+ std::min(NSWidth(rect),
+ kCheckboxMaxWidth - 3 * kCheckboxMargin - NSWidth(details_rect));
+ rect.origin = NSMakePoint(kCheckboxMargin, y_pos);
+ [checkbox setFrame:rect];
+ [checkbox_container_ addSubview:checkbox];
+
+ details_rect.origin = NSMakePoint(NSMaxX(rect) + kCheckboxMargin, y_pos - 1);
[details setFrame:details_rect];
[checkbox_container_ addSubview:details];
controller_->DialogFinished(accepted_);
}
-ui::MenuModel* MediaGalleriesDialogCocoa::GetContextMenuModel(
+ui::MenuModel* MediaGalleriesDialogCocoa::GetContextMenu(
MediaGalleryPrefId prefid) {
- return controller_->GetContextMenuModel(prefid);
+ return controller_->GetContextMenu(prefid);
}
// static