summaryrefslogtreecommitdiffstats
path: root/chrome/default_plugin/install_dialog.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/default_plugin/install_dialog.cc')
-rw-r--r--chrome/default_plugin/install_dialog.cc203
1 files changed, 0 insertions, 203 deletions
diff --git a/chrome/default_plugin/install_dialog.cc b/chrome/default_plugin/install_dialog.cc
deleted file mode 100644
index e61001a..0000000
--- a/chrome/default_plugin/install_dialog.cc
+++ /dev/null
@@ -1,203 +0,0 @@
-// 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.
-
-#include "chrome/default_plugin/install_dialog.h"
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/logging.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_impl.h"
-#include "grit/webkit_strings.h"
-#include "webkit/glue/webkit_glue.h"
-
-typedef base::hash_map<const std::wstring, PluginInstallDialog*> DialogMap;
-base::LazyInstance<DialogMap> s_dialogs(base::LINKER_INITIALIZED);
-
-PluginInstallDialog* PluginInstallDialog::AddInstaller(
- PluginInstallerImpl* plugin_impl, const std::wstring& plugin_name) {
- PluginInstallDialog* dialog;
- if (s_dialogs.Get().count(plugin_name)) {
- dialog = s_dialogs.Get()[plugin_name];
- } else {
- dialog = new PluginInstallDialog(plugin_name);
- }
-
- dialog->installers_.push_back(plugin_impl);
- return dialog;
-}
-
-PluginInstallDialog::PluginInstallDialog(const std::wstring& plugin_name)
- : plugin_name_(plugin_name) {
- s_dialogs.Get()[plugin_name] = this;
-}
-
-PluginInstallDialog::~PluginInstallDialog() {
- s_dialogs.Get().erase(plugin_name_);
- if (IsWindow())
- DestroyWindow();
-}
-
-void PluginInstallDialog::RemoveInstaller(PluginInstallerImpl* installer) {
- for (size_t i = 0; i < installers_.size(); ++i) {
- if (installers_[i] == installer) {
- installers_.erase(installers_.begin() + i);
- if (installers_.empty())
- delete this;
- return;
- }
- }
- NOTREACHED();
-}
-
-void PluginInstallDialog::ShowInstallDialog(HWND parent) {
- if (IsWindow())
- return;
-
- Create(parent, NULL);
- ShowWindow(SW_SHOW);
-}
-
-HWND PluginInstallDialog::Create(HWND parent_window, LPARAM init_param) {
- // Most of the code here is based on CDialogImpl<T>::Create.
- DCHECK(m_hWnd == NULL);
-
- // Allocate the thunk structure here, where we can fail
- // gracefully.
- BOOL thunk_inited = m_thunk.Init(NULL, NULL);
- if (thunk_inited == FALSE) {
- SetLastError(ERROR_OUTOFMEMORY);
- return NULL;
- }
-
- _AtlWinModule.AddCreateWndData(&m_thunk.cd, this);
-
-#ifdef _DEBUG
- m_bModal = false;
-#endif // _DEBUG
-
- HINSTANCE instance_handle = _AtlBaseModule.GetResourceInstance();
-
- HRSRC dialog_resource = FindResource(instance_handle,
- MAKEINTRESOURCE(IDD), RT_DIALOG);
- if (!dialog_resource) {
- NOTREACHED();
- return NULL;
- }
-
- HGLOBAL dialog_template = LoadResource(instance_handle,
- dialog_resource);
- if (!dialog_template) {
- NOTREACHED();
- return NULL;
- }
-
- _DialogSplitHelper::DLGTEMPLATEEX* dialog_template_struct =
- reinterpret_cast<_DialogSplitHelper::DLGTEMPLATEEX *>(
- ::LockResource(dialog_template));
- DCHECK(dialog_template_struct != NULL);
-
- unsigned long dialog_template_size =
- SizeofResource(instance_handle, dialog_resource);
-
- HGLOBAL rtl_layout_dialog_template = NULL;
-
- if (PluginInstallerImpl::IsRTLLayout()) {
- rtl_layout_dialog_template = GlobalAlloc(GPTR, dialog_template_size);
- DCHECK(rtl_layout_dialog_template != NULL);
-
- _DialogSplitHelper::DLGTEMPLATEEX* rtl_layout_dialog_template_struct =
- reinterpret_cast<_DialogSplitHelper::DLGTEMPLATEEX*>(
- ::GlobalLock(rtl_layout_dialog_template));
- DCHECK(rtl_layout_dialog_template_struct != NULL);
-
- memcpy(rtl_layout_dialog_template_struct, dialog_template_struct,
- dialog_template_size);
-
- rtl_layout_dialog_template_struct->exStyle |=
- (WS_EX_LAYOUTRTL | WS_EX_RTLREADING);
-
- dialog_template_struct = rtl_layout_dialog_template_struct;
- }
-
- HWND dialog_window =
- CreateDialogIndirectParam(
- instance_handle,
- reinterpret_cast<DLGTEMPLATE*>(dialog_template_struct),
- parent_window, StartDialogProc, init_param);
-
- DCHECK(m_hWnd == dialog_window);
-
- if (rtl_layout_dialog_template) {
- GlobalUnlock(rtl_layout_dialog_template);
- GlobalFree(rtl_layout_dialog_template);
- }
-
- return dialog_window;
-}
-
-
-LRESULT PluginInstallDialog::OnInitDialog(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- std::wstring dialog_title =
- PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE,
- IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE_NO_PLUGIN_NAME,
- plugin_name_);
- AdjustTextDirectionality(&dialog_title);
- SetWindowText(dialog_title.c_str());
-
- std::wstring get_the_plugin_btn_msg =
- webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_GET_THE_PLUGIN_BTN_MSG);
- AdjustTextDirectionality(&get_the_plugin_btn_msg);
- SetDlgItemText(IDB_GET_THE_PLUGIN, get_the_plugin_btn_msg.c_str());
-
- std::wstring cancel_plugin_download_msg =
- webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_CANCEL_PLUGIN_DOWNLOAD_MSG);
- AdjustTextDirectionality(&cancel_plugin_download_msg);
- SetDlgItemText(IDCANCEL, cancel_plugin_download_msg.c_str());
-
- std::wstring plugin_user_action_msg =
- PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- IDS_DEFAULT_PLUGIN_USER_OPTION_MSG,
- IDS_DEFAULT_PLUGIN_USER_OPTION_MSG_NO_PLUGIN_NAME,
- plugin_name_);
- AdjustTextDirectionality(&plugin_user_action_msg);
- SetDlgItemText(IDC_PLUGIN_INSTALL_CONFIRMATION_LABEL,
- plugin_user_action_msg.c_str());
- return 0;
-}
-
-
-LRESULT PluginInstallDialog::OnGetPlugin(WORD notify_code, WORD id,
- HWND wnd_ctl, BOOL &handled) {
- DestroyWindow();
- if (!installers_.empty())
- installers_[0]->DownloadPlugin();
-
- return 0;
-}
-
-LRESULT PluginInstallDialog::OnCancel(WORD notify_code, WORD id, HWND wnd_ctl,
- BOOL &handled) {
- DestroyWindow();
- if (!installers_.empty())
- installers_[0]->DownloadCancelled();
- return 0;
-}
-
-// TODO(idana) bug# 1246452: use the library l10n_util once it is moved from
-// the Chrome module into the Base module. For now, we simply copy/paste the
-// same code.
-void PluginInstallDialog::AdjustTextDirectionality(std::wstring* text) const {
- if (PluginInstallerImpl::IsRTLLayout()) {
- // Inserting an RLE (Right-To-Left Embedding) mark as the first character.
- text->insert(0, L"\x202B");
-
- // Inserting a PDF (Pop Directional Formatting) mark as the last character.
- text->append(L"\x202C");
- }
-}