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

Unified Diff: chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h

Issue 5273004: Add "create Application Shortcut" to the app menu on NTP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase for commit. Created 10 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.cc ('k') | chrome/browser/gtk/create_application_shortcuts_dialog_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698