1*d119d52dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*d119d52dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*d119d52dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*d119d52dSAndrew Rist * distributed with this work for additional information 6*d119d52dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*d119d52dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*d119d52dSAndrew Rist * "License"); you may not use this file except in compliance 9*d119d52dSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*d119d52dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*d119d52dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*d119d52dSAndrew Rist * software distributed under the License is distributed on an 15*d119d52dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*d119d52dSAndrew Rist * KIND, either express or implied. See the License for the 17*d119d52dSAndrew Rist * specific language governing permissions and limitations 18*d119d52dSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*d119d52dSAndrew Rist *************************************************************/ 21*d119d52dSAndrew Rist 22*d119d52dSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_sfx2.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #ifndef GCC 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #include <vcl/msgbox.hxx> 30cdf0e10cSrcweir #include <unotools/printwarningoptions.hxx> 31cdf0e10cSrcweir #include <svtools/printoptions.hxx> 32cdf0e10cSrcweir #include <svl/flagitem.hxx> 33cdf0e10cSrcweir 34cdf0e10cSrcweir 35cdf0e10cSrcweir #include "printopt.hrc" 36cdf0e10cSrcweir #include "dialog.hrc" 37cdf0e10cSrcweir #include "sfx2/sfxresid.hxx" 38cdf0e10cSrcweir #include <sfx2/viewsh.hxx> 39cdf0e10cSrcweir #include <sfx2/printopt.hxx> 40cdf0e10cSrcweir 41cdf0e10cSrcweir // ----------- 42cdf0e10cSrcweir // - statics - 43cdf0e10cSrcweir // ----------- 44cdf0e10cSrcweir 45cdf0e10cSrcweir static sal_uInt16 aDPIArray[] = { 72, 96, 150, 200, 300, 600 }; 46cdf0e10cSrcweir static sal_Bool bOutputForPrinter = sal_True; 47cdf0e10cSrcweir 48cdf0e10cSrcweir #define DPI_COUNT (sizeof(aDPIArray)/sizeof(aDPIArray[0 ])) 49cdf0e10cSrcweir 50cdf0e10cSrcweir // -------------------------------- 51cdf0e10cSrcweir // - SfxCommonPrintOptionsTabPage - 52cdf0e10cSrcweir // -------------------------------- 53cdf0e10cSrcweir 54cdf0e10cSrcweir SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( Window* pParent, const SfxItemSet& rSet ) : 55cdf0e10cSrcweir SfxTabPage( pParent, SfxResId( TP_COMMONPRINTOPTIONS ), rSet ), 56cdf0e10cSrcweir 57cdf0e10cSrcweir aReduceGB( this, SfxResId( GB_REDUCE ) ), 58cdf0e10cSrcweir aOutputTypeFT( this, SfxResId( FT_OUTPUTTYPE ) ), 59cdf0e10cSrcweir aPrinterOutputRB( this, SfxResId( RB_PRINTEROUTPUT ) ), 60cdf0e10cSrcweir aPrintFileOutputRB( this, SfxResId( RB_PRINTFILEOUTPUT ) ), 61cdf0e10cSrcweir aOutputGB( this, SfxResId( GB_OUTPUT ) ), 62cdf0e10cSrcweir aReduceTransparencyCB( this, SfxResId( CB_REDUCETRANSPARENCY ) ), 63cdf0e10cSrcweir aReduceTransparencyAutoRB( this, SfxResId( RB_REDUCETRANSPARENCY_AUTO ) ), 64cdf0e10cSrcweir aReduceTransparencyNoneRB( this, SfxResId( RB_REDUCETRANSPARENCY_NONE ) ), 65cdf0e10cSrcweir aReduceGradientsCB( this, SfxResId( CB_REDUCEGRADIENTS ) ), 66cdf0e10cSrcweir aReduceGradientsStripesRB( this, SfxResId( RB_REDUCEGRADIENTS_STRIPES ) ), 67cdf0e10cSrcweir aReduceGradientsColorRB( this, SfxResId( RB_REDUCEGRADIENTS_COLOR ) ), 68cdf0e10cSrcweir aReduceGradientsStepCountNF( this, SfxResId( NF_REDUCEGRADIENTS_STEPCOUNT ) ), 69cdf0e10cSrcweir aReduceBitmapsCB( this, SfxResId( CB_REDUCEBITMAPS ) ), 70cdf0e10cSrcweir aReduceBitmapsOptimalRB( this, SfxResId( RB_REDUCEBITMAPS_OPTIMAL ) ), 71cdf0e10cSrcweir aReduceBitmapsNormalRB( this, SfxResId( RB_REDUCEBITMAPS_NORMAL ) ), 72cdf0e10cSrcweir aReduceBitmapsResolutionRB( this, SfxResId( RB_REDUCEBITMAPS_RESOLUTION ) ), 73cdf0e10cSrcweir aReduceBitmapsResolutionLB( this, SfxResId( LB_REDUCEBITMAPS_RESOLUTION ) ), 74cdf0e10cSrcweir aReduceBitmapsTransparencyCB( this, SfxResId( CB_REDUCEBITMAPS_TRANSPARENCY ) ), 75cdf0e10cSrcweir aConvertToGreyscalesCB( this, SfxResId( CB_CONVERTTOGREYSCALES ) ), 76cdf0e10cSrcweir aWarnGB( this, SfxResId( GB_PRINT_WARN ) ), 77cdf0e10cSrcweir aPaperSizeCB( this, SfxResId( CB_PAPERSIZE ) ), 78cdf0e10cSrcweir aPaperOrientationCB( this, SfxResId( CB_PAPERORIENTATION ) ), 79cdf0e10cSrcweir aTransparencyCB( this, SfxResId( CB_TRANSPARENCY ) ) 80cdf0e10cSrcweir { 81cdf0e10cSrcweir FreeResource(); 82cdf0e10cSrcweir 83cdf0e10cSrcweir aOutputGB.SetStyle( aOutputGB.GetStyle() | WB_NOLABEL ); 84cdf0e10cSrcweir 85cdf0e10cSrcweir if( bOutputForPrinter ) 86cdf0e10cSrcweir { 87cdf0e10cSrcweir aPrinterOutputRB.Check( sal_True ); 88cdf0e10cSrcweir aOutputGB.SetText( OutputDevice::GetNonMnemonicString( aPrinterOutputRB.GetText() ) ); 89cdf0e10cSrcweir } 90cdf0e10cSrcweir else 91cdf0e10cSrcweir { 92cdf0e10cSrcweir aPrintFileOutputRB.Check( sal_True ); 93cdf0e10cSrcweir aOutputGB.SetText( OutputDevice::GetNonMnemonicString( aPrintFileOutputRB.GetText() ) ); 94cdf0e10cSrcweir } 95cdf0e10cSrcweir 96cdf0e10cSrcweir aPrinterOutputRB.SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleOutputPrinterRBHdl ) ); 97cdf0e10cSrcweir aPrintFileOutputRB.SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleOutputPrintFileRBHdl ) ); 98cdf0e10cSrcweir 99cdf0e10cSrcweir aReduceTransparencyCB.SetClickHdl( LINK( this, SfxCommonPrintOptionsTabPage, ClickReduceTransparencyCBHdl ) ); 100cdf0e10cSrcweir aReduceGradientsCB.SetClickHdl( LINK( this, SfxCommonPrintOptionsTabPage, ClickReduceGradientsCBHdl ) ); 101cdf0e10cSrcweir aReduceBitmapsCB.SetClickHdl( LINK( this, SfxCommonPrintOptionsTabPage, ClickReduceBitmapsCBHdl ) ); 102cdf0e10cSrcweir 103cdf0e10cSrcweir aReduceGradientsStripesRB.SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleReduceGradientsStripesRBHdl ) ); 104cdf0e10cSrcweir aReduceBitmapsResolutionRB.SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleReduceBitmapsResolutionRBHdl ) ); 105cdf0e10cSrcweir 106cdf0e10cSrcweir // --> PB 2008-06-09 #i89164# 107cdf0e10cSrcweir // calculate dynamically the width of radiobutton and listbox 108cdf0e10cSrcweir const long nOffset = 10; 109cdf0e10cSrcweir Size aOldSize = aReduceBitmapsResolutionRB.GetSizePixel(); 110cdf0e10cSrcweir Size aNewSize = aReduceBitmapsResolutionRB.GetOptimalSize( WINDOWSIZE_PREFERRED ); 111cdf0e10cSrcweir aNewSize.Width() += nOffset; 112cdf0e10cSrcweir aNewSize.Height() = aOldSize.Height(); 113cdf0e10cSrcweir long nDelta = aOldSize.Width() - aNewSize.Width(); 114cdf0e10cSrcweir aReduceBitmapsResolutionRB.SetSizePixel( aNewSize ); 115cdf0e10cSrcweir Point aPos = aReduceBitmapsResolutionLB.GetPosPixel(); 116cdf0e10cSrcweir aPos.X() -= nDelta; 117cdf0e10cSrcweir aOldSize = aReduceBitmapsResolutionLB.GetSizePixel(); 118cdf0e10cSrcweir aNewSize = aReduceBitmapsResolutionLB.GetOptimalSize( WINDOWSIZE_PREFERRED ); 119cdf0e10cSrcweir aNewSize.Width() += nOffset; 120cdf0e10cSrcweir aNewSize.Height() = aOldSize.Height(); 121cdf0e10cSrcweir aReduceBitmapsResolutionLB.SetPosSizePixel( aPos, aNewSize ); 122cdf0e10cSrcweir // <-- 123cdf0e10cSrcweir } 124cdf0e10cSrcweir 125cdf0e10cSrcweir // ----------------------------------------------------------------------------- 126cdf0e10cSrcweir 127cdf0e10cSrcweir SfxCommonPrintOptionsTabPage::~SfxCommonPrintOptionsTabPage() 128cdf0e10cSrcweir { 129cdf0e10cSrcweir } 130cdf0e10cSrcweir 131cdf0e10cSrcweir // ----------------------------------------------------------------------------- 132cdf0e10cSrcweir 133cdf0e10cSrcweir SfxTabPage* SfxCommonPrintOptionsTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet ) 134cdf0e10cSrcweir { 135cdf0e10cSrcweir return( new SfxCommonPrintOptionsTabPage( pParent, rAttrSet ) ); 136cdf0e10cSrcweir } 137cdf0e10cSrcweir 138cdf0e10cSrcweir // ----------------------------------------------------------------------------- 139cdf0e10cSrcweir 140cdf0e10cSrcweir Window* SfxCommonPrintOptionsTabPage::GetParentLabeledBy( const Window* pWindow ) const 141cdf0e10cSrcweir { 142cdf0e10cSrcweir if ( pWindow == (Window *)&aReduceGradientsStepCountNF ) 143cdf0e10cSrcweir return (Window *)&aReduceGradientsStripesRB; 144cdf0e10cSrcweir else if ( pWindow == (Window *)&aReduceBitmapsResolutionLB ) 145cdf0e10cSrcweir return (Window *)&aReduceBitmapsResolutionRB; 146cdf0e10cSrcweir else 147cdf0e10cSrcweir return SfxTabPage::GetParentLabeledBy( pWindow ); 148cdf0e10cSrcweir } 149cdf0e10cSrcweir 150cdf0e10cSrcweir Window* SfxCommonPrintOptionsTabPage::GetParentLabelFor( const Window* pWindow ) const 151cdf0e10cSrcweir { 152cdf0e10cSrcweir if ( pWindow == (Window *)&aReduceGradientsStripesRB ) 153cdf0e10cSrcweir return (Window *)&aReduceGradientsStepCountNF; 154cdf0e10cSrcweir else if ( pWindow == (Window *)&aReduceBitmapsResolutionRB ) 155cdf0e10cSrcweir return (Window *)&aReduceBitmapsResolutionLB; 156cdf0e10cSrcweir else 157cdf0e10cSrcweir return SfxTabPage::GetParentLabelFor( pWindow ); 158cdf0e10cSrcweir } 159cdf0e10cSrcweir 160cdf0e10cSrcweir // ----------------------------------------------------------------------------- 161cdf0e10cSrcweir 162cdf0e10cSrcweir sal_Bool SfxCommonPrintOptionsTabPage::FillItemSet( SfxItemSet& /*rSet*/ ) 163cdf0e10cSrcweir { 164cdf0e10cSrcweir SvtPrintWarningOptions aWarnOptions; 165cdf0e10cSrcweir SvtPrinterOptions aPrinterOptions; 166cdf0e10cSrcweir SvtPrintFileOptions aPrintFileOptions; 167cdf0e10cSrcweir sal_Bool bModified = sal_False; 168cdf0e10cSrcweir 169cdf0e10cSrcweir 170cdf0e10cSrcweir if( aPaperSizeCB.IsChecked() != aPaperSizeCB.GetSavedValue()) 171cdf0e10cSrcweir aWarnOptions.SetPaperSize(aPaperSizeCB.IsChecked()); 172cdf0e10cSrcweir if( aPaperOrientationCB.IsChecked() != aPaperOrientationCB.GetSavedValue() ) 173cdf0e10cSrcweir aWarnOptions.SetPaperOrientation(aPaperOrientationCB.IsChecked()); 174cdf0e10cSrcweir 175cdf0e10cSrcweir if( aTransparencyCB.IsChecked() != aTransparencyCB.GetSavedValue() ) 176cdf0e10cSrcweir aWarnOptions.SetTransparency( aTransparencyCB.IsChecked() ); 177cdf0e10cSrcweir 178cdf0e10cSrcweir ImplSaveControls( aPrinterOutputRB.IsChecked() ? &maPrinterOptions : &maPrintFileOptions ); 179cdf0e10cSrcweir 180cdf0e10cSrcweir aPrinterOptions.SetPrinterOptions( maPrinterOptions ); 181cdf0e10cSrcweir aPrintFileOptions.SetPrinterOptions( maPrintFileOptions ); 182cdf0e10cSrcweir 183cdf0e10cSrcweir return bModified; 184cdf0e10cSrcweir } 185cdf0e10cSrcweir 186cdf0e10cSrcweir // ----------------------------------------------------------------------------- 187cdf0e10cSrcweir 188cdf0e10cSrcweir void SfxCommonPrintOptionsTabPage::Reset( const SfxItemSet& /*rSet*/ ) 189cdf0e10cSrcweir { 190cdf0e10cSrcweir SvtPrintWarningOptions aWarnOptions; 191cdf0e10cSrcweir SvtPrinterOptions aPrinterOptions; 192cdf0e10cSrcweir SvtPrintFileOptions aPrintFileOptions; 193cdf0e10cSrcweir 194cdf0e10cSrcweir aPaperSizeCB.Check( aWarnOptions.IsPaperSize() ); 195cdf0e10cSrcweir aPaperOrientationCB.Check( aWarnOptions.IsPaperOrientation() ); 196cdf0e10cSrcweir 197cdf0e10cSrcweir aTransparencyCB.Check( aWarnOptions.IsTransparency() ); 198cdf0e10cSrcweir 199cdf0e10cSrcweir aPaperSizeCB.SaveValue(); 200cdf0e10cSrcweir aPaperOrientationCB.SaveValue(); 201cdf0e10cSrcweir aTransparencyCB.SaveValue(); 202cdf0e10cSrcweir 203cdf0e10cSrcweir aPrinterOptions.GetPrinterOptions( maPrinterOptions ); 204cdf0e10cSrcweir aPrintFileOptions.GetPrinterOptions( maPrintFileOptions ); 205cdf0e10cSrcweir 206cdf0e10cSrcweir ImplUpdateControls( aPrinterOutputRB.IsChecked() ? &maPrinterOptions : &maPrintFileOptions ); 207cdf0e10cSrcweir 208cdf0e10cSrcweir // --> OD 2008-06-25 #i63982# 209cdf0e10cSrcweir ImplSetAccessibleNames(); 210cdf0e10cSrcweir // <-- 211cdf0e10cSrcweir } 212cdf0e10cSrcweir 213cdf0e10cSrcweir // ----------------------------------------------------------------------------- 214cdf0e10cSrcweir 215cdf0e10cSrcweir int SfxCommonPrintOptionsTabPage::DeactivatePage( SfxItemSet* pItemSet ) 216cdf0e10cSrcweir { 217cdf0e10cSrcweir if( pItemSet ) 218cdf0e10cSrcweir FillItemSet( *pItemSet ); 219cdf0e10cSrcweir 220cdf0e10cSrcweir return LEAVE_PAGE; 221cdf0e10cSrcweir } 222cdf0e10cSrcweir 223cdf0e10cSrcweir // ----------------------------------------------------------------------------- 224cdf0e10cSrcweir 225cdf0e10cSrcweir void SfxCommonPrintOptionsTabPage::ImplUpdateControls( const PrinterOptions* pCurrentOptions ) 226cdf0e10cSrcweir { 227cdf0e10cSrcweir aReduceTransparencyCB.Check( pCurrentOptions->IsReduceTransparency() ); 228cdf0e10cSrcweir 229cdf0e10cSrcweir if( pCurrentOptions->GetReducedTransparencyMode() == PRINTER_TRANSPARENCY_AUTO ) 230cdf0e10cSrcweir aReduceTransparencyAutoRB.Check( sal_True ); 231cdf0e10cSrcweir else 232cdf0e10cSrcweir aReduceTransparencyNoneRB.Check( sal_True ); 233cdf0e10cSrcweir 234cdf0e10cSrcweir aReduceGradientsCB.Check( pCurrentOptions->IsReduceGradients() ); 235cdf0e10cSrcweir 236cdf0e10cSrcweir if( pCurrentOptions->GetReducedGradientMode() == PRINTER_GRADIENT_STRIPES ) 237cdf0e10cSrcweir aReduceGradientsStripesRB.Check( sal_True ); 238cdf0e10cSrcweir else 239cdf0e10cSrcweir aReduceGradientsColorRB.Check( sal_True ); 240cdf0e10cSrcweir 241cdf0e10cSrcweir aReduceGradientsStepCountNF.SetValue( pCurrentOptions->GetReducedGradientStepCount() ); 242cdf0e10cSrcweir 243cdf0e10cSrcweir aReduceBitmapsCB.Check( pCurrentOptions->IsReduceBitmaps() ); 244cdf0e10cSrcweir 245cdf0e10cSrcweir if( pCurrentOptions->GetReducedBitmapMode() == PRINTER_BITMAP_OPTIMAL ) 246cdf0e10cSrcweir aReduceBitmapsOptimalRB.Check( sal_True ); 247cdf0e10cSrcweir else if( pCurrentOptions->GetReducedBitmapMode() == PRINTER_BITMAP_NORMAL ) 248cdf0e10cSrcweir aReduceBitmapsNormalRB.Check( sal_True ); 249cdf0e10cSrcweir else 250cdf0e10cSrcweir aReduceBitmapsResolutionRB.Check( sal_True ); 251cdf0e10cSrcweir 252cdf0e10cSrcweir const sal_uInt16 nDPI = pCurrentOptions->GetReducedBitmapResolution(); 253cdf0e10cSrcweir 254cdf0e10cSrcweir if( nDPI < aDPIArray[ 0 ] ) 255cdf0e10cSrcweir aReduceBitmapsResolutionLB.SelectEntryPos( 0 ); 256cdf0e10cSrcweir else 257cdf0e10cSrcweir { 258cdf0e10cSrcweir for( long i = ( DPI_COUNT - 1 ); i >= 0; i-- ) 259cdf0e10cSrcweir { 260cdf0e10cSrcweir if( nDPI >= aDPIArray[ i ] ) 261cdf0e10cSrcweir { 262cdf0e10cSrcweir aReduceBitmapsResolutionLB.SelectEntryPos( (sal_uInt16) i ); 263cdf0e10cSrcweir i = -1; 264cdf0e10cSrcweir } 265cdf0e10cSrcweir } 266cdf0e10cSrcweir } 267cdf0e10cSrcweir 268cdf0e10cSrcweir aReduceBitmapsResolutionLB.SetText( aReduceBitmapsResolutionLB.GetEntry( aReduceBitmapsResolutionLB.GetSelectEntryPos() ) ); 269cdf0e10cSrcweir 270cdf0e10cSrcweir aReduceBitmapsTransparencyCB.Check( pCurrentOptions->IsReducedBitmapIncludesTransparency() ); 271cdf0e10cSrcweir aConvertToGreyscalesCB.Check( pCurrentOptions->IsConvertToGreyscales() ); 272cdf0e10cSrcweir 273cdf0e10cSrcweir ClickReduceTransparencyCBHdl( &aReduceTransparencyCB ); 274cdf0e10cSrcweir ClickReduceGradientsCBHdl( &aReduceGradientsCB ); 275cdf0e10cSrcweir ClickReduceBitmapsCBHdl( &aReduceBitmapsCB ); 276cdf0e10cSrcweir } 277cdf0e10cSrcweir 278cdf0e10cSrcweir // ----------------------------------------------------------------------------- 279cdf0e10cSrcweir 280cdf0e10cSrcweir void SfxCommonPrintOptionsTabPage::ImplSetAccessibleNames() 281cdf0e10cSrcweir { 282cdf0e10cSrcweir static const String cSeparator = String::CreateFromAscii( " - " ); 283cdf0e10cSrcweir 284cdf0e10cSrcweir String sReduceText = aReduceGB.GetDisplayText(); 285cdf0e10cSrcweir sReduceText += cSeparator; 286cdf0e10cSrcweir 287cdf0e10cSrcweir String sAccessibleName = sReduceText; 288cdf0e10cSrcweir sAccessibleName += aPrinterOutputRB.GetDisplayText(); 289cdf0e10cSrcweir aPrinterOutputRB.SetAccessibleName( sAccessibleName ); 290cdf0e10cSrcweir 291cdf0e10cSrcweir sAccessibleName = sReduceText; 292cdf0e10cSrcweir sAccessibleName += aPrintFileOutputRB.GetDisplayText(); 293cdf0e10cSrcweir aPrintFileOutputRB.SetAccessibleName( sAccessibleName ); 294cdf0e10cSrcweir 295cdf0e10cSrcweir String sOutputText = sReduceText; 296cdf0e10cSrcweir sOutputText += aOutputGB.GetDisplayText(); 297cdf0e10cSrcweir sOutputText += cSeparator; 298cdf0e10cSrcweir 299cdf0e10cSrcweir sAccessibleName = sOutputText; 300cdf0e10cSrcweir sAccessibleName += aReduceTransparencyCB.GetDisplayText(); 301cdf0e10cSrcweir aReduceTransparencyCB.SetAccessibleName( sAccessibleName ); 302cdf0e10cSrcweir 303cdf0e10cSrcweir String sTransparencyText = aReduceTransparencyCB.GetAccessibleName(); 304cdf0e10cSrcweir sTransparencyText += cSeparator; 305cdf0e10cSrcweir 306cdf0e10cSrcweir sAccessibleName = sTransparencyText; 307cdf0e10cSrcweir sAccessibleName += aReduceTransparencyAutoRB.GetDisplayText(); 308cdf0e10cSrcweir aReduceTransparencyAutoRB.SetAccessibleName( sAccessibleName ); 309cdf0e10cSrcweir 310cdf0e10cSrcweir sAccessibleName = sTransparencyText; 311cdf0e10cSrcweir sAccessibleName += aReduceTransparencyNoneRB.GetDisplayText(); 312cdf0e10cSrcweir aReduceTransparencyNoneRB.SetAccessibleName( sAccessibleName ); 313cdf0e10cSrcweir 314cdf0e10cSrcweir sAccessibleName = sOutputText; 315cdf0e10cSrcweir sAccessibleName += aReduceGradientsCB.GetDisplayText(); 316cdf0e10cSrcweir aReduceGradientsCB.SetAccessibleName( sAccessibleName ); 317cdf0e10cSrcweir 318cdf0e10cSrcweir String sGradientText = aReduceGradientsCB.GetAccessibleName(); 319cdf0e10cSrcweir sGradientText += cSeparator; 320cdf0e10cSrcweir 321cdf0e10cSrcweir sAccessibleName = sGradientText; 322cdf0e10cSrcweir sAccessibleName += aReduceGradientsStripesRB.GetDisplayText(); 323cdf0e10cSrcweir aReduceGradientsStripesRB.SetAccessibleName( sAccessibleName ); 324cdf0e10cSrcweir 325cdf0e10cSrcweir sAccessibleName = aReduceGradientsStripesRB.GetAccessibleName(); 326cdf0e10cSrcweir aReduceGradientsStepCountNF.SetAccessibleName( sAccessibleName ); 327cdf0e10cSrcweir 328cdf0e10cSrcweir sAccessibleName = sGradientText; 329cdf0e10cSrcweir sAccessibleName += aReduceGradientsColorRB.GetDisplayText(); 330cdf0e10cSrcweir aReduceGradientsColorRB.SetAccessibleName( sAccessibleName ); 331cdf0e10cSrcweir 332cdf0e10cSrcweir sAccessibleName = sOutputText; 333cdf0e10cSrcweir sAccessibleName += aReduceBitmapsCB.GetDisplayText(); 334cdf0e10cSrcweir aReduceBitmapsCB.SetAccessibleName( sAccessibleName ); 335cdf0e10cSrcweir 336cdf0e10cSrcweir String sBitmapText = aReduceBitmapsCB.GetAccessibleName(); 337cdf0e10cSrcweir sBitmapText += cSeparator; 338cdf0e10cSrcweir 339cdf0e10cSrcweir sAccessibleName = sBitmapText; 340cdf0e10cSrcweir sAccessibleName += aReduceBitmapsOptimalRB.GetDisplayText(); 341cdf0e10cSrcweir aReduceBitmapsOptimalRB.SetAccessibleName( sAccessibleName ); 342cdf0e10cSrcweir 343cdf0e10cSrcweir sAccessibleName = sBitmapText; 344cdf0e10cSrcweir sAccessibleName += aReduceBitmapsNormalRB.GetDisplayText(); 345cdf0e10cSrcweir aReduceBitmapsNormalRB.SetAccessibleName( sAccessibleName ); 346cdf0e10cSrcweir 347cdf0e10cSrcweir sAccessibleName = sBitmapText; 348cdf0e10cSrcweir sAccessibleName += aReduceBitmapsResolutionRB.GetDisplayText(); 349cdf0e10cSrcweir aReduceBitmapsResolutionRB.SetAccessibleName( sAccessibleName ); 350cdf0e10cSrcweir 351cdf0e10cSrcweir sAccessibleName = aReduceBitmapsResolutionRB.GetAccessibleName(); 352cdf0e10cSrcweir aReduceBitmapsResolutionLB.SetAccessibleName( sAccessibleName ); 353cdf0e10cSrcweir 354cdf0e10cSrcweir sAccessibleName = sBitmapText; 355cdf0e10cSrcweir sAccessibleName += aReduceBitmapsTransparencyCB.GetDisplayText(); 356cdf0e10cSrcweir aReduceBitmapsTransparencyCB.SetAccessibleName( sAccessibleName ); 357cdf0e10cSrcweir 358cdf0e10cSrcweir sAccessibleName = sOutputText; 359cdf0e10cSrcweir sAccessibleName += aConvertToGreyscalesCB.GetDisplayText(); 360cdf0e10cSrcweir aConvertToGreyscalesCB.SetAccessibleName( sAccessibleName ); 361cdf0e10cSrcweir 362cdf0e10cSrcweir String sWarnText = aWarnGB.GetDisplayText(); 363cdf0e10cSrcweir sWarnText += cSeparator; 364cdf0e10cSrcweir 365cdf0e10cSrcweir sAccessibleName = sWarnText; 366cdf0e10cSrcweir sAccessibleName += aPaperSizeCB.GetDisplayText(); 367cdf0e10cSrcweir aPaperSizeCB.SetAccessibleName( sAccessibleName ); 368cdf0e10cSrcweir 369cdf0e10cSrcweir sAccessibleName = sWarnText; 370cdf0e10cSrcweir sAccessibleName += aPaperOrientationCB.GetDisplayText(); 371cdf0e10cSrcweir aPaperOrientationCB.SetAccessibleName( sAccessibleName ); 372cdf0e10cSrcweir 373cdf0e10cSrcweir sAccessibleName = sWarnText; 374cdf0e10cSrcweir sAccessibleName += aTransparencyCB.GetDisplayText(); 375cdf0e10cSrcweir aTransparencyCB.SetAccessibleName( sAccessibleName ); 376cdf0e10cSrcweir } 377cdf0e10cSrcweir 378cdf0e10cSrcweir // ----------------------------------------------------------------------------- 379cdf0e10cSrcweir 380cdf0e10cSrcweir void SfxCommonPrintOptionsTabPage::ImplSaveControls( PrinterOptions* pCurrentOptions ) 381cdf0e10cSrcweir { 382cdf0e10cSrcweir pCurrentOptions->SetReduceTransparency( aReduceTransparencyCB.IsChecked() ); 383cdf0e10cSrcweir pCurrentOptions->SetReducedTransparencyMode( aReduceTransparencyAutoRB.IsChecked() ? PRINTER_TRANSPARENCY_AUTO : PRINTER_TRANSPARENCY_NONE ); 384cdf0e10cSrcweir pCurrentOptions->SetReduceGradients( aReduceGradientsCB.IsChecked() ); 385cdf0e10cSrcweir pCurrentOptions->SetReducedGradientMode( aReduceGradientsStripesRB.IsChecked() ? PRINTER_GRADIENT_STRIPES : PRINTER_GRADIENT_COLOR ); 386cdf0e10cSrcweir pCurrentOptions->SetReducedGradientStepCount( (sal_uInt16) aReduceGradientsStepCountNF.GetValue() ); 387cdf0e10cSrcweir pCurrentOptions->SetReduceBitmaps( aReduceBitmapsCB.IsChecked() ); 388cdf0e10cSrcweir pCurrentOptions->SetReducedBitmapMode( aReduceBitmapsOptimalRB.IsChecked() ? PRINTER_BITMAP_OPTIMAL : 389cdf0e10cSrcweir ( aReduceBitmapsNormalRB.IsChecked() ? PRINTER_BITMAP_NORMAL : PRINTER_BITMAP_RESOLUTION ) ); 390cdf0e10cSrcweir pCurrentOptions->SetReducedBitmapResolution( aDPIArray[ Min( (sal_uInt16) aReduceBitmapsResolutionLB.GetSelectEntryPos(), 391cdf0e10cSrcweir (sal_uInt16)( sizeof( aDPIArray ) / sizeof( aDPIArray[ 0 ] ) - 1 ) ) ] ); 392cdf0e10cSrcweir pCurrentOptions->SetReducedBitmapIncludesTransparency( aReduceBitmapsTransparencyCB.IsChecked() ); 393cdf0e10cSrcweir pCurrentOptions->SetConvertToGreyscales( aConvertToGreyscalesCB.IsChecked() ); 394cdf0e10cSrcweir } 395cdf0e10cSrcweir 396cdf0e10cSrcweir // ----------------------------------------------------------------------------- 397cdf0e10cSrcweir 398cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ClickReduceTransparencyCBHdl, CheckBox*, pBox ) 399cdf0e10cSrcweir { 400cdf0e10cSrcweir (void)pBox; //unused 401cdf0e10cSrcweir const sal_Bool bReduceTransparency = aReduceTransparencyCB.IsChecked(); 402cdf0e10cSrcweir 403cdf0e10cSrcweir aReduceTransparencyAutoRB.Enable( bReduceTransparency ); 404cdf0e10cSrcweir aReduceTransparencyNoneRB.Enable( bReduceTransparency ); 405cdf0e10cSrcweir 406cdf0e10cSrcweir aTransparencyCB.Enable( !bReduceTransparency ); 407cdf0e10cSrcweir 408cdf0e10cSrcweir return 0; 409cdf0e10cSrcweir } 410cdf0e10cSrcweir 411cdf0e10cSrcweir // ----------------------------------------------------------------------------- 412cdf0e10cSrcweir 413cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ClickReduceGradientsCBHdl, CheckBox*, pBox ) 414cdf0e10cSrcweir { 415cdf0e10cSrcweir (void)pBox; //unused 416cdf0e10cSrcweir const sal_Bool bEnable = aReduceGradientsCB.IsChecked(); 417cdf0e10cSrcweir 418cdf0e10cSrcweir aReduceGradientsStripesRB.Enable( bEnable ); 419cdf0e10cSrcweir aReduceGradientsColorRB.Enable( bEnable ); 420cdf0e10cSrcweir aReduceGradientsStepCountNF.Enable( bEnable ); 421cdf0e10cSrcweir 422cdf0e10cSrcweir ToggleReduceGradientsStripesRBHdl( &aReduceGradientsStripesRB ); 423cdf0e10cSrcweir 424cdf0e10cSrcweir return 0; 425cdf0e10cSrcweir } 426cdf0e10cSrcweir 427cdf0e10cSrcweir // ----------------------------------------------------------------------------- 428cdf0e10cSrcweir 429cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ClickReduceBitmapsCBHdl, CheckBox*, pBox ) 430cdf0e10cSrcweir { 431cdf0e10cSrcweir (void)pBox; //unused 432cdf0e10cSrcweir const sal_Bool bEnable = aReduceBitmapsCB.IsChecked(); 433cdf0e10cSrcweir 434cdf0e10cSrcweir aReduceBitmapsOptimalRB.Enable( bEnable ); 435cdf0e10cSrcweir aReduceBitmapsNormalRB.Enable( bEnable ); 436cdf0e10cSrcweir aReduceBitmapsResolutionRB.Enable( bEnable ); 437cdf0e10cSrcweir aReduceBitmapsTransparencyCB.Enable( bEnable ); 438cdf0e10cSrcweir aReduceBitmapsResolutionLB.Enable( bEnable ); 439cdf0e10cSrcweir 440cdf0e10cSrcweir ToggleReduceBitmapsResolutionRBHdl( &aReduceBitmapsResolutionRB ); 441cdf0e10cSrcweir 442cdf0e10cSrcweir return 0; 443cdf0e10cSrcweir } 444cdf0e10cSrcweir 445cdf0e10cSrcweir // ----------------------------------------------------------------------------- 446cdf0e10cSrcweir 447cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ToggleReduceGradientsStripesRBHdl, RadioButton*, pButton ) 448cdf0e10cSrcweir { 449cdf0e10cSrcweir (void)pButton; //unused 450cdf0e10cSrcweir const sal_Bool bEnable = aReduceGradientsCB.IsChecked() && aReduceGradientsStripesRB.IsChecked(); 451cdf0e10cSrcweir 452cdf0e10cSrcweir aReduceGradientsStepCountNF.Enable( bEnable ); 453cdf0e10cSrcweir 454cdf0e10cSrcweir return 0; 455cdf0e10cSrcweir } 456cdf0e10cSrcweir 457cdf0e10cSrcweir // ----------------------------------------------------------------------------- 458cdf0e10cSrcweir 459cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ToggleReduceBitmapsResolutionRBHdl, RadioButton*, pButton ) 460cdf0e10cSrcweir { 461cdf0e10cSrcweir (void)pButton; //unused 462cdf0e10cSrcweir const sal_Bool bEnable = aReduceBitmapsCB.IsChecked() && aReduceBitmapsResolutionRB.IsChecked(); 463cdf0e10cSrcweir 464cdf0e10cSrcweir aReduceBitmapsResolutionLB.Enable( bEnable ); 465cdf0e10cSrcweir 466cdf0e10cSrcweir return 0; 467cdf0e10cSrcweir } 468cdf0e10cSrcweir 469cdf0e10cSrcweir // ----------------------------------------------------------------------------- 470cdf0e10cSrcweir 471cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ToggleOutputPrinterRBHdl, RadioButton*, pButton ) 472cdf0e10cSrcweir { 473cdf0e10cSrcweir if( pButton->IsChecked() ) 474cdf0e10cSrcweir { 475cdf0e10cSrcweir aOutputGB.SetText( OutputDevice::GetNonMnemonicString( pButton->GetText() ) ); 476cdf0e10cSrcweir ImplUpdateControls( &maPrinterOptions ); 477cdf0e10cSrcweir bOutputForPrinter = sal_True; 478cdf0e10cSrcweir // --> OD 2008-06-25 #i63982# 479cdf0e10cSrcweir ImplSetAccessibleNames(); 480cdf0e10cSrcweir // <-- 481cdf0e10cSrcweir } 482cdf0e10cSrcweir else 483cdf0e10cSrcweir ImplSaveControls( &maPrinterOptions ); 484cdf0e10cSrcweir 485cdf0e10cSrcweir return 0; 486cdf0e10cSrcweir } 487cdf0e10cSrcweir 488cdf0e10cSrcweir // ----------------------------------------------------------------------------- 489cdf0e10cSrcweir 490cdf0e10cSrcweir IMPL_LINK( SfxCommonPrintOptionsTabPage, ToggleOutputPrintFileRBHdl, RadioButton*, pButton ) 491cdf0e10cSrcweir { 492cdf0e10cSrcweir if( pButton->IsChecked() ) 493cdf0e10cSrcweir { 494cdf0e10cSrcweir aOutputGB.SetText( OutputDevice::GetNonMnemonicString( pButton->GetText() ) ); 495cdf0e10cSrcweir ImplUpdateControls( &maPrintFileOptions ); 496cdf0e10cSrcweir bOutputForPrinter = sal_False; 497cdf0e10cSrcweir // --> OD 2008-06-25 #i63982# 498cdf0e10cSrcweir ImplSetAccessibleNames(); 499cdf0e10cSrcweir // <-- 500cdf0e10cSrcweir } 501cdf0e10cSrcweir else 502cdf0e10cSrcweir ImplSaveControls( &maPrintFileOptions ); 503cdf0e10cSrcweir 504cdf0e10cSrcweir return 0; 505cdf0e10cSrcweir } 506cdf0e10cSrcweir 507cdf0e10cSrcweir // ------------------------------- 508cdf0e10cSrcweir // - TransparencyPrintWarningBox - 509cdf0e10cSrcweir // ------------------------------- 510cdf0e10cSrcweir 511cdf0e10cSrcweir TransparencyPrintWarningBox::TransparencyPrintWarningBox( Window* pParent ) : 512cdf0e10cSrcweir ModalDialog( pParent, SfxResId( RID_WARN_PRINTTRANSPARENCY ) ), 513cdf0e10cSrcweir aWarnFI ( this, SfxResId( FI_PRINTTRANSWARN ) ), 514cdf0e10cSrcweir aWarnFT ( this, SfxResId( FT_PRINTTRANSWARN ) ), 515cdf0e10cSrcweir aYesBtn ( this, SfxResId( BTN_PRINTTRANS_YES ) ), 516cdf0e10cSrcweir aNoBtn ( this, SfxResId( BTN_PRINTTRANS_NO ) ), 517cdf0e10cSrcweir aCancelBtn ( this, SfxResId( BTN_PRINTTRANS_CANCEL ) ), 518cdf0e10cSrcweir aNoWarnCB ( this, SfxResId( CBX_NOPRINTTRANSWARN ) ) 519cdf0e10cSrcweir { 520cdf0e10cSrcweir FreeResource(); 521cdf0e10cSrcweir 522cdf0e10cSrcweir aWarnFT.SetStyle( aWarnFT.GetStyle() | WB_INFO ); 523cdf0e10cSrcweir aWarnFI.SetImage( WarningBox::GetStandardImage() ); 524cdf0e10cSrcweir 525cdf0e10cSrcweir aNoBtn.SetClickHdl( LINK( this, TransparencyPrintWarningBox, ClickNoBtn ) ); 526cdf0e10cSrcweir } 527cdf0e10cSrcweir 528cdf0e10cSrcweir // ----------------------------------------------------------------------------- 529cdf0e10cSrcweir 530cdf0e10cSrcweir TransparencyPrintWarningBox::~TransparencyPrintWarningBox() 531cdf0e10cSrcweir { 532cdf0e10cSrcweir } 533cdf0e10cSrcweir 534cdf0e10cSrcweir // ----------------------------------------------------------------------------- 535cdf0e10cSrcweir 536cdf0e10cSrcweir IMPL_LINK( TransparencyPrintWarningBox, ClickNoBtn, PushButton*, pButton ) 537cdf0e10cSrcweir { 538cdf0e10cSrcweir (void)pButton; //unused 539cdf0e10cSrcweir EndDialog( RET_NO ); 540cdf0e10cSrcweir return 0; 541cdf0e10cSrcweir } 542