| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "chrome/browser/extensions/extension_install_dialog.h" | 9 #include "chrome/browser/extensions/extension_install_dialog.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 column_set->AddPaddingColumn(0, views::kPanelHorizMargin); | 157 column_set->AddPaddingColumn(0, views::kPanelHorizMargin); |
| 158 column_set->AddColumn(views::GridLayout::LEADING, | 158 column_set->AddColumn(views::GridLayout::LEADING, |
| 159 views::GridLayout::LEADING, | 159 views::GridLayout::LEADING, |
| 160 0, // no resizing | 160 0, // no resizing |
| 161 views::GridLayout::USE_PREF, | 161 views::GridLayout::USE_PREF, |
| 162 0, // no fixed width | 162 0, // no fixed width |
| 163 kIconSize); | 163 kIconSize); |
| 164 | 164 |
| 165 layout->StartRow(0, column_set_id); | 165 layout->StartRow(0, column_set_id); |
| 166 | 166 |
| 167 views::Label* heading = new views::Label( | 167 views::Label* heading = new views::Label(prompt.GetHeading()); |
| 168 prompt.GetHeading(extension->name())); | |
| 169 heading->SetFont(heading->font().DeriveFont(kHeadingFontSizeDelta, | 168 heading->SetFont(heading->font().DeriveFont(kHeadingFontSizeDelta, |
| 170 gfx::Font::BOLD)); | 169 gfx::Font::BOLD)); |
| 171 heading->SetMultiLine(true); | 170 heading->SetMultiLine(true); |
| 172 heading->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | 171 heading->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 173 heading->SizeToFit(left_column_width); | 172 heading->SizeToFit(left_column_width); |
| 174 layout->AddView(heading); | 173 layout->AddView(heading); |
| 175 | 174 |
| 176 // Scale down to icon size, but allow smaller icons (don't scale up). | 175 // Scale down to icon size, but allow smaller icons (don't scale up). |
| 177 gfx::Size size(skia_icon->width(), skia_icon->height()); | 176 gfx::Size size(skia_icon->width(), skia_icon->height()); |
| 178 if (size.width() > kIconSize || size.height() > kIconSize) | 177 if (size.width() > kIconSize || size.height() > kIconSize) |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 | 227 |
| 229 if (is_inline_install()) { | 228 if (is_inline_install()) { |
| 230 layout->StartRow(0, column_set_id); | 229 layout->StartRow(0, column_set_id); |
| 231 layout->AddView(new views::Separator(), 3, 1, views::GridLayout::FILL, | 230 layout->AddView(new views::Separator(), 3, 1, views::GridLayout::FILL, |
| 232 views::GridLayout::FILL); | 231 views::GridLayout::FILL); |
| 233 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 232 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 234 } | 233 } |
| 235 | 234 |
| 236 layout->StartRow(0, column_set_id); | 235 layout->StartRow(0, column_set_id); |
| 237 views::Label* permissions_header = new views::Label( | 236 views::Label* permissions_header = new views::Label( |
| 238 prompt.GetPermissionsHeader()); | 237 prompt.GetPermissionsHeading()); |
| 239 permissions_header->SetMultiLine(true); | 238 permissions_header->SetMultiLine(true); |
| 240 permissions_header->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | 239 permissions_header->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 241 permissions_header->SizeToFit(left_column_width); | 240 permissions_header->SizeToFit(left_column_width); |
| 242 layout->AddView(permissions_header); | 241 layout->AddView(permissions_header); |
| 243 | 242 |
| 244 for (size_t i = 0; i < prompt.GetPermissionCount(); ++i) { | 243 for (size_t i = 0; i < prompt.GetPermissionCount(); ++i) { |
| 245 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 244 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 246 layout->StartRow(0, column_set_id); | 245 layout->StartRow(0, column_set_id); |
| 247 views::Label* permission_label = new views::Label( | 246 views::Label* permission_label = new views::Label( |
| 248 prompt.GetPermission(i)); | 247 prompt.GetPermission(i)); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 bool ExtensionInstallDialogView::Accept() { | 283 bool ExtensionInstallDialogView::Accept() { |
| 285 delegate_->InstallUIProceed(); | 284 delegate_->InstallUIProceed(); |
| 286 return true; | 285 return true; |
| 287 } | 286 } |
| 288 | 287 |
| 289 ui::ModalType ExtensionInstallDialogView::GetModalType() const { | 288 ui::ModalType ExtensionInstallDialogView::GetModalType() const { |
| 290 return ui::MODAL_TYPE_WINDOW; | 289 return ui::MODAL_TYPE_WINDOW; |
| 291 } | 290 } |
| 292 | 291 |
| 293 string16 ExtensionInstallDialogView::GetWindowTitle() const { | 292 string16 ExtensionInstallDialogView::GetWindowTitle() const { |
| 294 return prompt_.GetDialogTitle(extension_); | 293 return prompt_.GetDialogTitle(); |
| 295 } | 294 } |
| 296 | 295 |
| 297 views::View* ExtensionInstallDialogView::GetContentsView() { | 296 views::View* ExtensionInstallDialogView::GetContentsView() { |
| 298 return this; | 297 return this; |
| 299 } | 298 } |
| 300 | 299 |
| 301 void ExtensionInstallDialogView::LinkClicked(views::Link* source, | 300 void ExtensionInstallDialogView::LinkClicked(views::Link* source, |
| 302 int event_flags) { | 301 int event_flags) { |
| 303 GURL store_url( | 302 GURL store_url( |
| 304 extension_urls::GetWebstoreItemDetailURLPrefix() + extension_->id()); | 303 extension_urls::GetWebstoreItemDetailURLPrefix() + extension_->id()); |
| 305 OpenURLParams params( | 304 OpenURLParams params( |
| 306 store_url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, | 305 store_url, Referrer(), NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, |
| 307 false); | 306 false); |
| 308 BrowserList::GetLastActive()->OpenURL(params); | 307 BrowserList::GetLastActive()->OpenURL(params); |
| 309 GetWidget()->Close(); | 308 GetWidget()->Close(); |
| 310 } | 309 } |
| 311 | 310 |
| 312 void ShowExtensionInstallDialogImpl( | 311 void ShowExtensionInstallDialogImpl( |
| 313 Profile* profile, | 312 Profile* profile, |
| 314 ExtensionInstallUI::Delegate* delegate, | 313 ExtensionInstallUI::Delegate* delegate, |
| 315 const Extension* extension, | |
| 316 SkBitmap* icon, | |
| 317 const ExtensionInstallUI::Prompt& prompt) { | 314 const ExtensionInstallUI::Prompt& prompt) { |
| 318 #if defined(OS_CHROMEOS) | 315 #if defined(OS_CHROMEOS) |
| 319 // Use a tabbed browser window as parent on ChromeOS. | 316 // Use a tabbed browser window as parent on ChromeOS. |
| 320 Browser* browser = BrowserList::FindTabbedBrowser(profile, true); | 317 Browser* browser = BrowserList::FindTabbedBrowser(profile, true); |
| 321 #else | 318 #else |
| 322 Browser* browser = BrowserList::GetLastActiveWithProfile(profile); | 319 Browser* browser = BrowserList::GetLastActiveWithProfile(profile); |
| 323 #endif | 320 #endif |
| 324 if (!browser) { | 321 if (!browser) { |
| 325 delegate->InstallUIAbort(false); | 322 delegate->InstallUIAbort(false); |
| 326 return; | 323 return; |
| 327 } | 324 } |
| 328 | 325 |
| 329 BrowserWindow* browser_window = browser->window(); | 326 BrowserWindow* browser_window = browser->window(); |
| 330 if (!browser_window) { | 327 if (!browser_window) { |
| 331 delegate->InstallUIAbort(false); | 328 delegate->InstallUIAbort(false); |
| 332 return; | 329 return; |
| 333 } | 330 } |
| 334 | 331 |
| 335 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( | 332 ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( |
| 336 delegate, extension, icon, prompt); | 333 delegate, extension, icon, prompt); |
| 337 | 334 |
| 338 views::Widget* window = browser::CreateViewsWindow( | 335 views::Widget* window = browser::CreateViewsWindow( |
| 339 browser_window->GetNativeHandle(), dialog, STYLE_GENERIC); | 336 browser_window->GetNativeHandle(), dialog, STYLE_GENERIC); |
| 340 | 337 |
| 341 window->Show(); | 338 window->Show(); |
| 342 } | 339 } |
| OLD | NEW |