summaryrefslogtreecommitdiffstats
path: root/chrome/default_plugin/install_dialog.h
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-07 05:36:38 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-07 05:36:38 +0000
commit0d64bb701b65d583ad7439afe3188df055fd0e04 (patch)
treee1840ec5212e743b1821c3c4d19f0e416f17313c /chrome/default_plugin/install_dialog.h
parent4f1629ad859f74144d79974eb81867c6324e0894 (diff)
downloadchromium_src-0d64bb701b65d583ad7439afe3188df055fd0e04.zip
chromium_src-0d64bb701b65d583ad7439afe3188df055fd0e04.tar.gz
chromium_src-0d64bb701b65d583ad7439afe3188df055fd0e04.tar.bz2
Move default_plugin from webkit/ to chrome/
Second try, first try at http://codereview.chromium.org/2803035 . Also contains http://codereview.chromium.org/2838044 , changes to DEPS files (mostly cleanups), and a change to webkit/glue/plugins/webplugin_delegate_impl_win.cc . BUG= 48419 TEST=everything still builds Review URL: http://codereview.chromium.org/2813047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51692 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/default_plugin/install_dialog.h')
-rw-r--r--chrome/default_plugin/install_dialog.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/chrome/default_plugin/install_dialog.h b/chrome/default_plugin/install_dialog.h
new file mode 100644
index 0000000..0aaf06e
--- /dev/null
+++ b/chrome/default_plugin/install_dialog.h
@@ -0,0 +1,60 @@
+// Copyright (c) 2006-2008 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_DEFAULT_PLUGIN_INSTALL_DIALOG_H_
+#define CHROME_DEFAULT_PLUGIN_INSTALL_DIALOG_H_
+
+#include <atlbase.h>
+#include <atlwin.h>
+#include <string>
+#include <vector>
+
+#include "chrome/default_plugin/default_plugin_resources.h"
+
+class PluginInstallerImpl;
+
+// Displays the plugin installation dialog containing information
+// about the mime type of the plugin being downloaded, the URL
+// where it would be downloaded from, etc.
+class PluginInstallDialog : public CDialogImpl<PluginInstallDialog> {
+ public:
+ enum {IDD = IDD_DEFAULT_PLUGIN_INSTALL_DIALOG};
+
+ BEGIN_MSG_MAP(PluginInstallDialog)
+ MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
+ COMMAND_ID_HANDLER(IDB_GET_THE_PLUGIN, OnGetPlugin)
+ COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
+ END_MSG_MAP()
+
+ // Creates or returns the existing object for the given plugin name.
+ // Call RemoveInstaller when done.
+ static PluginInstallDialog* AddInstaller(PluginInstallerImpl* plugin_impl,
+ const std::wstring& plugin_name);
+
+ // Lets this object know that the given installer object is going away.
+ void RemoveInstaller(PluginInstallerImpl* installer);
+
+ void ShowInstallDialog(HWND parent);
+
+ private:
+ explicit PluginInstallDialog(const std::wstring& plugin_name);
+ ~PluginInstallDialog();
+
+ // Implemented to ensure that we handle RTL layouts correctly.
+ HWND Create(HWND parent_window, LPARAM init_param);
+
+ LRESULT OnInitDialog(UINT message, WPARAM wparam, LPARAM lparam,
+ BOOL& handled);
+ LRESULT OnGetPlugin(WORD notify_code, WORD id, HWND wnd_ctl, BOOL &handled);
+ LRESULT OnCancel(WORD notify_code, WORD id, HWND wnd_ctl, BOOL &handled);
+
+ // Wraps the string with Unicode directionality characters in order to make
+ // sure BiDi text is rendered correctly when the UI layout is right-to-left.
+ void AdjustTextDirectionality(std::wstring* text) const;
+
+ std::vector<PluginInstallerImpl*> installers_;
+ std::wstring plugin_name_;
+};
+
+#endif // CHROME_DEFAULT_PLUGIN_INSTALL_DIALOG_H_