Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Side by Side Diff: chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc

Issue 10388252: Refactoring ExtenionInstallUI to abstract the Browser references. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor clean-ups Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <gtk/gtk.h> 5 #include <gtk/gtk.h>
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/extensions/bundle_installer.h" 10 #include "chrome/browser/extensions/bundle_installer.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 // Adds a Skia image as an icon control to the given container. 42 // Adds a Skia image as an icon control to the given container.
43 void AddResourceIcon(const SkBitmap* icon, void* data) { 43 void AddResourceIcon(const SkBitmap* icon, void* data) {
44 GtkWidget* container = static_cast<GtkWidget*>(data); 44 GtkWidget* container = static_cast<GtkWidget*>(data);
45 GdkPixbuf* icon_pixbuf = gfx::GdkPixbufFromSkBitmap(*icon); 45 GdkPixbuf* icon_pixbuf = gfx::GdkPixbufFromSkBitmap(*icon);
46 GtkWidget* icon_widget = gtk_image_new_from_pixbuf(icon_pixbuf); 46 GtkWidget* icon_widget = gtk_image_new_from_pixbuf(icon_pixbuf);
47 g_object_unref(icon_pixbuf); 47 g_object_unref(icon_pixbuf);
48 gtk_box_pack_start(GTK_BOX(container), icon_widget, FALSE, FALSE, 0); 48 gtk_box_pack_start(GTK_BOX(container), icon_widget, FALSE, FALSE, 0);
49 } 49 }
50 50
51 // Displays the dialog when constructed, deletes itself when dialog is 51 // Displays the dialog when constructed, deletes itself when dialog is
52 // dismissed. Success/failure is passed back through the ExtensionInstallUI:: 52 // dismissed. Success/failure is passed back through the
53 // Delegate instance. 53 // ExtensionInstallPrompt::Delegate instance.
54 class ExtensionInstallDialog { 54 class ExtensionInstallDialog {
55 public: 55 public:
56 ExtensionInstallDialog(GtkWindow* parent, 56 ExtensionInstallDialog(GtkWindow* parent,
57 ExtensionInstallUI::Delegate *delegate, 57 ExtensionInstallPrompt::Delegate *delegate,
58 const ExtensionInstallUI::Prompt& prompt); 58 const ExtensionInstallPrompt::Prompt& prompt);
59 private: 59 private:
60 ~ExtensionInstallDialog(); 60 ~ExtensionInstallDialog();
61 61
62 CHROMEGTK_CALLBACK_1(ExtensionInstallDialog, void, OnResponse, int); 62 CHROMEGTK_CALLBACK_1(ExtensionInstallDialog, void, OnResponse, int);
63 CHROMEGTK_CALLBACK_0(ExtensionInstallDialog, void, OnStoreLinkClick); 63 CHROMEGTK_CALLBACK_0(ExtensionInstallDialog, void, OnStoreLinkClick);
64 64
65 ExtensionInstallUI::Delegate* delegate_; 65 ExtensionInstallPrompt::Delegate* delegate_;
66 std::string extension_id_; // Set for INLINE_INSTALL_PROMPT. 66 std::string extension_id_; // Set for INLINE_INSTALL_PROMPT.
67 GtkWidget* dialog_; 67 GtkWidget* dialog_;
68 }; 68 };
69 69
70 ExtensionInstallDialog::ExtensionInstallDialog( 70 ExtensionInstallDialog::ExtensionInstallDialog(
71 GtkWindow* parent, 71 GtkWindow* parent,
72 ExtensionInstallUI::Delegate *delegate, 72 ExtensionInstallPrompt::Delegate *delegate,
73 const ExtensionInstallUI::Prompt& prompt) 73 const ExtensionInstallPrompt::Prompt& prompt)
74 : delegate_(delegate), 74 : delegate_(delegate),
75 dialog_(NULL) { 75 dialog_(NULL) {
76 bool show_permissions = prompt.GetPermissionCount() > 0; 76 bool show_permissions = prompt.GetPermissionCount() > 0;
77 bool is_inline_install = 77 bool is_inline_install =
78 prompt.type() == ExtensionInstallUI::INLINE_INSTALL_PROMPT; 78 prompt.type() == ExtensionInstallPrompt::INLINE_INSTALL_PROMPT;
79 bool is_bundle_install = 79 bool is_bundle_install =
80 prompt.type() == ExtensionInstallUI::BUNDLE_INSTALL_PROMPT; 80 prompt.type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT;
81 81
82 if (is_inline_install) 82 if (is_inline_install)
83 extension_id_ = prompt.extension()->id(); 83 extension_id_ = prompt.extension()->id();
84 84
85 // Build the dialog. 85 // Build the dialog.
86 dialog_ = gtk_dialog_new_with_buttons( 86 dialog_ = gtk_dialog_new_with_buttons(
87 UTF16ToUTF8(prompt.GetDialogTitle()).c_str(), 87 UTF16ToUTF8(prompt.GetDialogTitle()).c_str(),
88 parent, 88 parent,
89 GTK_DIALOG_MODAL, 89 GTK_DIALOG_MODAL,
90 NULL); 90 NULL);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 store_url, content::Referrer(), NEW_FOREGROUND_TAB, 257 store_url, content::Referrer(), NEW_FOREGROUND_TAB,
258 content::PAGE_TRANSITION_LINK, false)); 258 content::PAGE_TRANSITION_LINK, false));
259 259
260 OnResponse(dialog_, GTK_RESPONSE_CLOSE); 260 OnResponse(dialog_, GTK_RESPONSE_CLOSE);
261 } 261 }
262 262
263 } // namespace 263 } // namespace
264 264
265 void ShowExtensionInstallDialogImpl( 265 void ShowExtensionInstallDialogImpl(
266 Profile* profile, 266 Profile* profile,
267 ExtensionInstallUI::Delegate* delegate, 267 ExtensionInstallPrompt::Delegate* delegate,
268 const ExtensionInstallUI::Prompt& prompt) { 268 const ExtensionInstallPrompt::Prompt& prompt) {
269 Browser* browser = browser::FindLastActiveWithProfile(profile); 269 Browser* browser = browser::FindLastActiveWithProfile(profile);
270 if (!browser) { 270 if (!browser) {
271 delegate->InstallUIAbort(false); 271 delegate->InstallUIAbort(false);
272 return; 272 return;
273 } 273 }
274 274
275 BrowserWindowGtk* browser_window = static_cast<BrowserWindowGtk*>( 275 BrowserWindowGtk* browser_window = static_cast<BrowserWindowGtk*>(
276 browser->window()); 276 browser->window());
277 if (!browser_window) { 277 if (!browser_window) {
278 delegate->InstallUIAbort(false); 278 delegate->InstallUIAbort(false);
279 return; 279 return;
280 } 280 }
281 281
282 new ExtensionInstallDialog(browser_window->window(), delegate, prompt); 282 new ExtensionInstallDialog(browser_window->window(), delegate, prompt);
283 } 283 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698