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 <algorithm> | 5 #include <algorithm> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
9 #include "base/time.h" | 9 #include "base/time.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
682 | 682 |
683 // LinkListener implementation. | 683 // LinkListener implementation. |
684 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; | 684 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; |
685 | 685 |
686 // WebIntentPicker implementation. | 686 // WebIntentPicker implementation. |
687 virtual void Close() OVERRIDE; | 687 virtual void Close() OVERRIDE; |
688 virtual void SetActionString(const string16& action) OVERRIDE; | 688 virtual void SetActionString(const string16& action) OVERRIDE; |
689 virtual void OnExtensionInstallSuccess(const std::string& id) OVERRIDE; | 689 virtual void OnExtensionInstallSuccess(const std::string& id) OVERRIDE; |
690 virtual void OnExtensionInstallFailure(const std::string& id) OVERRIDE; | 690 virtual void OnExtensionInstallFailure(const std::string& id) OVERRIDE; |
691 virtual void OnInlineDispositionAutoResize(const gfx::Size& size) OVERRIDE; | 691 virtual void OnInlineDispositionAutoResize(const gfx::Size& size) OVERRIDE; |
692 virtual void OnPendingAsyncCompleted() OVERRIDE; | |
692 virtual void OnInlineDispositionWebContentsLoaded( | 693 virtual void OnInlineDispositionWebContentsLoaded( |
693 content::WebContents* web_contents) OVERRIDE; | 694 content::WebContents* web_contents) OVERRIDE; |
694 | 695 |
695 // WebIntentPickerModelObserver implementation. | 696 // WebIntentPickerModelObserver implementation. |
696 virtual void OnModelChanged(WebIntentPickerModel* model) OVERRIDE; | 697 virtual void OnModelChanged(WebIntentPickerModel* model) OVERRIDE; |
697 virtual void OnFaviconChanged(WebIntentPickerModel* model, | 698 virtual void OnFaviconChanged(WebIntentPickerModel* model, |
698 size_t index) OVERRIDE; | 699 size_t index) OVERRIDE; |
699 virtual void OnExtensionIconChanged(WebIntentPickerModel* model, | 700 virtual void OnExtensionIconChanged(WebIntentPickerModel* model, |
700 const string16& extension_id) OVERRIDE; | 701 const string16& extension_id) OVERRIDE; |
701 virtual void OnInlineDisposition(const string16& title, | 702 virtual void OnInlineDisposition(const string16& title, |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
885 // TODO(binji): What to display to user on failure? | 886 // TODO(binji): What to display to user on failure? |
886 } | 887 } |
887 | 888 |
888 void WebIntentPickerViews::OnInlineDispositionAutoResize( | 889 void WebIntentPickerViews::OnInlineDispositionAutoResize( |
889 const gfx::Size& size) { | 890 const gfx::Size& size) { |
890 webview_->SetPreferredSize(size); | 891 webview_->SetPreferredSize(size); |
891 contents_->Layout(); | 892 contents_->Layout(); |
892 SizeToContents(); | 893 SizeToContents(); |
893 } | 894 } |
894 | 895 |
896 void WebIntentPickerViews::OnPendingAsyncCompleted() { | |
897 // Requests to both the WebIntentService and the Chrome Web Store have | |
898 // completed. If there are any services, installed or suggested, there's | |
899 // nothing to do. | |
900 if (model_->GetInstalledServiceCount() || | |
901 model_->GetSuggestedExtensionCount()) | |
902 return; | |
903 | |
904 // If there are no installed or suggested services at this point, | |
905 // inform the user about it. | |
906 contents_->RemoveAllChildViews(true); | |
907 more_suggestions_link_ = NULL; | |
908 | |
909 views::GridLayout* grid_layout = new views::GridLayout(contents_); | |
910 contents_->SetLayoutManager(grid_layout); | |
911 | |
912 grid_layout->SetInsets(kContentAreaBorder, kContentAreaBorder, | |
913 kContentAreaBorder, kContentAreaBorder); | |
914 views::ColumnSet* main_cs = grid_layout->AddColumnSet(0); | |
915 main_cs->AddColumn(GridLayout::FILL, GridLayout::LEADING, 1, | |
916 GridLayout::USE_PREF, 0, 0); | |
917 | |
918 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | |
919 | |
920 grid_layout->StartRow(0, 0); | |
921 views::Label* header = new views::Label(); | |
922 header->SetVisible(true); | |
923 header->SetMultiLine(false); | |
Peter Kasting
2012/07/11 23:47:47
Nit: Isn't multiline=false the default? I thought
groby-ooo-7-16
2012/07/12 00:00:38
Yes, it is - thanks for pointing it out.
On 2012/0
| |
924 header->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | |
925 header->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)); | |
926 header->SetText(l10n_util::GetStringUTF16( | |
927 IDS_INTENT_PICKER_NO_SERVICES_TITLE)); | |
928 grid_layout->AddView(header); | |
929 | |
930 grid_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | |
931 | |
932 grid_layout->StartRow(0, 0); | |
933 views::Label* body = new views::Label(); | |
934 body->SetVisible(true); | |
935 body->SetMultiLine(true); | |
936 body->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | |
937 body->SetText(l10n_util::GetStringUTF16(IDS_INTENT_PICKER_NO_SERVICES)); | |
938 grid_layout->AddView(body); | |
939 | |
940 contents_->Layout(); | |
941 SizeToContents(); | |
942 } | |
943 | |
895 void WebIntentPickerViews::OnInlineDispositionWebContentsLoaded( | 944 void WebIntentPickerViews::OnInlineDispositionWebContentsLoaded( |
896 content::WebContents* web_contents) { | 945 content::WebContents* web_contents) { |
897 if (displaying_web_contents_) | 946 if (displaying_web_contents_) |
898 return; | 947 return; |
899 | 948 |
900 // Replace the picker with the inline disposition. | 949 // Replace the picker with the inline disposition. |
901 contents_->RemoveAllChildViews(true); | 950 contents_->RemoveAllChildViews(true); |
902 more_suggestions_link_ = NULL; | 951 more_suggestions_link_ = NULL; |
903 | 952 |
904 views::GridLayout* grid_layout = new views::GridLayout(contents_); | 953 views::GridLayout* grid_layout = new views::GridLayout(contents_); |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1164 views::ImageButton* close_button = new views::ImageButton(this); | 1213 views::ImageButton* close_button = new views::ImageButton(this); |
1165 close_button->SetImage(views::CustomButton::BS_NORMAL, | 1214 close_button->SetImage(views::CustomButton::BS_NORMAL, |
1166 rb.GetImageSkiaNamed(IDR_CLOSE_BAR)); | 1215 rb.GetImageSkiaNamed(IDR_CLOSE_BAR)); |
1167 close_button->SetImage(views::CustomButton::BS_HOT, | 1216 close_button->SetImage(views::CustomButton::BS_HOT, |
1168 rb.GetImageSkiaNamed(IDR_CLOSE_BAR_H)); | 1217 rb.GetImageSkiaNamed(IDR_CLOSE_BAR_H)); |
1169 close_button->SetImage(views::CustomButton::BS_PUSHED, | 1218 close_button->SetImage(views::CustomButton::BS_PUSHED, |
1170 rb.GetImageSkiaNamed(IDR_CLOSE_BAR_P)); | 1219 rb.GetImageSkiaNamed(IDR_CLOSE_BAR_P)); |
1171 return close_button; | 1220 return close_button; |
1172 } | 1221 } |
1173 #endif | 1222 #endif |
OLD | NEW |