blob: 6c89bb4ecc8babc6f7ccdeae44d1cbc9cafa2c6c [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <printdata.hxx>
#include <globals.hrc>
#include <doc.hxx>
#include <unotxdoc.hxx>
#include <wdocsh.hxx>
#include <viewsh.hxx>
#include <docfld.hxx>
#include <svl/languageoptions.hxx>
#include <toolkit/awt/vclxdevice.hxx>
#include <tools/string.hxx>
#include <tools/debug.hxx>
#include <tools/resary.hxx>
#include <unotools/moduleoptions.hxx>
#include <vcl/outdev.hxx>
extern bool lcl_GetPostIts( IDocumentFieldsAccess* pIDFA, _SetGetExpFlds * pSrtLst );
using namespace ::com::sun::star;
using ::rtl::OUString;
//////////////////////////////////////////////////////////////////////
SwRenderData::SwRenderData()
{
m_pPostItFields = 0;
m_pPostItDoc = 0;
m_pPostItShell = 0;
m_pViewOptionAdjust = 0;
m_pPrtOptions = 0;
}
SwRenderData::~SwRenderData()
{
delete m_pViewOptionAdjust; m_pViewOptionAdjust = 0;
delete m_pPrtOptions; m_pPrtOptions = 0;
DBG_ASSERT( !m_pPostItShell, "m_pPostItShell should already have been deleted" );
DBG_ASSERT( !m_pPostItDoc, "m_pPostItDoc should already have been deleted" );
DBG_ASSERT( !m_pPostItFields, " should already have been deleted" );
}
void SwRenderData::CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev )
{
DBG_ASSERT( !m_pPostItFields && !m_pPostItDoc && !m_pPostItShell, "some post-it data already exists" );
m_pPostItFields = new _SetGetExpFlds;
lcl_GetPostIts( pDoc, m_pPostItFields );
m_pPostItDoc = new SwDoc;
m_pPostItDoc->acquire();
//!! Disable spell and grammar checking in the temporary document.
//!! Otherwise the grammar checker might process it and crash if we later on
//!! simply delete this document while he is still at it.
SwViewOption aViewOpt( *pViewOpt );
aViewOpt.SetOnlineSpell( sal_False );
m_pPostItShell = new ViewShell( *m_pPostItDoc, 0, &aViewOpt, pOutDev );
}
void SwRenderData::DeletePostItData()
{
if (HasPostItData())
{
m_pPostItDoc->setPrinter( 0, false, false ); //damit am echten DOC der Drucker bleibt
delete m_pPostItShell;
m_pPostItShell = 0;
delete m_pPostItFields;
m_pPostItFields = 0;
if ( !m_pPostItDoc->release() )
{
delete m_pPostItDoc;
}
m_pPostItDoc = 0;
}
}
bool SwRenderData::NeedNewViewOptionAdjust( const ViewShell& rCompare ) const
{
return m_pViewOptionAdjust ? ! m_pViewOptionAdjust->checkShell( rCompare ) : true;
}
void SwRenderData::ViewOptionAdjustStart( ViewShell &rSh, const SwViewOption &rViewOptions )
{
if (m_pViewOptionAdjust)
{
DBG_ASSERT( 0, "error: there should be no ViewOptionAdjust active when calling this function" );
}
m_pViewOptionAdjust = new SwViewOptionAdjust_Impl( rSh, rViewOptions );
}
void SwRenderData::ViewOptionAdjust(SwPrintData const*const pPrtOptions)
{
m_pViewOptionAdjust->AdjustViewOptions( pPrtOptions );
}
void SwRenderData::ViewOptionAdjustStop()
{
if (m_pViewOptionAdjust)
{
delete m_pViewOptionAdjust;
m_pViewOptionAdjust = 0;
}
}
void SwRenderData::MakeSwPrtOptions(
SwPrintData & rOptions,
const SwDocShell *pDocShell,
const SwPrintUIOptions *pOpt,
const SwRenderData *pData,
bool bIsPDFExport )
{
if (!pDocShell || !pOpt || !pData)
return;
// get default print options
const TypeId aSwWebDocShellTypeId = TYPE(SwWebDocShell);
sal_Bool bWeb = pDocShell->IsA( aSwWebDocShellTypeId );
::sw::InitPrintOptionsFromApplication(rOptions, bWeb);
// get print options to use from provided properties
rOptions.bPrintGraphic = pOpt->IsPrintGraphics();
rOptions.bPrintTable = pOpt->IsPrintTables();
rOptions.bPrintDraw = pOpt->IsPrintDrawings();
rOptions.bPrintControl = pOpt->IsPrintFormControls();
rOptions.bPrintLeftPages = pOpt->IsPrintLeftPages();
rOptions.bPrintRightPages = pOpt->IsPrintRightPages();
rOptions.bPrintPageBackground = pOpt->IsPrintPageBackground();
rOptions.bPrintEmptyPages = pOpt->IsPrintEmptyPages( bIsPDFExport );
// bUpdateFieldsInPrinting <-- not set here; mail merge only
rOptions.bPaperFromSetup = pOpt->IsPaperFromSetup();
rOptions.bPrintReverse = pOpt->IsPrintReverse();
rOptions.bPrintProspect = pOpt->IsPrintProspect();
rOptions.bPrintProspectRTL = pOpt->IsPrintProspectRTL();
// bPrintSingleJobs <-- not set here; mail merge and or configuration
// bModified <-- not set here; mail merge only
rOptions.bPrintBlackFont = pOpt->IsPrintWithBlackTextColor();
rOptions.bPrintHiddenText = pOpt->IsPrintHiddenText();
rOptions.bPrintTextPlaceholder = pOpt->IsPrintTextPlaceholders();
rOptions.nPrintPostIts = pOpt->GetPrintPostItsType();
//! needs to be set after MakeOptions since the assignment operation in that
//! function will destroy the pointers
rOptions.SetPrintUIOptions( pOpt );
rOptions.SetRenderData( pData );
}
//////////////////////////////////////////////////////////////////////
SwPrintUIOptions::SwPrintUIOptions(
bool bWeb,
bool bSwSrcView,
bool bHasSelection,
bool bHasPostIts,
const SwPrintData &rDefaultPrintData ) :
m_pLast( NULL ),
m_rDefaultPrintData( rDefaultPrintData )
{
ResStringArray aLocalizedStrings( SW_RES( STR_PRINTOPTUI ) );
DBG_ASSERT( aLocalizedStrings.Count() >= 30, "resource incomplete" );
if( aLocalizedStrings.Count() < 30 ) // bad resource ?
return;
// printing HTML sources does not have any valid UI options.
// Its just the source code that gets printed ...
if (bSwSrcView)
{
m_aUIProperties.realloc( 0 );
return;
}
// check if CTL is enabled
SvtLanguageOptions aLangOpt;
bool bCTL = aLangOpt.IsCTLFontEnabled();
// create sequence of print UI options
// (5 options are not available for Writer-Web)
const int nCTLOpts = bCTL ? 1 : 0;
const int nNumProps = nCTLOpts + (bWeb ? 14 : 20);
m_aUIProperties.realloc( nNumProps );
int nIdx = 0;
// create "writer" section (new tab page in dialog)
SvtModuleOptions aModOpt;
String aAppGroupname( aLocalizedStrings.GetString( 0 ) );
aAppGroupname.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "%s" ) ),
aModOpt.GetModuleName( SvtModuleOptions::E_SWRITER ) );
m_aUIProperties[ nIdx++ ].Value = getGroupControlOpt( aAppGroupname, rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:TabPage:AppPage" ) ) );
// create sub section for Contents
m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 1 ), rtl::OUString() );
// create a bool option for background
bool bDefaultVal = rDefaultPrintData.IsPrintPageBackground();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 2 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintPageBackground:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPageBackground" ) ),
bDefaultVal );
// create a bool option for pictures/graphics AND OLE and drawing objects as well
bDefaultVal = rDefaultPrintData.IsPrintGraphic() || rDefaultPrintData.IsPrintDraw();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 3 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintPicturesAndObjects:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPicturesAndObjects" ) ),
bDefaultVal );
if (!bWeb)
{
// create a bool option for hidden text
bDefaultVal = rDefaultPrintData.IsPrintHiddenText();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 4 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintHiddenText:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintHiddenText" ) ),
bDefaultVal );
// create a bool option for place holder
bDefaultVal = rDefaultPrintData.IsPrintTextPlaceholder();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 5 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintTextPlaceholder:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintTextPlaceholder" ) ),
bDefaultVal );
}
// create a bool option for controls
bDefaultVal = rDefaultPrintData.IsPrintControl();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 6 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintControls:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintControls" ) ),
bDefaultVal );
// create sub section for Color
m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 7 ), rtl::OUString() );
// create a bool option for printing text with black font color
bDefaultVal = rDefaultPrintData.IsPrintBlackFont();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 8 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintBlackFonts:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintBlackFonts" ) ),
bDefaultVal );
if (!bWeb)
{
// create subgroup for misc options
m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 9 ) ), rtl::OUString() );
// create a bool option for printing automatically inserted blank pages
bDefaultVal = rDefaultPrintData.IsPrintEmptyPages();
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 10 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintEmptyPages:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintEmptyPages" ) ),
bDefaultVal );
}
// create a bool option for paper tray
bDefaultVal = rDefaultPrintData.IsPaperFromSetup();
vcl::PrinterOptionsHelper::UIControlOptions aPaperTrayOpt;
aPaperTrayOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OptionsPageOptGroup" ) );
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 11 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintPaperFromSetup:CheckBox" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPaperFromSetup" ) ),
bDefaultVal,
aPaperTrayOpt
);
// print range selection
vcl::PrinterOptionsHelper::UIControlOptions aPrintRangeOpt;
aPrintRangeOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintRange" ) );
aPrintRangeOpt.mbInternalOnly = sal_True;
m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 26 ) ),
rtl::OUString(),
aPrintRangeOpt
);
// create a choice for the content to create
rtl::OUString aPrintRangeName( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) );
uno::Sequence< rtl::OUString > aChoices( 3 );
uno::Sequence< sal_Bool > aChoicesDisabled( 3 );
uno::Sequence< rtl::OUString > aHelpIds( 3 );
aChoices[0] = aLocalizedStrings.GetString( 27 );
aChoicesDisabled[0] = sal_False;
aHelpIds[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0" ) );
aChoices[1] = aLocalizedStrings.GetString( 28 );
aChoicesDisabled[1] = sal_False;
aHelpIds[1] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1" ) );
aChoices[2] = aLocalizedStrings.GetString( 29 );
aChoicesDisabled[2] = sal_Bool(! bHasSelection);
aHelpIds[2] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2" ) );
m_aUIProperties[nIdx++].Value = getChoiceControlOpt( rtl::OUString(),
aHelpIds,
aPrintRangeName,
aChoices,
bHasSelection ? 2 /*enable 'Selection' radio button*/ : 0 /* enable 'All pages' */,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Radio" ) ),
aChoicesDisabled
);
// create a an Edit dependent on "Pages" selected
vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt( aPrintRangeName, 1, sal_True );
m_aUIProperties[nIdx++].Value = getEditControlOpt( rtl::OUString(),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PageRange:Edit" ) ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageRange" ) ),
rtl::OUString(),
aPageRangeOpt
);
// print content selection
vcl::PrinterOptionsHelper::UIControlOptions aContentsOpt;
aContentsOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobPage" ) );
m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 12 ) ),
rtl::OUString(),
aContentsOpt
);
// create a list box for notes content
const sal_Int16 nPrintPostIts = rDefaultPrintData.GetPrintPostIts();
aChoices.realloc( 4 );
aChoices[0] = aLocalizedStrings.GetString( 13 );
aChoices[1] = aLocalizedStrings.GetString( 14 );
aChoices[2] = aLocalizedStrings.GetString( 15 );
aChoices[3] = aLocalizedStrings.GetString( 16 );
aHelpIds.realloc( 2 );
aHelpIds[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintAnnotationMode:FixedText" ) );
aHelpIds[1] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintAnnotationMode:ListBox" ) );
vcl::PrinterOptionsHelper::UIControlOptions aAnnotOpt( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) ), 0, sal_False );
aAnnotOpt.mbEnabled = bHasPostIts;
m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 17 ),
aHelpIds,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintAnnotationMode" ) ),
aChoices,
nPrintPostIts,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
uno::Sequence< sal_Bool >(),
aAnnotOpt
);
// create subsection for Page settings
vcl::PrinterOptionsHelper::UIControlOptions aPageSetOpt;
aPageSetOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
if (!bWeb)
{
m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 18 ) ),
rtl::OUString(),
aPageSetOpt
);
uno::Sequence< rtl::OUString > aRLChoices( 3 );
aRLChoices[0] = aLocalizedStrings.GetString( 19 );
aRLChoices[1] = aLocalizedStrings.GetString( 20 );
aRLChoices[2] = aLocalizedStrings.GetString( 21 );
uno::Sequence< rtl::OUString > aRLHelp( 1 );
aRLHelp[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintLeftRightPages:ListBox" ) );
// create a choice option for all/left/right pages
// 0 : all pages (left & right)
// 1 : left pages
// 2 : right pages
DBG_ASSERT( rDefaultPrintData.IsPrintLeftPage() || rDefaultPrintData.IsPrintRightPage(),
"unexpected value combination" );
sal_Int16 nPagesChoice = 0;
if (rDefaultPrintData.IsPrintLeftPage() && !rDefaultPrintData.IsPrintRightPage())
nPagesChoice = 1;
else if (!rDefaultPrintData.IsPrintLeftPage() && rDefaultPrintData.IsPrintRightPage())
nPagesChoice = 2;
m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 22 ),
aRLHelp,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintLeftRightPages" ) ),
aRLChoices,
nPagesChoice,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) )
);
}
// create a bool option for brochure
bDefaultVal = rDefaultPrintData.IsPrintProspect();
rtl::OUString aBrochurePropertyName( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) );
m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 23 ),
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintProspect:CheckBox" ) ),
aBrochurePropertyName,
bDefaultVal,
aPageSetOpt
);
if (bCTL)
{
// create a bool option for brochure RTL dependent on brochure
uno::Sequence< rtl::OUString > aBRTLChoices( 2 );
aBRTLChoices[0] = aLocalizedStrings.GetString( 24 );
aBRTLChoices[1] = aLocalizedStrings.GetString( 25 );
vcl::PrinterOptionsHelper::UIControlOptions aBrochureRTLOpt( aBrochurePropertyName, -1, sal_True );
uno::Sequence< rtl::OUString > aBRTLHelpIds( 1 );
aBRTLHelpIds[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".HelpID:vcl:PrintDialog:PrintProspectRTL:ListBox" ) );
aBrochureRTLOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
// RTL brochure choices
// 0 : left-to-right
// 1 : right-to-left
const sal_Int16 nBRTLChoice = rDefaultPrintData.IsPrintProspectRTL() ? 1 : 0;
m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( rtl::OUString(),
aBRTLHelpIds,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspectRTL" ) ),
aBRTLChoices,
nBRTLChoice,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
uno::Sequence< sal_Bool >(),
aBrochureRTLOpt
);
}
DBG_ASSERT( nIdx == nNumProps, "number of added properties is not as expected" );
}
SwPrintUIOptions::~SwPrintUIOptions()
{
}
bool SwPrintUIOptions::IsPrintLeftPages() const
{
// take care of different property names for the option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
// 0: left and right pages
// 1: left pages only
// 2: right pages only
sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
bool bRes = nLRPages == 0 || nLRPages == 1;
bRes = getBoolValue( "PrintLeftPages", bRes /* <- default value if property is not found */ );
return bRes;
}
bool SwPrintUIOptions::IsPrintRightPages() const
{
// take care of different property names for the option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
bool bRes = nLRPages == 0 || nLRPages == 2;
bRes = getBoolValue( "PrintRightPages", bRes /* <- default value if property is not found */ );
return bRes;
}
bool SwPrintUIOptions::IsPrintEmptyPages( bool bIsPDFExport ) const
{
// take care of different property names for the option.
bool bRes = bIsPDFExport ?
!getBoolValue( "IsSkipEmptyPages", sal_True ) :
getBoolValue( "PrintEmptyPages", sal_True );
return bRes;
}
bool SwPrintUIOptions::IsPrintTables() const
{
// take care of different property names currently in use for this option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
// bool bRes = getBoolValue( "PrintTablesGraphicsAndDiagrams", sal_True );
// bRes = getBoolValue( "PrintTables", bRes );
// return bRes;
// for now it was decided that tables should always be printed
return true;
}
bool SwPrintUIOptions::IsPrintGraphics() const
{
// take care of different property names for the option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
bRes = getBoolValue( "PrintGraphics", bRes );
return bRes;
}
bool SwPrintUIOptions::IsPrintDrawings() const
{
// take care of different property names for the option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
bRes = getBoolValue( "PrintDrawings", bRes );
return bRes;
}
bool SwPrintUIOptions::processPropertiesAndCheckFormat( const uno::Sequence< beans::PropertyValue >& i_rNewProp )
{
bool bChanged = processProperties( i_rNewProp );
uno::Reference< awt::XDevice > xRenderDevice;
uno::Any aVal( getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ) ) );
aVal >>= xRenderDevice;
OutputDevice* pOut = 0;
if (xRenderDevice.is())
{
VCLXDevice* pDevice = VCLXDevice::GetImplementation( xRenderDevice );
pOut = pDevice ? pDevice->GetOutputDevice() : 0;
}
bChanged = bChanged || (pOut != m_pLast);
if( pOut )
m_pLast = pOut;
return bChanged;
}
//////////////////////////////////////////////////////////////////////