/* -*- Mode: C; tab-width: 4 -*- * * Copyright (c) 1997-2004 Apple Computer, Inc. All rights reserved. * * 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 "stdafx.h" #include "PrinterSetupWizardApp.h" #include "PrinterSetupWizardSheet.h" #include "FourthPage.h" #if !defined( PBS_MARQUEE ) # define PBS_MARQUEE 0x08 #endif #if !defined( PBM_SETMARQUEE ) # define PBM_SETMARQUEE WM_USER + 10 #endif // CFourthPage dialog IMPLEMENT_DYNAMIC(CFourthPage, CPropertyPage) CFourthPage::CFourthPage() : CPropertyPage(CFourthPage::IDD), m_initialized(false) { CString fontName; m_psp.dwFlags &= ~(PSP_HASHELP); m_psp.dwFlags |= PSP_DEFAULT|PSP_HIDEHEADER; fontName.LoadString(IDS_LARGE_FONT); // create the large font m_largeFont.CreateFont(-16, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, fontName); } CFourthPage::~CFourthPage() { } void CFourthPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); DDX_Control(pDX, IDC_GOODBYE, m_goodbye); DDX_Control(pDX, IDC_PRINTER_NAME, m_printerNameCtrl); DDX_Control(pDX, IDC_PRINTER_MANUFACTURER, m_printerManufacturerCtrl); DDX_Control(pDX, IDC_PRINTER_MODEL, m_printerModelCtrl); DDX_Control(pDX, IDC_PRINTER_PROTOCOL, m_printerProtocolCtrl); DDX_Control(pDX, IDC_PRINTER_DEFAULT, m_printerDefault); } BEGIN_MESSAGE_MAP(CFourthPage, CPropertyPage) END_MESSAGE_MAP() // CFourthPage message handlers OSStatus CFourthPage::OnInitPage() { CWnd * window; OSStatus err = kNoErr; window = GetDlgItem( IDC_INSTALLING ); require_action( window, exit, err = kUnknownErr ); window->ShowWindow( SW_HIDE ); window = GetDlgItem( IDC_PROGRESS ); require_action( window, exit, err = kUnknownErr ); SetWindowLong( *window, GWL_STYLE, GetWindowLong( *window, GWL_STYLE ) | PBS_MARQUEE ); SetWindowLongPtr( *window, GWL_STYLE, GetWindowLongPtr( *window, GWL_STYLE ) | PBS_MARQUEE ); window->SendMessage( ( UINT ) PBM_SETMARQUEE, ( WPARAM ) FALSE,( LPARAM ) 35 ); window->ShowWindow( SW_HIDE ); exit: return err; } BOOL CFourthPage::OnSetActive() { CPrinterSetupWizardSheet * psheet; CString goodbyeText; Printer * printer; CString defaultText; psheet = reinterpret_cast(GetParent()); require_quiet( psheet, exit ); printer = psheet->GetSelectedPrinter(); require_quiet( psheet, exit ); psheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_FINISH); if (m_initialized == false) { m_initialized = true; OnInitPage(); } m_goodbye.SetFont(&m_largeFont); goodbyeText.LoadString(IDS_GOODBYE); m_goodbye.SetWindowText(goodbyeText); m_printerNameCtrl.SetWindowText( printer->actualName ); m_printerManufacturerCtrl.SetWindowText ( printer->manufacturer ); m_printerModelCtrl.SetWindowText ( printer->displayModelName ); Service * service = printer->services.front(); require_quiet( service, exit ); m_printerProtocolCtrl.SetWindowText ( service->protocol ); if (printer->deflt) { defaultText.LoadString(IDS_YES); } else { defaultText.LoadString(IDS_NO); } m_printerDefault.SetWindowText ( defaultText ); exit: return CPropertyPage::OnSetActive(); } BOOL CFourthPage::OnKillActive() { CPrinterSetupWizardSheet * psheet; psheet = reinterpret_cast(GetParent()); require_quiet( psheet, exit ); psheet->SetLastPage(this); exit: return CPropertyPage::OnKillActive(); } BOOL CFourthPage::StartActivityIndicator() { CWnd * window; BOOL ok = TRUE; window = GetDlgItem( IDC_COMPLETE1 ); require_action( window, exit, ok = FALSE ); window->ShowWindow( SW_HIDE ); window = GetDlgItem( IDC_COMPLETE2 ); require_action( window, exit, ok = FALSE ); window->ShowWindow( SW_HIDE ); window = GetDlgItem( IDC_INSTALLING ); require_action( window, exit, ok = FALSE ); window->ShowWindow( SW_SHOW ); window = GetDlgItem( IDC_PROGRESS ); require_action( window, exit, ok = FALSE ); window->SendMessage( ( UINT ) PBM_SETMARQUEE, ( WPARAM ) TRUE,( LPARAM ) 50 ); window->ShowWindow( SW_SHOW ); exit: return ok; } BOOL CFourthPage::StopActivityIndicator() { CWnd * window; BOOL ok = TRUE; window = GetDlgItem( IDC_INSTALLING ); require_action( window, exit, ok = FALSE ); window->ShowWindow( SW_HIDE ); window = GetDlgItem( IDC_PROGRESS ); require_action( window, exit, ok = FALSE ); window->SendMessage( ( UINT ) PBM_SETMARQUEE, ( WPARAM ) FALSE,( LPARAM ) 35 ); window->ShowWindow( SW_HIDE ); exit: return ok; }