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

Side by Side Diff: chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controller.mm

Issue 816223008: Update UI for WebStore bundle installs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bundles_api
Patch Set: style fix Created 5 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controlle r.h" 5 #import "chrome/browser/ui/cocoa/extensions/extension_installed_bubble_controlle r.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.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"
11 #include "chrome/browser/extensions/bundle_installer.h" 11 #include "chrome/browser/extensions/bundle_installer.h"
12 #include "chrome/browser/extensions/extension_action.h" 12 #include "chrome/browser/extensions/extension_action.h"
13 #include "chrome/browser/extensions/extension_action_manager.h" 13 #include "chrome/browser/extensions/extension_action_manager.h"
14 #include "chrome/browser/ui/browser.h" 14 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/browser_navigator.h" 15 #include "chrome/browser/ui/browser_navigator.h"
16 #include "chrome/browser/ui/browser_window.h" 16 #include "chrome/browser/ui/browser_window.h"
17 #include "chrome/browser/ui/chrome_pages.h" 17 #include "chrome/browser/ui/chrome_pages.h"
18 #include "chrome/browser/ui/chrome_style.h" 18 #include "chrome/browser/ui/chrome_style.h"
19 #include "chrome/browser/ui/cocoa/browser_window_cocoa.h" 19 #include "chrome/browser/ui/cocoa/browser_window_cocoa.h"
20 #include "chrome/browser/ui/cocoa/browser_window_controller.h" 20 #include "chrome/browser/ui/cocoa/browser_window_controller.h"
21 #include "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h" 21 #include "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h"
22 #include "chrome/browser/ui/cocoa/extensions/bundle_util.h"
22 #include "chrome/browser/ui/cocoa/hover_close_button.h" 23 #include "chrome/browser/ui/cocoa/hover_close_button.h"
23 #include "chrome/browser/ui/cocoa/info_bubble_view.h" 24 #include "chrome/browser/ui/cocoa/info_bubble_view.h"
24 #include "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" 25 #include "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h"
25 #include "chrome/browser/ui/cocoa/new_tab_button.h" 26 #include "chrome/browser/ui/cocoa/new_tab_button.h"
26 #include "chrome/browser/ui/cocoa/tabs/tab_strip_view.h" 27 #include "chrome/browser/ui/cocoa/tabs/tab_strip_view.h"
27 #include "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" 28 #include "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
28 #include "chrome/browser/ui/extensions/extension_install_ui_factory.h" 29 #include "chrome/browser/ui/extensions/extension_install_ui_factory.h"
29 #include "chrome/browser/ui/extensions/extension_installed_bubble.h" 30 #include "chrome/browser/ui/extensions/extension_installed_bubble.h"
30 #include "chrome/browser/ui/singleton_tabs.h" 31 #include "chrome/browser/ui/singleton_tabs.h"
31 #include "chrome/browser/ui/sync/sync_promo_ui.h" 32 #include "chrome/browser/ui/sync/sync_promo_ui.h"
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 - (int)calculateWindowHeight { 331 - (int)calculateWindowHeight {
331 // Adjust the window height to reflect the sum height of all messages 332 // Adjust the window height to reflect the sum height of all messages
332 // and vertical padding. 333 // and vertical padding.
333 int newWindowHeight = 2 * extension_installed_bubble::kOuterVerticalMargin; 334 int newWindowHeight = 2 * extension_installed_bubble::kOuterVerticalMargin;
334 335
335 // If type is bundle, list the extensions that were installed and those that 336 // If type is bundle, list the extensions that were installed and those that
336 // failed. 337 // failed.
337 if (type_ == extension_installed_bubble::kBundle) { 338 if (type_ == extension_installed_bubble::kBundle) {
338 NSInteger installedListHeight = 339 NSInteger installedListHeight =
339 [self addExtensionList:installedHeadingMsg_ 340 [self addExtensionList:installedHeadingMsg_
340 itemsMsg:installedItemsMsg_ 341 itemsView:installedItemsView_
341 state:BundleInstaller::Item::STATE_INSTALLED]; 342 state:BundleInstaller::Item::STATE_INSTALLED];
342 343
343 NSInteger failedListHeight = 344 NSInteger failedListHeight =
344 [self addExtensionList:failedHeadingMsg_ 345 [self addExtensionList:failedHeadingMsg_
345 itemsMsg:failedItemsMsg_ 346 itemsView:failedItemsView_
346 state:BundleInstaller::Item::STATE_FAILED]; 347 state:BundleInstaller::Item::STATE_FAILED];
347 348
348 newWindowHeight += installedListHeight + failedListHeight; 349 newWindowHeight += installedListHeight + failedListHeight;
349 350
350 // Put some space between the lists if both are present. 351 // Put some space between the lists if both are present.
351 if (installedListHeight > 0 && failedListHeight > 0) 352 if (installedListHeight > 0 && failedListHeight > 0)
352 newWindowHeight += extension_installed_bubble::kInnerVerticalMargin; 353 newWindowHeight += extension_installed_bubble::kInnerVerticalMargin;
353 354
354 return newWindowHeight; 355 return newWindowHeight;
355 } 356 }
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 chrome_style::GetLinkColor())]; 456 chrome_style::GetLinkColor())];
456 [GTMUILocalizerAndLayoutTweaker sizeToFitView:manageShortcutLink_]; 457 [GTMUILocalizerAndLayoutTweaker sizeToFitView:manageShortcutLink_];
457 newWindowHeight += extension_installed_bubble::kInnerVerticalMargin; 458 newWindowHeight += extension_installed_bubble::kInnerVerticalMargin;
458 newWindowHeight += NSHeight([manageShortcutLink_ frame]); 459 newWindowHeight += NSHeight([manageShortcutLink_ frame]);
459 } 460 }
460 461
461 return newWindowHeight; 462 return newWindowHeight;
462 } 463 }
463 464
464 - (NSInteger)addExtensionList:(NSTextField*)headingMsg 465 - (NSInteger)addExtensionList:(NSTextField*)headingMsg
465 itemsMsg:(NSTextField*)itemsMsg 466 itemsView:(NSView*)itemsView
466 state:(BundleInstaller::Item::State)state { 467 state:(BundleInstaller::Item::State)state {
467 base::string16 heading = bundle_->GetHeadingTextFor(state); 468 base::string16 heading = bundle_->GetHeadingTextFor(state);
468 bool hidden = heading.empty(); 469 bool hidden = heading.empty();
469 [headingMsg setHidden:hidden]; 470 [headingMsg setHidden:hidden];
470 [itemsMsg setHidden:hidden]; 471 [itemsView setHidden:hidden];
471 if (hidden) 472 if (hidden)
472 return 0; 473 return 0;
473 474
474 [headingMsg setStringValue:base::SysUTF16ToNSString(heading)]; 475 [headingMsg setStringValue:base::SysUTF16ToNSString(heading)];
475 [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:headingMsg]; 476 [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:headingMsg];
476 477
477 NSMutableString* joinedItems = [NSMutableString string]; 478 CGFloat height =
478 BundleInstaller::ItemList items = bundle_->GetItemsWithState(state); 479 PopulateBundleItemsList(bundle_->GetItemsWithState(state), itemsView);
479 for (size_t i = 0; i < items.size(); ++i) {
480 if (i > 0)
481 [joinedItems appendString:@"\n"];
482 [joinedItems appendString:base::SysUTF16ToNSString(
483 items[i].GetNameForDisplay())];
484 }
485 480
486 [itemsMsg setStringValue:joinedItems]; 481 NSRect frame = [itemsView frame];
487 [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:itemsMsg]; 482 frame.size.height = height;
483 [itemsView setFrame:frame];
488 484
489 return NSHeight([headingMsg frame]) + 485 return NSHeight([headingMsg frame]) +
490 extension_installed_bubble::kInnerVerticalMargin + 486 extension_installed_bubble::kInnerVerticalMargin +
491 NSHeight([itemsMsg frame]); 487 NSHeight([itemsView frame]);
492 } 488 }
493 489
494 // Adjust y-position of messages to sit properly in new window height. 490 // Adjust y-position of messages to sit properly in new window height.
495 - (void)setMessageFrames:(int)newWindowHeight { 491 - (void)setMessageFrames:(int)newWindowHeight {
496 if (type_ == extension_installed_bubble::kBundle) { 492 if (type_ == extension_installed_bubble::kBundle) {
497 // Layout the messages from the bottom up. 493 // Layout the messages from the bottom up.
498 NSTextField* msgs[] = { failedItemsMsg_, failedHeadingMsg_, 494 NSView* msgs[] = { failedItemsView_, failedHeadingMsg_,
499 installedItemsMsg_, installedHeadingMsg_ }; 495 installedItemsView_, installedHeadingMsg_ };
500 NSInteger offsetFromBottom = 0; 496 NSInteger offsetFromBottom = 0;
501 BOOL isFirstVisible = YES; 497 BOOL isFirstVisible = YES;
502 for (size_t i = 0; i < arraysize(msgs); ++i) { 498 for (size_t i = 0; i < arraysize(msgs); ++i) {
503 if ([msgs[i] isHidden]) 499 if ([msgs[i] isHidden])
504 continue; 500 continue;
505 501
506 NSRect frame = [msgs[i] frame]; 502 NSRect frame = [msgs[i] frame];
507 NSInteger margin = isFirstVisible ? 503 NSInteger margin = isFirstVisible ?
508 extension_installed_bubble::kOuterVerticalMargin : 504 extension_installed_bubble::kOuterVerticalMargin :
509 extension_installed_bubble::kInnerVerticalMargin; 505 extension_installed_bubble::kInnerVerticalMargin;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 install_ui->OpenAppInstalledUI([self extension]->id()); 605 install_ui->OpenAppInstalledUI([self extension]->id());
610 } 606 }
611 607
612 - (void)awakeFromNib { 608 - (void)awakeFromNib {
613 if (bundle_) 609 if (bundle_)
614 return; 610 return;
615 [self initializeLabel]; 611 [self initializeLabel];
616 } 612 }
617 613
618 @end 614 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698