void CSecondPage::InitBrowseList() { CPrinterSetupWizardSheet * psheet; CString text; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); // // load the no rendezvous printers message until something shows up in the browse list // text.LoadString(IDS_NO_RENDEZVOUS_PRINTERS); LoadTextAndDisableWindow( text ); // // disable the next button until there's a printer to select // psheet->SetWizardButtons(PSWIZB_BACK); // // disable the printer information box // SetPrinterInformationState( FALSE ); exit: return; }
void CThirdPage::OnLvnItemchangedPrinterModel(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); CPrinterSetupWizardSheet * psheet; Printer * printer; Service * service; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); printer = psheet->GetSelectedPrinter(); require_quiet( printer, exit ); service = printer->services.front(); require_quiet( service, exit ); check ( m_manufacturerSelected ); POSITION p = m_modelListCtrl.GetFirstSelectedItemPosition(); int nSelected = m_modelListCtrl.GetNextSelectedItem(p); if (nSelected != -1) { m_modelSelected = (Model*) m_modelListCtrl.GetItemData(nSelected); CopyPrinterSettings( printer, service, m_manufacturerSelected, m_modelSelected ); psheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT); } else { psheet->SetWizardButtons(PSWIZB_BACK); } exit: *pResult = 0; }
OSStatus CSecondPage::StartResolve( Service * service ) { CPrinterSetupWizardSheet * psheet; OSStatus err = kNoErr; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); check( service->serviceRef == NULL ); // // clean out any queues that were collected during a previous // resolve // service->EmptyQueues(); // // now start the new resolve // err = DNSServiceResolve( &service->serviceRef, 0, 0, service->printer->name.c_str(), service->type.c_str(), service->domain.c_str(), (DNSServiceResolveReply) OnResolve, service ); require_noerr( err, exit ); err = StartOperation( service->serviceRef ); require_noerr( err, exit ); // // If we're not currently resolving, then disable the next button // and set the cursor to hourglass // if ( !service->printer->resolving ) { psheet->SetWizardButtons( PSWIZB_BACK ); psheet->m_active = psheet->m_wait; SetCursor(psheet->m_active); } service->printer->resolving++; exit: return err; }
void CSecondPage::OnResolveService( Service * service ) { CPrinterSetupWizardSheet * psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); check( service ); if ( !--service->printer->resolving ) { // // sort the services now. we want the service that // has the highest priority queue to be first in // the list. // service->printer->services.sort( OrderServiceFunc ); // // and set it to selected // m_selected = service->printer; m_selectedName = service->printer->name; // // and update the printer information box // SetPrinterInformationState( TRUE ); m_descriptionField.SetWindowText( service->description ); m_locationField.SetWindowText( service->location ); psheet->SetWizardButtons( PSWIZB_BACK|PSWIZB_NEXT ); // // reset the cursor // psheet->m_active = psheet->m_arrow; SetCursor(psheet->m_active); } exit: return; }
BOOL CFirstPage::OnSetActive() { CPrinterSetupWizardSheet * psheet; CString greetingText; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); psheet->SetWizardButtons(PSWIZB_NEXT); m_greeting.SetFont(&m_largeFont); greetingText.LoadString(IDS_GREETING); m_greeting.SetWindowText(greetingText); exit: return CPropertyPage::OnSetActive(); }
void CSecondPage::InitBrowseList() { CPrinterSetupWizardSheet * psheet; CString text; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); // Initialize so that nothing is selected when we add to the list psheet->SetSelectedPrinter( NULL ); m_gotChoice = false; m_browseList.Select( NULL, TVGN_FIRSTVISIBLE ); // // load the no printers message until something shows up in the browse list // text.LoadString(IDS_NO_PRINTERS); LoadTextAndDisableWindow( text ); // // disable the next button until there's a printer to select // psheet->SetWizardButtons(PSWIZB_BACK); // // disable the printer information box // SetPrinterInformationState( FALSE ); m_descriptionField.SetWindowText( L"" ); m_locationField.SetWindowText( L"" ); exit: return; }
BOOL CThirdPage::OnSetActive() { CPrinterSetupWizardSheet * psheet; Printer * printer; Service * service; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_quiet( psheet, exit ); psheet->SetWizardButtons( PSWIZB_BACK ); printer = psheet->GetSelectedPrinter(); require_quiet( printer, exit ); service = printer->services.front(); require_quiet( service, exit ); // // call OnInitPage once // if (!m_initialized) { OnInitPage(); m_initialized = true; } // // <rdar://problem/4580061> mDNS: Printers added using Bonjour should be set as the default printer. // if ( DefaultPrinterExists() ) { m_defaultPrinterCtrl.SetCheck( BST_UNCHECKED ); printer->deflt = false; } else { m_defaultPrinterCtrl.SetCheck( BST_CHECKED ); printer->deflt = true; } // // update the UI with the printer name // m_printerName.SetWindowText(printer->displayName); // // populate the list controls with the manufacturers and models // from ntprint.inf // PopulateUI( m_manufacturers ); // // and try and match the printer // if ( psheet->GetLastPage() == psheet->GetPage(0) ) { MatchPrinter( m_manufacturers, printer, service, true ); if ( ( m_manufacturerSelected != NULL ) && ( m_modelSelected != NULL ) ) { GetParent()->PostMessage(PSM_SETCURSEL, 2 ); } } else { SelectMatch(printer, service, m_manufacturerSelected, m_modelSelected); } exit: return CPropertyPage::OnSetActive(); }