| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/views/download_item_view.h" | 5 #include "chrome/browser/views/download_item_view.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_TOP), | 204 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_TOP), |
| 205 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_MIDDLE), | 205 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_MIDDLE), |
| 206 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_BOTTOM), | 206 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_CENTER_BOTTOM), |
| 207 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_TOP_NO_DD), | 207 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_TOP_NO_DD), |
| 208 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_MIDDLE_NO_DD), | 208 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_MIDDLE_NO_DD), |
| 209 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_BOTTOM_NO_DD) | 209 rb.GetBitmapNamed(IDR_DOWNLOAD_BUTTON_RIGHT_BOTTOM_NO_DD) |
| 210 }; | 210 }; |
| 211 dangerous_mode_body_image_set_ = dangerous_mode_body_image_set; | 211 dangerous_mode_body_image_set_ = dangerous_mode_body_image_set; |
| 212 | 212 |
| 213 LoadIcon(); | 213 LoadIcon(); |
| 214 tooltip_text_ = download_->GetFileName().value(); |
| 214 | 215 |
| 215 font_ = ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont); | 216 font_ = ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont); |
| 216 box_height_ = std::max<int>(2 * kVerticalPadding + font_.height() + | 217 box_height_ = std::max<int>(2 * kVerticalPadding + font_.height() + |
| 217 kVerticalTextPadding + font_.height(), | 218 kVerticalTextPadding + font_.height(), |
| 218 2 * kVerticalPadding + | 219 2 * kVerticalPadding + |
| 219 normal_body_image_set_.top_left->height() + | 220 normal_body_image_set_.top_left->height() + |
| 220 normal_body_image_set_.bottom_left->height()); | 221 normal_body_image_set_.bottom_left->height()); |
| 221 | 222 |
| 222 if (download_util::kSmallProgressIconSize > box_height_) | 223 if (download_util::kSmallProgressIconSize > box_height_) |
| 223 box_y_ = (download_util::kSmallProgressIconSize - box_height_) / 2; | 224 box_y_ = (download_util::kSmallProgressIconSize - box_height_) / 2; |
| 224 else | 225 else |
| 225 box_y_ = kVerticalPadding; | 226 box_y_ = kVerticalPadding; |
| 226 | 227 |
| 227 gfx::Size size = GetPreferredSize(); | 228 gfx::Size size = GetPreferredSize(); |
| 228 if (UILayoutIsRightToLeft()) { | 229 if (UILayoutIsRightToLeft()) { |
| 229 // Drop down button is glued to the left of the download shelf. | 230 // Drop down button is glued to the left of the download shelf. |
| 230 drop_down_x_left_ = 0; | 231 drop_down_x_left_ = 0; |
| 231 drop_down_x_right_ = normal_drop_down_image_set_.top->width(); | 232 drop_down_x_right_ = normal_drop_down_image_set_.top->width(); |
| 232 } else { | 233 } else { |
| 233 // Drop down button is glued to the right of the download shelf. | 234 // Drop down button is glued to the right of the download shelf. |
| 234 drop_down_x_left_ = | 235 drop_down_x_left_ = |
| 235 size.width() - normal_drop_down_image_set_.top->width(); | 236 size.width() - normal_drop_down_image_set_.top->width(); |
| 236 drop_down_x_right_ = size.width(); | 237 drop_down_x_right_ = size.width(); |
| 237 } | 238 } |
| 238 | 239 |
| 239 body_hover_animation_.reset(new SlideAnimation(this)); | 240 body_hover_animation_.reset(new SlideAnimation(this)); |
| 240 drop_hover_animation_.reset(new SlideAnimation(this)); | 241 drop_hover_animation_.reset(new SlideAnimation(this)); |
| 241 | 242 |
| 242 if (download->safety_state() == DownloadItem::DANGEROUS) { | 243 if (download->safety_state() == DownloadItem::DANGEROUS) { |
| 244 tooltip_text_.clear(); |
| 243 body_state_ = DANGEROUS; | 245 body_state_ = DANGEROUS; |
| 244 drop_down_state_ = DANGEROUS; | 246 drop_down_state_ = DANGEROUS; |
| 245 | 247 |
| 246 warning_icon_ = rb.GetBitmapNamed(IDR_WARNING); | 248 warning_icon_ = rb.GetBitmapNamed(IDR_WARNING); |
| 247 save_button_ = new views::NativeButton(this, l10n_util::GetString( | 249 save_button_ = new views::NativeButton(this, l10n_util::GetString( |
| 248 download->is_extension_install() ? | 250 download->is_extension_install() ? |
| 249 IDS_CONTINUE_EXTENSION_DOWNLOAD : IDS_SAVE_DOWNLOAD)); | 251 IDS_CONTINUE_EXTENSION_DOWNLOAD : IDS_SAVE_DOWNLOAD)); |
| 250 save_button_->set_ignore_minimum_size(true); | 252 save_button_->set_ignore_minimum_size(true); |
| 251 discard_button_ = new views::NativeButton( | 253 discard_button_ = new views::NativeButton( |
| 252 this, l10n_util::GetString(IDS_DISCARD_DOWNLOAD)); | 254 this, l10n_util::GetString(IDS_DISCARD_DOWNLOAD)); |
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 save_button_ = NULL; | 723 save_button_ = NULL; |
| 722 RemoveChildView(discard_button_); | 724 RemoveChildView(discard_button_); |
| 723 delete discard_button_; | 725 delete discard_button_; |
| 724 discard_button_ = NULL; | 726 discard_button_ = NULL; |
| 725 RemoveChildView(dangerous_download_label_); | 727 RemoveChildView(dangerous_download_label_); |
| 726 delete dangerous_download_label_; | 728 delete dangerous_download_label_; |
| 727 dangerous_download_label_ = NULL; | 729 dangerous_download_label_ = NULL; |
| 728 | 730 |
| 729 // We need to load the icon now that the download_ has the real path. | 731 // We need to load the icon now that the download_ has the real path. |
| 730 LoadIcon(); | 732 LoadIcon(); |
| 733 tooltip_text_ = download_->GetFileName().value(); |
| 731 | 734 |
| 732 // Force the shelf to layout again as our size has changed. | 735 // Force the shelf to layout again as our size has changed. |
| 733 parent_->Layout(); | 736 parent_->Layout(); |
| 734 parent_->SchedulePaint(); | 737 parent_->SchedulePaint(); |
| 735 } | 738 } |
| 736 | 739 |
| 737 gfx::Size DownloadItemView::GetPreferredSize() { | 740 gfx::Size DownloadItemView::GetPreferredSize() { |
| 738 int width, height; | 741 int width, height; |
| 739 | 742 |
| 740 // First, we set the height to the height of two rows or text plus margins. | 743 // First, we set the height to the height of two rows or text plus margins. |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 if (icon_bitmap) | 920 if (icon_bitmap) |
| 918 GetParent()->SchedulePaint(); | 921 GetParent()->SchedulePaint(); |
| 919 } | 922 } |
| 920 | 923 |
| 921 void DownloadItemView::LoadIcon() { | 924 void DownloadItemView::LoadIcon() { |
| 922 IconManager* im = g_browser_process->icon_manager(); | 925 IconManager* im = g_browser_process->icon_manager(); |
| 923 im->LoadIcon(download_->full_path(), IconLoader::SMALL, &icon_consumer_, | 926 im->LoadIcon(download_->full_path(), IconLoader::SMALL, &icon_consumer_, |
| 924 NewCallback(this, &DownloadItemView::OnExtractIconComplete)); | 927 NewCallback(this, &DownloadItemView::OnExtractIconComplete)); |
| 925 } | 928 } |
| 926 | 929 |
| 930 bool DownloadItemView::GetTooltipText(const gfx::Point& p, |
| 931 std::wstring* tooltip) { |
| 932 if (tooltip_text_.empty()) |
| 933 return false; |
| 934 |
| 935 tooltip->assign(tooltip_text_); |
| 936 return true; |
| 937 } |
| 938 |
| 927 gfx::Size DownloadItemView::GetButtonSize() { | 939 gfx::Size DownloadItemView::GetButtonSize() { |
| 928 DCHECK(save_button_ && discard_button_); | 940 DCHECK(save_button_ && discard_button_); |
| 929 gfx::Size size; | 941 gfx::Size size; |
| 930 | 942 |
| 931 // We cache the size when successfully retrieved, not for performance reasons | 943 // We cache the size when successfully retrieved, not for performance reasons |
| 932 // but because if this DownloadItemView is being animated while the tab is | 944 // but because if this DownloadItemView is being animated while the tab is |
| 933 // not showing, the native buttons are not parented and their preferred size | 945 // not showing, the native buttons are not parented and their preferred size |
| 934 // is 0, messing-up the layout. | 946 // is 0, messing-up the layout. |
| 935 if (cached_button_size_.width() != 0) | 947 if (cached_button_size_.width() != 0) |
| 936 return cached_button_size_; | 948 return cached_button_size_; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 996 void DownloadItemView::Reenable() { | 1008 void DownloadItemView::Reenable() { |
| 997 disabled_while_opening_ = false; | 1009 disabled_while_opening_ = false; |
| 998 SetEnabled(true); // Triggers a repaint. | 1010 SetEnabled(true); // Triggers a repaint. |
| 999 } | 1011 } |
| 1000 | 1012 |
| 1001 bool DownloadItemView::InDropDownButtonXCoordinateRange(int x) { | 1013 bool DownloadItemView::InDropDownButtonXCoordinateRange(int x) { |
| 1002 if (x > drop_down_x_left_ && x < drop_down_x_right_) | 1014 if (x > drop_down_x_left_ && x < drop_down_x_right_) |
| 1003 return true; | 1015 return true; |
| 1004 return false; | 1016 return false; |
| 1005 } | 1017 } |
| OLD | NEW |