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 "chrome/browser/ui/views/extensions/extension_install_dialog_view.h" | 5 #include "chrome/browser/ui/views/extensions/extension_install_dialog_view.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 layout->StartRow(0, column_set_id); | 398 layout->StartRow(0, column_set_id); |
399 views::Label* permission_label = new views::Label( | 399 views::Label* permission_label = new views::Label( |
400 l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS)); | 400 l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS)); |
401 permission_label->SetMultiLine(true); | 401 permission_label->SetMultiLine(true); |
402 permission_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 402 permission_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
403 permission_label->SizeToFit(left_column_width); | 403 permission_label->SizeToFit(left_column_width); |
404 layout->AddView(permission_label); | 404 layout->AddView(permission_label); |
405 } | 405 } |
406 } | 406 } |
407 | 407 |
408 if (prompt_->GetRetainedFileCount()) { | 408 int space_for_files_and_devices = left_column_width; |
409 // Slide in under the permissions, if there are any. If there are | 409 if (prompt_->GetRetainedFileCount() || prompt_->GetRetainedDeviceCount()) { |
410 // either, the retained files prompt stretches all the way to the | 410 // Slide in under the permissions, if there are any. If there are either, |
411 // right of the dialog. If there are no permissions, the retained | 411 // the retained files and devices prompts stretch all the way to the right |
412 // files prompt just takes up the left column. | 412 // of the dialog. If there are no permissions, the retained files and |
413 int space_for_files = left_column_width; | 413 // devices prompts just take up the left column. |
| 414 |
414 if (has_permissions) { | 415 if (has_permissions) { |
415 space_for_files += kIconSize; | 416 space_for_files_and_devices += kIconSize; |
416 views::ColumnSet* column_set = layout->AddColumnSet(++column_set_id); | 417 views::ColumnSet* column_set = layout->AddColumnSet(++column_set_id); |
417 column_set->AddColumn(views::GridLayout::FILL, | 418 column_set->AddColumn(views::GridLayout::FILL, |
418 views::GridLayout::FILL, | 419 views::GridLayout::FILL, |
419 1, | 420 1, |
420 views::GridLayout::USE_PREF, | 421 views::GridLayout::USE_PREF, |
421 0, // no fixed width | 422 0, // no fixed width |
422 space_for_files); | 423 space_for_files_and_devices); |
423 } | 424 } |
| 425 } |
424 | 426 |
| 427 if (prompt_->GetRetainedFileCount()) { |
425 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 428 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
426 | 429 |
427 layout->StartRow(0, column_set_id); | 430 layout->StartRow(0, column_set_id); |
428 views::Label* retained_files_header = NULL; | 431 views::Label* retained_files_header = |
429 retained_files_header = | |
430 new views::Label(prompt_->GetRetainedFilesHeading()); | 432 new views::Label(prompt_->GetRetainedFilesHeading()); |
431 retained_files_header->SetMultiLine(true); | 433 retained_files_header->SetMultiLine(true); |
432 retained_files_header->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 434 retained_files_header->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
433 retained_files_header->SizeToFit(space_for_files); | 435 retained_files_header->SizeToFit(space_for_files_and_devices); |
434 layout->AddView(retained_files_header); | 436 layout->AddView(retained_files_header); |
435 | 437 |
436 layout->StartRow(0, column_set_id); | 438 layout->StartRow(0, column_set_id); |
437 PermissionDetails details; | 439 PermissionDetails details; |
438 for (size_t i = 0; i < prompt_->GetRetainedFileCount(); ++i) | 440 for (size_t i = 0; i < prompt_->GetRetainedFileCount(); ++i) { |
439 details.push_back(prompt_->GetRetainedFile(i)); | 441 details.push_back(prompt_->GetRetainedFile(i)); |
| 442 } |
440 ExpandableContainerView* issue_advice_view = | 443 ExpandableContainerView* issue_advice_view = |
441 new ExpandableContainerView( | 444 new ExpandableContainerView(this, |
442 this, base::string16(), details, space_for_files, | 445 base::string16(), |
443 false, true, false); | 446 details, |
| 447 space_for_files_and_devices, |
| 448 false, |
| 449 true, |
| 450 false); |
444 layout->AddView(issue_advice_view); | 451 layout->AddView(issue_advice_view); |
445 } | 452 } |
446 | 453 |
| 454 if (prompt_->GetRetainedDeviceCount()) { |
| 455 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 456 |
| 457 layout->StartRow(0, column_set_id); |
| 458 views::Label* retained_devices_header = |
| 459 new views::Label(prompt_->GetRetainedDevicesHeading()); |
| 460 retained_devices_header->SetMultiLine(true); |
| 461 retained_devices_header->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 462 retained_devices_header->SizeToFit(space_for_files_and_devices); |
| 463 layout->AddView(retained_devices_header); |
| 464 |
| 465 layout->StartRow(0, column_set_id); |
| 466 PermissionDetails details; |
| 467 for (size_t i = 0; i < prompt_->GetRetainedDeviceCount(); ++i) { |
| 468 details.push_back(prompt_->GetRetainedDeviceMessageString(i)); |
| 469 } |
| 470 ExpandableContainerView* issue_advice_view = |
| 471 new ExpandableContainerView(this, |
| 472 base::string16(), |
| 473 details, |
| 474 space_for_files_and_devices, |
| 475 false, |
| 476 true, |
| 477 false); |
| 478 layout->AddView(issue_advice_view); |
| 479 } |
| 480 |
447 DCHECK(prompt_->type() >= 0); | 481 DCHECK(prompt_->type() >= 0); |
448 UMA_HISTOGRAM_ENUMERATION("Extensions.InstallPrompt.Type", | 482 UMA_HISTOGRAM_ENUMERATION("Extensions.InstallPrompt.Type", |
449 prompt_->type(), | 483 prompt_->type(), |
450 ExtensionInstallPrompt::NUM_PROMPT_TYPES); | 484 ExtensionInstallPrompt::NUM_PROMPT_TYPES); |
451 | 485 |
452 if (prompt_->ShouldShowPermissions()) { | 486 if (prompt_->ShouldShowPermissions()) { |
453 if (prompt_->ShouldShowExplanationText()) { | 487 if (prompt_->ShouldShowExplanationText()) { |
454 views::ColumnSet* column_set = layout->AddColumnSet(++column_set_id); | 488 views::ColumnSet* column_set = layout->AddColumnSet(++column_set_id); |
455 column_set->AddColumn(views::GridLayout::LEADING, | 489 column_set->AddColumn(views::GridLayout::LEADING, |
456 views::GridLayout::FILL, | 490 views::GridLayout::FILL, |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1120 void ExpandableContainerView::ExpandWithoutAnimation() { | 1154 void ExpandableContainerView::ExpandWithoutAnimation() { |
1121 expanded_ = true; | 1155 expanded_ = true; |
1122 details_view_->AnimateToState(1.0); | 1156 details_view_->AnimateToState(1.0); |
1123 } | 1157 } |
1124 | 1158 |
1125 // static | 1159 // static |
1126 ExtensionInstallPrompt::ShowDialogCallback | 1160 ExtensionInstallPrompt::ShowDialogCallback |
1127 ExtensionInstallPrompt::GetDefaultShowDialogCallback() { | 1161 ExtensionInstallPrompt::GetDefaultShowDialogCallback() { |
1128 return base::Bind(&ShowExtensionInstallDialogImpl); | 1162 return base::Bind(&ShowExtensionInstallDialogImpl); |
1129 } | 1163 } |
OLD | NEW |