diff options
Diffstat (limited to 'svtools/source/dialogs/prnsetup.cxx')
-rw-r--r-- | svtools/source/dialogs/prnsetup.cxx | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/svtools/source/dialogs/prnsetup.cxx b/svtools/source/dialogs/prnsetup.cxx deleted file mode 100644 index 9a95f16233..0000000000 --- a/svtools/source/dialogs/prnsetup.cxx +++ /dev/null @@ -1,396 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svtools.hxx" -#include <tools/debug.hxx> -#include <vcl/print.hxx> - -#include <svtools/svtdata.hxx> -#include "prnsetup.hrc" -#include <svtools/prnsetup.hxx> - -// ======================================================================= - -void ImplFillPrnDlgListBox( const Printer* pPrinter, - ListBox* pBox, PushButton* pPropBtn ) -{ - ImplFreePrnDlgListBox( pBox ); - - const std::vector<rtl::OUString>& rPrinters = Printer::GetPrinterQueues(); - unsigned int nCount = rPrinters.size(); - if ( nCount ) - { - for( unsigned int i = 0; i < nCount; i++ ) - pBox->InsertEntry( rPrinters[i] ); - pBox->SelectEntry( pPrinter->GetName() ); - } - - pBox->Enable( nCount != 0 ); - pPropBtn->Show( pPrinter->HasSupport( SUPPORT_SETUPDIALOG ) ); -} - -// ----------------------------------------------------------------------- - -void ImplFreePrnDlgListBox( ListBox* pBox, sal_Bool bClear ) -{ - if ( bClear ) - pBox->Clear(); -} - -// ----------------------------------------------------------------------- - -Printer* ImplPrnDlgListBoxSelect( ListBox* pBox, PushButton* pPropBtn, - Printer* pPrinter, Printer* pTempPrinter ) -{ - if ( pBox->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - { - const QueueInfo* pInfo = Printer::GetQueueInfo( pBox->GetSelectEntry(), true ); - if( pInfo) - { - if ( !pTempPrinter ) - { - if ( (pPrinter->GetName() == pInfo->GetPrinterName()) && - (pPrinter->GetDriverName() == pInfo->GetDriver()) ) - pTempPrinter = new Printer( pPrinter->GetJobSetup() ); - else - pTempPrinter = new Printer( *pInfo ); - } - else - { - if ( (pTempPrinter->GetName() != pInfo->GetPrinterName()) || - (pTempPrinter->GetDriverName() != pInfo->GetDriver()) ) - { - delete pTempPrinter; - pTempPrinter = new Printer( *pInfo ); - } - } - - pPropBtn->Enable( pTempPrinter->HasSupport( SUPPORT_SETUPDIALOG ) ); - } - else - pPropBtn->Disable(); - } - else - pPropBtn->Disable(); - - return pTempPrinter; -} - -// ----------------------------------------------------------------------- - -Printer* ImplPrnDlgUpdatePrinter( Printer* pPrinter, Printer* pTempPrinter ) -{ - XubString aPrnName; - if ( pTempPrinter ) - aPrnName = pTempPrinter->GetName(); - else - aPrnName = pPrinter->GetName(); - - if ( ! Printer::GetQueueInfo( aPrnName, false ) ) - { - if ( pTempPrinter ) - delete pTempPrinter; - pTempPrinter = new Printer; - } - - return pTempPrinter; -} - -// ----------------------------------------------------------------------- - -void ImplPrnDlgUpdateQueueInfo( ListBox* pBox, QueueInfo& rInfo ) -{ - if ( pBox->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ) - { - const QueueInfo* pInfo = Printer::GetQueueInfo( pBox->GetSelectEntry(), true ); - if( pInfo ) - rInfo = *pInfo; - } -} - -// ----------------------------------------------------------------------- - -static void ImplPrnDlgAddString( XubString& rStr, const XubString& rAddStr ) -{ - if ( rStr.Len() ) - rStr.AppendAscii( "; " ); - rStr += rAddStr; -} - -// ----------------------------------------------------------------------- - -static void ImplPrnDlgAddResString( XubString& rStr, sal_uInt16 nResId ) -{ - SvtResId aResId( nResId ); - XubString aAddStr( aResId ); - ImplPrnDlgAddString( rStr, aAddStr ); -} - -// ----------------------------------------------------------------------- - -XubString ImplPrnDlgGetStatusText( const QueueInfo& rInfo ) -{ - XubString aStr; - sal_uLong nStatus = rInfo.GetStatus(); - - // Default-Printer - if ( rInfo.GetPrinterName().Len() && - (rInfo.GetPrinterName() == Printer::GetDefaultPrinterName()) ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_DEFPRINTER ); - - // Status - if ( nStatus & QUEUE_STATUS_READY ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_READY ); - if ( nStatus & QUEUE_STATUS_PAUSED ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PAUSED ); - if ( nStatus & QUEUE_STATUS_PENDING_DELETION ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PENDING ); - if ( nStatus & QUEUE_STATUS_BUSY ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_BUSY ); - if ( nStatus & QUEUE_STATUS_INITIALIZING ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_INITIALIZING ); - if ( nStatus & QUEUE_STATUS_WAITING ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_WAITING ); - if ( nStatus & QUEUE_STATUS_WARMING_UP ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_WARMING_UP ); - if ( nStatus & QUEUE_STATUS_PROCESSING ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PROCESSING ); - if ( nStatus & QUEUE_STATUS_PRINTING ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PRINTING ); - if ( nStatus & QUEUE_STATUS_OFFLINE ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_OFFLINE ); - if ( nStatus & QUEUE_STATUS_ERROR ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_ERROR ); - if ( nStatus & QUEUE_STATUS_SERVER_UNKNOWN ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_SERVER_UNKNOWN ); - if ( nStatus & QUEUE_STATUS_PAPER_JAM ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PAPER_JAM ); - if ( nStatus & QUEUE_STATUS_PAPER_OUT ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PAPER_OUT ); - if ( nStatus & QUEUE_STATUS_MANUAL_FEED ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_MANUAL_FEED ); - if ( nStatus & QUEUE_STATUS_PAPER_PROBLEM ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PAPER_PROBLEM ); - if ( nStatus & QUEUE_STATUS_IO_ACTIVE ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_IO_ACTIVE ); - if ( nStatus & QUEUE_STATUS_OUTPUT_BIN_FULL ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_OUTPUT_BIN_FULL ); - if ( nStatus & QUEUE_STATUS_TONER_LOW ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_TONER_LOW ); - if ( nStatus & QUEUE_STATUS_NO_TONER ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_NO_TONER ); - if ( nStatus & QUEUE_STATUS_PAGE_PUNT ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_PAGE_PUNT ); - if ( nStatus & QUEUE_STATUS_USER_INTERVENTION ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_USER_INTERVENTION ); - if ( nStatus & QUEUE_STATUS_OUT_OF_MEMORY ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_OUT_OF_MEMORY ); - if ( nStatus & QUEUE_STATUS_DOOR_OPEN ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_DOOR_OPEN ); - if ( nStatus & QUEUE_STATUS_POWER_SAVE ) - ImplPrnDlgAddResString( aStr, STR_SVT_PRNDLG_POWER_SAVE ); - - // Anzahl Jobs - sal_uLong nJobs = rInfo.GetJobs(); - if ( nJobs && (nJobs != QUEUE_JOBS_DONTKNOW) ) - { - XubString aJobStr( SvtResId( STR_SVT_PRNDLG_JOBCOUNT ) ); - XubString aJobs( XubString::CreateFromInt32( nJobs ) ); - aJobStr.SearchAndReplaceAscii( "%d", aJobs ); - ImplPrnDlgAddString( aStr, aJobStr ); - } - - return aStr; -} - -// ======================================================================= - -PrinterSetupDialog::PrinterSetupDialog( Window* pWindow ) : - ModalDialog ( pWindow, SvtResId( DLG_SVT_PRNDLG_PRNSETUPDLG ) ), - maFlPrinter ( this, SvtResId( FL_PRINTER ) ), - maFtName ( this, SvtResId( FT_NAME ) ), - maLbName ( this, SvtResId( LB_NAMES ) ), - maBtnProperties ( this, SvtResId( BTN_PROPERTIES ) ), - maBtnOptions ( this, SvtResId( BTN_OPTIONS ) ), - maFtStatus ( this, SvtResId( FT_STATUS ) ), - maFiStatus ( this, SvtResId( FI_STATUS ) ), - maFtType ( this, SvtResId( FT_TYPE ) ), - maFiType ( this, SvtResId( FI_TYPE ) ), - maFtLocation ( this, SvtResId( FT_LOCATION ) ), - maFiLocation ( this, SvtResId( FI_LOCATION ) ), - maFtComment ( this, SvtResId( FT_COMMENT ) ), - maFiComment ( this, SvtResId( FI_COMMENT ) ), - maFlSepButton ( this, SvtResId( FL_SEPBUTTON ) ), - maBtnOK ( this, SvtResId( BTN_OK ) ), - maBtnCancel ( this, SvtResId( BTN_CANCEL ) ), - maBtnHelp ( this, SvtResId( BTN_HELP ) ) -{ - FreeResource(); - - // show options button only if link is set - maBtnOptions.Hide(); - - mpPrinter = NULL; - mpTempPrinter = NULL; - - maStatusTimer.SetTimeout( IMPL_PRINTDLG_STATUS_UPDATE ); - maStatusTimer.SetTimeoutHdl( LINK( this, PrinterSetupDialog, ImplStatusHdl ) ); - maBtnProperties.SetClickHdl( LINK( this, PrinterSetupDialog, ImplPropertiesHdl ) ); - maLbName.SetSelectHdl( LINK( this, PrinterSetupDialog, ImplChangePrinterHdl ) ); -} - -// ----------------------------------------------------------------------- - -PrinterSetupDialog::~PrinterSetupDialog() -{ - ImplFreePrnDlgListBox( &maLbName, sal_False ); - delete mpTempPrinter; -} - -// ----------------------------------------------------------------------- - -void PrinterSetupDialog::SetOptionsHdl( const Link& rLink ) -{ - maBtnOptions.SetClickHdl( rLink ); - maBtnOptions.Show( rLink.IsSet() ); -} - -void PrinterSetupDialog::ImplSetInfo() -{ - const QueueInfo* pInfo = Printer::GetQueueInfo(maLbName.GetSelectEntry(), true); - if ( pInfo ) - { - maFiType.SetText( pInfo->GetDriver() ); - maFiLocation.SetText( pInfo->GetLocation() ); - maFiComment.SetText( pInfo->GetComment() ); - maFiStatus.SetText( ImplPrnDlgGetStatusText( *pInfo ) ); - } - else - { - XubString aTempStr; - maFiType.SetText( aTempStr ); - maFiLocation.SetText( aTempStr ); - maFiComment.SetText( aTempStr ); - maFiStatus.SetText( aTempStr ); - } -} - -// ----------------------------------------------------------------------- - -IMPL_LINK( PrinterSetupDialog, ImplStatusHdl, Timer*, EMPTYARG ) -{ - QueueInfo aInfo; - ImplPrnDlgUpdateQueueInfo( &maLbName, aInfo ); - maFiStatus.SetText( ImplPrnDlgGetStatusText( aInfo ) ); - - return 0; -} - -// ----------------------------------------------------------------------- - -IMPL_LINK( PrinterSetupDialog, ImplPropertiesHdl, void*, EMPTYARG ) -{ - if ( !mpTempPrinter ) - mpTempPrinter = new Printer( mpPrinter->GetJobSetup() ); - mpTempPrinter->Setup( this ); - - return 0; -} - -// ----------------------------------------------------------------------- - -IMPL_LINK( PrinterSetupDialog, ImplChangePrinterHdl, void*, EMPTYARG ) -{ - mpTempPrinter = ImplPrnDlgListBoxSelect( &maLbName, &maBtnProperties, - mpPrinter, mpTempPrinter ); - ImplSetInfo(); - return 0; -} - -// ----------------------------------------------------------------------- - -long PrinterSetupDialog::Notify( NotifyEvent& rNEvt ) -{ - if ( (rNEvt.GetType() == EVENT_GETFOCUS) && IsReallyVisible() ) - ImplStatusHdl( &maStatusTimer ); - - return ModalDialog::Notify( rNEvt ); -} - -// ----------------------------------------------------------------------- - -void PrinterSetupDialog::DataChanged( const DataChangedEvent& rDCEvt ) -{ - if ( rDCEvt.GetType() == DATACHANGED_PRINTER ) - { - mpTempPrinter = ImplPrnDlgUpdatePrinter( mpPrinter, mpTempPrinter ); - Printer* pPrn; - if ( mpTempPrinter ) - pPrn = mpTempPrinter; - else - pPrn = mpPrinter; - ImplFillPrnDlgListBox( pPrn, &maLbName, &maBtnProperties ); - ImplSetInfo(); - } - - ModalDialog::DataChanged( rDCEvt ); -} - -// ----------------------------------------------------------------------- - -short PrinterSetupDialog::Execute() -{ - if ( !mpPrinter || mpPrinter->IsPrinting() || mpPrinter->IsJobActive() ) - { - DBG_ERRORFILE( "PrinterSetupDialog::Execute() - No Printer or printer is printing" ); - return sal_False; - } - - Printer::updatePrinters(); - - ImplFillPrnDlgListBox( mpPrinter, &maLbName, &maBtnProperties ); - ImplSetInfo(); - maStatusTimer.Start(); - - // Dialog starten - short nRet = ModalDialog::Execute(); - - // Wenn Dialog mit OK beendet wurde, dann die Daten updaten - if ( nRet == sal_True ) - { - if ( mpTempPrinter ) - mpPrinter->SetPrinterProps( mpTempPrinter ); - } - - maStatusTimer.Stop(); - - return nRet; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |