OLD | NEW |
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 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 const int kNoPermissionsLeftColumnWidth = 200; | 64 const int kNoPermissionsLeftColumnWidth = 200; |
65 | 65 |
66 // Width of the left column for bundle install prompts. There's only one column | 66 // Width of the left column for bundle install prompts. There's only one column |
67 // in this case, so make it wider than normal. | 67 // in this case, so make it wider than normal. |
68 const int kBundleLeftColumnWidth = 300; | 68 const int kBundleLeftColumnWidth = 300; |
69 | 69 |
70 // Width of the left column for external install prompts. The text is long in | 70 // Width of the left column for external install prompts. The text is long in |
71 // this case, so make it wider than normal. | 71 // this case, so make it wider than normal. |
72 const int kExternalInstallLeftColumnWidth = 350; | 72 const int kExternalInstallLeftColumnWidth = 350; |
73 | 73 |
74 // Heading font size correction. | |
75 const int kHeadingFontSizeDelta = 1; | |
76 | |
77 const int kRatingFontSizeDelta = -1; | |
78 | |
79 void AddResourceIcon(const gfx::ImageSkia* skia_image, void* data) { | 74 void AddResourceIcon(const gfx::ImageSkia* skia_image, void* data) { |
80 views::View* parent = static_cast<views::View*>(data); | 75 views::View* parent = static_cast<views::View*>(data); |
81 views::ImageView* image_view = new views::ImageView(); | 76 views::ImageView* image_view = new views::ImageView(); |
82 image_view->SetImage(*skia_image); | 77 image_view->SetImage(*skia_image); |
83 parent->AddChildView(image_view); | 78 parent->AddChildView(image_view); |
84 } | 79 } |
85 | 80 |
86 // Creates a string for displaying |message| to the user. If it has to look | 81 // Creates a string for displaying |message| to the user. If it has to look |
87 // like a entry in a bullet point list, one is added. | 82 // like a entry in a bullet point list, one is added. |
88 string16 PrepareForDisplay(const string16& message, bool bullet_point) { | 83 string16 PrepareForDisplay(const string16& message, bool bullet_point) { |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 column_set->AddColumn(views::GridLayout::LEADING, | 339 column_set->AddColumn(views::GridLayout::LEADING, |
345 views::GridLayout::LEADING, | 340 views::GridLayout::LEADING, |
346 0, // no resizing | 341 0, // no resizing |
347 views::GridLayout::USE_PREF, | 342 views::GridLayout::USE_PREF, |
348 0, // no fixed width | 343 0, // no fixed width |
349 kIconSize); | 344 kIconSize); |
350 } | 345 } |
351 | 346 |
352 layout->StartRow(0, column_set_id); | 347 layout->StartRow(0, column_set_id); |
353 | 348 |
| 349 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 350 |
354 views::Label* heading = new views::Label(prompt.GetHeading()); | 351 views::Label* heading = new views::Label(prompt.GetHeading()); |
355 heading->SetFont(heading->font().DeriveFont(kHeadingFontSizeDelta, | 352 heading->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)); |
356 gfx::Font::BOLD)); | |
357 heading->SetMultiLine(true); | 353 heading->SetMultiLine(true); |
358 heading->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 354 heading->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
359 heading->SizeToFit(left_column_width); | 355 heading->SizeToFit(left_column_width); |
360 layout->AddView(heading); | 356 layout->AddView(heading); |
361 | 357 |
362 if (!is_bundle_install()) { | 358 if (!is_bundle_install()) { |
363 // Scale down to icon size, but allow smaller icons (don't scale up). | 359 // Scale down to icon size, but allow smaller icons (don't scale up). |
364 const gfx::ImageSkia* image = prompt.icon().ToImageSkia(); | 360 const gfx::ImageSkia* image = prompt.icon().ToImageSkia(); |
365 gfx::Size size(image->width(), image->height()); | 361 gfx::Size size(image->width(), image->height()); |
366 if (size.width() > kIconSize || size.height() > kIconSize) | 362 if (size.width() > kIconSize || size.height() > kIconSize) |
(...skipping 21 matching lines...) Expand all Loading... |
388 | 384 |
389 if (is_inline_install()) { | 385 if (is_inline_install()) { |
390 layout->StartRow(0, column_set_id); | 386 layout->StartRow(0, column_set_id); |
391 views::View* rating = new views::View(); | 387 views::View* rating = new views::View(); |
392 rating->SetLayoutManager(new views::BoxLayout( | 388 rating->SetLayoutManager(new views::BoxLayout( |
393 views::BoxLayout::kHorizontal, 0, 0, 0)); | 389 views::BoxLayout::kHorizontal, 0, 0, 0)); |
394 layout->AddView(rating); | 390 layout->AddView(rating); |
395 prompt.AppendRatingStars(AddResourceIcon, rating); | 391 prompt.AppendRatingStars(AddResourceIcon, rating); |
396 | 392 |
397 views::Label* rating_count = new views::Label(prompt.GetRatingCount()); | 393 views::Label* rating_count = new views::Label(prompt.GetRatingCount()); |
398 rating_count->SetFont( | 394 rating_count->SetFont(rb.GetFont(ui::ResourceBundle::SmallFont)); |
399 rating_count->font().DeriveFont(kRatingFontSizeDelta)); | |
400 // Add some space between the stars and the rating count. | 395 // Add some space between the stars and the rating count. |
401 rating_count->set_border(views::Border::CreateEmptyBorder(0, 2, 0, 0)); | 396 rating_count->set_border(views::Border::CreateEmptyBorder(0, 2, 0, 0)); |
402 rating->AddChildView(rating_count); | 397 rating->AddChildView(rating_count); |
403 | 398 |
404 layout->StartRow(0, column_set_id); | 399 layout->StartRow(0, column_set_id); |
405 views::Label* user_count = new views::Label(prompt.GetUserCount()); | 400 views::Label* user_count = new views::Label(prompt.GetUserCount()); |
406 user_count->SetAutoColorReadabilityEnabled(false); | 401 user_count->SetAutoColorReadabilityEnabled(false); |
407 user_count->SetEnabledColor(SK_ColorGRAY); | 402 user_count->SetEnabledColor(SK_ColorGRAY); |
408 user_count->SetFont(user_count->font().DeriveFont(kRatingFontSizeDelta)); | 403 user_count->SetFont(rb.GetFont(ui::ResourceBundle::SmallFont)); |
409 layout->AddView(user_count); | 404 layout->AddView(user_count); |
410 | 405 |
411 layout->StartRow(0, column_set_id); | 406 layout->StartRow(0, column_set_id); |
412 views::Link* store_link = new views::Link( | 407 views::Link* store_link = new views::Link( |
413 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_STORE_LINK)); | 408 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_STORE_LINK)); |
414 store_link->SetFont(store_link->font().DeriveFont(kRatingFontSizeDelta)); | 409 store_link->SetFont(rb.GetFont(ui::ResourceBundle::SmallFont)); |
415 store_link->set_listener(this); | 410 store_link->set_listener(this); |
416 layout->AddView(store_link); | 411 layout->AddView(store_link); |
417 } | 412 } |
418 | 413 |
419 if (is_bundle_install()) { | 414 if (is_bundle_install()) { |
420 BundleInstaller::ItemList items = prompt_.bundle()->GetItemsWithState( | 415 BundleInstaller::ItemList items = prompt_.bundle()->GetItemsWithState( |
421 BundleInstaller::Item::STATE_PENDING); | 416 BundleInstaller::Item::STATE_PENDING); |
422 for (size_t i = 0; i < items.size(); ++i) { | 417 for (size_t i = 0; i < items.size(); ++i) { |
423 string16 extension_name = UTF8ToUTF16(items[i].localized_name); | 418 string16 extension_name = UTF8ToUTF16(items[i].localized_name); |
424 base::i18n::AdjustStringForLocaleDirection(&extension_name); | 419 base::i18n::AdjustStringForLocaleDirection(&extension_name); |
(...skipping 14 matching lines...) Expand all Loading... |
439 if (is_inline_install()) { | 434 if (is_inline_install()) { |
440 layout->StartRow(0, column_set_id); | 435 layout->StartRow(0, column_set_id); |
441 layout->AddView(new views::Separator(), 3, 1, views::GridLayout::FILL, | 436 layout->AddView(new views::Separator(), 3, 1, views::GridLayout::FILL, |
442 views::GridLayout::FILL); | 437 views::GridLayout::FILL); |
443 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 438 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
444 } | 439 } |
445 | 440 |
446 layout->StartRow(0, column_set_id); | 441 layout->StartRow(0, column_set_id); |
447 views::Label* permissions_header = NULL; | 442 views::Label* permissions_header = NULL; |
448 if (is_bundle_install()) { | 443 if (is_bundle_install()) { |
449 // We need to make the font bold like this, rather than using SetFont, | 444 // We need to pass the Font in the constructor, rather than calling |
450 // because otherwise SizeToFit mis-judges the width of the line. | 445 // SetFont later, because otherwise SizeToFit mis-judges the width |
451 gfx::Font bold_font = ui::ResourceBundle::GetSharedInstance().GetFont( | 446 // of the line. |
452 ui::ResourceBundle::BaseFont).DeriveFont( | |
453 kHeadingFontSizeDelta, gfx::Font::BOLD); | |
454 permissions_header = new views::Label( | 447 permissions_header = new views::Label( |
455 prompt.GetPermissionsHeading(), bold_font); | 448 prompt.GetPermissionsHeading(), |
| 449 rb.GetFont(ui::ResourceBundle::MediumFont)); |
456 } else { | 450 } else { |
457 permissions_header = new views::Label(prompt.GetPermissionsHeading()); | 451 permissions_header = new views::Label(prompt.GetPermissionsHeading()); |
458 } | 452 } |
459 permissions_header->SetMultiLine(true); | 453 permissions_header->SetMultiLine(true); |
460 permissions_header->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 454 permissions_header->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
461 permissions_header->SizeToFit(left_column_width); | 455 permissions_header->SizeToFit(left_column_width); |
462 layout->AddView(permissions_header); | 456 layout->AddView(permissions_header); |
463 | 457 |
464 for (size_t i = 0; i < prompt.GetPermissionCount(); ++i) { | 458 for (size_t i = 0; i < prompt.GetPermissionCount(); ++i) { |
465 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 459 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 views::GridLayout::FILL, | 511 views::GridLayout::FILL, |
518 1, | 512 1, |
519 views::GridLayout::USE_PREF, | 513 views::GridLayout::USE_PREF, |
520 0, // no fixed width | 514 0, // no fixed width |
521 left_column_width + kIconSize); | 515 left_column_width + kIconSize); |
522 layout->StartRowWithPadding(0, column_set_id, | 516 layout->StartRowWithPadding(0, column_set_id, |
523 0, views::kRelatedControlVerticalSpacing); | 517 0, views::kRelatedControlVerticalSpacing); |
524 app_launcher_opt_in_checkbox_ = new views::Checkbox( | 518 app_launcher_opt_in_checkbox_ = new views::Checkbox( |
525 l10n_util::GetStringUTF16(IDS_APP_LIST_OPT_IN_TEXT)); | 519 l10n_util::GetStringUTF16(IDS_APP_LIST_OPT_IN_TEXT)); |
526 app_launcher_opt_in_checkbox_->SetFont( | 520 app_launcher_opt_in_checkbox_->SetFont( |
527 app_launcher_opt_in_checkbox_->font().DeriveFont(0, gfx::Font::BOLD)); | 521 rb.GetFont(ui::ResourceBundle::BoldFont)); |
528 layout->AddView(app_launcher_opt_in_checkbox_); | 522 layout->AddView(app_launcher_opt_in_checkbox_); |
529 } | 523 } |
530 } | 524 } |
531 | 525 |
532 ExtensionInstallDialogView::~ExtensionInstallDialogView() {} | 526 ExtensionInstallDialogView::~ExtensionInstallDialogView() {} |
533 | 527 |
534 void ExtensionInstallDialogView::SizeToContents() { | 528 void ExtensionInstallDialogView::SizeToContents() { |
535 GetWidget()->SetSize(GetWidget()->non_client_view()->GetPreferredSize()); | 529 GetWidget()->SetSize(GetWidget()->non_client_view()->GetPreferredSize()); |
536 } | 530 } |
537 | 531 |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 rotate.Translate(-arrow_view_->width() / 2.0, | 713 rotate.Translate(-arrow_view_->width() / 2.0, |
720 -arrow_view_->height() / 2.0); | 714 -arrow_view_->height() / 2.0); |
721 } | 715 } |
722 arrow_view_->SetTransform(rotate); | 716 arrow_view_->SetTransform(rotate); |
723 } | 717 } |
724 } | 718 } |
725 | 719 |
726 void IssueAdviceView::ChildPreferredSizeChanged(views::View* child) { | 720 void IssueAdviceView::ChildPreferredSizeChanged(views::View* child) { |
727 owner_->SizeToContents(); | 721 owner_->SizeToContents(); |
728 } | 722 } |
OLD | NEW |