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

Side by Side Diff: ui/message_center/cocoa/notification_controller.mm

Issue 17593006: mac: Update clients of scoped_nsobject.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: iwyu, scoped_nsprotocol Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #import "ui/message_center/cocoa/notification_controller.h" 5 #import "ui/message_center/cocoa/notification_controller.h"
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 messageCenter_ = messageCenter; 200 messageCenter_ = messageCenter;
201 } 201 }
202 return self; 202 return self;
203 } 203 }
204 204
205 - (void)loadView { 205 - (void)loadView {
206 // Create the root view of the notification. 206 // Create the root view of the notification.
207 NSRect rootFrame = NSMakeRect(0, 0, 207 NSRect rootFrame = NSMakeRect(0, 0,
208 message_center::kNotificationPreferredImageSize, 208 message_center::kNotificationPreferredImageSize,
209 message_center::kNotificationIconSize); 209 message_center::kNotificationIconSize);
210 scoped_nsobject<MCNotificationView> rootView( 210 base::scoped_nsobject<MCNotificationView> rootView(
211 [[MCNotificationView alloc] initWithController:self 211 [[MCNotificationView alloc] initWithController:self frame:rootFrame]);
212 frame:rootFrame]);
213 [self configureCustomBox:rootView]; 212 [self configureCustomBox:rootView];
214 [rootView setFillColor:gfx::SkColorToCalibratedNSColor( 213 [rootView setFillColor:gfx::SkColorToCalibratedNSColor(
215 message_center::kNotificationBackgroundColor)]; 214 message_center::kNotificationBackgroundColor)];
216 [self setView:rootView]; 215 [self setView:rootView];
217 216
218 [rootView addSubview:[self createImageView]]; 217 [rootView addSubview:[self createImageView]];
219 218
220 // Create the close button. 219 // Create the close button.
221 [self configureCloseButtonInFrame:rootFrame]; 220 [self configureCloseButtonInFrame:rootFrame];
222 [rootView addSubview:closeButton_]; 221 [rootView addSubview:closeButton_];
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 bottomView_.reset([[NSView alloc] initWithFrame:frame]); 338 bottomView_.reset([[NSView alloc] initWithFrame:frame]);
340 CGFloat y = 0; 339 CGFloat y = 0;
341 340
342 // Create action buttons if appropriate, bottom-up. 341 // Create action buttons if appropriate, bottom-up.
343 std::vector<message_center::ButtonInfo> buttons = notification->buttons(); 342 std::vector<message_center::ButtonInfo> buttons = notification->buttons();
344 for (int i = buttons.size() - 1; i >= 0; --i) { 343 for (int i = buttons.size() - 1; i >= 0; --i) {
345 message_center::ButtonInfo buttonInfo = buttons[i]; 344 message_center::ButtonInfo buttonInfo = buttons[i];
346 NSRect buttonFrame = frame; 345 NSRect buttonFrame = frame;
347 buttonFrame.origin = NSMakePoint(0, y); 346 buttonFrame.origin = NSMakePoint(0, y);
348 buttonFrame.size.height = message_center::kButtonHeight; 347 buttonFrame.size.height = message_center::kButtonHeight;
349 scoped_nsobject<NSButton> button( 348 base::scoped_nsobject<NSButton> button(
350 [[NSButton alloc] initWithFrame:buttonFrame]); 349 [[NSButton alloc] initWithFrame:buttonFrame]);
351 scoped_nsobject<MCNotificationButtonCell> cell( 350 base::scoped_nsobject<MCNotificationButtonCell> cell(
352 [[MCNotificationButtonCell alloc] 351 [[MCNotificationButtonCell alloc]
353 initTextCell:base::SysUTF16ToNSString(buttonInfo.title)]); 352 initTextCell:base::SysUTF16ToNSString(buttonInfo.title)]);
354 [cell setShowsBorderOnlyWhileMouseInside:YES]; 353 [cell setShowsBorderOnlyWhileMouseInside:YES];
355 [button setCell:cell]; 354 [button setCell:cell];
356 [button setImage:buttonInfo.icon.AsNSImage()]; 355 [button setImage:buttonInfo.icon.AsNSImage()];
357 [button setBezelStyle:NSSmallSquareBezelStyle]; 356 [button setBezelStyle:NSSmallSquareBezelStyle];
358 [button setImagePosition:NSImageLeft]; 357 [button setImagePosition:NSImageLeft];
359 [button setTag:i]; 358 [button setTag:i];
360 [button setTarget:self]; 359 [button setTarget:self];
361 [button setAction:@selector(buttonClicked:)]; 360 [button setAction:@selector(buttonClicked:)];
362 y += NSHeight(buttonFrame); 361 y += NSHeight(buttonFrame);
363 frame.size.height += NSHeight(buttonFrame); 362 frame.size.height += NSHeight(buttonFrame);
364 [bottomView_ addSubview:button]; 363 [bottomView_ addSubview:button];
365 364
366 NSRect separatorFrame = frame; 365 NSRect separatorFrame = frame;
367 separatorFrame.origin = NSMakePoint(0, y); 366 separatorFrame.origin = NSMakePoint(0, y);
368 separatorFrame.size.height = 1; 367 separatorFrame.size.height = 1;
369 scoped_nsobject<NSBox> separator( 368 base::scoped_nsobject<NSBox> separator(
370 [[AccessibilityIgnoredBox alloc] initWithFrame:separatorFrame]); 369 [[AccessibilityIgnoredBox alloc] initWithFrame:separatorFrame]);
371 [self configureCustomBox:separator]; 370 [self configureCustomBox:separator];
372 [separator setFillColor:gfx::SkColorToCalibratedNSColor( 371 [separator setFillColor:gfx::SkColorToCalibratedNSColor(
373 message_center::kButtonSeparatorColor)]; 372 message_center::kButtonSeparatorColor)];
374 y += NSHeight(separatorFrame); 373 y += NSHeight(separatorFrame);
375 frame.size.height += NSHeight(separatorFrame); 374 frame.size.height += NSHeight(separatorFrame);
376 [bottomView_ addSubview:separator]; 375 [bottomView_ addSubview:separator];
377 } 376 }
378 377
379 // Create the image view if appropriate. 378 // Create the image view if appropriate.
380 if (!notification->image().IsEmpty()) { 379 if (!notification->image().IsEmpty()) {
381 NSImage* image = notification->image().AsNSImage(); 380 NSImage* image = notification->image().AsNSImage();
382 NSRect imageFrame = frame; 381 NSRect imageFrame = frame;
383 imageFrame.origin = NSMakePoint(0, y); 382 imageFrame.origin = NSMakePoint(0, y);
384 imageFrame.size = NSSizeFromCGSize(message_center::GetImageSizeForWidth( 383 imageFrame.size = NSSizeFromCGSize(message_center::GetImageSizeForWidth(
385 NSWidth(frame), notification->image().Size()).ToCGSize()); 384 NSWidth(frame), notification->image().Size()).ToCGSize());
386 scoped_nsobject<NSImageView> imageView( 385 base::scoped_nsobject<NSImageView> imageView(
387 [[NSImageView alloc] initWithFrame:imageFrame]); 386 [[NSImageView alloc] initWithFrame:imageFrame]);
388 [imageView setImage:image]; 387 [imageView setImage:image];
389 [imageView setImageScaling:NSImageScaleProportionallyUpOrDown]; 388 [imageView setImageScaling:NSImageScaleProportionallyUpOrDown];
390 y += NSHeight(imageFrame); 389 y += NSHeight(imageFrame);
391 frame.size.height += NSHeight(imageFrame); 390 frame.size.height += NSHeight(imageFrame);
392 [bottomView_ addSubview:imageView]; 391 [bottomView_ addSubview:imageView];
393 } 392 }
394 393
395 [bottomView_ setFrame:frame]; 394 [bottomView_ setFrame:frame];
396 [[self view] addSubview:bottomView_]; 395 [[self view] addSubview:bottomView_];
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 // Private ///////////////////////////////////////////////////////////////////// 432 // Private /////////////////////////////////////////////////////////////////////
434 433
435 + (NSAttributedString*) 434 + (NSAttributedString*)
436 attributedStringForItem:(const message_center::NotificationItem&)item 435 attributedStringForItem:(const message_center::NotificationItem&)item
437 font:(NSFont*)font { 436 font:(NSFont*)font {
438 NSString* text = base::SysUTF16ToNSString( 437 NSString* text = base::SysUTF16ToNSString(
439 item.title + base::UTF8ToUTF16(" ") + item.message); 438 item.title + base::UTF8ToUTF16(" ") + item.message);
440 NSMutableAttributedString* formattedText = 439 NSMutableAttributedString* formattedText =
441 [[[NSMutableAttributedString alloc] initWithString:text] autorelease]; 440 [[[NSMutableAttributedString alloc] initWithString:text] autorelease];
442 441
443 scoped_nsobject<NSMutableParagraphStyle> paragraphStyle( 442 base::scoped_nsobject<NSMutableParagraphStyle> paragraphStyle(
444 [[NSParagraphStyle defaultParagraphStyle] mutableCopy]); 443 [[NSParagraphStyle defaultParagraphStyle] mutableCopy]);
445 [paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; 444 [paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail];
446 NSDictionary* sharedAttribs = @{ 445 NSDictionary* sharedAttribs = @{
447 NSFontAttributeName : font, 446 NSFontAttributeName : font,
448 NSParagraphStyleAttributeName : paragraphStyle, 447 NSParagraphStyleAttributeName : paragraphStyle,
449 }; 448 };
450 const NSRange range = NSMakeRange(0, [formattedText length] - 1); 449 const NSRange range = NSMakeRange(0, [formattedText length] - 1);
451 [formattedText addAttributes:sharedAttribs range:range]; 450 [formattedText addAttributes:sharedAttribs range:range];
452 451
453 NSDictionary* titleAttribs = @{ 452 NSDictionary* titleAttribs = @{
(...skipping 20 matching lines...) Expand all
474 [box setTitlePosition:NSNoTitle]; 473 [box setTitlePosition:NSNoTitle];
475 [box setContentViewMargins:NSZeroSize]; 474 [box setContentViewMargins:NSZeroSize];
476 } 475 }
477 476
478 - (NSView*)createImageView { 477 - (NSView*)createImageView {
479 // Create another box that shows a background color when the icon is not 478 // Create another box that shows a background color when the icon is not
480 // big enough to fill the space. 479 // big enough to fill the space.
481 NSRect imageFrame = NSMakeRect(0, 0, 480 NSRect imageFrame = NSMakeRect(0, 0,
482 message_center::kNotificationIconSize, 481 message_center::kNotificationIconSize,
483 message_center::kNotificationIconSize); 482 message_center::kNotificationIconSize);
484 scoped_nsobject<NSBox> imageBox( 483 base::scoped_nsobject<NSBox> imageBox(
485 [[AccessibilityIgnoredBox alloc] initWithFrame:imageFrame]); 484 [[AccessibilityIgnoredBox alloc] initWithFrame:imageFrame]);
486 [self configureCustomBox:imageBox]; 485 [self configureCustomBox:imageBox];
487 [imageBox setFillColor:gfx::SkColorToCalibratedNSColor( 486 [imageBox setFillColor:gfx::SkColorToCalibratedNSColor(
488 message_center::kLegacyIconBackgroundColor)]; 487 message_center::kLegacyIconBackgroundColor)];
489 [imageBox setAutoresizingMask:NSViewMinYMargin]; 488 [imageBox setAutoresizingMask:NSViewMinYMargin];
490 489
491 // Inside the image box put the actual icon view. 490 // Inside the image box put the actual icon view.
492 icon_.reset([[NSImageView alloc] initWithFrame:imageFrame]); 491 icon_.reset([[NSImageView alloc] initWithFrame:imageFrame]);
493 [imageBox setContentView:icon_]; 492 [imageBox setContentView:icon_];
494 493
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 if (font.GetStringWidth(last) > width) 582 if (font.GetStringWidth(last) > width)
584 last = ui::ElideText(last, font, width, ui::ELIDE_AT_END); 583 last = ui::ElideText(last, font, width, ui::ELIDE_AT_END);
585 wrapped.resize(lines - 1); 584 wrapped.resize(lines - 1);
586 wrapped.push_back(last); 585 wrapped.push_back(last);
587 } 586 }
588 587
589 return JoinString(wrapped, '\n'); 588 return JoinString(wrapped, '\n');
590 } 589 }
591 590
592 @end 591 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698