1f6e50924SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3f6e50924SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4f6e50924SAndrew Rist * or more contributor license agreements. See the NOTICE file 5f6e50924SAndrew Rist * distributed with this work for additional information 6f6e50924SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7f6e50924SAndrew Rist * to you under the Apache License, Version 2.0 (the 8f6e50924SAndrew Rist * "License"); you may not use this file except in compliance 9f6e50924SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11f6e50924SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13f6e50924SAndrew Rist * Unless required by applicable law or agreed to in writing, 14f6e50924SAndrew Rist * software distributed under the License is distributed on an 15f6e50924SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16f6e50924SAndrew Rist * KIND, either express or implied. See the License for the 17f6e50924SAndrew Rist * specific language governing permissions and limitations 18f6e50924SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20f6e50924SAndrew Rist *************************************************************/ 21f6e50924SAndrew Rist 22cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 23cdf0e10cSrcweir #include "precompiled_svx.hxx" 24cdf0e10cSrcweir 25cdf0e10cSrcweir #include <tools/shl.hxx> 26cdf0e10cSrcweir #include <svl/itemiter.hxx> 27cdf0e10cSrcweir #include <sfx2/app.hxx> 28cdf0e10cSrcweir #include <sfx2/objsh.hxx> 29cdf0e10cSrcweir #include <sfx2/module.hxx> 30cdf0e10cSrcweir #include <vcl/msgbox.hxx> 31cdf0e10cSrcweir #include <vcl/graph.hxx> 32cdf0e10cSrcweir #include <sfx2/sfxsids.hrc> 33cdf0e10cSrcweir #include <svx/svxids.hrc> 34cdf0e10cSrcweir #include <svx/dialogs.hrc> 35cdf0e10cSrcweir #include "hdft.hrc" 36cdf0e10cSrcweir #include <svl/intitem.hxx> 37cdf0e10cSrcweir #define _SVX_HDFT_CXX 38cdf0e10cSrcweir #include <svx/hdft.hxx> 39cdf0e10cSrcweir #include <svx/pageitem.hxx> 40cdf0e10cSrcweir #include "svx/dlgutil.hxx" 41cdf0e10cSrcweir #include <svx/dialmgr.hxx> 42cdf0e10cSrcweir #include "svx/htmlmode.hxx" 43cdf0e10cSrcweir #include <editeng/brshitem.hxx> 44cdf0e10cSrcweir #include <editeng/lrspitem.hxx> 45cdf0e10cSrcweir #include <editeng/ulspitem.hxx> 46cdf0e10cSrcweir #include <editeng/shaditem.hxx> 47cdf0e10cSrcweir #include <editeng/sizeitem.hxx> 48cdf0e10cSrcweir #include <editeng/boxitem.hxx> 49cdf0e10cSrcweir #include <svx/svxdlg.hxx> //CHINA001 50cdf0e10cSrcweir #include <svx/dialogs.hrc> //CHINA001 51*56b35d86SArmin Le Grand 52*56b35d86SArmin Le Grand //UUUU 53*56b35d86SArmin Le Grand #include <svx/xdef.hxx> 54*56b35d86SArmin Le Grand #include <svx/xenum.hxx> 55*56b35d86SArmin Le Grand #include <svx/xfillit0.hxx> 56*56b35d86SArmin Le Grand #include <svx/unobrushitemhelper.hxx> 57*56b35d86SArmin Le Grand #include <sfx2/request.hxx> 58*56b35d86SArmin Le Grand 59cdf0e10cSrcweir // static ---------------------------------------------------------------- 60cdf0e10cSrcweir 61cdf0e10cSrcweir // --> OD 2004-06-18 #i19922# 62cdf0e10cSrcweir //static const long MINBODY = 284; // 0,5cm in twips aufgerundet 63cdf0e10cSrcweir static const long MINBODY = 56; // 1mm in twips rounded 64cdf0e10cSrcweir 65cdf0e10cSrcweir // default distance to Header or footer 66cdf0e10cSrcweir static const long DEF_DIST_WRITER = 500; // 5mm (Writer) 67cdf0e10cSrcweir static const long DEF_DIST_CALC = 250; // 2,5mm (Calc) 68cdf0e10cSrcweir 69cdf0e10cSrcweir static sal_uInt16 pRanges[] = 70cdf0e10cSrcweir { 71cdf0e10cSrcweir SID_ATTR_BRUSH, SID_ATTR_BRUSH, 72*56b35d86SArmin Le Grand 73*56b35d86SArmin Le Grand //UUUU Support DrawingLayer FillStyles (no real call to below GetRanges() 74*56b35d86SArmin Le Grand // detected, still do the complete transition) 75*56b35d86SArmin Le Grand XATTR_FILL_FIRST, XATTR_FILL_LAST, 76*56b35d86SArmin Le Grand 77cdf0e10cSrcweir SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER, 78cdf0e10cSrcweir SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER, 79cdf0e10cSrcweir SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW, 80cdf0e10cSrcweir SID_ATTR_LRSPACE, SID_ATTR_LRSPACE, 81cdf0e10cSrcweir SID_ATTR_ULSPACE, SID_ATTR_ULSPACE, 82cdf0e10cSrcweir SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE, 83cdf0e10cSrcweir SID_ATTR_PAGE_HEADERSET, SID_ATTR_PAGE_HEADERSET, 84cdf0e10cSrcweir SID_ATTR_PAGE_FOOTERSET, SID_ATTR_PAGE_FOOTERSET, 85cdf0e10cSrcweir SID_ATTR_PAGE_ON, SID_ATTR_PAGE_ON, 86cdf0e10cSrcweir SID_ATTR_PAGE_DYNAMIC, SID_ATTR_PAGE_DYNAMIC, 87cdf0e10cSrcweir SID_ATTR_PAGE_SHARED, SID_ATTR_PAGE_SHARED, 88cdf0e10cSrcweir SID_ATTR_HDFT_DYNAMIC_SPACING, SID_ATTR_HDFT_DYNAMIC_SPACING, 89cdf0e10cSrcweir 0 90cdf0e10cSrcweir }; 91cdf0e10cSrcweir 92cdf0e10cSrcweir /*-------------------------------------------------------------------- 93cdf0e10cSrcweir Beschreibung: 94cdf0e10cSrcweir --------------------------------------------------------------------*/ 95cdf0e10cSrcweir 96cdf0e10cSrcweir // gibt den Bereich der Which-Werte zurueck 97cdf0e10cSrcweir 98cdf0e10cSrcweir 99cdf0e10cSrcweir sal_uInt16* SvxHeaderPage::GetRanges() 100cdf0e10cSrcweir { 101cdf0e10cSrcweir return pRanges; 102cdf0e10cSrcweir } 103cdf0e10cSrcweir 104cdf0e10cSrcweir //------------------------------------------------------------------------ 105cdf0e10cSrcweir 106cdf0e10cSrcweir SfxTabPage* SvxHeaderPage::Create( Window* pParent, const SfxItemSet& rSet ) 107cdf0e10cSrcweir { 108cdf0e10cSrcweir return new SvxHeaderPage( pParent, rSet ); 109cdf0e10cSrcweir } 110cdf0e10cSrcweir 111cdf0e10cSrcweir //------------------------------------------------------------------------ 112cdf0e10cSrcweir 113cdf0e10cSrcweir sal_uInt16* SvxFooterPage::GetRanges() 114cdf0e10cSrcweir { 115cdf0e10cSrcweir return pRanges; 116cdf0e10cSrcweir } 117cdf0e10cSrcweir 118cdf0e10cSrcweir // ----------------------------------------------------------------------- 119cdf0e10cSrcweir 120cdf0e10cSrcweir SfxTabPage* SvxFooterPage::Create( Window* pParent, const SfxItemSet& rSet ) 121cdf0e10cSrcweir { 122cdf0e10cSrcweir return new SvxFooterPage( pParent, rSet ); 123cdf0e10cSrcweir } 124cdf0e10cSrcweir 125cdf0e10cSrcweir // ----------------------------------------------------------------------- 126cdf0e10cSrcweir 127cdf0e10cSrcweir SvxHeaderPage::SvxHeaderPage( Window* pParent, const SfxItemSet& rAttr ) : 128cdf0e10cSrcweir 129cdf0e10cSrcweir SvxHFPage( pParent, RID_SVXPAGE_HEADER, rAttr, SID_ATTR_PAGE_HEADERSET ) 130cdf0e10cSrcweir 131cdf0e10cSrcweir { 132cdf0e10cSrcweir } 133cdf0e10cSrcweir 134cdf0e10cSrcweir // ----------------------------------------------------------------------- 135cdf0e10cSrcweir 136cdf0e10cSrcweir SvxFooterPage::SvxFooterPage( Window* pParent, const SfxItemSet& rAttr ) : 137cdf0e10cSrcweir 138cdf0e10cSrcweir SvxHFPage( pParent, RID_SVXPAGE_FOOTER, rAttr, SID_ATTR_PAGE_FOOTERSET ) 139cdf0e10cSrcweir 140cdf0e10cSrcweir { 141cdf0e10cSrcweir } 142cdf0e10cSrcweir 143cdf0e10cSrcweir // ----------------------------------------------------------------------- 144cdf0e10cSrcweir 145*56b35d86SArmin Le Grand SvxHFPage::SvxHFPage( Window* pParent, sal_uInt16 nResId, const SfxItemSet& rAttr, sal_uInt16 nSetId ) 146*56b35d86SArmin Le Grand : SfxTabPage( pParent, SVX_RES( nResId ), rAttr ), 147cdf0e10cSrcweir 148cdf0e10cSrcweir aFrm ( this, SVX_RES( FL_FRAME ) ), 149cdf0e10cSrcweir aTurnOnBox ( this, SVX_RES( CB_TURNON ) ), 150cdf0e10cSrcweir aCntSharedBox ( this, SVX_RES( CB_SHARED ) ), 151cdf0e10cSrcweir aLMLbl ( this, SVX_RES( FT_LMARGIN ) ), 152cdf0e10cSrcweir aLMEdit ( this, SVX_RES( ED_LMARGIN ) ), 153cdf0e10cSrcweir aRMLbl ( this, SVX_RES( FT_RMARGIN ) ), 154cdf0e10cSrcweir aRMEdit ( this, SVX_RES( ED_RMARGIN ) ), 155cdf0e10cSrcweir aDistFT ( this, SVX_RES( FT_DIST ) ), 156cdf0e10cSrcweir aDistEdit ( this, SVX_RES( ED_DIST ) ), 157cdf0e10cSrcweir aDynSpacingCB ( this, SVX_RES( CB_DYNSPACING ) ), 158cdf0e10cSrcweir aHeightFT ( this, SVX_RES( FT_HEIGHT ) ), 159cdf0e10cSrcweir aHeightEdit ( this, SVX_RES( ED_HEIGHT ) ), 160cdf0e10cSrcweir aHeightDynBtn ( this, SVX_RES( CB_HEIGHT_DYN ) ), 161cdf0e10cSrcweir aBspWin ( this, SVX_RES( WN_BSP ) ), 162cdf0e10cSrcweir aBackgroundBtn ( this, SVX_RES( BTN_EXTRAS ) ), 163cdf0e10cSrcweir 164cdf0e10cSrcweir nId ( nSetId ), 165cdf0e10cSrcweir pBBSet ( NULL ), 166cdf0e10cSrcweir 167*56b35d86SArmin Le Grand // bitfield 168*56b35d86SArmin Le Grand mbDisableQueryBox(false), 169*56b35d86SArmin Le Grand mbEnableBackgroundSelector(true), 170*56b35d86SArmin Le Grand mbEnableDrawingLayerFillStyles(false) 171cdf0e10cSrcweir { 172cdf0e10cSrcweir InitHandler(); 173cdf0e10cSrcweir aBspWin.EnableRTL( sal_False ); 174cdf0e10cSrcweir 175cdf0e10cSrcweir // diese Page braucht ExchangeSupport 176cdf0e10cSrcweir SetExchangeSupport(); 177cdf0e10cSrcweir 178cdf0e10cSrcweir FreeResource(); 179cdf0e10cSrcweir 180cdf0e10cSrcweir // Metrik einstellen 181cdf0e10cSrcweir FieldUnit eFUnit = GetModuleFieldUnit( rAttr ); 182cdf0e10cSrcweir SetFieldUnit( aDistEdit, eFUnit ); 183cdf0e10cSrcweir SetFieldUnit( aHeightEdit, eFUnit ); 184cdf0e10cSrcweir SetFieldUnit( aLMEdit, eFUnit ); 185cdf0e10cSrcweir SetFieldUnit( aRMEdit, eFUnit ); 186cdf0e10cSrcweir 187cdf0e10cSrcweir aTurnOnBox.SetAccessibleRelationMemberOf( &aFrm ); 188cdf0e10cSrcweir aCntSharedBox.SetAccessibleRelationMemberOf( &aFrm ); 189cdf0e10cSrcweir aLMLbl.SetAccessibleRelationMemberOf( &aFrm ); 190cdf0e10cSrcweir aLMEdit.SetAccessibleRelationMemberOf( &aFrm ); 191cdf0e10cSrcweir aRMLbl.SetAccessibleRelationMemberOf( &aFrm ); 192cdf0e10cSrcweir aRMEdit.SetAccessibleRelationMemberOf( &aFrm ); 193cdf0e10cSrcweir aDistFT.SetAccessibleRelationMemberOf( &aFrm ); 194cdf0e10cSrcweir aDistEdit.SetAccessibleRelationMemberOf( &aFrm ); 195cdf0e10cSrcweir aDynSpacingCB.SetAccessibleRelationMemberOf( &aFrm ); 196cdf0e10cSrcweir aHeightFT.SetAccessibleRelationMemberOf( &aFrm ); 197cdf0e10cSrcweir aHeightEdit.SetAccessibleRelationMemberOf( &aFrm ); 198cdf0e10cSrcweir aHeightDynBtn.SetAccessibleRelationMemberOf( &aFrm ); 199cdf0e10cSrcweir aBackgroundBtn.SetAccessibleRelationMemberOf(&aFrm); 200cdf0e10cSrcweir } 201cdf0e10cSrcweir 202cdf0e10cSrcweir // ----------------------------------------------------------------------- 203cdf0e10cSrcweir 204cdf0e10cSrcweir SvxHFPage::~SvxHFPage() 205cdf0e10cSrcweir { 206cdf0e10cSrcweir delete pBBSet; 207cdf0e10cSrcweir } 208cdf0e10cSrcweir 209cdf0e10cSrcweir // ----------------------------------------------------------------------- 210cdf0e10cSrcweir 211cdf0e10cSrcweir sal_Bool SvxHFPage::FillItemSet( SfxItemSet& rSet ) 212cdf0e10cSrcweir { 213cdf0e10cSrcweir const sal_uInt16 nWSize = GetWhich(SID_ATTR_PAGE_SIZE); 214cdf0e10cSrcweir const sal_uInt16 nWLRSpace = GetWhich(SID_ATTR_LRSPACE); 215cdf0e10cSrcweir const sal_uInt16 nWULSpace = GetWhich(SID_ATTR_ULSPACE); 216cdf0e10cSrcweir const sal_uInt16 nWOn = GetWhich(SID_ATTR_PAGE_ON); 217cdf0e10cSrcweir const sal_uInt16 nWDynamic = GetWhich(SID_ATTR_PAGE_DYNAMIC); 218cdf0e10cSrcweir const sal_uInt16 nWDynSpacing = GetWhich(SID_ATTR_HDFT_DYNAMIC_SPACING); 219cdf0e10cSrcweir const sal_uInt16 nWShared = GetWhich(SID_ATTR_PAGE_SHARED); 220cdf0e10cSrcweir const sal_uInt16 nWBrush = GetWhich(SID_ATTR_BRUSH); 221cdf0e10cSrcweir const sal_uInt16 nWBox = GetWhich(SID_ATTR_BORDER_OUTER); 222cdf0e10cSrcweir const sal_uInt16 nWBoxInfo = GetWhich(SID_ATTR_BORDER_INNER); 223cdf0e10cSrcweir const sal_uInt16 nWShadow = GetWhich(SID_ATTR_BORDER_SHADOW); 224*56b35d86SArmin Le Grand 225*56b35d86SArmin Le Grand const sal_uInt16 aWhichTab[] = { 226*56b35d86SArmin Le Grand nWSize, nWSize, 227cdf0e10cSrcweir nWLRSpace, nWLRSpace, 228cdf0e10cSrcweir nWULSpace, nWULSpace, 229cdf0e10cSrcweir nWOn, nWOn, 230cdf0e10cSrcweir nWDynamic, nWDynamic, 231cdf0e10cSrcweir nWShared, nWShared, 232cdf0e10cSrcweir nWBrush, nWBrush, 233cdf0e10cSrcweir nWBoxInfo, nWBoxInfo, 234cdf0e10cSrcweir nWBox, nWBox, 235cdf0e10cSrcweir nWShadow, nWShadow, 236cdf0e10cSrcweir nWDynSpacing, nWDynSpacing, 237*56b35d86SArmin Le Grand 238*56b35d86SArmin Le Grand //UUUU take over DrawingLayer FillStyles 239*56b35d86SArmin Le Grand XATTR_FILL_FIRST, XATTR_FILL_LAST, // [1014 240*56b35d86SArmin Le Grand 241*56b35d86SArmin Le Grand 0, 0}; 242*56b35d86SArmin Le Grand 243cdf0e10cSrcweir const SfxItemSet& rOldSet = GetItemSet(); 244cdf0e10cSrcweir SfxItemPool* pPool = rOldSet.GetPool(); 245cdf0e10cSrcweir DBG_ASSERT(pPool,"no pool :-("); 246cdf0e10cSrcweir SfxMapUnit eUnit = pPool->GetMetric(nWSize); 247cdf0e10cSrcweir SfxItemSet aSet(*pPool,aWhichTab); 248cdf0e10cSrcweir 249*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 250*56b35d86SArmin Le Grand { 251*56b35d86SArmin Le Grand //UUUU When using the XATTR_FILLSTYLE DrawingLayer FillStyle definition 252*56b35d86SArmin Le Grand // extra action has to be done here since the pool default is XFILL_SOLID 253*56b35d86SArmin Le Grand // instead of XFILL_NONE (to have the default blue fill color at start). 254*56b35d86SArmin Le Grand aSet.Put(XFillStyleItem(XFILL_NONE)); 255*56b35d86SArmin Le Grand } 256*56b35d86SArmin Le Grand 257cdf0e10cSrcweir //-------------------------------------------------------------------- 258cdf0e10cSrcweir 259cdf0e10cSrcweir aSet.Put( SfxBoolItem( nWOn, aTurnOnBox.IsChecked() ) ); 260cdf0e10cSrcweir aSet.Put( SfxBoolItem( nWDynamic, aHeightDynBtn.IsChecked() ) ); 261cdf0e10cSrcweir aSet.Put( SfxBoolItem( nWShared, aCntSharedBox.IsChecked() ) ); 262cdf0e10cSrcweir if(aDynSpacingCB.IsVisible() && SFX_WHICH_MAX > nWDynSpacing) 263cdf0e10cSrcweir { 264cdf0e10cSrcweir SfxBoolItem* pBoolItem = (SfxBoolItem*)pPool->GetDefaultItem(nWDynSpacing).Clone(); 265cdf0e10cSrcweir pBoolItem->SetValue(aDynSpacingCB.IsChecked()); 266cdf0e10cSrcweir aSet.Put(*pBoolItem); 267cdf0e10cSrcweir delete pBoolItem; 268cdf0e10cSrcweir } 269cdf0e10cSrcweir 270cdf0e10cSrcweir // Groesse 271cdf0e10cSrcweir SvxSizeItem aSizeItem( (const SvxSizeItem&)rOldSet.Get( nWSize ) ); 272cdf0e10cSrcweir Size aSize( aSizeItem.GetSize() ); 273cdf0e10cSrcweir long nDist = GetCoreValue( aDistEdit, eUnit ); 274cdf0e10cSrcweir long nH = GetCoreValue( aHeightEdit, eUnit ); 275cdf0e10cSrcweir 276cdf0e10cSrcweir // fixe Hoehe? 277cdf0e10cSrcweir // if ( !aHeightDynBtn.IsChecked() ) 278cdf0e10cSrcweir nH += nDist; // dann Abstand dazu addieren 279cdf0e10cSrcweir aSize.Height() = nH; 280cdf0e10cSrcweir aSizeItem.SetSize( aSize ); 281cdf0e10cSrcweir aSet.Put( aSizeItem ); 282cdf0e10cSrcweir 283cdf0e10cSrcweir // Raender 284cdf0e10cSrcweir SvxLRSpaceItem aLR( nWLRSpace ); 285cdf0e10cSrcweir aLR.SetLeft( (sal_uInt16)GetCoreValue( aLMEdit, eUnit ) ); 286cdf0e10cSrcweir aLR.SetRight( (sal_uInt16)GetCoreValue( aRMEdit, eUnit ) ); 287cdf0e10cSrcweir aSet.Put( aLR ); 288cdf0e10cSrcweir 289cdf0e10cSrcweir SvxULSpaceItem aUL( nWULSpace ); 290cdf0e10cSrcweir if ( nId == SID_ATTR_PAGE_HEADERSET ) 291cdf0e10cSrcweir aUL.SetLower( (sal_uInt16)nDist ); 292cdf0e10cSrcweir else 293cdf0e10cSrcweir aUL.SetUpper( (sal_uInt16)nDist ); 294cdf0e10cSrcweir aSet.Put( aUL ); 295cdf0e10cSrcweir 296cdf0e10cSrcweir // Hintergrund und Umrandung? 297cdf0e10cSrcweir if(pBBSet) 298*56b35d86SArmin Le Grand { 299cdf0e10cSrcweir aSet.Put(*pBBSet); 300*56b35d86SArmin Le Grand } 301cdf0e10cSrcweir else 302cdf0e10cSrcweir { 303cdf0e10cSrcweir const SfxItemSet* _pSet; 304cdf0e10cSrcweir const SfxPoolItem* pItem; 305cdf0e10cSrcweir 306*56b35d86SArmin Le Grand if(SFX_ITEM_SET == GetItemSet().GetItemState(GetWhich(nId), sal_False, &pItem)) 307cdf0e10cSrcweir { 308*56b35d86SArmin Le Grand _pSet = &(static_cast< const SvxSetItem* >(pItem)->GetItemSet()); 309cdf0e10cSrcweir 310cdf0e10cSrcweir if(_pSet->GetItemState(nWBrush) == SFX_ITEM_SET) 311*56b35d86SArmin Le Grand { 312*56b35d86SArmin Le Grand aSet.Put(_pSet->Get(nWBrush)); 313*56b35d86SArmin Le Grand } 314*56b35d86SArmin Le Grand 315cdf0e10cSrcweir if(_pSet->GetItemState(nWBoxInfo) == SFX_ITEM_SET) 316*56b35d86SArmin Le Grand { 317*56b35d86SArmin Le Grand aSet.Put(_pSet->Get(nWBoxInfo)); 318*56b35d86SArmin Le Grand } 319*56b35d86SArmin Le Grand 320cdf0e10cSrcweir if(_pSet->GetItemState(nWBox) == SFX_ITEM_SET) 321*56b35d86SArmin Le Grand { 322*56b35d86SArmin Le Grand aSet.Put(_pSet->Get(nWBox)); 323*56b35d86SArmin Le Grand } 324*56b35d86SArmin Le Grand 325cdf0e10cSrcweir if(_pSet->GetItemState(nWShadow) == SFX_ITEM_SET) 326*56b35d86SArmin Le Grand { 327*56b35d86SArmin Le Grand aSet.Put(_pSet->Get(nWShadow)); 328*56b35d86SArmin Le Grand } 329*56b35d86SArmin Le Grand 330*56b35d86SArmin Le Grand //UUUU take care of [XATTR_XATTR_FILL_FIRST .. XATTR_FILL_LAST] 331*56b35d86SArmin Le Grand for(sal_uInt16 nFillStyleId(XATTR_FILL_FIRST); nFillStyleId <= XATTR_FILL_LAST; nFillStyleId++) 332*56b35d86SArmin Le Grand { 333*56b35d86SArmin Le Grand if(_pSet->GetItemState(nFillStyleId) == SFX_ITEM_SET) 334*56b35d86SArmin Le Grand { 335*56b35d86SArmin Le Grand aSet.Put(_pSet->Get(nFillStyleId)); 336*56b35d86SArmin Le Grand } 337*56b35d86SArmin Le Grand } 338cdf0e10cSrcweir } 339cdf0e10cSrcweir } 340cdf0e10cSrcweir 341cdf0e10cSrcweir // Das SetItem wegschreiben 342cdf0e10cSrcweir SvxSetItem aSetItem( GetWhich( nId ), aSet ); 343cdf0e10cSrcweir rSet.Put( aSetItem ); 344cdf0e10cSrcweir 345cdf0e10cSrcweir return sal_True; 346cdf0e10cSrcweir } 347cdf0e10cSrcweir 348cdf0e10cSrcweir // ----------------------------------------------------------------------- 349cdf0e10cSrcweir void SvxHFPage::Reset( const SfxItemSet& rSet ) 350cdf0e10cSrcweir { 351cdf0e10cSrcweir ActivatePage( rSet ); 352cdf0e10cSrcweir ResetBackground_Impl( rSet ); 353cdf0e10cSrcweir 354cdf0e10cSrcweir SfxItemPool* pPool = GetItemSet().GetPool(); 355cdf0e10cSrcweir DBG_ASSERT( pPool, "Wo ist der Pool" ); 356cdf0e10cSrcweir SfxMapUnit eUnit = pPool->GetMetric( GetWhich( SID_ATTR_PAGE_SIZE ) ); 357cdf0e10cSrcweir 358cdf0e10cSrcweir // Kopf-/Fusszeilen-Attribute auswerten 359cdf0e10cSrcweir // 360cdf0e10cSrcweir const SvxSetItem* pSetItem = 0; 361cdf0e10cSrcweir 362cdf0e10cSrcweir if ( SFX_ITEM_SET == rSet.GetItemState( GetWhich(nId), sal_False, 363cdf0e10cSrcweir (const SfxPoolItem**)&pSetItem ) ) 364cdf0e10cSrcweir { 365cdf0e10cSrcweir const SfxItemSet& rHeaderSet = pSetItem->GetItemSet(); 366cdf0e10cSrcweir const SfxBoolItem& rHeaderOn = 367cdf0e10cSrcweir (const SfxBoolItem&)rHeaderSet.Get(GetWhich(SID_ATTR_PAGE_ON)); 368cdf0e10cSrcweir 369cdf0e10cSrcweir aTurnOnBox.Check(rHeaderOn.GetValue()); 370cdf0e10cSrcweir 371cdf0e10cSrcweir if ( rHeaderOn.GetValue() ) 372cdf0e10cSrcweir { 373cdf0e10cSrcweir const SfxBoolItem& rDynamic = 374cdf0e10cSrcweir (const SfxBoolItem&)rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_DYNAMIC ) ); 375cdf0e10cSrcweir const SfxBoolItem& rShared = 376cdf0e10cSrcweir (const SfxBoolItem&)rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SHARED ) ); 377cdf0e10cSrcweir const SvxSizeItem& rSize = 378cdf0e10cSrcweir (const SvxSizeItem&)rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) ); 379cdf0e10cSrcweir const SvxULSpaceItem& rUL = 380cdf0e10cSrcweir (const SvxULSpaceItem&)rHeaderSet.Get( GetWhich( SID_ATTR_ULSPACE ) ); 381cdf0e10cSrcweir const SvxLRSpaceItem& rLR = 382cdf0e10cSrcweir (const SvxLRSpaceItem&)rHeaderSet.Get( GetWhich( SID_ATTR_LRSPACE ) ); 383cdf0e10cSrcweir if(aDynSpacingCB.IsVisible()) 384cdf0e10cSrcweir { 385cdf0e10cSrcweir const SfxBoolItem& rDynSpacing = 386cdf0e10cSrcweir (const SfxBoolItem&)rHeaderSet.Get(GetWhich(SID_ATTR_HDFT_DYNAMIC_SPACING)); 387cdf0e10cSrcweir aDynSpacingCB.Check(rDynSpacing.GetValue()); 388cdf0e10cSrcweir } 389cdf0e10cSrcweir 390cdf0e10cSrcweir 391cdf0e10cSrcweir if ( nId == SID_ATTR_PAGE_HEADERSET ) 392cdf0e10cSrcweir { // Kopfzeile 393cdf0e10cSrcweir SetMetricValue( aDistEdit, rUL.GetLower(), eUnit ); 394cdf0e10cSrcweir SetMetricValue( aHeightEdit, rSize.GetSize().Height() - rUL.GetLower(), eUnit ); 395cdf0e10cSrcweir } 396cdf0e10cSrcweir else 397cdf0e10cSrcweir { // Fusszeile 398cdf0e10cSrcweir SetMetricValue( aDistEdit, rUL.GetUpper(), eUnit ); 399cdf0e10cSrcweir SetMetricValue( aHeightEdit, rSize.GetSize().Height() - rUL.GetUpper(), eUnit ); 400cdf0e10cSrcweir } 401cdf0e10cSrcweir 402cdf0e10cSrcweir aHeightDynBtn.Check(rDynamic.GetValue()); 403cdf0e10cSrcweir SetMetricValue( aLMEdit, rLR.GetLeft(), eUnit ); 404cdf0e10cSrcweir SetMetricValue( aRMEdit, rLR.GetRight(), eUnit ); 405cdf0e10cSrcweir aCntSharedBox.Check(rShared.GetValue()); 406cdf0e10cSrcweir } 407cdf0e10cSrcweir else 408cdf0e10cSrcweir pSetItem = 0; 409cdf0e10cSrcweir } 410cdf0e10cSrcweir else 411cdf0e10cSrcweir { 412cdf0e10cSrcweir // defaults for distance and height 413cdf0e10cSrcweir long nDefaultDist = DEF_DIST_WRITER; 414cdf0e10cSrcweir const SfxPoolItem* pExt1 = GetItem( rSet, SID_ATTR_PAGE_EXT1 ); 415cdf0e10cSrcweir const SfxPoolItem* pExt2 = GetItem( rSet, SID_ATTR_PAGE_EXT2 ); 416cdf0e10cSrcweir 417cdf0e10cSrcweir if ( pExt1 && pExt1->ISA(SfxBoolItem) && pExt2 && pExt2->ISA(SfxBoolItem) ) 418cdf0e10cSrcweir nDefaultDist = DEF_DIST_CALC; 419cdf0e10cSrcweir 420cdf0e10cSrcweir SetMetricValue( aDistEdit, nDefaultDist, SFX_MAPUNIT_100TH_MM ); 421cdf0e10cSrcweir SetMetricValue( aHeightEdit, 500, SFX_MAPUNIT_100TH_MM ); 422cdf0e10cSrcweir } 423cdf0e10cSrcweir 424cdf0e10cSrcweir if ( !pSetItem ) 425cdf0e10cSrcweir { 426cdf0e10cSrcweir aTurnOnBox.Check( sal_False ); 427cdf0e10cSrcweir aHeightDynBtn.Check( sal_True ); 428cdf0e10cSrcweir aCntSharedBox.Check( sal_True ); 429cdf0e10cSrcweir } 430cdf0e10cSrcweir 431cdf0e10cSrcweir TurnOnHdl(0); 432cdf0e10cSrcweir 433cdf0e10cSrcweir aTurnOnBox.SaveValue(); 434cdf0e10cSrcweir aDistEdit.SaveValue(); 435cdf0e10cSrcweir aHeightEdit.SaveValue(); 436cdf0e10cSrcweir aHeightDynBtn.SaveValue(); 437cdf0e10cSrcweir aLMEdit.SaveValue(); 438cdf0e10cSrcweir aRMEdit.SaveValue(); 439cdf0e10cSrcweir aCntSharedBox.SaveValue(); 440cdf0e10cSrcweir RangeHdl( 0 ); 441cdf0e10cSrcweir 442cdf0e10cSrcweir sal_uInt16 nHtmlMode = 0; 443cdf0e10cSrcweir const SfxPoolItem* pItem = 0; 444cdf0e10cSrcweir SfxObjectShell* pShell; 445cdf0e10cSrcweir if(SFX_ITEM_SET == rSet.GetItemState(SID_HTML_MODE, sal_False, &pItem) || 446cdf0e10cSrcweir ( 0 != (pShell = SfxObjectShell::Current()) && 447cdf0e10cSrcweir 0 != (pItem = pShell->GetItem(SID_HTML_MODE)))) 448cdf0e10cSrcweir { 449cdf0e10cSrcweir nHtmlMode = ((SfxUInt16Item*)pItem)->GetValue(); 450d3eac994SHerbert Dürr if(nHtmlMode & HTMLMODE_ON) 451cdf0e10cSrcweir { 452cdf0e10cSrcweir aCntSharedBox.Hide(); 453cdf0e10cSrcweir aBackgroundBtn.Hide(); 454cdf0e10cSrcweir } 455cdf0e10cSrcweir } 456cdf0e10cSrcweir 457cdf0e10cSrcweir } 458cdf0e10cSrcweir 459cdf0e10cSrcweir /*-------------------------------------------------------------------- 460cdf0e10cSrcweir Beschreibung: Handler initialisieren 461cdf0e10cSrcweir --------------------------------------------------------------------*/ 462cdf0e10cSrcweir 463cdf0e10cSrcweir void SvxHFPage::InitHandler() 464cdf0e10cSrcweir { 465cdf0e10cSrcweir aTurnOnBox.SetClickHdl(LINK(this, SvxHFPage, TurnOnHdl)); 466cdf0e10cSrcweir aDistEdit.SetModifyHdl(LINK(this, SvxHFPage, DistModify)); 467cdf0e10cSrcweir aDistEdit.SetLoseFocusHdl(LINK(this, SvxHFPage, RangeHdl)); 468cdf0e10cSrcweir 469cdf0e10cSrcweir aHeightEdit.SetModifyHdl(LINK(this, SvxHFPage, HeightModify)); 470cdf0e10cSrcweir aHeightEdit.SetLoseFocusHdl(LINK(this,SvxHFPage,RangeHdl)); 471cdf0e10cSrcweir 472cdf0e10cSrcweir aLMEdit.SetModifyHdl(LINK(this, SvxHFPage, BorderModify)); 473cdf0e10cSrcweir aLMEdit.SetLoseFocusHdl(LINK(this, SvxHFPage, RangeHdl)); 474cdf0e10cSrcweir aRMEdit.SetModifyHdl(LINK(this, SvxHFPage, BorderModify)); 475cdf0e10cSrcweir aRMEdit.SetLoseFocusHdl(LINK(this, SvxHFPage, RangeHdl)); 476cdf0e10cSrcweir aBackgroundBtn.SetClickHdl(LINK(this,SvxHFPage, BackgroundHdl)); 477cdf0e10cSrcweir } 478cdf0e10cSrcweir 479cdf0e10cSrcweir /*-------------------------------------------------------------------- 480cdf0e10cSrcweir Beschreibung: Ein/aus 481cdf0e10cSrcweir --------------------------------------------------------------------*/ 482cdf0e10cSrcweir 483cdf0e10cSrcweir IMPL_LINK( SvxHFPage, TurnOnHdl, CheckBox *, pBox ) 484cdf0e10cSrcweir { 485cdf0e10cSrcweir if ( aTurnOnBox.IsChecked() ) 486cdf0e10cSrcweir { 487cdf0e10cSrcweir aDistFT.Enable(); 488cdf0e10cSrcweir aDistEdit.Enable(); 489cdf0e10cSrcweir aDynSpacingCB.Enable(); 490cdf0e10cSrcweir aHeightFT.Enable(); 491cdf0e10cSrcweir aHeightEdit.Enable(); 492cdf0e10cSrcweir aHeightDynBtn.Enable(); 493cdf0e10cSrcweir aLMLbl.Enable(); 494cdf0e10cSrcweir aLMEdit.Enable(); 495cdf0e10cSrcweir aRMLbl.Enable(); 496cdf0e10cSrcweir aRMEdit.Enable(); 497cdf0e10cSrcweir 498cdf0e10cSrcweir sal_uInt16 nUsage = aBspWin.GetUsage(); 499cdf0e10cSrcweir 500cdf0e10cSrcweir if( nUsage == SVX_PAGE_RIGHT || nUsage == SVX_PAGE_LEFT ) 501cdf0e10cSrcweir aCntSharedBox.Disable(); 502cdf0e10cSrcweir else 503cdf0e10cSrcweir aCntSharedBox.Enable(); 504cdf0e10cSrcweir aBackgroundBtn.Enable(); 505cdf0e10cSrcweir } 506cdf0e10cSrcweir else 507cdf0e10cSrcweir { 508cdf0e10cSrcweir sal_Bool bDelete = sal_True; 509cdf0e10cSrcweir 510*56b35d86SArmin Le Grand if ( !mbDisableQueryBox && pBox && aTurnOnBox.GetSavedValue() == sal_True ) 511cdf0e10cSrcweir bDelete = ( QueryBox( this, SVX_RES( RID_SVXQBX_DELETE_HEADFOOT ) ).Execute() == RET_YES ); 512cdf0e10cSrcweir 513cdf0e10cSrcweir if ( bDelete ) 514cdf0e10cSrcweir { 515cdf0e10cSrcweir aDistFT.Disable(); 516cdf0e10cSrcweir aDistEdit.Disable(); 517cdf0e10cSrcweir aDynSpacingCB.Enable(sal_False); 518cdf0e10cSrcweir aHeightFT.Disable(); 519cdf0e10cSrcweir aHeightEdit.Disable(); 520cdf0e10cSrcweir aHeightDynBtn.Disable(); 521cdf0e10cSrcweir 522cdf0e10cSrcweir aLMLbl.Disable(); 523cdf0e10cSrcweir aLMEdit.Disable(); 524cdf0e10cSrcweir aRMLbl.Disable(); 525cdf0e10cSrcweir aRMEdit.Disable(); 526cdf0e10cSrcweir 527cdf0e10cSrcweir aCntSharedBox.Disable(); 528cdf0e10cSrcweir aBackgroundBtn.Disable(); 529cdf0e10cSrcweir } 530cdf0e10cSrcweir else 531cdf0e10cSrcweir aTurnOnBox.Check(); 532cdf0e10cSrcweir } 533cdf0e10cSrcweir UpdateExample(); 534cdf0e10cSrcweir return 0; 535cdf0e10cSrcweir } 536cdf0e10cSrcweir 537cdf0e10cSrcweir /*-------------------------------------------------------------------- 538cdf0e10cSrcweir Beschreibung: Abstand im Bsp Modifizieren 539cdf0e10cSrcweir --------------------------------------------------------------------*/ 540cdf0e10cSrcweir 541cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvxHFPage, DistModify, MetricField *, EMPTYARG ) 542cdf0e10cSrcweir { 543cdf0e10cSrcweir UpdateExample(); 544cdf0e10cSrcweir return 0; 545cdf0e10cSrcweir } 546cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvxHFPage, DistModify, MetricField *, EMPTYARG ) 547cdf0e10cSrcweir 548cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvxHFPage, HeightModify, MetricField *, EMPTYARG ) 549cdf0e10cSrcweir { 550cdf0e10cSrcweir UpdateExample(); 551cdf0e10cSrcweir 552cdf0e10cSrcweir return 0; 553cdf0e10cSrcweir } 554cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvxHFPage, HeightModify, MetricField *, EMPTYARG ) 555cdf0e10cSrcweir 556cdf0e10cSrcweir /*-------------------------------------------------------------------- 557cdf0e10cSrcweir Beschreibung: Raender einstellen 558cdf0e10cSrcweir --------------------------------------------------------------------*/ 559cdf0e10cSrcweir 560cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvxHFPage, BorderModify, MetricField *, EMPTYARG ) 561cdf0e10cSrcweir { 562cdf0e10cSrcweir UpdateExample(); 563cdf0e10cSrcweir return 0; 564cdf0e10cSrcweir } 565cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvxHFPage, BorderModify, MetricField *, EMPTYARG ) 566cdf0e10cSrcweir 567cdf0e10cSrcweir /*-------------------------------------------------------------------- 568cdf0e10cSrcweir Beschreibung: Hintergrund 569cdf0e10cSrcweir --------------------------------------------------------------------*/ 570cdf0e10cSrcweir 571cdf0e10cSrcweir IMPL_LINK( SvxHFPage, BackgroundHdl, Button *, EMPTYARG ) 572cdf0e10cSrcweir { 573cdf0e10cSrcweir if(!pBBSet) 574cdf0e10cSrcweir { 575cdf0e10cSrcweir // nur die n"otigen Items f"uer Umrandung und Hintergrund benutzen 576*56b35d86SArmin Le Grand const sal_uInt16 nOuter(GetWhich(SID_ATTR_BORDER_OUTER)); 577*56b35d86SArmin Le Grand const sal_uInt16 nInner(GetWhich(SID_ATTR_BORDER_INNER, sal_False)); 578*56b35d86SArmin Le Grand const sal_uInt16 nShadow(GetWhich(SID_ATTR_BORDER_SHADOW)); 579cdf0e10cSrcweir 580*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 581*56b35d86SArmin Le Grand { 582*56b35d86SArmin Le Grand pBBSet = new SfxItemSet( 583*56b35d86SArmin Le Grand *GetItemSet().GetPool(), 584*56b35d86SArmin Le Grand XATTR_FILL_FIRST, XATTR_FILL_LAST, // DrawingLayer FillStyle definitions 585*56b35d86SArmin Le Grand SID_COLOR_TABLE, SID_BITMAP_LIST, // XPropertyLists for Color, Gradient, Hatch and Graphic fills 586*56b35d86SArmin Le Grand nOuter, nOuter, 587*56b35d86SArmin Le Grand nInner, nInner, 588*56b35d86SArmin Le Grand nShadow, nShadow, 589*56b35d86SArmin Le Grand 0, 0); 590*56b35d86SArmin Le Grand 591*56b35d86SArmin Le Grand //UUUU copy items for XPropertyList entries from the DrawModel so that 592*56b35d86SArmin Le Grand // the Area TabPage can access them 593*56b35d86SArmin Le Grand static const sal_uInt16 nCopyFlags[] = { 594*56b35d86SArmin Le Grand SID_COLOR_TABLE, 595*56b35d86SArmin Le Grand SID_GRADIENT_LIST, 596*56b35d86SArmin Le Grand SID_HATCH_LIST, 597*56b35d86SArmin Le Grand SID_BITMAP_LIST, 598*56b35d86SArmin Le Grand 0 599*56b35d86SArmin Le Grand }; 600*56b35d86SArmin Le Grand 601*56b35d86SArmin Le Grand for(sal_uInt16 a(0); nCopyFlags[a]; a++) 602*56b35d86SArmin Le Grand { 603*56b35d86SArmin Le Grand const SfxPoolItem* pItem = GetItemSet().GetItem(nCopyFlags[a]); 604*56b35d86SArmin Le Grand 605*56b35d86SArmin Le Grand if(pItem) 606*56b35d86SArmin Le Grand { 607*56b35d86SArmin Le Grand pBBSet->Put(*pItem); 608*56b35d86SArmin Le Grand } 609*56b35d86SArmin Le Grand else 610*56b35d86SArmin Le Grand { 611*56b35d86SArmin Le Grand OSL_ENSURE(false, "XPropertyList missing (!)"); 612*56b35d86SArmin Le Grand } 613*56b35d86SArmin Le Grand } 614*56b35d86SArmin Le Grand } 615*56b35d86SArmin Le Grand else 616*56b35d86SArmin Le Grand { 617*56b35d86SArmin Le Grand const sal_uInt16 nBrush(GetWhich(SID_ATTR_BRUSH)); 618*56b35d86SArmin Le Grand 619*56b35d86SArmin Le Grand pBBSet = new SfxItemSet( 620*56b35d86SArmin Le Grand *GetItemSet().GetPool(), 621*56b35d86SArmin Le Grand nBrush, nBrush, 622*56b35d86SArmin Le Grand nOuter, nOuter, 623*56b35d86SArmin Le Grand nInner, nInner, 624*56b35d86SArmin Le Grand nShadow, nShadow, 625*56b35d86SArmin Le Grand 0, 0); 626*56b35d86SArmin Le Grand } 627*56b35d86SArmin Le Grand 628cdf0e10cSrcweir const SfxPoolItem* pItem; 629cdf0e10cSrcweir 630*56b35d86SArmin Le Grand if(SFX_ITEM_SET == GetItemSet().GetItemState(GetWhich(nId), sal_False, &pItem)) 631*56b35d86SArmin Le Grand { 632*56b35d86SArmin Le Grand // If a SfxItemSet from the SetItem for SID_ATTR_PAGE_HEADERSET or 633*56b35d86SArmin Le Grand // SID_ATTR_PAGE_FOOTERSET exists, use it's content 634cdf0e10cSrcweir pBBSet->Put(((SvxSetItem*)pItem)->GetItemSet()); 635*56b35d86SArmin Le Grand } 636*56b35d86SArmin Le Grand else 637*56b35d86SArmin Le Grand { 638*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 639*56b35d86SArmin Le Grand { 640*56b35d86SArmin Le Grand //UUUU The style for header/footer is not yet created, need to reset 641*56b35d86SArmin Le Grand // XFillStyleItem to XFILL_NONE which is the same as in the style 642*56b35d86SArmin Le Grand // initialization. This needs to be done since the pool default for 643*56b35d86SArmin Le Grand // XFillStyleItem is XFILL_SOLID 644*56b35d86SArmin Le Grand pBBSet->Put(XFillStyleItem(XFILL_NONE)); 645*56b35d86SArmin Le Grand } 646*56b35d86SArmin Le Grand } 647cdf0e10cSrcweir 648*56b35d86SArmin Le Grand if(SFX_ITEM_SET == GetItemSet().GetItemState(nInner, sal_False, &pItem)) 649*56b35d86SArmin Le Grand { 650cdf0e10cSrcweir // das gesetze InfoItem wird immer ben"otigt 651cdf0e10cSrcweir pBBSet->Put(*pItem); 652cdf0e10cSrcweir } 653*56b35d86SArmin Le Grand } 654cdf0e10cSrcweir 655cdf0e10cSrcweir SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); 656*56b35d86SArmin Le Grand 657cdf0e10cSrcweir if(pFact) 658cdf0e10cSrcweir { 659*56b35d86SArmin Le Grand //UUUU 660*56b35d86SArmin Le Grand SfxAbstractTabDialog* pDlg = pFact->CreateSvxBorderBackgroundDlg( 661*56b35d86SArmin Le Grand this, 662*56b35d86SArmin Le Grand *pBBSet, 663*56b35d86SArmin Le Grand mbEnableBackgroundSelector, 664*56b35d86SArmin Le Grand mbEnableDrawingLayerFillStyles); 665*56b35d86SArmin Le Grand 666cdf0e10cSrcweir DBG_ASSERT(pDlg,"Dialogdiet fail!");//CHINA001 667*56b35d86SArmin Le Grand if(RET_OK == pDlg->Execute() && pDlg->GetOutputItemSet()) 668cdf0e10cSrcweir { 669cdf0e10cSrcweir SfxItemIter aIter(*pDlg->GetOutputItemSet()); 670cdf0e10cSrcweir const SfxPoolItem* pItem = aIter.FirstItem(); 671cdf0e10cSrcweir 672cdf0e10cSrcweir while(pItem) 673cdf0e10cSrcweir { 674cdf0e10cSrcweir if(!IsInvalidItem(pItem)) 675*56b35d86SArmin Le Grand { 676cdf0e10cSrcweir pBBSet->Put(*pItem); 677*56b35d86SArmin Le Grand } 678*56b35d86SArmin Le Grand 679cdf0e10cSrcweir pItem = aIter.NextItem(); 680cdf0e10cSrcweir } 681cdf0e10cSrcweir 682cdf0e10cSrcweir //---------------------------------------------------------------- 683*56b35d86SArmin Le Grand { 684*56b35d86SArmin Le Grand drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; 685cdf0e10cSrcweir 686*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 687*56b35d86SArmin Le Grand { 688*56b35d86SArmin Le Grand //UUUU create FillAttributes directly from DrawingLayer FillStyle entries 689*56b35d86SArmin Le Grand aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(*pBBSet)); 690*56b35d86SArmin Le Grand } 691*56b35d86SArmin Le Grand else 692*56b35d86SArmin Le Grand { 693*56b35d86SArmin Le Grand const sal_uInt16 nWhich = GetWhich(SID_ATTR_BRUSH); 694cdf0e10cSrcweir 695cdf0e10cSrcweir if(pBBSet->GetItemState(nWhich) == SFX_ITEM_SET) 696cdf0e10cSrcweir { 697*56b35d86SArmin Le Grand //UUUU create FillAttributes from SvxBrushItem 698*56b35d86SArmin Le Grand const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(pBBSet->Get(nWhich)); 699*56b35d86SArmin Le Grand SfxItemSet aTempSet(*pBBSet->GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST); 700*56b35d86SArmin Le Grand 701*56b35d86SArmin Le Grand setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet); 702*56b35d86SArmin Le Grand aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet)); 703*56b35d86SArmin Le Grand } 704*56b35d86SArmin Le Grand } 705*56b35d86SArmin Le Grand 706*56b35d86SArmin Le Grand if(SID_ATTR_PAGE_HEADERSET == nId) 707*56b35d86SArmin Le Grand { 708*56b35d86SArmin Le Grand //aBspWin.SetHdColor(rItem.GetColor()); 709*56b35d86SArmin Le Grand aBspWin.setHeaderFillAttributes(aFillAttributes); 710*56b35d86SArmin Le Grand } 711cdf0e10cSrcweir else 712*56b35d86SArmin Le Grand { 713*56b35d86SArmin Le Grand //aBspWin.SetFtColor(rItem.GetColor()); 714*56b35d86SArmin Le Grand aBspWin.setFooterFillAttributes(aFillAttributes); 715*56b35d86SArmin Le Grand } 716cdf0e10cSrcweir } 717cdf0e10cSrcweir 718cdf0e10cSrcweir //---------------------------------------------------------------- 719*56b35d86SArmin Le Grand { 720*56b35d86SArmin Le Grand const sal_uInt16 nWhich = GetWhich(SID_ATTR_BORDER_OUTER); 721cdf0e10cSrcweir 722cdf0e10cSrcweir if(pBBSet->GetItemState(nWhich) == SFX_ITEM_SET) 723cdf0e10cSrcweir { 724cdf0e10cSrcweir const SvxBoxItem& rItem = (const SvxBoxItem&)pBBSet->Get(nWhich); 725cdf0e10cSrcweir 726cdf0e10cSrcweir if(nId == SID_ATTR_PAGE_HEADERSET) 727cdf0e10cSrcweir aBspWin.SetHdBorder(rItem); 728cdf0e10cSrcweir else 729cdf0e10cSrcweir aBspWin.SetFtBorder(rItem); 730cdf0e10cSrcweir } 731*56b35d86SArmin Le Grand } 732cdf0e10cSrcweir 733cdf0e10cSrcweir UpdateExample(); 734cdf0e10cSrcweir } 735cdf0e10cSrcweir delete pDlg; 736cdf0e10cSrcweir } 737cdf0e10cSrcweir return 0; 738cdf0e10cSrcweir } 739cdf0e10cSrcweir 740cdf0e10cSrcweir /*-------------------------------------------------------------------- 741cdf0e10cSrcweir Beschreibung: Bsp 742cdf0e10cSrcweir --------------------------------------------------------------------*/ 743cdf0e10cSrcweir 744cdf0e10cSrcweir void SvxHFPage::UpdateExample() 745cdf0e10cSrcweir { 746cdf0e10cSrcweir if ( nId == SID_ATTR_PAGE_HEADERSET ) 747cdf0e10cSrcweir { 748cdf0e10cSrcweir aBspWin.SetHeader( aTurnOnBox.IsChecked() ); 749cdf0e10cSrcweir aBspWin.SetHdHeight( GetCoreValue( aHeightEdit, SFX_MAPUNIT_TWIP ) ); 750cdf0e10cSrcweir aBspWin.SetHdDist( GetCoreValue( aDistEdit, SFX_MAPUNIT_TWIP ) ); 751cdf0e10cSrcweir aBspWin.SetHdLeft( GetCoreValue( aLMEdit, SFX_MAPUNIT_TWIP ) ); 752cdf0e10cSrcweir aBspWin.SetHdRight( GetCoreValue( aRMEdit, SFX_MAPUNIT_TWIP ) ); 753cdf0e10cSrcweir } 754cdf0e10cSrcweir else 755cdf0e10cSrcweir { 756cdf0e10cSrcweir aBspWin.SetFooter( aTurnOnBox.IsChecked() ); 757cdf0e10cSrcweir aBspWin.SetFtHeight( GetCoreValue( aHeightEdit, SFX_MAPUNIT_TWIP ) ); 758cdf0e10cSrcweir aBspWin.SetFtDist( GetCoreValue( aDistEdit, SFX_MAPUNIT_TWIP ) ); 759cdf0e10cSrcweir aBspWin.SetFtLeft( GetCoreValue( aLMEdit, SFX_MAPUNIT_TWIP ) ); 760cdf0e10cSrcweir aBspWin.SetFtRight( GetCoreValue( aRMEdit, SFX_MAPUNIT_TWIP ) ); 761cdf0e10cSrcweir } 762cdf0e10cSrcweir aBspWin.Invalidate(); 763cdf0e10cSrcweir } 764cdf0e10cSrcweir 765cdf0e10cSrcweir /*-------------------------------------------------------------------- 766cdf0e10cSrcweir Beschreibung: Hintergrund im Beispiel setzen 767cdf0e10cSrcweir --------------------------------------------------------------------*/ 768cdf0e10cSrcweir 769cdf0e10cSrcweir void SvxHFPage::ResetBackground_Impl( const SfxItemSet& rSet ) 770cdf0e10cSrcweir { 771*56b35d86SArmin Le Grand sal_uInt16 nWhich(GetWhich(SID_ATTR_PAGE_HEADERSET)); 772cdf0e10cSrcweir 773*56b35d86SArmin Le Grand if(SFX_ITEM_SET == rSet.GetItemState(nWhich, sal_False)) 774cdf0e10cSrcweir { 775*56b35d86SArmin Le Grand const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich, sal_False)); 776cdf0e10cSrcweir const SfxItemSet& rTmpSet = rSetItem.GetItemSet(); 777*56b35d86SArmin Le Grand const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON))); 778cdf0e10cSrcweir 779cdf0e10cSrcweir if(rOn.GetValue()) 780cdf0e10cSrcweir { 781*56b35d86SArmin Le Grand drawinglayer::attribute::SdrAllFillAttributesHelperPtr aHeaderFillAttributes; 782*56b35d86SArmin Le Grand 783*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 784*56b35d86SArmin Le Grand { 785*56b35d86SArmin Le Grand //UUUU create FillAttributes directly from DrawingLayer FillStyle entries 786*56b35d86SArmin Le Grand aHeaderFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rTmpSet)); 787*56b35d86SArmin Le Grand } 788*56b35d86SArmin Le Grand else 789*56b35d86SArmin Le Grand { 790cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BRUSH); 791cdf0e10cSrcweir 792*56b35d86SArmin Le Grand if(SFX_ITEM_SET == rTmpSet.GetItemState(nWhich)) 793cdf0e10cSrcweir { 794*56b35d86SArmin Le Grand //UUUU create FillAttributes from SvxBrushItem 795*56b35d86SArmin Le Grand const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rTmpSet.Get(nWhich)); 796*56b35d86SArmin Le Grand SfxItemSet aTempSet(*rTmpSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST); 797*56b35d86SArmin Le Grand 798*56b35d86SArmin Le Grand setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet); 799*56b35d86SArmin Le Grand aHeaderFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet)); 800cdf0e10cSrcweir } 801*56b35d86SArmin Le Grand } 802*56b35d86SArmin Le Grand 803*56b35d86SArmin Le Grand aBspWin.setHeaderFillAttributes(aHeaderFillAttributes); 804cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BORDER_OUTER); 805cdf0e10cSrcweir 806cdf0e10cSrcweir if(rTmpSet.GetItemState(nWhich) == SFX_ITEM_SET) 807cdf0e10cSrcweir { 808cdf0e10cSrcweir const SvxBoxItem& rItem = 809cdf0e10cSrcweir (const SvxBoxItem&)rTmpSet.Get(nWhich); 810cdf0e10cSrcweir aBspWin.SetHdBorder(rItem); 811cdf0e10cSrcweir } 812cdf0e10cSrcweir } 813cdf0e10cSrcweir } 814cdf0e10cSrcweir 815cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_PAGE_FOOTERSET); 816cdf0e10cSrcweir 817*56b35d86SArmin Le Grand if(SFX_ITEM_SET == rSet.GetItemState(nWhich, sal_False)) 818cdf0e10cSrcweir { 819*56b35d86SArmin Le Grand const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich, sal_False)); 820cdf0e10cSrcweir const SfxItemSet& rTmpSet = rSetItem.GetItemSet(); 821*56b35d86SArmin Le Grand const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON))); 822cdf0e10cSrcweir 823cdf0e10cSrcweir if(rOn.GetValue()) 824cdf0e10cSrcweir { 825*56b35d86SArmin Le Grand drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFooterFillAttributes; 826*56b35d86SArmin Le Grand 827*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 828*56b35d86SArmin Le Grand { 829*56b35d86SArmin Le Grand //UUUU create FillAttributes directly from DrawingLayer FillStyle entries 830*56b35d86SArmin Le Grand aFooterFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rTmpSet)); 831*56b35d86SArmin Le Grand } 832*56b35d86SArmin Le Grand else 833*56b35d86SArmin Le Grand { 834cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BRUSH); 835cdf0e10cSrcweir 836*56b35d86SArmin Le Grand if(SFX_ITEM_SET == rTmpSet.GetItemState(nWhich)) 837cdf0e10cSrcweir { 838*56b35d86SArmin Le Grand //UUUU create FillAttributes from SvxBrushItem 839*56b35d86SArmin Le Grand const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rTmpSet.Get(nWhich)); 840*56b35d86SArmin Le Grand SfxItemSet aTempSet(*rTmpSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST); 841*56b35d86SArmin Le Grand 842*56b35d86SArmin Le Grand setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet); 843*56b35d86SArmin Le Grand aFooterFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet)); 844cdf0e10cSrcweir } 845*56b35d86SArmin Le Grand } 846*56b35d86SArmin Le Grand 847*56b35d86SArmin Le Grand aBspWin.setFooterFillAttributes(aFooterFillAttributes); 848cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BORDER_OUTER); 849cdf0e10cSrcweir 850cdf0e10cSrcweir if(rTmpSet.GetItemState(nWhich) == SFX_ITEM_SET) 851cdf0e10cSrcweir { 852*56b35d86SArmin Le Grand const SvxBoxItem& rItem = static_cast< const SvxBoxItem& >(rTmpSet.Get(nWhich)); 853cdf0e10cSrcweir aBspWin.SetFtBorder(rItem); 854cdf0e10cSrcweir } 855cdf0e10cSrcweir } 856cdf0e10cSrcweir } 857*56b35d86SArmin Le Grand 858*56b35d86SArmin Le Grand drawinglayer::attribute::SdrAllFillAttributesHelperPtr aPageFillAttributes; 859*56b35d86SArmin Le Grand 860*56b35d86SArmin Le Grand if(mbEnableDrawingLayerFillStyles) 861*56b35d86SArmin Le Grand { 862*56b35d86SArmin Le Grand //UUUU create FillAttributes directly from DrawingLayer FillStyle entries 863*56b35d86SArmin Le Grand aPageFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rSet)); 864*56b35d86SArmin Le Grand } 865*56b35d86SArmin Le Grand else 866*56b35d86SArmin Le Grand { 867cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BRUSH); 868cdf0e10cSrcweir 869cdf0e10cSrcweir if(rSet.GetItemState(nWhich) >= SFX_ITEM_AVAILABLE) 870cdf0e10cSrcweir { 871*56b35d86SArmin Le Grand //UUUU create FillAttributes from SvxBrushItem 872*56b35d86SArmin Le Grand const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rSet.Get(nWhich)); 873*56b35d86SArmin Le Grand SfxItemSet aTempSet(*rSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST); 874cdf0e10cSrcweir 875*56b35d86SArmin Le Grand setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet); 876*56b35d86SArmin Le Grand aPageFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet)); 877cdf0e10cSrcweir } 878cdf0e10cSrcweir } 879*56b35d86SArmin Le Grand 880*56b35d86SArmin Le Grand aBspWin.setPageFillAttributes(aPageFillAttributes); 881cdf0e10cSrcweir nWhich = GetWhich(SID_ATTR_BORDER_OUTER); 882cdf0e10cSrcweir 883cdf0e10cSrcweir if(rSet.GetItemState(nWhich) >= SFX_ITEM_AVAILABLE) 884cdf0e10cSrcweir { 885*56b35d86SArmin Le Grand const SvxBoxItem& rItem = static_cast< const SvxBoxItem& >(rSet.Get(nWhich)); 886cdf0e10cSrcweir aBspWin.SetBorder(rItem); 887cdf0e10cSrcweir } 888cdf0e10cSrcweir } 889cdf0e10cSrcweir 890cdf0e10cSrcweir /*-------------------------------------------------------------------- 891cdf0e10cSrcweir Beschreibung: 892cdf0e10cSrcweir --------------------------------------------------------------------*/ 893cdf0e10cSrcweir 894cdf0e10cSrcweir void SvxHFPage::ActivatePage( const SfxItemSet& rSet ) 895cdf0e10cSrcweir { 896cdf0e10cSrcweir const SfxPoolItem* pItem = GetItem( rSet, SID_ATTR_LRSPACE ); 897cdf0e10cSrcweir 898cdf0e10cSrcweir if ( pItem ) 899cdf0e10cSrcweir { 900cdf0e10cSrcweir // linken und rechten Rand einstellen 901cdf0e10cSrcweir const SvxLRSpaceItem& rLRSpace = (const SvxLRSpaceItem&)*pItem; 902cdf0e10cSrcweir 903cdf0e10cSrcweir aBspWin.SetLeft( rLRSpace.GetLeft() ); 904cdf0e10cSrcweir aBspWin.SetRight( rLRSpace.GetRight() ); 905cdf0e10cSrcweir } 906cdf0e10cSrcweir else 907cdf0e10cSrcweir { 908cdf0e10cSrcweir aBspWin.SetLeft( 0 ); 909cdf0e10cSrcweir aBspWin.SetRight( 0 ); 910cdf0e10cSrcweir } 911cdf0e10cSrcweir 912cdf0e10cSrcweir pItem = GetItem( rSet, SID_ATTR_ULSPACE ); 913cdf0e10cSrcweir 914cdf0e10cSrcweir if ( pItem ) 915cdf0e10cSrcweir { 916cdf0e10cSrcweir // oberen und unteren Rand einstellen 917cdf0e10cSrcweir const SvxULSpaceItem& rULSpace = (const SvxULSpaceItem&)*pItem; 918cdf0e10cSrcweir 919cdf0e10cSrcweir aBspWin.SetTop( rULSpace.GetUpper() ); 920cdf0e10cSrcweir aBspWin.SetBottom( rULSpace.GetLower() ); 921cdf0e10cSrcweir } 922cdf0e10cSrcweir else 923cdf0e10cSrcweir { 924cdf0e10cSrcweir aBspWin.SetTop( 0 ); 925cdf0e10cSrcweir aBspWin.SetBottom( 0 ); 926cdf0e10cSrcweir } 927cdf0e10cSrcweir 928cdf0e10cSrcweir sal_uInt16 nUsage = SVX_PAGE_ALL; 929cdf0e10cSrcweir pItem = GetItem( rSet, SID_ATTR_PAGE ); 930cdf0e10cSrcweir 931cdf0e10cSrcweir if ( pItem ) 932cdf0e10cSrcweir nUsage = ( (const SvxPageItem*)pItem )->GetPageUsage(); 933cdf0e10cSrcweir 934cdf0e10cSrcweir aBspWin.SetUsage( nUsage ); 935cdf0e10cSrcweir 936cdf0e10cSrcweir if ( SVX_PAGE_RIGHT == nUsage || SVX_PAGE_LEFT == nUsage ) 937cdf0e10cSrcweir aCntSharedBox.Disable(); 938cdf0e10cSrcweir else 939cdf0e10cSrcweir aCntSharedBox.Enable(); 940cdf0e10cSrcweir pItem = GetItem( rSet, SID_ATTR_PAGE_SIZE ); 941cdf0e10cSrcweir 942cdf0e10cSrcweir if ( pItem ) 943cdf0e10cSrcweir { 944cdf0e10cSrcweir // Orientation und Size aus dem PageItem 945cdf0e10cSrcweir const SvxSizeItem& rSize = (const SvxSizeItem&)*pItem; 946cdf0e10cSrcweir // die Groesse ist ggf. schon geswappt (Querformat) 947cdf0e10cSrcweir aBspWin.SetSize( rSize.GetSize() ); 948cdf0e10cSrcweir } 949cdf0e10cSrcweir 950cdf0e10cSrcweir // Kopfzeilen-Attribute auswerten 951cdf0e10cSrcweir const SvxSetItem* pSetItem = 0; 952cdf0e10cSrcweir 953cdf0e10cSrcweir if ( SFX_ITEM_SET == rSet.GetItemState( GetWhich( SID_ATTR_PAGE_HEADERSET ), 954cdf0e10cSrcweir sal_False, 955cdf0e10cSrcweir (const SfxPoolItem**)&pSetItem ) ) 956cdf0e10cSrcweir { 957cdf0e10cSrcweir const SfxItemSet& rHeaderSet = pSetItem->GetItemSet(); 958cdf0e10cSrcweir const SfxBoolItem& rHeaderOn = 959cdf0e10cSrcweir (const SfxBoolItem&)rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_ON ) ); 960cdf0e10cSrcweir 961cdf0e10cSrcweir if ( rHeaderOn.GetValue() ) 962cdf0e10cSrcweir { 963cdf0e10cSrcweir const SvxSizeItem& rSize = (const SvxSizeItem&) 964cdf0e10cSrcweir rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) ); 965cdf0e10cSrcweir const SvxULSpaceItem& rUL = (const SvxULSpaceItem&) 966cdf0e10cSrcweir rHeaderSet.Get( GetWhich(SID_ATTR_ULSPACE ) ); 967cdf0e10cSrcweir const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&) 968cdf0e10cSrcweir rHeaderSet.Get( GetWhich( SID_ATTR_LRSPACE ) ); 969cdf0e10cSrcweir long nDist = rUL.GetLower(); 970cdf0e10cSrcweir 971cdf0e10cSrcweir aBspWin.SetHdHeight( rSize.GetSize().Height() - nDist ); 972cdf0e10cSrcweir aBspWin.SetHdDist( nDist ); 973cdf0e10cSrcweir aBspWin.SetHdLeft( rLR.GetLeft() ); 974cdf0e10cSrcweir aBspWin.SetHdRight( rLR.GetRight() ); 975cdf0e10cSrcweir aBspWin.SetHeader( sal_True ); 976cdf0e10cSrcweir } 977cdf0e10cSrcweir else 978cdf0e10cSrcweir pSetItem = 0; 979cdf0e10cSrcweir } 980cdf0e10cSrcweir 981cdf0e10cSrcweir if ( !pSetItem ) 982cdf0e10cSrcweir { 983cdf0e10cSrcweir aBspWin.SetHeader( sal_False ); 984cdf0e10cSrcweir 985cdf0e10cSrcweir if ( SID_ATTR_PAGE_HEADERSET == nId ) 986cdf0e10cSrcweir aCntSharedBox.Disable(); 987cdf0e10cSrcweir } 988cdf0e10cSrcweir pSetItem = 0; 989cdf0e10cSrcweir 990cdf0e10cSrcweir if ( SFX_ITEM_SET == rSet.GetItemState( GetWhich( SID_ATTR_PAGE_FOOTERSET ), 991cdf0e10cSrcweir sal_False, 992cdf0e10cSrcweir (const SfxPoolItem**)&pSetItem ) ) 993cdf0e10cSrcweir { 994cdf0e10cSrcweir const SfxItemSet& rFooterSet = pSetItem->GetItemSet(); 995cdf0e10cSrcweir const SfxBoolItem& rFooterOn = 996cdf0e10cSrcweir (const SfxBoolItem&)rFooterSet.Get( GetWhich( SID_ATTR_PAGE_ON ) ); 997cdf0e10cSrcweir 998cdf0e10cSrcweir if ( rFooterOn.GetValue() ) 999cdf0e10cSrcweir { 1000cdf0e10cSrcweir const SvxSizeItem& rSize = (const SvxSizeItem&) 1001cdf0e10cSrcweir rFooterSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) ); 1002cdf0e10cSrcweir const SvxULSpaceItem& rUL = (const SvxULSpaceItem&) 1003cdf0e10cSrcweir rFooterSet.Get( GetWhich( SID_ATTR_ULSPACE ) ); 1004cdf0e10cSrcweir const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&) 1005cdf0e10cSrcweir rFooterSet.Get( GetWhich( SID_ATTR_LRSPACE ) ); 1006cdf0e10cSrcweir long nDist = rUL.GetUpper(); 1007cdf0e10cSrcweir 1008cdf0e10cSrcweir aBspWin.SetFtHeight( rSize.GetSize().Height() - nDist ); 1009cdf0e10cSrcweir aBspWin.SetFtDist( nDist ); 1010cdf0e10cSrcweir aBspWin.SetFtLeft( rLR.GetLeft() ); 1011cdf0e10cSrcweir aBspWin.SetFtRight( rLR.GetRight() ); 1012cdf0e10cSrcweir aBspWin.SetFooter( sal_True ); 1013cdf0e10cSrcweir } 1014cdf0e10cSrcweir else 1015cdf0e10cSrcweir pSetItem = 0; 1016cdf0e10cSrcweir } 1017cdf0e10cSrcweir 1018cdf0e10cSrcweir if ( !pSetItem ) 1019cdf0e10cSrcweir { 1020cdf0e10cSrcweir aBspWin.SetFooter( sal_False ); 1021cdf0e10cSrcweir 1022cdf0e10cSrcweir if ( SID_ATTR_PAGE_FOOTERSET == nId ) 1023cdf0e10cSrcweir aCntSharedBox.Disable(); 1024cdf0e10cSrcweir } 1025cdf0e10cSrcweir 1026cdf0e10cSrcweir pItem = GetItem( rSet, SID_ATTR_PAGE_EXT1 ); 1027cdf0e10cSrcweir 1028cdf0e10cSrcweir if ( pItem && pItem->ISA(SfxBoolItem) ) 1029cdf0e10cSrcweir { 1030cdf0e10cSrcweir aBspWin.SetTable( sal_True ); 1031cdf0e10cSrcweir aBspWin.SetHorz( ( (SfxBoolItem*)pItem )->GetValue() ); 1032cdf0e10cSrcweir } 1033cdf0e10cSrcweir 1034cdf0e10cSrcweir pItem = GetItem( rSet, SID_ATTR_PAGE_EXT2 ); 1035cdf0e10cSrcweir 1036cdf0e10cSrcweir if ( pItem && pItem->ISA(SfxBoolItem) ) 1037cdf0e10cSrcweir { 1038cdf0e10cSrcweir aBspWin.SetTable( sal_True ); 1039cdf0e10cSrcweir aBspWin.SetVert( ( (SfxBoolItem*)pItem )->GetValue() ); 1040cdf0e10cSrcweir } 1041cdf0e10cSrcweir ResetBackground_Impl( rSet ); 1042cdf0e10cSrcweir RangeHdl( 0 ); 1043cdf0e10cSrcweir } 1044cdf0e10cSrcweir 1045cdf0e10cSrcweir /*-------------------------------------------------------------------- 1046cdf0e10cSrcweir Beschreibung: 1047cdf0e10cSrcweir --------------------------------------------------------------------*/ 1048cdf0e10cSrcweir 1049cdf0e10cSrcweir int SvxHFPage::DeactivatePage( SfxItemSet* _pSet ) 1050cdf0e10cSrcweir { 1051cdf0e10cSrcweir if ( _pSet ) 1052cdf0e10cSrcweir FillItemSet( *_pSet ); 1053cdf0e10cSrcweir return LEAVE_PAGE; 1054cdf0e10cSrcweir } 1055cdf0e10cSrcweir 1056cdf0e10cSrcweir /*-------------------------------------------------------------------- 1057cdf0e10cSrcweir Beschreibung: Berech 1058cdf0e10cSrcweir --------------------------------------------------------------------*/ 1059cdf0e10cSrcweir 1060cdf0e10cSrcweir IMPL_LINK( SvxHFPage, RangeHdl, Edit *, EMPTYARG ) 1061cdf0e10cSrcweir { 1062cdf0e10cSrcweir long nHHeight = aBspWin.GetHdHeight(); 1063cdf0e10cSrcweir long nHDist = aBspWin.GetHdDist(); 1064cdf0e10cSrcweir 1065cdf0e10cSrcweir long nFHeight = aBspWin.GetFtHeight(); 1066cdf0e10cSrcweir long nFDist = aBspWin.GetFtDist(); 1067cdf0e10cSrcweir 1068cdf0e10cSrcweir long nHeight = Max( (long)MINBODY, 1069cdf0e10cSrcweir static_cast<long>(aHeightEdit.Denormalize( aHeightEdit.GetValue( FUNIT_TWIP ) ) ) ); 1070cdf0e10cSrcweir long nDist = aTurnOnBox.IsChecked() ? 1071cdf0e10cSrcweir static_cast<long>(aDistEdit.Denormalize( aDistEdit.GetValue( FUNIT_TWIP ) )) : 0; 1072cdf0e10cSrcweir 1073cdf0e10cSrcweir long nMin; 1074cdf0e10cSrcweir long nMax; 1075cdf0e10cSrcweir 1076cdf0e10cSrcweir if ( nId == SID_ATTR_PAGE_HEADERSET ) 1077cdf0e10cSrcweir { 1078cdf0e10cSrcweir nHHeight = nHeight; 1079cdf0e10cSrcweir nHDist = nDist; 1080cdf0e10cSrcweir } 1081cdf0e10cSrcweir else 1082cdf0e10cSrcweir { 1083cdf0e10cSrcweir nFHeight = nHeight; 1084cdf0e10cSrcweir nFDist = nDist; 1085cdf0e10cSrcweir } 1086cdf0e10cSrcweir 1087cdf0e10cSrcweir // Aktuelle Werte der Seitenraender 1088cdf0e10cSrcweir long nBT = aBspWin.GetTop(); 1089cdf0e10cSrcweir long nBB = aBspWin.GetBottom(); 1090cdf0e10cSrcweir long nBL = aBspWin.GetLeft(); 1091cdf0e10cSrcweir long nBR = aBspWin.GetRight(); 1092cdf0e10cSrcweir 1093cdf0e10cSrcweir long nH = aBspWin.GetSize().Height(); 1094cdf0e10cSrcweir long nW = aBspWin.GetSize().Width(); 1095cdf0e10cSrcweir 1096cdf0e10cSrcweir // Grenzen 1097cdf0e10cSrcweir if ( nId == SID_ATTR_PAGE_HEADERSET ) 1098cdf0e10cSrcweir { 1099cdf0e10cSrcweir // Header 1100cdf0e10cSrcweir nMin = ( nH - nBB - nBT ) / 5; // 20% 1101cdf0e10cSrcweir nMax = Max( nH - nMin - nHDist - nFDist - nFHeight - nBB - nBT, 1102cdf0e10cSrcweir nMin ); 1103cdf0e10cSrcweir aHeightEdit.SetMax( aHeightEdit.Normalize( nMax ), FUNIT_TWIP ); 1104cdf0e10cSrcweir nMin = ( nH - nBB - nBT ) / 5; // 20% 1105cdf0e10cSrcweir nDist = Max( nH - nMin - nHHeight - nFDist - nFHeight - nBB - nBT, 1106cdf0e10cSrcweir long(0) ); 1107cdf0e10cSrcweir aDistEdit.SetMax( aDistEdit.Normalize( nDist ), FUNIT_TWIP ); 1108cdf0e10cSrcweir } 1109cdf0e10cSrcweir else 1110cdf0e10cSrcweir { 1111cdf0e10cSrcweir // Footer 1112cdf0e10cSrcweir nMin = ( nH - nBT - nBB ) / 5; // 20% 1113cdf0e10cSrcweir nMax = Max( nH - nMin - nFDist - nHDist - nHHeight - nBT - nBB, 1114cdf0e10cSrcweir nMin ); 1115cdf0e10cSrcweir aHeightEdit.SetMax( aHeightEdit.Normalize( nMax ), FUNIT_TWIP ); 1116cdf0e10cSrcweir nMin = ( nH - nBT - nBB ) / 5; // 20% 1117cdf0e10cSrcweir nDist = Max( nH - nMin - nFHeight - nHDist - nHHeight - nBT - nBB, 1118cdf0e10cSrcweir long(0) ); 1119cdf0e10cSrcweir aDistEdit.SetMax( aDistEdit.Normalize( nDist ), FUNIT_TWIP ); 1120cdf0e10cSrcweir } 1121cdf0e10cSrcweir 1122cdf0e10cSrcweir // Einzuege beschraenken 1123cdf0e10cSrcweir nMax = nW - nBL - nBR - 1124cdf0e10cSrcweir static_cast<long>(aRMEdit.Denormalize( aRMEdit.GetValue( FUNIT_TWIP ) )) - MINBODY; 1125cdf0e10cSrcweir aLMEdit.SetMax( aLMEdit.Normalize( nMax ), FUNIT_TWIP ); 1126cdf0e10cSrcweir 1127cdf0e10cSrcweir nMax = nW - nBL - nBR - 1128cdf0e10cSrcweir static_cast<long>(aLMEdit.Denormalize( aLMEdit.GetValue( FUNIT_TWIP ) )) - MINBODY; 1129cdf0e10cSrcweir aRMEdit.SetMax( aLMEdit.Normalize( nMax ), FUNIT_TWIP ); 1130cdf0e10cSrcweir return 0; 1131cdf0e10cSrcweir } 1132cdf0e10cSrcweir /* -----------------------------26.08.2002 12:49------------------------------ 1133cdf0e10cSrcweir 1134cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1135cdf0e10cSrcweir void lcl_Move(Window& rWin, sal_Int32 nDiff) 1136cdf0e10cSrcweir { 1137cdf0e10cSrcweir Point aPos(rWin.GetPosPixel()); 1138cdf0e10cSrcweir aPos.Y() -= nDiff; 1139cdf0e10cSrcweir rWin.SetPosPixel(aPos); 1140cdf0e10cSrcweir } 1141*56b35d86SArmin Le Grand 1142cdf0e10cSrcweir void SvxHFPage::EnableDynamicSpacing() 1143cdf0e10cSrcweir { 1144cdf0e10cSrcweir aDynSpacingCB.Show(); 1145cdf0e10cSrcweir //move all following controls 1146cdf0e10cSrcweir Window* aMoveWindows[] = 1147cdf0e10cSrcweir { 1148cdf0e10cSrcweir &aHeightFT, 1149cdf0e10cSrcweir &aHeightEdit, 1150cdf0e10cSrcweir &aHeightDynBtn, 1151cdf0e10cSrcweir &aBackgroundBtn, 1152cdf0e10cSrcweir 0 1153cdf0e10cSrcweir }; 1154cdf0e10cSrcweir sal_Int32 nOffset = aTurnOnBox.GetPosPixel().Y() - aCntSharedBox.GetPosPixel().Y(); 1155cdf0e10cSrcweir sal_Int32 nIdx = 0; 1156cdf0e10cSrcweir while(aMoveWindows[nIdx]) 1157cdf0e10cSrcweir lcl_Move(*aMoveWindows[nIdx++], nOffset); 1158cdf0e10cSrcweir } 1159cdf0e10cSrcweir 1160*56b35d86SArmin Le Grand void SvxHFPage::PageCreated(SfxAllItemSet aSet) 1161*56b35d86SArmin Le Grand { 1162*56b35d86SArmin Le Grand //UUUU 1163*56b35d86SArmin Le Grand SFX_ITEMSET_ARG (&aSet, pSupportDrawingLayerFillStyleItem, SfxBoolItem, SID_DRAWINGLAYER_FILLSTYLES, sal_False); 1164*56b35d86SArmin Le Grand 1165*56b35d86SArmin Le Grand if(pSupportDrawingLayerFillStyleItem) 1166*56b35d86SArmin Le Grand { 1167*56b35d86SArmin Le Grand const bool bNew(pSupportDrawingLayerFillStyleItem->GetValue()); 1168*56b35d86SArmin Le Grand 1169*56b35d86SArmin Le Grand EnableDrawingLayerFillStyles(bNew); 1170*56b35d86SArmin Le Grand } 1171*56b35d86SArmin Le Grand } 1172*56b35d86SArmin Le Grand 1173*56b35d86SArmin Le Grand //eof 1174