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

Unified Diff: ui/splash_screen.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « ui/splash_screen.h ('k') | ui/splash_screen_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/splash_screen.cc
diff --git a/ui/splash_screen.cc b/ui/splash_screen.cc
deleted file mode 100644
index e1068579749d3c5e1d16bdf939ca2e944767cc62..0000000000000000000000000000000000000000
--- a/ui/splash_screen.cc
+++ /dev/null
@@ -1,285 +0,0 @@
-// Copyright 2010 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/splash_screen.h"
-#include "base/basictypes.h"
-#include "omaha/base/app_util.h"
-#include "omaha/base/constants.h"
-#include "omaha/base/const_object_names.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/error.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/smart_handle.h"
-#include "omaha/base/utils.h"
-#include "omaha/base/window_utils.h"
-#include "omaha/client/client_utils.h"
-#include "omaha/client/resource.h"
-#include "omaha/common/lang.h"
-#include "omaha/google_update/resource.h" // For the IDI_APP
-#include "omaha/ui/scoped_gdi.h"
-
-namespace {
-
-const int kClosingTimerID = 1;
-// Frequency that the window changes alpah blending value during fading stage.
-const int kTimerInterval = 100;
-
-// Alpha blending values for the fading effect.
-const int kDefaultAlphaScale = 100;
-const int kAlphaScales[] = { 0, 30, 47, 62, 75, 85, 93, kDefaultAlphaScale };
-
-uint8 AlphaScaleToAlphaValue(int alpha_scale) {
- ASSERT1(alpha_scale >= 0 && alpha_scale <= 100);
- return static_cast<uint8>(alpha_scale * 255 / 100);
-}
-
-} // namespace
-
-namespace omaha {
-
-SplashScreen::SplashScreen(const CString& bundle_name)
- : IDD(IDD_PROGRESS),
- alpha_index_(0),
- timer_created_(false) {
- CORE_LOG(L3, (_T("[SplashScreen::SplashScreen]")));
- caption_ = client_utils::GetInstallerDisplayName(bundle_name);
- text_.FormatMessage(IDS_SPLASH_SCREEN_MESSAGE, caption_);
-
- SwitchToState(STATE_CREATED);
-}
-
-SplashScreen::~SplashScreen() {
- CORE_LOG(L3, (_T("[SplashScreen::~SplashScreen]")));
-
- const int kWaitTimeoutInMillisecond = 60000;
-
- // Before the object goes out of scope, waits the thread to exit to avoid
- // it accessing the object after that.
- if (thread_.Running() && !thread_.WaitTillExit(kWaitTimeoutInMillisecond)) {
- CORE_LOG(LW, (_T("[SplashScreen: thread failed to exit gracefully]")));
- return;
- }
-
- ASSERT1(state_ == STATE_CREATED || state_ == STATE_CLOSED);
-}
-
-void SplashScreen::Show() {
- AutoSync get_lock(lock_);
-
- if (state_ == STATE_CREATED) {
- thread_.Start(this);
- } else {
- ASSERT1(false);
- }
-}
-
-void SplashScreen::Dismiss() {
- AutoSync get_lock(lock_);
-
- switch (state_) {
- case STATE_CREATED:
- SwitchToState(STATE_CLOSED);
- break;
-
- case STATE_SHOW_NORMAL:
- SwitchToState(STATE_FADING);
- break;
-
- case STATE_CLOSED:
- case STATE_FADING:
- case STATE_INITIALIZED:
- break;
-
- default:
- ASSERT1(false);
- break;
- }
-}
-
-HRESULT SplashScreen::Initialize() {
- CORE_LOG(L3, (_T("[SplashScreen::Initialize]")));
-
- ASSERT1(!IsWindow());
- ASSERT1(state_ == STATE_CREATED);
-
- if (!Create(NULL)) {
- return GOOPDATE_E_UI_INTERNAL_ERROR;
- }
-
- VERIFY1(SetWindowText(caption_));
-
- EnableSystemButtons(false);
- GetDlgItem(IDC_IMAGE).ShowWindow(SW_HIDE);
-
- CWindow text_wnd = GetDlgItem(IDC_INSTALLER_STATE_TEXT);
- text_wnd.ShowWindow(SW_SHOWNORMAL);
- text_wnd.SetWindowText(text_);
-
- InitProgressBar();
-
- ::SetLayeredWindowAttributes(
- m_hWnd,
- 0,
- AlphaScaleToAlphaValue(kDefaultAlphaScale),
- LWA_ALPHA);
-
- VERIFY1(CenterWindow(NULL));
- HRESULT hr = WindowUtils::SetWindowIcon(m_hWnd, IDI_APP, address(hicon_));
- if (FAILED(hr)) {
- CORE_LOG(LW, (_T("[SetWindowIcon failed][0x%08x]"), hr));
- }
- SwitchToState(STATE_INITIALIZED);
- return S_OK;
-}
-
-void SplashScreen::EnableSystemButtons(bool enable) {
- const LONG kSysStyleMask = WS_MINIMIZEBOX | WS_SYSMENU | WS_MAXIMIZEBOX;
-
- if (enable) {
- SetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE) | kSysStyleMask);
- } else {
- SetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE) & ~kSysStyleMask);
- }
-}
-
-void SplashScreen::InitProgressBar() {
- const LONG kStyle = WS_CHILD | WS_VISIBLE | PBS_MARQUEE | PBS_SMOOTH;
-
- CWindow progress_bar = GetDlgItem(IDC_PROGRESS);
- LONG style = progress_bar.GetWindowLong(GWL_STYLE) | kStyle;
- progress_bar.SetWindowLong(GWL_STYLE, style);
- progress_bar.SendMessage(PBM_SETMARQUEE, TRUE, 60);
-}
-
-LRESULT SplashScreen::OnTimer(UINT message,
- WPARAM wparam,
- LPARAM lparam,
- BOOL& handled) {
- UNREFERENCED_PARAMETER(message);
- UNREFERENCED_PARAMETER(wparam);
- UNREFERENCED_PARAMETER(lparam);
-
- ASSERT1(state_ == STATE_FADING);
- ASSERT1(alpha_index_ > 0);
- if (--alpha_index_) {
- ::SetLayeredWindowAttributes(
- m_hWnd,
- 0,
- AlphaScaleToAlphaValue(kAlphaScales[alpha_index_]),
- LWA_ALPHA);
- } else {
- Close();
- }
-
- handled = TRUE;
- return 0;
-}
-
-LRESULT SplashScreen::OnClose(UINT message,
- WPARAM wparam,
- LPARAM lparam,
- BOOL& handled) {
- UNREFERENCED_PARAMETER(message);
- UNREFERENCED_PARAMETER(wparam);
- UNREFERENCED_PARAMETER(lparam);
-
- DestroyWindow();
- handled = TRUE;
- return 0;
-}
-
-LRESULT SplashScreen::OnDestroy(UINT message,
- WPARAM wparam,
- LPARAM lparam,
- BOOL& handled) {
- UNREFERENCED_PARAMETER(message);
- UNREFERENCED_PARAMETER(wparam);
- UNREFERENCED_PARAMETER(lparam);
-
- if (timer_created_) {
- ASSERT1(IsWindow());
- KillTimer(kClosingTimerID);
- }
-
- ::PostQuitMessage(0);
-
- handled = TRUE;
- return 0;
-}
-
-void SplashScreen::SwitchToState(WindowState new_state) {
- AutoSync get_lock(lock_);
-
- state_ = new_state;
- switch (new_state) {
- case STATE_CREATED:
- case STATE_INITIALIZED:
- break;
- case STATE_SHOW_NORMAL:
- alpha_index_ = arraysize(kAlphaScales) - 1;
- break;
- case STATE_FADING:
- ASSERT1(IsWindow());
- timer_created_ = (SetTimer(kClosingTimerID, kTimerInterval, NULL) != 0);
- if (!timer_created_) {
- CORE_LOG(LW,
- (_T("[SetTimer failed, closing window directly.][0x%08x]"),
- HRESULTFromLastError()));
- Close();
- }
- break;
- case STATE_CLOSED:
- break;
- default:
- ASSERT1(false);
- break;
- }
-}
-
-void SplashScreen::Run() {
- {
- AutoSync get_lock(lock_);
-
- if (state_ != STATE_CREATED) {
- return;
- }
-
- // Initialize() has to be called in this thread so that it is the owner of
- // the window and window messages can be correctly routed by the message
- // loop.
- if (FAILED(Initialize())) {
- return;
- }
-
- ASSERT1(IsWindow());
- ShowWindow(SW_SHOWNORMAL);
- SwitchToState(STATE_SHOW_NORMAL);
- }
-
- CMessageLoop message_loop;
- message_loop.Run();
-
- SwitchToState(STATE_CLOSED);
-}
-
-void SplashScreen::Close() {
- AutoSync get_lock(lock_);
-
- if (state_ != STATE_CLOSED && IsWindow()) {
- PostMessage(WM_CLOSE, 0, 0);
- }
-}
-
-} // namespace omaha
« no previous file with comments | « ui/splash_screen.h ('k') | ui/splash_screen_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698