diff options
author | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 02:12:08 +0000 |
---|---|---|
committer | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 02:12:08 +0000 |
commit | fc9e7f5981d3b4a87a9657c041dd09d8cbd086bf (patch) | |
tree | e131b6a69ffd21bc57603acf1ed12bebc4377e00 | |
parent | c7e95b41a0f80c8db514c221abe70044ae620edd (diff) | |
download | chromium_src-fc9e7f5981d3b4a87a9657c041dd09d8cbd086bf.zip chromium_src-fc9e7f5981d3b4a87a9657c041dd09d8cbd086bf.tar.gz chromium_src-fc9e7f5981d3b4a87a9657c041dd09d8cbd086bf.tar.bz2 |
Revert 188637 "Added text line limits to collapsed and expanded ..."
It appears that r188637 is causing flakiness of ash_unittests on Win8 Aura:
http://build.chromium.org/p/chromium.win/builders/Win8%20Aura/builds/3400
> Added text line limits to collapsed and expanded notifications.
>
> This is done through a new BoundedLabel views::Label subclass that
> supports a max_lines value. This class comes with unit tests covering
> its basic functionality.
>
> Also, the Notifications Galore! test app was updated to include test
> notifications with long titles, long messages, and long items which can
> be used for manual tests of the line limits.
>
> As with the rest of the collapse/expand functionality currently
> committed, this only applies to the notification center. Notification
> toasts are currently still always expanded and text line limits have not
> been tested for them.
>
> There are some known issues with incorrect notification card sizes in
> the notification center after some sequence of create/destroy
> operations, and these will be addressed in a separate change list.
>
> BUG=161098,168939,168940
> R=dewittj@chromium.org
> TBR=mukai@chromium.org
>
>
> Review URL: https://chromiumcodereview.appspot.com/12742005
TBR=dharcourt@chromium.org
Review URL: https://codereview.chromium.org/12757003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188663 0039d316-1c4b-4281-b951-d872f2087c98
11 files changed, 56 insertions, 585 deletions
diff --git a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.0.0.json b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.0.0.json index 4e20d56..b1a82ed 100644 --- a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.0.0.json +++ b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.0.0.json @@ -119,8 +119,8 @@ }, { "iconUrl": "/images/fruit5-80x80.jpg", - "title": "Notification #$#: Blueberries - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Vaccinium cyanococcus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + "title": "Notification #$#: Blueberries!", + "message": "Vaccinium cyanococcus" } ] }, @@ -158,8 +158,8 @@ }, { "iconUrl": "/images/flower4-80x80.jpg", - "title": "Notification #$#: Heather - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Calluna vulgaris - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Heather!", + "message": "Calluna vulgaris", "imageUrl": "/images/image4-200x300.jpg" } ] @@ -170,7 +170,7 @@ "notificationOptions": [ { "iconUrl": "/images/inbox-00-80x80.png", - "title": "5 new messages", + "title": "15 new messages", "message": "ramon.widdel@example.com", "items": [ {"title": "Althe Frazon", "message": "Lorem ipsum dolor sit amet"}, @@ -269,21 +269,12 @@ }, { "iconUrl": "/images/plant2-80x80.jpg", - "title": "Notification #$#: Basil - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Ocimum basilicum - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Basil!", + "message": "Ocimum basilicum", "items": [ - { - "title": "One - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Unus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Two - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Duo - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Three - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Tres - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - } + {"title": "One", "message": "Unus"}, + {"title": "Two", "message": "Duo"}, + {"title": "Three", "message": "Tres"} ] } ] diff --git a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1432.2.json b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1432.2.json index cddeaac..77bf472 100644 --- a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1432.2.json +++ b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1432.2.json @@ -119,8 +119,8 @@ }, { "iconUrl": "/images/fruit5-80x80.jpg", - "title": "Notification #$#: Blueberries - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Vaccinium cyanococcus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + "title": "Notification #$#: Blueberries!", + "message": "Vaccinium cyanococcus" } ] }, @@ -158,8 +158,8 @@ }, { "iconUrl": "/images/flower4-80x80.jpg", - "title": "Notification #$#: Heather - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Calluna vulgaris - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Heather!", + "message": "Calluna vulgaris", "imageUrl": "/images/image4-200x300.jpg" } ] @@ -170,7 +170,7 @@ "notificationOptions": [ { "iconUrl": "/images/inbox-00-80x80.png", - "title": "5 new messages", + "title": "15 new messages", "message": "ramon.widdel@example.com", "items": [ {"title": "Althe Frazon", "message": "Lorem ipsum dolor sit amet"}, @@ -269,21 +269,12 @@ }, { "iconUrl": "/images/plant2-80x80.jpg", - "title": "Notification #$#: Basil - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Ocimum basilicum - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Basil!", + "message": "Ocimum basilicum", "items": [ - { - "title": "One - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Unus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Two - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Duo - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Three - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Tres - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - } + {"title": "One", "message": "Unus"}, + {"title": "Two", "message": "Duo"}, + {"title": "Three", "message": "Tres"} ] } ] diff --git a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1433.1.json b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1433.1.json index 5ea47da..fcfca7a 100644 --- a/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1433.1.json +++ b/chrome/test/data/extensions/api_test/notifications/galore/app/data/27.0.1433.1.json @@ -119,8 +119,8 @@ }, { "iconUrl": "/images/fruit5-80x80.jpg", - "title": "Notification #$#: Blueberries - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Vaccinium cyanococcus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + "title": "Notification #$#: Blueberries!", + "message": "Vaccinium cyanococcus" } ] }, @@ -158,8 +158,8 @@ }, { "iconUrl": "/images/flower4-80x80.jpg", - "title": "Notification #$#: Heather - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Calluna vulgaris - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Heather!", + "message": "Calluna vulgaris", "imageUrl": "/images/image4-200x300.jpg" } ] @@ -170,7 +170,7 @@ "notificationOptions": [ { "iconUrl": "/images/inbox-00-80x80.png", - "title": "5 new messages", + "title": "15 new messages", "message": "ramon.widdel@example.com", "items": [ {"title": "Althe Frazon", "message": "Lorem ipsum dolor sit amet"}, @@ -269,21 +269,12 @@ }, { "iconUrl": "/images/plant2-80x80.jpg", - "title": "Notification #$#: Basil - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum!", - "message": "Ocimum basilicum - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "title": "Notification #$#: Basil!", + "message": "Ocimum basilicum", "items": [ - { - "title": "One - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Unus - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Two - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Duo - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - }, - { - "title": "Three - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", - "message": "Tres - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" - } + {"title": "One", "message": "Unus"}, + {"title": "Two", "message": "Duo"}, + {"title": "Three", "message": "Tres"} ] } ] diff --git a/chrome/test/data/extensions/api_test/notifications/galore/app/manifest.json b/chrome/test/data/extensions/api_test/notifications/galore/app/manifest.json index 0ef8485..08f0f34 100644 --- a/chrome/test/data/extensions/api_test/notifications/galore/app/manifest.json +++ b/chrome/test/data/extensions/api_test/notifications/galore/app/manifest.json @@ -1,7 +1,7 @@ { "name": "Notifications Galore!", "description": "A testbed for Chrome notifications", - "version": "0.9.4", + "version": "0.9.3", "manifest_version": 2, "minimum_chrome_version": "27", "app": { diff --git a/ui/message_center/message_center.gyp b/ui/message_center/message_center.gyp index 4bea413..00139ec 100644 --- a/ui/message_center/message_center.gyp +++ b/ui/message_center/message_center.gyp @@ -46,8 +46,6 @@ 'notification_types.h', 'notifier_settings.cc', 'notifier_settings.h', - 'views/bounded_label.cc', - 'views/bounded_label.h', 'views/message_bubble_base.cc', 'views/message_bubble_base.h', 'views/message_center_bubble.cc', @@ -78,35 +76,23 @@ ], }], ], - }, # target_name: message_center + }, { 'target_name': 'message_center_unittests', 'type': 'executable', 'dependencies': [ + '../../base/base.gyp:base', + '../../base/base.gyp:run_all_unittests', '../../base/base.gyp:test_support_base', '../../skia/skia.gyp:skia', '../../testing/gtest.gyp:gtest', + '../ui.gyp:ui', 'message_center', ], 'sources': [ 'message_center_tray_unittest.cc', 'notification_list_unittest.cc', - 'run_all_unittests.cc', - ], - 'conditions': [ - ['toolkit_views==1', { - 'dependencies': [ - # The BoundedLabel unit tests use fonts, and fonts require the - # compositor and its test support. - '../compositor/compositor.gyp:compositor', - '../compositor/compositor.gyp:compositor_test_support', - '../views/views.gyp:views', - ], - 'sources': [ - 'views/bounded_label_unittest.cc', - ], - }], ], - }, # target_name: message_center_unittests + }, ], } diff --git a/ui/message_center/run_all_unittests.cc b/ui/message_center/run_all_unittests.cc deleted file mode 100644 index 9e01991..0000000 --- a/ui/message_center/run_all_unittests.cc +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/basictypes.h" -#include "base/compiler_specific.h" -#include "base/test/test_suite.h" -#include "ui/base/resource/resource_bundle.h" -#include "ui/base/ui_base_paths.h" -#include "ui/compositor/compositor_setup.h" -#include "ui/compositor/test/compositor_test_support.h" -#include "ui/views/view.h" - -class MessageCenterTestSuite : public base::TestSuite { - public: - MessageCenterTestSuite(int argc, char** argv) : base::TestSuite(argc, argv) {} - - protected: - virtual void Initialize() OVERRIDE; - virtual void Shutdown() OVERRIDE; - - private: - DISALLOW_COPY_AND_ASSIGN(MessageCenterTestSuite); -}; - -void MessageCenterTestSuite::Initialize() { - base::TestSuite::Initialize(); - - ui::RegisterPathProvider(); - ui::ResourceBundle::InitSharedInstanceWithLocale("en-US", NULL); - - ui::CompositorTestSupport::Initialize(); - ui::SetupTestCompositor(); -} - -void MessageCenterTestSuite::Shutdown() { - ui::CompositorTestSupport::Terminate(); -} - -int main(int argc, char** argv) { - return MessageCenterTestSuite(argc, argv).Run(); -} diff --git a/ui/message_center/views/bounded_label.cc b/ui/message_center/views/bounded_label.cc deleted file mode 100644 index f9c71b3..0000000 --- a/ui/message_center/views/bounded_label.cc +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/message_center/views/bounded_label.h" - -#include <limits> - -#include "base/string_util.h" -#include "base/utf_string_conversions.h" -#include "ui/base/text/text_elider.h" -#include "ui/gfx/canvas.h" - -namespace message_center { - -BoundedLabel::BoundedLabel(string16 text, size_t max_lines) - : views::Label(text, gfx::Font()) { - Init(max_lines); -} - -BoundedLabel::BoundedLabel(string16 text, gfx::Font font, size_t max_lines) - : views::Label(text, font) { - Init(max_lines); -} - -BoundedLabel::~BoundedLabel() { -} - -void BoundedLabel::SetMaxLines(size_t lines) { - is_preferred_lines_valid_ = false; - is_text_size_valid_ = false; - max_lines_ = lines; -} - -size_t BoundedLabel::GetMaxLines() { - return max_lines_; -} - -size_t BoundedLabel::GetPreferredLines() { - if (!is_preferred_lines_valid_) { - int wrap_width = width() - GetInsets().width(); - int unlimited_lines = std::numeric_limits<size_t>::max(); - preferred_lines_ = SplitLines(wrap_width, unlimited_lines).size(); - is_preferred_lines_valid_ = true; - } - return preferred_lines_; -} - -int BoundedLabel::GetHeightForWidth(int width) { - gfx::Insets insets = GetInsets(); - return GetTextHeightForWidth(width - insets.width()) + insets.height(); -} - -gfx::Size BoundedLabel::GetTextSize() const { - if (!is_text_size_valid_) { - text_size_.set_width(width() - GetInsets().width()); - text_size_.set_height(GetTextHeightForWidth(text_size_.width())); - is_text_size_valid_ = true; - } - return text_size_; -} - -void BoundedLabel::OnBoundsChanged(const gfx::Rect& previous_bounds) { - is_preferred_lines_valid_ = false; - is_text_size_valid_ = false; -} - -void BoundedLabel::PaintText(gfx::Canvas* canvas, - const string16& paint_text, - const gfx::Rect& text_bounds, - int flags) { - gfx::Insets insets = GetInsets(); - gfx::Rect bounds(gfx::Point(insets.left(), insets.top()), GetTextSize()); - string16 text = JoinString(SplitLines(bounds.width(), max_lines_), '\n'); - views::Label::PaintText(canvas, text, bounds, GetTextFlags()); -} - -void BoundedLabel::Init(size_t max_lines) { - SetMultiLine(true); - SetAllowCharacterBreak(true); - SetElideBehavior(views::Label::ELIDE_AT_END); - max_lines_ = max_lines; - is_preferred_lines_valid_ = false; - is_text_size_valid_ = false; -} - -int BoundedLabel::GetTextFlags() const { - int flags = gfx::Canvas::MULTI_LINE | gfx::Canvas::CHARACTER_BREAK; - - // We can't use subpixel rendering if the background is non-opaque. - if (SkColorGetA(background_color()) != 0xFF) - flags |= gfx::Canvas::NO_SUBPIXEL_RENDERING; - - if (directionality_mode() == AUTO_DETECT_DIRECTIONALITY) { - base::i18n::TextDirection direction = - base::i18n::GetFirstStrongCharacterDirection(text()); - if (direction == base::i18n::RIGHT_TO_LEFT) - flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; - else - flags |= gfx::Canvas::FORCE_LTR_DIRECTIONALITY; - } - - switch (horizontal_alignment()) { - case gfx::ALIGN_LEFT: - flags |= gfx::Canvas::TEXT_ALIGN_LEFT; - break; - case gfx::ALIGN_CENTER: - flags |= gfx::Canvas::TEXT_ALIGN_CENTER; - break; - case gfx::ALIGN_RIGHT: - flags |= gfx::Canvas::TEXT_ALIGN_RIGHT; - break; - } - - return flags; -} - -int BoundedLabel::GetTextHeightForWidth(int width) const { - int height = font().GetHeight(); - width = std::max(width, 0); - string16 text = JoinString(SplitLines(width, max_lines_), '\n'); - gfx::Canvas::SizeStringInt(text, font(), &width, &height, GetTextFlags()); - return height; -} - -std::vector<string16> BoundedLabel::SplitLines(int width, - size_t max_lines) const { - // Adjust max_lines so (max_lines + 1) * line_height <= INT_MAX, then use the - // adjusted max_lines to get a max_height of (max_lines + 1) * line_height. - size_t max_height = std::numeric_limits<int>::max(); - size_t line_height = std::max(font().GetHeight(), 2); // At least 2 pixels! - max_lines = std::min(max_lines, max_height / line_height - 1); - max_height = (max_lines + 1) * line_height; - - // Split. Do not use ui::WRAP_LONG_WORDS instead of ui::IGNORE_LONG_WORDS - // below as this may cause ui::ElideRectangleText() to go into an infinite - // loop for small width values. - std::vector<string16> lines; - ui::ElideRectangleText(text(), font(), width, max_height, - ui::IGNORE_LONG_WORDS, &lines); - - // Elide if necessary. - if (lines.size() > max_lines) { - // Add an ellipsis to the last line. If this ellipsis makes the last line - // too wide, that line will be further elided by the ui::ElideText below, - // so for example "ABC" could become "ABC..." here and "AB..." below. - string16 last = lines[max_lines - 1] + UTF8ToUTF16(ui::kEllipsis); - lines.resize(max_lines - 1); - lines.push_back((font().GetStringWidth(last) > width) ? - ui::ElideText(last, font(), width, ui::ELIDE_AT_END) : - last); - } - - return lines; -} - -} // namespace message_center diff --git a/ui/message_center/views/bounded_label.h b/ui/message_center/views/bounded_label.h deleted file mode 100644 index e79edff..0000000 --- a/ui/message_center/views/bounded_label.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_MESSAGE_CENTER_BOUNDED_LABEL_H_ -#define UI_MESSAGE_CENTER_BOUNDED_LABEL_H_ - -#include "testing/gtest/include/gtest/gtest_prod.h" -#include "ui/message_center/message_center_export.h" -#include "ui/views/controls/label.h" - -namespace message_center { - -// BoundedLabels display text up to a maximum number of lines, with ellipsis at -// the end of the last line for any omitted text. The font, text, multiline -// behavior, character break behavior, elide behavior, and focus border of -// instances of this views::Label subclass cannot be changed, so the following -// views::Label methods should never be called with instances of this class: -// -// SetFont() -// SetText() -// SetMultiLine() -// SetAllowCharacterBreak() -// SetElideBehavior() -// SetHasFocusBorder() -// -class MESSAGE_CENTER_EXPORT BoundedLabel : public views::Label { - public: - BoundedLabel(string16 text, size_t max_lines); - BoundedLabel(string16 text, gfx::Font font, size_t max_lines); - virtual ~BoundedLabel(); - - void SetMaxLines(size_t lines); - size_t GetMaxLines(); - size_t GetPreferredLines(); - - virtual int GetHeightForWidth(int width) OVERRIDE; - - protected: - // Overridden from views::Label. - virtual gfx::Size GetTextSize() const OVERRIDE; - virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; - virtual void PaintText(gfx::Canvas* canvas, - const string16& text, - const gfx::Rect& text_bounds, - int flags) OVERRIDE; - - private: - friend class BoundedLabelTest; - - void Init(size_t max_lines); - int GetTextFlags() const; - int GetTextHeightForWidth(int width) const; - std::vector<string16> SplitLines(int width, size_t max_lines) const; - - size_t max_lines_; - size_t preferred_lines_; - bool is_preferred_lines_valid_; - mutable gfx::Size text_size_; - mutable bool is_text_size_valid_; - - DISALLOW_COPY_AND_ASSIGN(BoundedLabel); -}; - -} // namespace message_center - -#endif // UI_MESSAGE_CENTER_BOUNDED_LABEL_H_ diff --git a/ui/message_center/views/bounded_label_unittest.cc b/ui/message_center/views/bounded_label_unittest.cc deleted file mode 100644 index aac0c5b..0000000 --- a/ui/message_center/views/bounded_label_unittest.cc +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/message_center/views/bounded_label.h" - -#include <limits> - -#include "base/string_util.h" -#include "base/strings/string_split.h" -#include "base/utf_string_conversions.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/gfx/font.h" -#include "ui/views/controls/label.h" - -namespace message_center { - -/* Test fixture declaration ***************************************************/ - -class BoundedLabelTest : public testing::Test { - public: - BoundedLabelTest(); - virtual ~BoundedLabelTest(); - - // Replaces all occurences of three periods ("...") in the specified string - // with an ellipses character (UTF8 "\xE2\x80\xA6") and returns a string16 - // with the results. This allows test strings to be specified as ASCII const - // char* strings, making tests more readable and easier to write. - string16 ToString(const char* string); - - // Converts the specified elision width to pixels. To make tests somewhat - // independent of the fonts of the platform on which they're run, the elision - // widths are specified as XYZ integers, with the corresponding width in - // pixels being X times the width of digit characters plus Y times the width - // of spaces plus Z times the width of ellipses in the default font of the - // test plaform. It is assumed that all digits have the same width in that - // font, that this width is greater than the width of spaces, and that the - // width of 3 digits is greater than the width of ellipses. - int ToPixels(int width); - - // Exercise BounderLabel::SplitLines() using the fixture's test label. - string16 SplitLines(int width); - - // Exercise BounderLabel::GetPreferredLines() using the fixture's test label. - int GetPreferredLines(int width); - - protected: - // Creates a label to test with. Returns this fixture, which can be used to - // test the newly created label using the exercise methods above. - BoundedLabelTest& Label(string16 text, size_t lines); - - private: - gfx::Font font_; // The default font, which will be used for tests. - int digit_pixels_; - int space_pixels_; - int ellipsis_pixels_; - scoped_ptr<BoundedLabel> label_; -}; - -/* Test fixture definition ****************************************************/ - -BoundedLabelTest::BoundedLabelTest() { - digit_pixels_ = font_.GetStringWidth(UTF8ToUTF16("0")); - space_pixels_ = font_.GetStringWidth(UTF8ToUTF16(" ")); - ellipsis_pixels_ = font_.GetStringWidth(UTF8ToUTF16("\xE2\x80\xA6")); -} - -BoundedLabelTest::~BoundedLabelTest() { -} - -string16 BoundedLabelTest::ToString(const char* string) { - const string16 periods = UTF8ToUTF16("..."); - const string16 ellipses = UTF8ToUTF16("\xE2\x80\xA6"); - string16 result = UTF8ToUTF16(string); - ReplaceSubstringsAfterOffset(&result, 0, periods, ellipses); - return result; -} - -int BoundedLabelTest::ToPixels(int width) { - return digit_pixels_ * width / 100 + - space_pixels_ * (width % 100) / 10 + - ellipsis_pixels_ * (width % 10); -} - -string16 BoundedLabelTest::SplitLines(int width) { - return JoinString(label_->SplitLines(width, label_->GetMaxLines()), '\n'); -} - -int BoundedLabelTest::GetPreferredLines(int width) { - label_->SetBounds(0, 0, width, font_.GetHeight() * label_->GetMaxLines()); - return label_->GetPreferredLines(); -} - -BoundedLabelTest& BoundedLabelTest::Label(string16 text, size_t lines) { - label_.reset(new BoundedLabel(text, font_, lines)); - return *this; -} - -/* Test macro definitions *****************************************************/ - -#define TEST_SPLIT_LINES(expected, text, width, lines) \ - EXPECT_EQ(ToString(expected), \ - Label(ToString(text), lines).SplitLines(ToPixels(width))) - -#define TEST_GET_PREFERRED_LINES(expected, text, width, lines) \ - EXPECT_EQ(expected, \ - Label(ToString(text), lines).GetPreferredLines(ToPixels(width))) - -/* Elision tests **************************************************************/ - -TEST_F(BoundedLabelTest, ElisionTest) { - // One word per line: No ellision should be made when not necessary. - TEST_SPLIT_LINES("123", "123", 301, 1); - TEST_SPLIT_LINES("123", "123", 301, 2); - TEST_SPLIT_LINES("123", "123", 301, 3); - TEST_SPLIT_LINES("123\n456", "123 456", 0, 2); // 301, 2); - TEST_SPLIT_LINES("123\n456", "123 456", 301, 3); - TEST_SPLIT_LINES("123\n456\n789", "123 456 789", 301, 3); - - // One word per line: Ellisions should be made when necessary. - TEST_SPLIT_LINES("123...", "123 456", 301, 1); - TEST_SPLIT_LINES("123...", "123 456 789", 301, 1); - TEST_SPLIT_LINES("123\n456...", "123 456 789", 301, 2); - - // Two words per line: No ellision should be made when not necessary. - TEST_SPLIT_LINES("123 456", "123 456", 621, 1); - TEST_SPLIT_LINES("123 456", "123 456", 621, 2); - TEST_SPLIT_LINES("123 456", "123 456", 621, 3); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012", 621, 2); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012", 621, 3); - TEST_SPLIT_LINES("123 456\n789 012\n345 678", - "123 456 789 012 345 678", 621, 3); - - // Two words per line: Ellisions should be made when necessary. - TEST_SPLIT_LINES("123 456...", "123 456 789 012", 621, 1); - TEST_SPLIT_LINES("123 456...", "123 456 789 012 345 678", 621, 1); - TEST_SPLIT_LINES("123 456\n789 012...", "123 456 789 012 345 678", 621, 2); - - // Single trailing spaces: No ellipses should be added. - TEST_SPLIT_LINES("123", "123 ", 301, 1); - TEST_SPLIT_LINES("123\n456", "123 456 ", 301, 2); - TEST_SPLIT_LINES("123\n456\n789", "123 456 789 ", 301, 3); - TEST_SPLIT_LINES("123 456", "123 456 ", 611, 1); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012 ", 611, 2); - TEST_SPLIT_LINES("123 456\n789 012\n345 678", - "123 456 789 012 345 678 ", 611, 3); - - // Multiple trailing spaces: No ellipses should be added. - TEST_SPLIT_LINES("123", "123 ", 301, 1); - TEST_SPLIT_LINES("123\n456", "123 456 ", 301, 2); - TEST_SPLIT_LINES("123\n456\n789", "123 456 789 ", 301, 3); - TEST_SPLIT_LINES("123 456", "123 456 ", 611, 1); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012 ", 611, 2); - TEST_SPLIT_LINES("123 456\n789 012\n345 678", - "123 456 789 012 345 678 ", 611, 3); - - // Multiple spaces between words on the same line: Spaces should be preserved. - // Test cases for single spaces between such words are included in the "Two - // words per line" sections above. - TEST_SPLIT_LINES("123 456", "123 456", 621, 1); - TEST_SPLIT_LINES("123 456...", "123 456 789 012", 631, 1); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012", 631, 2); - TEST_SPLIT_LINES("123 456...", "123 456 789 012 345 678", 621, 1); - TEST_SPLIT_LINES("123 456\n789 012...", - "123 456 789 012 345 678", 631, 2); - TEST_SPLIT_LINES("123 456\n789 012\n345 678", - "123 456 789 012 345 678", 641, 3); - - // Multiple spaces between words split across lines: Spaces should be removed - // even if lines are wide enough to include those spaces. Test cases for - // single spaces between such words are included in the "Two words per line" - // sections above. - TEST_SPLIT_LINES("123\n456", "123 456", 321, 2); - TEST_SPLIT_LINES("123\n456", "123 456", 391, 2); - TEST_SPLIT_LINES("123\n456...", "123 456 789", 321, 2); - TEST_SPLIT_LINES("123\n456...", "123 456 789", 391, 2); - TEST_SPLIT_LINES("123 456\n789 012", "123 456 789 012", 641, 2); - TEST_SPLIT_LINES("123 456\n789 012...", "123 456 789 012 345 678", - 641, 2); - - // TODO(dharcourt): Add test cases to verify that: - // - Spaces before elisions are removed - // - Leading spaces are preserved - // - Words are split when they are longer than lines - // - Words are clipped when they are longer than the last line - // - No blank line are created before or after clipped word - // - Spaces at the end of the text are removed - - // TODO(dharcourt): Add test cases for: - // - Empty and very large strings - // - Zero and very large max lines values - // - Other input boundary conditions - // TODO(dharcourt): Add some randomly generated fuzz test cases. - -} - -/* GetPreferredLinesTest ******************************************************/ - -TEST_F(BoundedLabelTest, GetPreferredLinesTest) { - // Zero, small, and negative width values should yield one word per line. - TEST_GET_PREFERRED_LINES(2, "123 456", 0, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", 1, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", 2, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", 3, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", -1, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", -2, 1); - TEST_GET_PREFERRED_LINES(2, "123 456", std::numeric_limits<int>::min(), 1); - - // Large width values should yield all words on one line. - TEST_GET_PREFERRED_LINES(1, "123 456", 610, 1); - TEST_GET_PREFERRED_LINES(1, "123 456", std::numeric_limits<int>::max(), 1); -} - -/* Other tests ****************************************************************/ - -// TODO(dharcourt): Add test cases to verify that: -// - SetMaxLines() affects GetMaxLines(), GetHeightForWidth(), GetTextSize(), -// and GetTextLines() return values but not GetPreferredLines() or -// GetTextSize() ones. -// - Bound changes affects GetPreferredLines(), GetTextSize(), and -// GetTextLines() return values. -// - GetTextFlags are as expected. - -} // namespace message_center diff --git a/ui/message_center/views/notification_view.cc b/ui/message_center/views/notification_view.cc index 6ca65dd..22ef717 100644 --- a/ui/message_center/views/notification_view.cc +++ b/ui/message_center/views/notification_view.cc @@ -18,7 +18,6 @@ #include "ui/message_center/notification.h" #include "ui/message_center/notification_change_observer.h" #include "ui/message_center/notification_types.h" -#include "ui/message_center/views/bounded_label.h" #include "ui/message_center/views/message_simple_view.h" #include "ui/native_theme/native_theme.h" #include "ui/views/controls/button/image_button.h" @@ -341,9 +340,6 @@ NotificationView::NotificationView(const Notification& notification, NotificationChangeObserver* observer, bool expanded) : MessageView(notification, observer, expanded) { - // As we build the view, we'll see if any part of it is expandable. - bool expandable = false; - // Create the opaque background that's above the view's shadow. background_view_ = new views::View(); background_view_->set_background( @@ -357,9 +353,13 @@ NotificationView::NotificationView(const Notification& notification, // Create the title view if appropriate. title_view_ = NULL; if (!notification.title().empty()) { - gfx::Font font = views::Label().font().DeriveFont(4); - title_view_ = new BoundedLabel(notification.title(), font, 1); + title_view_ = new views::Label(notification.title()); title_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); + if (is_expanded()) + title_view_->SetMultiLine(true); + else + title_view_->SetElideBehavior(views::Label::ELIDE_AT_END); + title_view_->SetFont(title_view_->font().DeriveFont(4)); title_view_->SetEnabledColor(kTitleColor); title_view_->SetBackgroundColor(kTitleBackgroundColor); title_view_->set_border(MakeBorder(kTextTopPadding, 3)); @@ -369,16 +369,18 @@ NotificationView::NotificationView(const Notification& notification, // Create the message view if appropriate. message_view_ = NULL; if (!notification.message().empty()) { - size_t lines = (is_expanded() && notification.image().IsEmpty()) ? 7 : 2; - message_view_ = new BoundedLabel(notification.message(), lines); + message_view_ = new views::Label(notification.message()); message_view_->SetVisible(!is_expanded() || !notification.items().size()); message_view_->set_collapse_when_hidden(true); message_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); + if (is_expanded()) + message_view_->SetMultiLine(true); + else + message_view_->SetElideBehavior(views::Label::ELIDE_AT_END); message_view_->SetEnabledColor(kMessageColor); message_view_->SetBackgroundColor(kMessageBackgroundColor); message_view_->set_border(MakeBorder(0, 3)); top_view_->AddChildView(message_view_); - expandable = (message_view_->GetPreferredLines() > lines); } // Create the list item views (up to a maximum). @@ -389,7 +391,6 @@ NotificationView::NotificationView(const Notification& notification, item_view->set_border(MakeBorder(0, 4)); item_views_.push_back(item_view); top_view_->AddChildView(item_view); - expandable = true; } // Create the notification icon view. @@ -407,7 +408,6 @@ NotificationView::NotificationView(const Notification& notification, image_view_ = new ProportionalImageView(notification.image().AsImageSkia()); image_view_->SetVisible(is_expanded()); bottom_view_->AddChildView(image_view_); - expandable = true; } // Create action buttons if appropriate. @@ -425,6 +425,7 @@ NotificationView::NotificationView(const Notification& notification, } // Hide the expand button if appropriate. + bool expandable = item_views_.size() || image_view_; expand_button()->SetVisible(expandable && !is_expanded()); // Put together the different content and control views. Layering those allows @@ -501,10 +502,8 @@ void NotificationView::ButtonPressed(views::Button* sender, // Show and hide subviews appropriately on expansion. if (sender == expand_button()) { - if (message_view_ && !item_views_.size() && !image_view_) - message_view_->SetMaxLines(7); - else if (message_view_ && item_views_.size()) - message_view_->SetVisible(false); + if (message_view_) + message_view_->SetVisible(!item_views_.size()); for (size_t i = 0; i < item_views_.size(); ++i) item_views_[i]->SetVisible(true); if (image_view_) diff --git a/ui/message_center/views/notification_view.h b/ui/message_center/views/notification_view.h index a0c5366..fb9adb7 100644 --- a/ui/message_center/views/notification_view.h +++ b/ui/message_center/views/notification_view.h @@ -9,9 +9,12 @@ #include "ui/message_center/views/message_view.h" +namespace views { +class Label; +} // namespace views + namespace message_center { -class BoundedLabel; class NotificationChangeObserver; // View that displays all current types of notification (web, basic, image, and @@ -47,8 +50,8 @@ class NotificationView : public MessageView { // Weak references to NotificationView descendants owned by their parents. views::View* background_view_; views::View* top_view_; - BoundedLabel* title_view_; - BoundedLabel* message_view_; + views::Label* title_view_; + views::Label* message_view_; std::vector<views::View*> item_views_; views::View* icon_view_; views::View* bottom_view_; |