| 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/download/download_item_view.h" | 5 #include "chrome/browser/ui/views/download/download_item_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 y = (height() - button_size.height()) / 2; | 354 y = (height() - button_size.height()) / 2; |
| 355 if (save_button_) { | 355 if (save_button_) { |
| 356 save_button_->SetBounds(x, y, button_size.width(), button_size.height()); | 356 save_button_->SetBounds(x, y, button_size.width(), button_size.height()); |
| 357 x += button_size.width() + kButtonPadding; | 357 x += button_size.width() + kButtonPadding; |
| 358 } | 358 } |
| 359 discard_button_->SetBounds(x, y, button_size.width(), button_size.height()); | 359 discard_button_->SetBounds(x, y, button_size.width(), button_size.height()); |
| 360 UpdateColorsFromTheme(); | 360 UpdateColorsFromTheme(); |
| 361 } | 361 } |
| 362 } | 362 } |
| 363 | 363 |
| 364 gfx::Size DownloadItemView::GetPreferredSize() { | 364 gfx::Size DownloadItemView::GetPreferredSize() const { |
| 365 int width, height; | 365 int width, height; |
| 366 | 366 |
| 367 // First, we set the height to the height of two rows or text plus margins. | 367 // First, we set the height to the height of two rows or text plus margins. |
| 368 height = 2 * kVerticalPadding + 2 * font_list_.GetHeight() + | 368 height = 2 * kVerticalPadding + 2 * font_list_.GetHeight() + |
| 369 kVerticalTextPadding; | 369 kVerticalTextPadding; |
| 370 // Then we increase the size if the progress icon doesn't fit. | 370 // Then we increase the size if the progress icon doesn't fit. |
| 371 height = std::max<int>(height, DownloadShelf::kSmallProgressIconSize); | 371 height = std::max<int>(height, DownloadShelf::kSmallProgressIconSize); |
| 372 | 372 |
| 373 if (IsShowingWarningDialog()) { | 373 if (IsShowingWarningDialog()) { |
| 374 BodyImageSet* body_image_set = | 374 const BodyImageSet* body_image_set = |
| 375 (mode_ == DANGEROUS_MODE) ? &dangerous_mode_body_image_set_ : | 375 (mode_ == DANGEROUS_MODE) ? &dangerous_mode_body_image_set_ : |
| 376 &malicious_mode_body_image_set_; | 376 &malicious_mode_body_image_set_; |
| 377 width = kLeftPadding + body_image_set->top_left->width(); | 377 width = kLeftPadding + body_image_set->top_left->width(); |
| 378 width += warning_icon_->width() + kLabelPadding; | 378 width += warning_icon_->width() + kLabelPadding; |
| 379 width += dangerous_download_label_->width() + kLabelPadding; | 379 width += dangerous_download_label_->width() + kLabelPadding; |
| 380 gfx::Size button_size = GetButtonSize(); | 380 gfx::Size button_size = GetButtonSize(); |
| 381 // Make sure the button fits. | 381 // Make sure the button fits. |
| 382 height = std::max<int>(height, 2 * kVerticalPadding + button_size.height()); | 382 height = std::max<int>(height, 2 * kVerticalPadding + button_size.height()); |
| 383 // Then we make sure the warning icon fits. | 383 // Then we make sure the warning icon fits. |
| 384 height = std::max<int>(height, 2 * kVerticalPadding + | 384 height = std::max<int>(height, 2 * kVerticalPadding + |
| (...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1197 dangerous_download_label_ = new views::Label(dangerous_label); | 1197 dangerous_download_label_ = new views::Label(dangerous_label); |
| 1198 dangerous_download_label_->SetMultiLine(true); | 1198 dangerous_download_label_->SetMultiLine(true); |
| 1199 dangerous_download_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 1199 dangerous_download_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 1200 dangerous_download_label_->SetAutoColorReadabilityEnabled(false); | 1200 dangerous_download_label_->SetAutoColorReadabilityEnabled(false); |
| 1201 AddChildView(dangerous_download_label_); | 1201 AddChildView(dangerous_download_label_); |
| 1202 SizeLabelToMinWidth(); | 1202 SizeLabelToMinWidth(); |
| 1203 UpdateDropDownButtonPosition(); | 1203 UpdateDropDownButtonPosition(); |
| 1204 TooltipTextChanged(); | 1204 TooltipTextChanged(); |
| 1205 } | 1205 } |
| 1206 | 1206 |
| 1207 gfx::Size DownloadItemView::GetButtonSize() { | 1207 gfx::Size DownloadItemView::GetButtonSize() const { |
| 1208 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_)); | 1208 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_)); |
| 1209 gfx::Size size; | 1209 gfx::Size size; |
| 1210 | 1210 |
| 1211 // We cache the size when successfully retrieved, not for performance reasons | 1211 // We cache the size when successfully retrieved, not for performance reasons |
| 1212 // but because if this DownloadItemView is being animated while the tab is | 1212 // but because if this DownloadItemView is being animated while the tab is |
| 1213 // not showing, the native buttons are not parented and their preferred size | 1213 // not showing, the native buttons are not parented and their preferred size |
| 1214 // is 0, messing-up the layout. | 1214 // is 0, messing-up the layout. |
| 1215 if (cached_button_size_.width() != 0) | 1215 if (cached_button_size_.width() != 0) |
| 1216 return cached_button_size_; | 1216 return cached_button_size_; |
| 1217 | 1217 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1343 void DownloadItemView::AnimateStateTransition(State from, State to, | 1343 void DownloadItemView::AnimateStateTransition(State from, State to, |
| 1344 gfx::SlideAnimation* animation) { | 1344 gfx::SlideAnimation* animation) { |
| 1345 if (from == NORMAL && to == HOT) { | 1345 if (from == NORMAL && to == HOT) { |
| 1346 animation->Show(); | 1346 animation->Show(); |
| 1347 } else if (from == HOT && to == NORMAL) { | 1347 } else if (from == HOT && to == NORMAL) { |
| 1348 animation->Hide(); | 1348 animation->Hide(); |
| 1349 } else if (from != to) { | 1349 } else if (from != to) { |
| 1350 animation->Reset((to == HOT) ? 1.0 : 0.0); | 1350 animation->Reset((to == HOT) ? 1.0 : 0.0); |
| 1351 } | 1351 } |
| 1352 } | 1352 } |
| OLD | NEW |