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

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

Issue 6099014: Move chrome/browser/gtk to chrome/browser/ui/gtk (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Move browser/gtk/ to browser/ui/gtk/, leave header stubs, update new header guards Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h
diff --git a/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c9e47cbcda3e5c9db8da35548f7fbbed5bd2c57
--- /dev/null
+++ b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h
@@ -0,0 +1,119 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_GTK_CREATE_APPLICATION_SHORTCUTS_DIALOG_GTK_H_
+#define CHROME_BROWSER_UI_GTK_CREATE_APPLICATION_SHORTCUTS_DIALOG_GTK_H_
+#pragma once
+
+#include "app/gtk_signal.h"
+#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"
+
+typedef struct _GdkPixbuf GdkPixbuf;
+typedef struct _GtkWidget GtkWidget;
+typedef struct _GtkWindow GtkWindow;
+
+class Extension;
+class TabContents;
+
+class CreateApplicationShortcutsDialogGtk
+ : public base::RefCountedThreadSafe<CreateApplicationShortcutsDialogGtk,
+ BrowserThread::DeleteOnUIThread> {
+ protected:
+ explicit CreateApplicationShortcutsDialogGtk(GtkWindow* parent);
+ virtual ~CreateApplicationShortcutsDialogGtk();
+
+ CHROMEGTK_CALLBACK_1(CreateApplicationShortcutsDialogGtk, void,
+ OnCreateDialogResponse, int);
+
+ CHROMEGTK_CALLBACK_1(CreateApplicationShortcutsDialogGtk, void,
+ OnErrorDialogResponse, int);
+
+ 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_;
+
+ // ShortcutInfo for the new shortcut.
+ ShellIntegration::ShortcutInfo shortcut_info_;
+
+ // Image associated with the site.
+ GdkPixbuf* favicon_pixbuf_;
+
+ // Dialog box that allows the user to create an application shortcut.
+ GtkWidget* create_dialog_;
+
+ // 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_UI_GTK_CREATE_APPLICATION_SHORTCUTS_DIALOG_GTK_H_
« no previous file with comments | « chrome/browser/ui/gtk/content_setting_bubble_gtk.cc ('k') | chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698