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

Unified Diff: ui/message_center/cocoa/tray_view_controller.mm

Issue 142413005: Add an empty message to the notification center. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adds one more nit fix. Created 6 years, 11 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: ui/message_center/cocoa/tray_view_controller.mm
diff --git a/ui/message_center/cocoa/tray_view_controller.mm b/ui/message_center/cocoa/tray_view_controller.mm
index a1994ecddda1a4f89ac096c91a4ecc4599931034..5344268fed69634acfe967f21e11d69ba3e1db26 100644
--- a/ui/message_center/cocoa/tray_view_controller.mm
+++ b/ui/message_center/cocoa/tray_view_controller.mm
@@ -359,6 +359,14 @@ const CGFloat kTrayBottomMargin = 75;
// Testing API /////////////////////////////////////////////////////////////////
+- (NSBox*)divider {
+ return divider_.get();
+}
+
+- (NSTextField*)emptyDescription {
+ return emptyDescription_.get();
+}
+
- (NSScrollView*)scrollView {
return scrollView_.get();
}
@@ -390,16 +398,21 @@ const CGFloat kTrayBottomMargin = 75;
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
NSView* view = [self view];
+ auto configureLabel = ^(NSTextField* textField) {
+ [textField setAutoresizingMask:NSViewMinYMargin];
+ [textField setBezeled:NO];
+ [textField setBordered:NO];
+ [textField setDrawsBackground:NO];
+ [textField setEditable:NO];
+ [textField setSelectable:NO];
+ };
+
// Create the "Notifications" label at the top of the tray.
NSFont* font = [NSFont labelFontOfSize:message_center::kTitleFontSize];
title_.reset([[NSTextField alloc] initWithFrame:NSZeroRect]);
- [title_ setAutoresizingMask:NSViewMinYMargin];
- [title_ setBezeled:NO];
- [title_ setBordered:NO];
- [title_ setDrawsBackground:NO];
- [title_ setEditable:NO];
+ configureLabel(title_);
+
[title_ setFont:font];
- [title_ setSelectable:NO];
[title_ setStringValue:
l10n_util::GetNSString(IDS_MESSAGE_CENTER_FOOTER_TITLE)];
[title_ setTextColor:gfx::SkColorToCalibratedNSColor(
@@ -445,16 +458,17 @@ const CGFloat kTrayBottomMargin = 75;
[[self view] addSubview:backButton_];
// Create the divider line between the control area and the notifications.
- base::scoped_nsobject<NSBox> divider(
+ divider_.reset(
[[NSBox alloc] initWithFrame:NSMakeRect(0, 0, NSWidth([view frame]), 1)]);
- [divider setAutoresizingMask:NSViewMinYMargin];
- [divider setBorderType:NSNoBorder];
- [divider setBoxType:NSBoxCustom];
- [divider setContentViewMargins:NSZeroSize];
- [divider setFillColor:gfx::SkColorToCalibratedNSColor(
+ [divider_ setAutoresizingMask:NSViewMinYMargin];
+ [divider_ setBorderType:NSNoBorder];
+ [divider_ setBoxType:NSBoxCustom];
+ [divider_ setContentViewMargins:NSZeroSize];
+ [divider_ setFillColor:gfx::SkColorToCalibratedNSColor(
message_center::kFooterDelimiterColor)];
- [divider setTitlePosition:NSNoTitle];
- [view addSubview:divider];
+ [divider_ setTitlePosition:NSNoTitle];
+ [view addSubview:divider_];
+
auto getButtonFrame = ^NSRect(CGFloat maxX, NSImage* image) {
NSSize size = [image size];
@@ -524,13 +538,45 @@ const CGFloat kTrayBottomMargin = 75;
[pauseButton_ setAction:@selector(toggleQuietMode:)];
configureButton(pauseButton_);
[view addSubview:pauseButton_];
+
+ // Create the description field for the empty message center. Initially it is
+ // invisible.
+ emptyDescription_.reset([[NSTextField alloc] initWithFrame:NSZeroRect]);
+ configureLabel(emptyDescription_);
+
+ NSFont* smallFont =
+ [NSFont labelFontOfSize:message_center::kEmptyCenterFontSize];
+ [emptyDescription_ setFont:smallFont];
+ [emptyDescription_ setStringValue:
+ l10n_util::GetNSString(IDS_MESSAGE_CENTER_NO_MESSAGES)];
+ [emptyDescription_ setTextColor:gfx::SkColorToCalibratedNSColor(
+ message_center::kDimTextColor)];
+ [emptyDescription_ sizeToFit];
+ [emptyDescription_ setHidden:YES];
+
+ [view addSubview:emptyDescription_];
}
- (void)updateTrayViewAndWindow {
- CGFloat scrollContentHeight = 0;
+ CGFloat scrollContentHeight = message_center::kMinScrollViewHeight;
if ([notifications_ count]) {
+ [emptyDescription_ setHidden:YES];
+ [scrollView_ setHidden:NO];
+ [divider_ setHidden:NO];
scrollContentHeight = NSMaxY([[[notifications_ lastObject] view] frame]) +
message_center::kMarginBetweenItems;;
+ } else {
+ [emptyDescription_ setHidden:NO];
+ [scrollView_ setHidden:YES];
+ [divider_ setHidden:YES];
+
+ NSRect centeredFrame = [emptyDescription_ frame];
+ NSPoint centeredOrigin = NSMakePoint(
+ floor((NSWidth([[self view] frame]) - NSWidth(centeredFrame))/2 + 0.5),
+ floor((scrollContentHeight - NSHeight(centeredFrame))/2 + 0.5));
+
+ centeredFrame.origin = centeredOrigin;
+ [emptyDescription_ setFrame:centeredFrame];
}
// Resize the scroll view's content.
« no previous file with comments | « ui/message_center/cocoa/tray_view_controller.h ('k') | ui/message_center/cocoa/tray_view_controller_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698