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_md.h" | 5 #include "chrome/browser/ui/views/download/download_item_view_md.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <vector> | 10 #include <vector> |
(...skipping 842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 delete save_button_; | 853 delete save_button_; |
854 save_button_ = NULL; | 854 save_button_ = NULL; |
855 } | 855 } |
856 RemoveChildView(discard_button_); | 856 RemoveChildView(discard_button_); |
857 delete discard_button_; | 857 delete discard_button_; |
858 discard_button_ = NULL; | 858 discard_button_ = NULL; |
859 RemoveChildView(dangerous_download_label_); | 859 RemoveChildView(dangerous_download_label_); |
860 delete dangerous_download_label_; | 860 delete dangerous_download_label_; |
861 dangerous_download_label_ = NULL; | 861 dangerous_download_label_ = NULL; |
862 dangerous_download_label_sized_ = false; | 862 dangerous_download_label_sized_ = false; |
863 cached_button_size_.SetSize(0, 0); | |
864 | 863 |
865 // We need to load the icon now that the download has the real path. | 864 // We need to load the icon now that the download has the real path. |
866 LoadIcon(); | 865 LoadIcon(); |
867 | 866 |
868 dropdown_button_->SetVisible(true); | 867 dropdown_button_->SetVisible(true); |
869 } | 868 } |
870 | 869 |
871 void DownloadItemViewMd::ShowWarningDialog() { | 870 void DownloadItemViewMd::ShowWarningDialog() { |
872 DCHECK(mode_ != DANGEROUS_MODE && mode_ != MALICIOUS_MODE); | 871 DCHECK(mode_ != DANGEROUS_MODE && mode_ != MALICIOUS_MODE); |
873 time_download_warning_shown_ = base::Time::Now(); | 872 time_download_warning_shown_ = base::Time::Now(); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
937 case content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE: | 936 case content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE: |
938 return gfx::CreateVectorIcon(gfx::VectorIconId::WARNING, | 937 return gfx::CreateVectorIcon(gfx::VectorIconId::WARNING, |
939 kWarningIconSize, | 938 kWarningIconSize, |
940 gfx::kGoogleYellow700); | 939 gfx::kGoogleYellow700); |
941 } | 940 } |
942 return gfx::ImageSkia(); | 941 return gfx::ImageSkia(); |
943 } | 942 } |
944 | 943 |
945 gfx::Size DownloadItemViewMd::GetButtonSize() const { | 944 gfx::Size DownloadItemViewMd::GetButtonSize() const { |
946 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_)); | 945 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_)); |
947 gfx::Size size; | 946 gfx::Size size = discard_button_->GetPreferredSize(); |
948 | |
949 // We cache the size when successfully retrieved, not for performance reasons | |
950 // but because if this DownloadItemViewMd is being animated while the tab is | |
951 // not showing, the native buttons are not parented and their preferred size | |
952 // is 0, messing-up the layout. | |
953 if (cached_button_size_.width() != 0) | |
954 return cached_button_size_; | |
955 | |
956 if (save_button_) | 947 if (save_button_) |
957 size = save_button_->GetMinimumSize(); | 948 size.SetToMax(save_button_->GetPreferredSize()); |
958 gfx::Size discard_size = discard_button_->GetMinimumSize(); | |
959 | |
960 size.SetSize(std::max(size.width(), discard_size.width()), | |
961 std::max(size.height(), discard_size.height())); | |
962 | |
963 if (size.width() != 0) | |
964 cached_button_size_ = size; | |
965 | |
966 return size; | 949 return size; |
967 } | 950 } |
968 | 951 |
969 // This method computes the minimum width of the label for displaying its text | 952 // This method computes the minimum width of the label for displaying its text |
970 // on 2 lines. It just breaks the string in 2 lines on the spaces and keeps the | 953 // on 2 lines. It just breaks the string in 2 lines on the spaces and keeps the |
971 // configuration with minimum width. | 954 // configuration with minimum width. |
972 void DownloadItemViewMd::SizeLabelToMinWidth() { | 955 void DownloadItemViewMd::SizeLabelToMinWidth() { |
973 if (dangerous_download_label_sized_) | 956 if (dangerous_download_label_sized_) |
974 return; | 957 return; |
975 | 958 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 SchedulePaint(); | 1060 SchedulePaint(); |
1078 } | 1061 } |
1079 | 1062 |
1080 SkColor DownloadItemViewMd::GetTextColor() { | 1063 SkColor DownloadItemViewMd::GetTextColor() { |
1081 return GetTextColorForThemeProvider(GetThemeProvider()); | 1064 return GetTextColorForThemeProvider(GetThemeProvider()); |
1082 } | 1065 } |
1083 | 1066 |
1084 SkColor DownloadItemViewMd::GetDimmedTextColor() { | 1067 SkColor DownloadItemViewMd::GetDimmedTextColor() { |
1085 return SkColorSetA(GetTextColor(), 0xC7); | 1068 return SkColorSetA(GetTextColor(), 0xC7); |
1086 } | 1069 } |
OLD | NEW |