| /************************************************************** |
| * |
| * 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_sd.hxx" |
| |
| #ifdef SD_DLLIMPLEMENTATION |
| #undef SD_DLLIMPLEMENTATION |
| #endif |
| |
| |
| #include "sdattr.hxx" |
| #include "optsitem.hxx" |
| #include "prntopts.hrc" |
| #include "sdresid.hxx" |
| #include "prntopts.hxx" |
| #include "app.hrc" |
| #include <svl/intitem.hxx> |
| #include <sfx2/request.hxx> |
| |
| /************************************************************************* |
| |* |
| |* Dialog zum Aendern der Print-Optionen |
| |* |
| \************************************************************************/ |
| |
| SdPrintOptions::SdPrintOptions( Window* pParent, const SfxItemSet& rInAttrs ) : |
| SfxTabPage ( pParent, SdResId( TP_PRINT_OPTIONS ), rInAttrs ), |
| |
| aGrpPrint ( this, SdResId( GRP_PRINT ) ), |
| aCbxDraw ( this, SdResId( CBX_DRAW ) ), |
| aCbxNotes ( this, SdResId( CBX_NOTES ) ), |
| aCbxHandout ( this, SdResId( CBX_HANDOUTS ) ), |
| aCbxOutline ( this, SdResId( CBX_OUTLINE ) ), |
| |
| aSeparator1FL ( this, SdResId( FL_SEPARATOR1 ) ), |
| aGrpOutput ( this, SdResId( GRP_OUTPUT ) ), |
| aRbtColor ( this, SdResId( RBT_COLOR ) ), |
| aRbtGrayscale ( this, SdResId( RBT_GRAYSCALE ) ), |
| aRbtBlackWhite ( this, SdResId( RBT_BLACKWHITE ) ), |
| |
| aGrpPrintExt ( this, SdResId( GRP_PRINT_EXT ) ), |
| aCbxPagename ( this, SdResId( CBX_PAGENAME ) ), |
| aCbxDate ( this, SdResId( CBX_DATE ) ), |
| aCbxTime ( this, SdResId( CBX_TIME ) ), |
| aCbxHiddenPages ( this, SdResId( CBX_HIDDEN_PAGES ) ), |
| |
| aSeparator2FL ( this, SdResId( FL_SEPARATOR2 ) ), |
| aGrpPageoptions ( this, SdResId( GRP_PAGE ) ), |
| aRbtDefault ( this, SdResId( RBT_DEFAULT ) ), |
| aRbtPagesize ( this, SdResId( RBT_PAGESIZE ) ), |
| aRbtPagetile ( this, SdResId( RBT_PAGETILE ) ), |
| aRbtBooklet ( this, SdResId( RBT_BOOKLET ) ), |
| aCbxFront ( this, SdResId( CBX_FRONT ) ), |
| aCbxBack ( this, SdResId( CBX_BACK ) ), |
| |
| aCbxPaperbin ( this, SdResId( CBX_PAPERBIN ) ), |
| |
| rOutAttrs ( rInAttrs ) |
| { |
| FreeResource(); |
| |
| Link aLink = LINK( this, SdPrintOptions, ClickBookletHdl ); |
| aRbtDefault.SetClickHdl( aLink ); |
| aRbtPagesize.SetClickHdl( aLink ); |
| aRbtPagetile.SetClickHdl( aLink ); |
| aRbtBooklet.SetClickHdl( aLink ); |
| |
| aLink = LINK( this, SdPrintOptions, ClickCheckboxHdl ); |
| aCbxDraw.SetClickHdl( aLink ); |
| aCbxNotes.SetClickHdl( aLink ); |
| aCbxHandout.SetClickHdl( aLink ); |
| aCbxOutline.SetClickHdl( aLink ); |
| |
| #ifndef QUARTZ |
| SetDrawMode(); |
| #endif |
| |
| aCbxFront.SetAccessibleRelationLabeledBy( &aRbtBooklet ); |
| aCbxBack.SetAccessibleRelationLabeledBy( &aRbtBooklet ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SdPrintOptions::~SdPrintOptions() |
| { |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| sal_Bool SdPrintOptions::FillItemSet( SfxItemSet& rAttrs ) |
| { |
| if( aCbxDraw.GetSavedValue() != aCbxDraw.IsChecked() || |
| aCbxNotes.GetSavedValue() != aCbxNotes.IsChecked() || |
| aCbxHandout.GetSavedValue() != aCbxHandout.IsChecked() || |
| aCbxOutline.GetSavedValue() != aCbxOutline.IsChecked() || |
| aCbxDate.GetSavedValue() != aCbxDate.IsChecked() || |
| aCbxTime.GetSavedValue() != aCbxTime.IsChecked() || |
| aCbxPagename.GetSavedValue() != aCbxPagename.IsChecked() || |
| aCbxHiddenPages.GetSavedValue() != aCbxHiddenPages.IsChecked() || |
| aRbtPagesize.GetSavedValue() != aRbtPagesize.IsChecked() || |
| aRbtPagetile.GetSavedValue() != aRbtPagetile.IsChecked() || |
| aRbtBooklet.GetSavedValue() != aRbtBooklet.IsChecked() || |
| aCbxFront.GetSavedValue() != aCbxFront.IsChecked() || |
| aCbxBack.GetSavedValue() != aCbxBack.IsChecked() || |
| aCbxPaperbin.GetSavedValue() != aCbxPaperbin.IsChecked() || |
| aRbtColor.GetSavedValue() != aRbtColor.IsChecked() || |
| aRbtGrayscale.GetSavedValue() != aRbtGrayscale.IsChecked() || |
| aRbtBlackWhite.GetSavedValue() != aRbtBlackWhite.IsChecked() ) |
| { |
| SdOptionsPrintItem aOptions( ATTR_OPTIONS_PRINT ); |
| |
| aOptions.GetOptionsPrint().SetDraw( aCbxDraw.IsChecked() ); |
| aOptions.GetOptionsPrint().SetNotes( aCbxNotes.IsChecked() ); |
| aOptions.GetOptionsPrint().SetHandout( aCbxHandout.IsChecked() ); |
| aOptions.GetOptionsPrint().SetOutline( aCbxOutline.IsChecked() ); |
| aOptions.GetOptionsPrint().SetDate( aCbxDate.IsChecked() ); |
| aOptions.GetOptionsPrint().SetTime( aCbxTime.IsChecked() ); |
| aOptions.GetOptionsPrint().SetPagename( aCbxPagename.IsChecked() ); |
| aOptions.GetOptionsPrint().SetHiddenPages( aCbxHiddenPages.IsChecked() ); |
| aOptions.GetOptionsPrint().SetPagesize( aRbtPagesize.IsChecked() ); |
| aOptions.GetOptionsPrint().SetPagetile( aRbtPagetile.IsChecked() ); |
| aOptions.GetOptionsPrint().SetBooklet( aRbtBooklet.IsChecked() ); |
| aOptions.GetOptionsPrint().SetFrontPage( aCbxFront.IsChecked() ); |
| aOptions.GetOptionsPrint().SetBackPage( aCbxBack.IsChecked() ); |
| aOptions.GetOptionsPrint().SetPaperbin( aCbxPaperbin.IsChecked() ); |
| |
| sal_uInt16 nQuality = 0; // Standard, also Color |
| if( aRbtGrayscale.IsChecked() ) |
| nQuality = 1; |
| if( aRbtBlackWhite.IsChecked() ) |
| nQuality = 2; |
| aOptions.GetOptionsPrint().SetOutputQuality( nQuality ); |
| |
| rAttrs.Put( aOptions ); |
| |
| return( sal_True ); |
| } |
| return( sal_False ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SdPrintOptions::Reset( const SfxItemSet& rAttrs ) |
| { |
| const SdOptionsPrintItem* pPrintOpts = NULL; |
| if( SFX_ITEM_SET == rAttrs.GetItemState( ATTR_OPTIONS_PRINT, sal_False, |
| (const SfxPoolItem**) &pPrintOpts ) ) |
| { |
| aCbxDraw.Check( pPrintOpts->GetOptionsPrint().IsDraw() ); |
| aCbxNotes.Check( pPrintOpts->GetOptionsPrint().IsNotes() ); |
| aCbxHandout.Check( pPrintOpts->GetOptionsPrint().IsHandout() ); |
| aCbxOutline.Check( pPrintOpts->GetOptionsPrint().IsOutline() ); |
| aCbxDate.Check( pPrintOpts->GetOptionsPrint().IsDate() ); |
| aCbxTime.Check( pPrintOpts->GetOptionsPrint().IsTime() ); |
| aCbxPagename.Check( pPrintOpts->GetOptionsPrint().IsPagename() ); |
| aCbxHiddenPages.Check( pPrintOpts->GetOptionsPrint().IsHiddenPages() ); |
| aRbtPagesize.Check( pPrintOpts->GetOptionsPrint().IsPagesize() ); |
| aRbtPagetile.Check( pPrintOpts->GetOptionsPrint().IsPagetile() ); |
| aRbtBooklet.Check( pPrintOpts->GetOptionsPrint().IsBooklet() ); |
| aCbxFront.Check( pPrintOpts->GetOptionsPrint().IsFrontPage() ); |
| aCbxBack.Check( pPrintOpts->GetOptionsPrint().IsBackPage() ); |
| aCbxPaperbin.Check( pPrintOpts->GetOptionsPrint().IsPaperbin() ); |
| |
| if( !aRbtPagesize.IsChecked() && |
| !aRbtPagetile.IsChecked() && |
| !aRbtBooklet.IsChecked() ) |
| { |
| aRbtDefault.Check(); |
| } |
| |
| sal_uInt16 nQuality = pPrintOpts->GetOptionsPrint().GetOutputQuality(); |
| if( nQuality == 0 ) |
| aRbtColor.Check(); |
| else if( nQuality == 1 ) |
| aRbtGrayscale.Check(); |
| else |
| aRbtBlackWhite.Check(); |
| } |
| aCbxDraw.SaveValue(); |
| aCbxNotes.SaveValue(); |
| aCbxHandout.SaveValue(); |
| aCbxOutline.SaveValue(); |
| aCbxDate.SaveValue(); |
| aCbxTime.SaveValue(); |
| aCbxPagename.SaveValue(); |
| aCbxHiddenPages.SaveValue(); |
| aRbtPagesize.SaveValue(); |
| aRbtPagetile.SaveValue(); |
| aRbtBooklet.SaveValue(); |
| aCbxPaperbin.SaveValue(); |
| aRbtColor.SaveValue(); |
| aRbtGrayscale.SaveValue(); |
| aRbtBlackWhite.SaveValue(); |
| |
| ClickBookletHdl( NULL ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SfxTabPage* SdPrintOptions::Create( Window* pWindow, |
| const SfxItemSet& rOutAttrs ) |
| { |
| return( new SdPrintOptions( pWindow, rOutAttrs ) ); |
| } |
| |
| //----------------------------------------------------------------------- |
| |
| IMPL_LINK( SdPrintOptions, ClickCheckboxHdl, CheckBox *, pCbx ) |
| { |
| // there must be at least one of them checked |
| if( !aCbxDraw.IsChecked() && !aCbxNotes.IsChecked() && !aCbxOutline.IsChecked() && !aCbxHandout.IsChecked() ) |
| pCbx->Check(); |
| |
| updateControls(); |
| return 0; |
| } |
| |
| //----------------------------------------------------------------------- |
| |
| IMPL_LINK( SdPrintOptions, ClickBookletHdl, CheckBox *, EMPTYARG ) |
| { |
| updateControls(); |
| return 0; |
| } |
| |
| void SdPrintOptions::updateControls() |
| { |
| aCbxFront.Enable(aRbtBooklet.IsChecked()); |
| aCbxBack.Enable(aRbtBooklet.IsChecked()); |
| |
| aCbxDate.Enable( !aRbtBooklet.IsChecked() ); |
| aCbxTime.Enable( !aRbtBooklet.IsChecked() ); |
| |
| aCbxPagename.Enable( !aRbtBooklet.IsChecked() && (aCbxDraw.IsChecked() || aCbxNotes.IsChecked() || aCbxOutline.IsChecked()) ); |
| } |
| |
| /* -----------------------------04.05.01 10:53-------------------------------- |
| |
| ---------------------------------------------------------------------------*/ |
| void lcl_MoveRB_Impl(Window& rBtn, long nXDiff) |
| { |
| Point aPos(rBtn.GetPosPixel()); |
| aPos.X() -= nXDiff; |
| rBtn.SetPosPixel(aPos); |
| } |
| |
| void SdPrintOptions::SetDrawMode() |
| { |
| if(aCbxNotes.IsVisible()) |
| { |
| aCbxNotes.Hide(); |
| aCbxHandout.Hide(); |
| aCbxOutline.Hide(); |
| aCbxDraw.Hide(); |
| aGrpPrint.Hide(); |
| |
| aSeparator1FL.Hide(); |
| long nXDiff = aGrpOutput.GetPosPixel().X() - aGrpPrint.GetPosPixel().X(); |
| lcl_MoveRB_Impl(aRbtColor, nXDiff); |
| lcl_MoveRB_Impl(aRbtGrayscale, nXDiff); |
| lcl_MoveRB_Impl(aRbtBlackWhite, nXDiff); |
| lcl_MoveRB_Impl(aGrpOutput, nXDiff); |
| |
| long nWidth = aGrpOutput.GetSizePixel().Width() + nXDiff; |
| Size aSize(aGrpOutput.GetSizePixel()); |
| aSize.Width() = nWidth; |
| aGrpOutput.SetSizePixel(aSize); |
| } |
| } |
| |
| void SdPrintOptions::PageCreated (SfxAllItemSet |
| #ifdef QUARTZ |
| aSet |
| #endif |
| ) |
| { |
| #ifdef QUARTZ |
| SFX_ITEMSET_ARG (&aSet,pFlagItem,SfxUInt32Item,SID_SDMODE_FLAG,sal_False); |
| if (pFlagItem) |
| { |
| sal_uInt32 nFlags=pFlagItem->GetValue(); |
| if ( ( nFlags & SD_DRAW_MODE ) == SD_DRAW_MODE ) |
| SetDrawMode(); |
| } |
| #else |
| SetDrawMode(); |
| #endif |
| } |
| |