| Index: ui/complete_wnd.cc
|
| diff --git a/ui/complete_wnd.cc b/ui/complete_wnd.cc
|
| deleted file mode 100644
|
| index 724e31eadb97fdf527acf37739fbdd455f0a3927..0000000000000000000000000000000000000000
|
| --- a/ui/complete_wnd.cc
|
| +++ /dev/null
|
| @@ -1,224 +0,0 @@
|
| -// Copyright 2007-2009 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -
|
| -
|
| -#include "omaha/ui/complete_wnd.h"
|
| -#include "omaha/base/const_addresses.h"
|
| -#include "omaha/base/debug.h"
|
| -#include "omaha/base/error.h"
|
| -#include "omaha/base/logging.h"
|
| -#include "omaha/base/safe_format.h"
|
| -#include "omaha/base/omaha_version.h"
|
| -#include "omaha/base/vistautil.h"
|
| -#include "omaha/common/goopdate_utils.h"
|
| -#include "omaha/ui/ui_metrics.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -CompleteWnd::CompleteWnd(CMessageLoop* message_loop, HWND parent)
|
| - : OmahaWnd(IDD_PROGRESS, message_loop, parent),
|
| - events_sink_(NULL),
|
| - control_classes_(ICC_STANDARD_CLASSES) {
|
| - CORE_LOG(L3, (_T("[CompleteWnd::CompleteWnd]")));
|
| -}
|
| -
|
| -// dialog_id specifies the dialog resource to use.
|
| -// control_classes specifies the control classes required for dialog_id.
|
| -CompleteWnd::CompleteWnd(int dialog_id,
|
| - DWORD control_classes,
|
| - CMessageLoop* message_loop,
|
| - HWND parent)
|
| - : OmahaWnd(dialog_id, message_loop, parent),
|
| - events_sink_(NULL),
|
| - control_classes_(control_classes | ICC_STANDARD_CLASSES) {
|
| - CORE_LOG(L3, (_T("[CompleteWnd::CompleteWnd]")));
|
| -}
|
| -
|
| -HRESULT CompleteWnd::Initialize() {
|
| - CORE_LOG(L3, (_T("[CompleteWnd::Initialize]")));
|
| -
|
| - HRESULT hr = InitializeCommonControls(control_classes_);
|
| - if (FAILED(hr)) {
|
| - return hr;
|
| - }
|
| -
|
| - return OmahaWnd::Initialize();
|
| -}
|
| -
|
| -void CompleteWnd::SetEventSink(CompleteWndEvents* ev) {
|
| - events_sink_ = ev;
|
| - OmahaWnd::SetEventSink(events_sink_);
|
| -}
|
| -
|
| -LRESULT CompleteWnd::OnInitDialog(UINT message,
|
| - WPARAM w_param,
|
| - LPARAM l_param,
|
| - BOOL& handled) { // NOLINT
|
| - CORE_LOG(L3, (_T("[CompleteWnd::OnInitDialog]")));
|
| - UNREFERENCED_PARAMETER(message);
|
| - UNREFERENCED_PARAMETER(w_param);
|
| - UNREFERENCED_PARAMETER(l_param);
|
| - handled = true;
|
| -
|
| - InitializeDialog();
|
| -
|
| - SetControlAttributes(IDC_COMPLETE_TEXT, kDisabledNonButtonAttributes);
|
| - SetControlAttributes(IDC_ERROR_TEXT, kDisabledNonButtonAttributes);
|
| - SetControlAttributes(IDC_IMAGE, kDisabledNonButtonAttributes);
|
| - SetControlAttributes(IDC_GET_HELP_TEXT, kDisabledNonButtonAttributes);
|
| - SetControlAttributes(IDC_CLOSE, kDefaultActiveButtonAttributes);
|
| -
|
| - return 1; // Let the system set the focus.
|
| -}
|
| -
|
| -LRESULT CompleteWnd::OnClickedButton(WORD notify_code,
|
| - WORD id,
|
| - HWND wnd_ctl,
|
| - BOOL& handled) { // NOLINT
|
| - CORE_LOG(L3, (_T("[CompleteWnd::OnClickedButton]")));
|
| - UNREFERENCED_PARAMETER(id);
|
| - UNREFERENCED_PARAMETER(notify_code);
|
| - UNREFERENCED_PARAMETER(wnd_ctl);
|
| - ASSERT1(id == IDC_CLOSE);
|
| - ASSERT1(is_complete());
|
| - handled = true;
|
| -
|
| - VERIFY1(SUCCEEDED(CloseWindow()));
|
| -
|
| - return 0;
|
| -}
|
| -
|
| -LRESULT CompleteWnd::OnUrlClicked(int, LPNMHDR params, BOOL& handled) { // NOLINT
|
| - CORE_LOG(L3, (_T("[CompleteWnd::OnUrlClicked]")));
|
| - ASSERT1(params);
|
| -
|
| - if (IDC_GET_HELP_TEXT == params->idFrom) {
|
| - ++metric_worker_ui_get_help_click;
|
| - }
|
| -
|
| - NMSTATICEX* notification = reinterpret_cast<NMSTATICEX*>(params);
|
| - ASSERT1(events_sink_);
|
| - if (events_sink_) {
|
| - bool is_launched = events_sink_->DoLaunchBrowser(notification->action);
|
| - // Assert that the launch succeeded because this code should not be called
|
| - // if the launch mechanism (i.e. IProcessLauncher when running elevated) is
|
| - // not in place. This could also fail if the default browser has been
|
| - // uninstalled, but that is unlikely.
|
| - ASSERT1(is_launched);
|
| - // TODO(omaha): Consider doing something if the browser launch failed.
|
| - // Could display a message in English saying it failed for some reason,
|
| - // please CTRL-C this dialog, get the URL and paste it into a browser.
|
| - }
|
| -
|
| - handled = true;
|
| - return 1;
|
| -}
|
| -
|
| -bool CompleteWnd::MaybeCloseWindow() {
|
| - VERIFY1(SUCCEEDED(CloseWindow()));
|
| - return true;
|
| -}
|
| -
|
| -void CompleteWnd::DisplayCompletionDialog(bool is_success,
|
| - const CString& text,
|
| - const CString& help_url) {
|
| - CORE_LOG(L3, (_T("[CompleteWnd::DisplayCompletionDialog]")
|
| - _T("[success=%d][text=%s]"), is_success, text));
|
| - ASSERT1(!text.IsEmpty());
|
| -
|
| - // FormatMessage() converts all LFs to CRLFs, which display as boxes in UI.
|
| - // We have also observed some BITS error messages with boxes that may have
|
| - // been caused by CRLFs.
|
| - // To avoid boxes, convert all CRLFs to LFs, which result in line breaks.
|
| - CString display_text = text;
|
| - display_text.Replace(_T("\r\n"), _T("\n"));
|
| -
|
| - if (!OmahaWnd::OnComplete()) {
|
| - return;
|
| - }
|
| -
|
| - // It is possible for the OnComplete callback to be called multiple times.
|
| - // Subclassing the control multiple times results in a crash, therefore
|
| - // unsubclass the control if the control has been created and subclassed
|
| - // before.
|
| - if (complete_text_ != NULL) {
|
| - // TODO(omaha3): I'm not sure this can happen in the polling model.
|
| - ASSERT1(false);
|
| -
|
| - complete_text_->UnsubclassWindow(true);
|
| - complete_text_.reset(NULL);
|
| - }
|
| -
|
| - CString s;
|
| - if (is_success) {
|
| - VERIFY1(s.LoadString(IDS_CLOSE));
|
| - VERIFY1(::SetWindowText(GetDlgItem(IDC_CLOSE), s));
|
| - complete_text_.reset(new StaticEx);
|
| - complete_text_->SubclassWindow(GetDlgItem(IDC_COMPLETE_TEXT));
|
| - VERIFY1(::SetWindowText(GetDlgItem(IDC_COMPLETE_TEXT), text));
|
| - } else {
|
| - VERIFY1(s.LoadString(IDS_CLOSE));
|
| - VERIFY1(::SetWindowText(GetDlgItem(IDC_CLOSE), s));
|
| - complete_text_.reset(new StaticEx);
|
| - complete_text_->SubclassWindow(GetDlgItem(IDC_ERROR_TEXT));
|
| - VERIFY1(::SetWindowText(GetDlgItem(IDC_ERROR_TEXT), display_text));
|
| - VERIFY1(SUCCEEDED(ShowGetHelpLink(help_url)));
|
| - }
|
| -
|
| - VERIFY1(SUCCEEDED(SetControlState(is_success)));
|
| -
|
| - return;
|
| -}
|
| -
|
| -
|
| -HRESULT CompleteWnd::SetControlState(bool is_success) {
|
| - SetControlAttributes(is_success ? IDC_COMPLETE_TEXT : IDC_ERROR_TEXT,
|
| - kVisibleTextAttributes);
|
| - if (is_success) {
|
| - SetControlAttributes(IDC_IMAGE, kVisibleImageAttributes);
|
| - } else {
|
| - SetControlAttributes(IDC_GET_HELP_TEXT, kVisibleTextAttributes);
|
| - }
|
| - SetControlAttributes(IDC_CLOSE, kDefaultActiveButtonAttributes);
|
| -
|
| - return S_OK;
|
| -}
|
| -
|
| -// If help_url is empty, no link will be displayed.
|
| -HRESULT CompleteWnd::ShowGetHelpLink(const CString& help_url) {
|
| - // If there is no event sink, clicking the URL will fail.
|
| - ASSERT1(events_sink_);
|
| -
|
| - if (help_url.IsEmpty()) {
|
| - return S_OK;
|
| - }
|
| - ASSERT1(0 == help_url.Find(_T("http://")));
|
| -
|
| - const TCHAR* const kLinkFormat = _T("<b><a=%s>%s</a></b>");
|
| - CString display_text;
|
| - VERIFY1(display_text.LoadString(IDS_GET_HELP_TEXT));
|
| - CString link_string;
|
| - SafeCStringFormat(&link_string, kLinkFormat, help_url, display_text);
|
| -
|
| - get_help_text_.reset(new StaticEx);
|
| - get_help_text_->SubclassWindow(GetDlgItem(IDC_GET_HELP_TEXT));
|
| - VERIFY1(::SetWindowText(GetDlgItem(IDC_GET_HELP_TEXT), link_string));
|
| -
|
| - ++metric_worker_ui_get_help_displayed;
|
| - return S_OK;
|
| -}
|
| -
|
| -} // namespace omaha
|
| -
|
|
|