| Index: chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h
|
| diff --git a/chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h b/chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h
|
| index 054a0bd13d83ed7fa40357d06b7adafaa6673d02..5570e0c2999fc540c4349209d31f978e8d7ba27f 100644
|
| --- a/chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h
|
| +++ b/chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h
|
| @@ -10,6 +10,7 @@
|
| #include "base/basictypes.h"
|
| #include "base/ref_counted.h"
|
| #include "chrome/browser/browser_thread.h"
|
| +#include "chrome/browser/extensions/image_loading_tracker.h"
|
| #include "chrome/browser/shell_integration.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| @@ -17,21 +18,14 @@ typedef struct _GdkPixbuf GdkPixbuf;
|
| typedef struct _GtkWidget GtkWidget;
|
| typedef struct _GtkWindow GtkWindow;
|
|
|
| +class Extension;
|
| class TabContents;
|
|
|
| class CreateApplicationShortcutsDialogGtk
|
| : public base::RefCountedThreadSafe<CreateApplicationShortcutsDialogGtk,
|
| BrowserThread::DeleteOnUIThread> {
|
| - public:
|
| - // Displays the dialog box to create application shortcuts for |tab_contents|.
|
| - static void Show(GtkWindow* parent, TabContents* tab_contents);
|
| -
|
| - private:
|
| - friend class BrowserThread;
|
| - friend class DeleteTask<CreateApplicationShortcutsDialogGtk>;
|
| -
|
| - CreateApplicationShortcutsDialogGtk(GtkWindow* parent,
|
| - TabContents* tab_contents);
|
| + protected:
|
| + explicit CreateApplicationShortcutsDialogGtk(GtkWindow* parent);
|
| virtual ~CreateApplicationShortcutsDialogGtk();
|
|
|
| CHROMEGTK_CALLBACK_1(CreateApplicationShortcutsDialogGtk, void,
|
| @@ -43,17 +37,23 @@ class CreateApplicationShortcutsDialogGtk
|
| CHROMEGTK_CALLBACK_0(CreateApplicationShortcutsDialogGtk, void,
|
| OnToggleCheckbox);
|
|
|
| + virtual void CreateDialogBox(GtkWindow* parent);
|
| + virtual void CreateIconPixBuf(const SkBitmap& bitmap);
|
| +
|
| + // This method is called after a shortcut is created.
|
| + // Subclasses can override it to take some action at that time.
|
| + virtual void OnCreatedShortcut(void) {}
|
| +
|
| void CreateDesktopShortcut(
|
| const ShellIntegration::ShortcutInfo& shortcut_info);
|
| void ShowErrorDialog();
|
|
|
| + GtkWindow* parent_;
|
| +
|
| // UI elements.
|
| GtkWidget* desktop_checkbox_;
|
| GtkWidget* menu_checkbox_;
|
|
|
| - // TabContents for which the shortcut will be created.
|
| - TabContents* tab_contents_;
|
| -
|
| // ShortcutInfo for the new shortcut.
|
| ShellIntegration::ShortcutInfo shortcut_info_;
|
|
|
| @@ -66,7 +66,54 @@ class CreateApplicationShortcutsDialogGtk
|
| // Dialog box that shows the error message.
|
| GtkWidget* error_dialog_;
|
|
|
| + private:
|
| + friend class BrowserThread;
|
| + friend class DeleteTask<CreateApplicationShortcutsDialogGtk>;
|
| DISALLOW_COPY_AND_ASSIGN(CreateApplicationShortcutsDialogGtk);
|
| };
|
|
|
| +class CreateWebApplicationShortcutsDialogGtk
|
| + : public CreateApplicationShortcutsDialogGtk {
|
| + public:
|
| + // Displays the dialog box to create application shortcuts for |tab_contents|.
|
| + static void Show(GtkWindow* parent, TabContents* tab_contents);
|
| +
|
| + explicit CreateWebApplicationShortcutsDialogGtk(GtkWindow* parent,
|
| + TabContents* tab_contents);
|
| + virtual ~CreateWebApplicationShortcutsDialogGtk() {}
|
| +
|
| + virtual void OnCreatedShortcut(void);
|
| +
|
| + private:
|
| +
|
| + // TabContents for which the shortcut will be created.
|
| + TabContents* tab_contents_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CreateWebApplicationShortcutsDialogGtk);
|
| +};
|
| +
|
| +class CreateChromeApplicationShortcutsDialogGtk
|
| + : public CreateApplicationShortcutsDialogGtk,
|
| + public ImageLoadingTracker::Observer {
|
| + public:
|
| + // Displays the dialog box to create application shortcuts for |app|.
|
| + static void Show(GtkWindow* parent, const Extension* app);
|
| +
|
| + explicit CreateChromeApplicationShortcutsDialogGtk(GtkWindow* parent,
|
| + const Extension* app);
|
| + virtual ~CreateChromeApplicationShortcutsDialogGtk() {}
|
| +
|
| + // Implement ImageLoadingTracker::Observer. |tracker_| is used to
|
| + // load the app's icon. This method recieves the icon, and adds
|
| + // it to the "Create Shortcut" dailog box.
|
| + virtual void OnImageLoaded(SkBitmap* image,
|
| + ExtensionResource resource,
|
| + int index);
|
| +
|
| + private:
|
| + const Extension* app_;
|
| + ImageLoadingTracker tracker_;
|
| + DISALLOW_COPY_AND_ASSIGN(CreateChromeApplicationShortcutsDialogGtk);
|
| +};
|
| +
|
| #endif // CHROME_BROWSER_GTK_CREATE_APPLICATION_SHORTCUTS_DIALOG_GTK_H_
|
|
|