1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_cui.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir // include --------------------------------------------------------------- 32*cdf0e10cSrcweir #include <unotools/pathoptions.hxx> 33*cdf0e10cSrcweir #include <svl/intitem.hxx> 34*cdf0e10cSrcweir #include <vcl/msgbox.hxx> 35*cdf0e10cSrcweir #include <tools/urlobj.hxx> 36*cdf0e10cSrcweir #include <sfx2/objsh.hxx> 37*cdf0e10cSrcweir #include <sfx2/docfile.hxx> 38*cdf0e10cSrcweir #include <svtools/wallitem.hxx> 39*cdf0e10cSrcweir #include <svl/cntwall.hxx> 40*cdf0e10cSrcweir #include <sfx2/cntids.hrc> 41*cdf0e10cSrcweir #include <svx/dialogs.hrc> 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir #define _SVX_BACKGRND_CXX 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir #include <cuires.hrc> 46*cdf0e10cSrcweir #include "backgrnd.hrc" 47*cdf0e10cSrcweir #include <svx/dialmgr.hxx> 48*cdf0e10cSrcweir #include <editeng/memberids.hrc> 49*cdf0e10cSrcweir #include <editeng/editrids.hrc> 50*cdf0e10cSrcweir #include <editeng/eerdll.hxx> 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir // Tabellenhintergrund 53*cdf0e10cSrcweir #define TBL_DEST_CELL 0 54*cdf0e10cSrcweir #define TBL_DEST_ROW 1 55*cdf0e10cSrcweir #define TBL_DEST_TBL 2 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir #include <editeng/brshitem.hxx> 58*cdf0e10cSrcweir #include "backgrnd.hxx" 59*cdf0e10cSrcweir 60*cdf0e10cSrcweir #include <svx/xtable.hxx> 61*cdf0e10cSrcweir #include <sfx2/opengrf.hxx> 62*cdf0e10cSrcweir #include <svx/svxerr.hxx> 63*cdf0e10cSrcweir #include <svx/drawitem.hxx> 64*cdf0e10cSrcweir #include <dialmgr.hxx> 65*cdf0e10cSrcweir #include <svx/htmlmode.hxx> 66*cdf0e10cSrcweir #include <svtools/controldims.hrc> 67*cdf0e10cSrcweir #include <svx/flagsdef.hxx> //CHINA001 68*cdf0e10cSrcweir #include <svl/intitem.hxx> //CHINA001 69*cdf0e10cSrcweir #include <sfx2/request.hxx> //CHINA001 70*cdf0e10cSrcweir using namespace ::com::sun::star; 71*cdf0e10cSrcweir // static ---------------------------------------------------------------- 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir static sal_uInt16 pRanges[] = 74*cdf0e10cSrcweir { 75*cdf0e10cSrcweir SID_VIEW_FLD_PIC, SID_VIEW_FLD_PIC, 76*cdf0e10cSrcweir SID_ATTR_BRUSH, SID_ATTR_BRUSH, 77*cdf0e10cSrcweir SID_ATTR_BRUSH_CHAR, SID_ATTR_BRUSH_CHAR, 78*cdf0e10cSrcweir 0 79*cdf0e10cSrcweir }; 80*cdf0e10cSrcweir 81*cdf0e10cSrcweir struct SvxBackgroundTable_Impl 82*cdf0e10cSrcweir { 83*cdf0e10cSrcweir SvxBrushItem* pCellBrush; 84*cdf0e10cSrcweir SvxBrushItem* pRowBrush; 85*cdf0e10cSrcweir SvxBrushItem* pTableBrush; 86*cdf0e10cSrcweir sal_uInt16 nCellWhich; 87*cdf0e10cSrcweir sal_uInt16 nRowWhich; 88*cdf0e10cSrcweir sal_uInt16 nTableWhich; 89*cdf0e10cSrcweir sal_uInt16 nActPos; 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir SvxBackgroundTable_Impl() : 92*cdf0e10cSrcweir pCellBrush(NULL), pRowBrush(NULL), pTableBrush(NULL), 93*cdf0e10cSrcweir nCellWhich(0), nRowWhich(0), nTableWhich(0) {} 94*cdf0e10cSrcweir }; 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir struct SvxBackgroundPara_Impl 97*cdf0e10cSrcweir { 98*cdf0e10cSrcweir SvxBrushItem* pParaBrush; 99*cdf0e10cSrcweir SvxBrushItem* pCharBrush; 100*cdf0e10cSrcweir 101*cdf0e10cSrcweir sal_uInt16 nActPos; 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir SvxBackgroundPara_Impl() : 104*cdf0e10cSrcweir pParaBrush(NULL), pCharBrush(NULL) {} 105*cdf0e10cSrcweir }; 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir struct SvxBackgroundPage_Impl 108*cdf0e10cSrcweir { 109*cdf0e10cSrcweir Timer* pLoadTimer; 110*cdf0e10cSrcweir sal_Bool bIsImportDlgInExecute; 111*cdf0e10cSrcweir 112*cdf0e10cSrcweir SvxBackgroundPage_Impl() : 113*cdf0e10cSrcweir pLoadTimer(NULL), bIsImportDlgInExecute(sal_False) {} 114*cdf0e10cSrcweir }; 115*cdf0e10cSrcweir /* -----------------------------15.08.2002 12:21------------------------------ 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 118*cdf0e10cSrcweir inline sal_uInt8 lcl_PercentToTransparency(long nPercent) 119*cdf0e10cSrcweir { 120*cdf0e10cSrcweir //0xff must not be returned! 121*cdf0e10cSrcweir return sal_uInt8(nPercent ? (50 + 0xfe * nPercent) / 100 : 0); 122*cdf0e10cSrcweir } 123*cdf0e10cSrcweir inline sal_uInt8 lcl_TransparencyToPercent(sal_uInt8 nTrans) 124*cdf0e10cSrcweir { 125*cdf0e10cSrcweir return (nTrans * 100 + 127) / 254; 126*cdf0e10cSrcweir } 127*cdf0e10cSrcweir void lcl_SetTransparency(SvxBrushItem& rBrush, long nTransparency) 128*cdf0e10cSrcweir { 129*cdf0e10cSrcweir uno::Any aTransparency; 130*cdf0e10cSrcweir aTransparency <<= (sal_Int8)nTransparency; 131*cdf0e10cSrcweir rBrush.PutValue(aTransparency, MID_GRAPHIC_TRANSPARENCY); 132*cdf0e10cSrcweir } 133*cdf0e10cSrcweir //------------------------------------------------------------------------- 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir /* [Beschreibung] 136*cdf0e10cSrcweir 137*cdf0e10cSrcweir */ 138*cdf0e10cSrcweir 139*cdf0e10cSrcweir sal_uInt16 GetItemId_Impl( ValueSet& rValueSet, const Color& rCol ) 140*cdf0e10cSrcweir { 141*cdf0e10cSrcweir sal_Bool bFound = sal_False; 142*cdf0e10cSrcweir sal_uInt16 nCount = rValueSet.GetItemCount(); 143*cdf0e10cSrcweir sal_uInt16 n = 1; 144*cdf0e10cSrcweir 145*cdf0e10cSrcweir while ( !bFound && n <= nCount ) 146*cdf0e10cSrcweir { 147*cdf0e10cSrcweir Color aValCol = rValueSet.GetItemColor(n); 148*cdf0e10cSrcweir 149*cdf0e10cSrcweir bFound = ( aValCol.GetRed() == rCol.GetRed() 150*cdf0e10cSrcweir && aValCol.GetGreen() == rCol.GetGreen() 151*cdf0e10cSrcweir && aValCol.GetBlue() == rCol.GetBlue() ); 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir if ( !bFound ) 154*cdf0e10cSrcweir n++; 155*cdf0e10cSrcweir } 156*cdf0e10cSrcweir return bFound ? n : 0; 157*cdf0e10cSrcweir } 158*cdf0e10cSrcweir 159*cdf0e10cSrcweir // class BackgroundPreview ----------------------------------------------- 160*cdf0e10cSrcweir 161*cdf0e10cSrcweir /* [Beschreibung] 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir Vorschaufenster f"ur Brush oder Bitmap 164*cdf0e10cSrcweir */ 165*cdf0e10cSrcweir 166*cdf0e10cSrcweir class BackgroundPreviewImpl : public Window 167*cdf0e10cSrcweir { 168*cdf0e10cSrcweir public: 169*cdf0e10cSrcweir BackgroundPreviewImpl( Window* pParent, 170*cdf0e10cSrcweir const ResId& rResId, sal_Bool bIsBmpPreview ); 171*cdf0e10cSrcweir ~BackgroundPreviewImpl(); 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir void NotifyChange( const Color& rColor ); 174*cdf0e10cSrcweir void NotifyChange( const Bitmap* pBitmap ); 175*cdf0e10cSrcweir 176*cdf0e10cSrcweir protected: 177*cdf0e10cSrcweir virtual void Paint( const Rectangle& rRect ); 178*cdf0e10cSrcweir virtual void DataChanged( const DataChangedEvent& rDCEvt ); 179*cdf0e10cSrcweir 180*cdf0e10cSrcweir private: 181*cdf0e10cSrcweir const sal_Bool bIsBmp; 182*cdf0e10cSrcweir Bitmap* pBitmap; 183*cdf0e10cSrcweir Point aDrawPos; 184*cdf0e10cSrcweir Size aDrawSize; 185*cdf0e10cSrcweir Rectangle aDrawRect; 186*cdf0e10cSrcweir sal_uInt8 nTransparency; 187*cdf0e10cSrcweir }; 188*cdf0e10cSrcweir 189*cdf0e10cSrcweir //----------------------------------------------------------------------- 190*cdf0e10cSrcweir 191*cdf0e10cSrcweir BackgroundPreviewImpl::BackgroundPreviewImpl 192*cdf0e10cSrcweir ( 193*cdf0e10cSrcweir Window* pParent, 194*cdf0e10cSrcweir const ResId& rResId, 195*cdf0e10cSrcweir sal_Bool bIsBmpPreview 196*cdf0e10cSrcweir ) : 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir /* [Beschreibung] 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir */ 201*cdf0e10cSrcweir 202*cdf0e10cSrcweir Window( pParent, rResId ), 203*cdf0e10cSrcweir 204*cdf0e10cSrcweir bIsBmp ( bIsBmpPreview ), 205*cdf0e10cSrcweir pBitmap ( NULL ), 206*cdf0e10cSrcweir aDrawRect( Point(0,0), GetOutputSizePixel() ), 207*cdf0e10cSrcweir nTransparency(0) 208*cdf0e10cSrcweir 209*cdf0e10cSrcweir { 210*cdf0e10cSrcweir SetBorderStyle(WINDOW_BORDER_MONO); 211*cdf0e10cSrcweir Paint( aDrawRect ); 212*cdf0e10cSrcweir } 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir //----------------------------------------------------------------------- 215*cdf0e10cSrcweir 216*cdf0e10cSrcweir BackgroundPreviewImpl::~BackgroundPreviewImpl() 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir /* [Beschreibung] 219*cdf0e10cSrcweir 220*cdf0e10cSrcweir */ 221*cdf0e10cSrcweir 222*cdf0e10cSrcweir { 223*cdf0e10cSrcweir delete pBitmap; 224*cdf0e10cSrcweir } 225*cdf0e10cSrcweir 226*cdf0e10cSrcweir //----------------------------------------------------------------------- 227*cdf0e10cSrcweir void BackgroundPreviewImpl::NotifyChange( const Color& rColor ) 228*cdf0e10cSrcweir { 229*cdf0e10cSrcweir if ( !bIsBmp ) 230*cdf0e10cSrcweir { 231*cdf0e10cSrcweir const static Color aTranspCol( COL_TRANSPARENT ); 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir nTransparency = lcl_TransparencyToPercent( rColor.GetTransparency() ); 234*cdf0e10cSrcweir 235*cdf0e10cSrcweir SetFillColor( rColor == aTranspCol ? GetSettings().GetStyleSettings().GetFieldColor() : (Color) rColor.GetRGBColor() ); 236*cdf0e10cSrcweir Paint( aDrawRect ); 237*cdf0e10cSrcweir } 238*cdf0e10cSrcweir } 239*cdf0e10cSrcweir 240*cdf0e10cSrcweir //----------------------------------------------------------------------- 241*cdf0e10cSrcweir 242*cdf0e10cSrcweir void BackgroundPreviewImpl::NotifyChange( const Bitmap* pNewBitmap ) 243*cdf0e10cSrcweir /* [Beschreibung] 244*cdf0e10cSrcweir 245*cdf0e10cSrcweir */ 246*cdf0e10cSrcweir 247*cdf0e10cSrcweir { 248*cdf0e10cSrcweir if ( bIsBmp && (pNewBitmap || pBitmap) ) 249*cdf0e10cSrcweir { 250*cdf0e10cSrcweir if ( pNewBitmap && pBitmap ) 251*cdf0e10cSrcweir *pBitmap = *pNewBitmap; 252*cdf0e10cSrcweir else if ( pNewBitmap && !pBitmap ) 253*cdf0e10cSrcweir pBitmap = new Bitmap( *pNewBitmap ); 254*cdf0e10cSrcweir else if ( !pNewBitmap ) 255*cdf0e10cSrcweir DELETEZ( pBitmap ); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir if ( pBitmap ) 258*cdf0e10cSrcweir { 259*cdf0e10cSrcweir Size aSize = GetOutputSizePixel(); 260*cdf0e10cSrcweir // InnerSize == Size without one pixel border 261*cdf0e10cSrcweir Size aInnerSize = aSize; 262*cdf0e10cSrcweir aInnerSize.Width() -= 2; 263*cdf0e10cSrcweir aInnerSize.Height() -= 2; 264*cdf0e10cSrcweir aDrawSize = pBitmap->GetSizePixel(); 265*cdf0e10cSrcweir 266*cdf0e10cSrcweir // bitmap bigger than preview window? 267*cdf0e10cSrcweir if ( aDrawSize.Width() > aInnerSize.Width() ) 268*cdf0e10cSrcweir { 269*cdf0e10cSrcweir aDrawSize.Height() = aDrawSize.Height() * aInnerSize.Width() / aDrawSize.Width(); 270*cdf0e10cSrcweir if ( aDrawSize.Height() > aInnerSize.Height() ) 271*cdf0e10cSrcweir { 272*cdf0e10cSrcweir aDrawSize.Width() = aDrawSize.Height(); 273*cdf0e10cSrcweir aDrawSize.Height() = aInnerSize.Height(); 274*cdf0e10cSrcweir } 275*cdf0e10cSrcweir else 276*cdf0e10cSrcweir aDrawSize.Width() = aInnerSize.Width(); 277*cdf0e10cSrcweir } 278*cdf0e10cSrcweir else if ( aDrawSize.Height() > aInnerSize.Height() ) 279*cdf0e10cSrcweir { 280*cdf0e10cSrcweir aDrawSize.Width() = aDrawSize.Width() * aInnerSize.Height() / aDrawSize.Height(); 281*cdf0e10cSrcweir if ( aDrawSize.Width() > aInnerSize.Width() ) 282*cdf0e10cSrcweir { 283*cdf0e10cSrcweir aDrawSize.Height() = aDrawSize.Width(); 284*cdf0e10cSrcweir aDrawSize.Width() = aInnerSize.Width(); 285*cdf0e10cSrcweir } 286*cdf0e10cSrcweir else 287*cdf0e10cSrcweir aDrawSize.Height() = aInnerSize.Height(); 288*cdf0e10cSrcweir } 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir aDrawPos.X() = (aSize.Width() - aDrawSize.Width()) / 2; 291*cdf0e10cSrcweir aDrawPos.Y() = (aSize.Height() - aDrawSize.Height()) / 2; 292*cdf0e10cSrcweir } 293*cdf0e10cSrcweir Invalidate( aDrawRect ); 294*cdf0e10cSrcweir Update(); 295*cdf0e10cSrcweir } 296*cdf0e10cSrcweir } 297*cdf0e10cSrcweir 298*cdf0e10cSrcweir //----------------------------------------------------------------------- 299*cdf0e10cSrcweir 300*cdf0e10cSrcweir void BackgroundPreviewImpl::Paint( const Rectangle& ) 301*cdf0e10cSrcweir { 302*cdf0e10cSrcweir const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); 303*cdf0e10cSrcweir SetBackground(Wallpaper(rStyleSettings.GetWindowColor())); 304*cdf0e10cSrcweir SetLineColor(); 305*cdf0e10cSrcweir if(bIsBmp) 306*cdf0e10cSrcweir SetFillColor( Color(COL_TRANSPARENT) ); 307*cdf0e10cSrcweir DrawRect( aDrawRect ); 308*cdf0e10cSrcweir if ( bIsBmp ) 309*cdf0e10cSrcweir { 310*cdf0e10cSrcweir if ( pBitmap ) 311*cdf0e10cSrcweir DrawBitmap( aDrawPos, aDrawSize, *pBitmap ); 312*cdf0e10cSrcweir else 313*cdf0e10cSrcweir { 314*cdf0e10cSrcweir Size aSize = GetOutputSizePixel(); 315*cdf0e10cSrcweir DrawLine( Point(0,0), Point(aSize.Width(),aSize.Height()) ); 316*cdf0e10cSrcweir DrawLine( Point(0,aSize.Height()), Point(aSize.Width(),0) ); 317*cdf0e10cSrcweir } 318*cdf0e10cSrcweir } 319*cdf0e10cSrcweir } 320*cdf0e10cSrcweir /* -----------------------------27.02.2002 11:07------------------------------ 321*cdf0e10cSrcweir 322*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 323*cdf0e10cSrcweir void BackgroundPreviewImpl::DataChanged( const DataChangedEvent& rDCEvt ) 324*cdf0e10cSrcweir { 325*cdf0e10cSrcweir if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && 326*cdf0e10cSrcweir (rDCEvt.GetFlags() & SETTINGS_STYLE) ) 327*cdf0e10cSrcweir { 328*cdf0e10cSrcweir Invalidate(); 329*cdf0e10cSrcweir } 330*cdf0e10cSrcweir Window::DataChanged( rDCEvt ); 331*cdf0e10cSrcweir } 332*cdf0e10cSrcweir 333*cdf0e10cSrcweir // class SvxBackgroundTabPage -------------------------------------------- 334*cdf0e10cSrcweir 335*cdf0e10cSrcweir #define HDL(hdl) LINK(this,SvxBackgroundTabPage,hdl) 336*cdf0e10cSrcweir 337*cdf0e10cSrcweir SvxBackgroundTabPage::SvxBackgroundTabPage( Window* pParent, 338*cdf0e10cSrcweir const SfxItemSet& rCoreSet ) : 339*cdf0e10cSrcweir 340*cdf0e10cSrcweir /* [Beschreibung] 341*cdf0e10cSrcweir 342*cdf0e10cSrcweir */ 343*cdf0e10cSrcweir 344*cdf0e10cSrcweir SvxTabPage( pParent, CUI_RES( RID_SVXPAGE_BACKGROUND ), rCoreSet ), 345*cdf0e10cSrcweir 346*cdf0e10cSrcweir aSelectTxt ( this, CUI_RES( FT_SELECTOR ) ), 347*cdf0e10cSrcweir aLbSelect ( this, CUI_RES( LB_SELECTOR ) ), 348*cdf0e10cSrcweir aStrBrowse ( CUI_RES( STR_BROWSE ) ), 349*cdf0e10cSrcweir aStrUnlinked ( CUI_RES( STR_UNLINKED ) ), 350*cdf0e10cSrcweir aTblDesc ( this, CUI_RES( FT_TBL_DESC ) ), 351*cdf0e10cSrcweir aTblLBox ( this, CUI_RES( LB_TBL_BOX ) ), 352*cdf0e10cSrcweir aParaLBox ( this, CUI_RES( LB_PARA_BOX ) ), 353*cdf0e10cSrcweir 354*cdf0e10cSrcweir aBorderWin ( this, CUI_RES(CT_BORDER) ), 355*cdf0e10cSrcweir aBackgroundColorSet ( &aBorderWin, CUI_RES( SET_BGDCOLOR ) ), 356*cdf0e10cSrcweir aBackgroundColorBox ( this, CUI_RES( GB_BGDCOLOR ) ), 357*cdf0e10cSrcweir pPreviewWin1 ( new BackgroundPreviewImpl( this, CUI_RES( WIN_PREVIEW1 ), sal_False ) ), 358*cdf0e10cSrcweir 359*cdf0e10cSrcweir aColTransFT ( this, CUI_RES( FT_COL_TRANS ) ), 360*cdf0e10cSrcweir aColTransMF ( this, CUI_RES( MF_COL_TRANS ) ), 361*cdf0e10cSrcweir aBtnPreview ( this, CUI_RES( BTN_PREVIEW ) ), 362*cdf0e10cSrcweir aGbFile ( this, CUI_RES( GB_FILE ) ), 363*cdf0e10cSrcweir aBtnBrowse ( this, CUI_RES( BTN_BROWSE ) ), 364*cdf0e10cSrcweir aBtnLink ( this, CUI_RES( BTN_LINK ) ), 365*cdf0e10cSrcweir aGbPosition ( this, CUI_RES( GB_POSITION ) ), 366*cdf0e10cSrcweir aBtnPosition ( this, CUI_RES( BTN_POSITION ) ), 367*cdf0e10cSrcweir aBtnArea ( this, CUI_RES( BTN_AREA ) ), 368*cdf0e10cSrcweir aBtnTile ( this, CUI_RES( BTN_TILE ) ), 369*cdf0e10cSrcweir aWndPosition ( this, CUI_RES( WND_POSITION ), RP_MM ), 370*cdf0e10cSrcweir aFtFile ( this, CUI_RES( FT_FILE ) ), 371*cdf0e10cSrcweir aGraphTransFL ( this, CUI_RES( FL_GRAPH_TRANS ) ), 372*cdf0e10cSrcweir aGraphTransMF ( this, CUI_RES( MF_GRAPH_TRANS ) ), 373*cdf0e10cSrcweir pPreviewWin2 ( new BackgroundPreviewImpl( 374*cdf0e10cSrcweir this, CUI_RES( WIN_PREVIEW2 ), sal_True ) ), 375*cdf0e10cSrcweir 376*cdf0e10cSrcweir nHtmlMode ( 0 ), 377*cdf0e10cSrcweir bAllowShowSelector ( sal_True ), 378*cdf0e10cSrcweir bIsGraphicValid ( sal_False ), 379*cdf0e10cSrcweir bLinkOnly ( sal_False ), 380*cdf0e10cSrcweir bResized ( sal_False ), 381*cdf0e10cSrcweir bColTransparency ( sal_False ), 382*cdf0e10cSrcweir bGraphTransparency ( sal_False ), 383*cdf0e10cSrcweir 384*cdf0e10cSrcweir pPageImpl ( new SvxBackgroundPage_Impl ), 385*cdf0e10cSrcweir pImportDlg ( NULL ), 386*cdf0e10cSrcweir pTableBck_Impl ( NULL ), 387*cdf0e10cSrcweir pParaBck_Impl ( NULL ) 388*cdf0e10cSrcweir 389*cdf0e10cSrcweir { 390*cdf0e10cSrcweir // diese Page braucht ExchangeSupport 391*cdf0e10cSrcweir SetExchangeSupport(); 392*cdf0e10cSrcweir 393*cdf0e10cSrcweir const SfxPoolItem* pItem; 394*cdf0e10cSrcweir SfxObjectShell* pShell; 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir if ( SFX_ITEM_SET == rCoreSet.GetItemState( SID_HTML_MODE, sal_False, &pItem ) 397*cdf0e10cSrcweir || ( 0 != ( pShell = SfxObjectShell::Current()) && 398*cdf0e10cSrcweir 0 != ( pItem = pShell->GetItem( SID_HTML_MODE ) ) ) ) 399*cdf0e10cSrcweir { 400*cdf0e10cSrcweir nHtmlMode = ((SfxUInt16Item*)pItem)->GetValue(); 401*cdf0e10cSrcweir } 402*cdf0e10cSrcweir 403*cdf0e10cSrcweir FillColorValueSets_Impl(); 404*cdf0e10cSrcweir 405*cdf0e10cSrcweir aBackgroundColorSet.SetSelectHdl( HDL(BackgroundColorHdl_Impl) ); 406*cdf0e10cSrcweir FreeResource(); 407*cdf0e10cSrcweir 408*cdf0e10cSrcweir aBtnBrowse.SetAccessibleRelationMemberOf(&aGbFile); 409*cdf0e10cSrcweir aWndPosition.SetAccessibleRelationMemberOf(&aGbPosition); 410*cdf0e10cSrcweir aWndPosition.SetAccessibleRelationLabeledBy(&aBtnPosition); 411*cdf0e10cSrcweir aBackgroundColorSet.SetAccessibleRelationLabeledBy(&aBackgroundColorBox); 412*cdf0e10cSrcweir } 413*cdf0e10cSrcweir 414*cdf0e10cSrcweir //------------------------------------------------------------------------ 415*cdf0e10cSrcweir 416*cdf0e10cSrcweir SvxBackgroundTabPage::~SvxBackgroundTabPage() 417*cdf0e10cSrcweir 418*cdf0e10cSrcweir /* [Beschreibung] 419*cdf0e10cSrcweir 420*cdf0e10cSrcweir */ 421*cdf0e10cSrcweir 422*cdf0e10cSrcweir { 423*cdf0e10cSrcweir delete pPreviewWin1; 424*cdf0e10cSrcweir delete pPreviewWin2; 425*cdf0e10cSrcweir delete pPageImpl->pLoadTimer; 426*cdf0e10cSrcweir delete pPageImpl; 427*cdf0e10cSrcweir delete pImportDlg; 428*cdf0e10cSrcweir 429*cdf0e10cSrcweir if( pTableBck_Impl) 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir delete pTableBck_Impl->pCellBrush; 432*cdf0e10cSrcweir delete pTableBck_Impl->pRowBrush; 433*cdf0e10cSrcweir delete pTableBck_Impl->pTableBrush; 434*cdf0e10cSrcweir delete pTableBck_Impl; 435*cdf0e10cSrcweir } 436*cdf0e10cSrcweir 437*cdf0e10cSrcweir if(pParaBck_Impl) 438*cdf0e10cSrcweir { 439*cdf0e10cSrcweir delete pParaBck_Impl->pParaBrush; 440*cdf0e10cSrcweir delete pParaBck_Impl->pCharBrush; 441*cdf0e10cSrcweir delete pParaBck_Impl; 442*cdf0e10cSrcweir } 443*cdf0e10cSrcweir } 444*cdf0e10cSrcweir 445*cdf0e10cSrcweir //------------------------------------------------------------------------ 446*cdf0e10cSrcweir 447*cdf0e10cSrcweir sal_uInt16* SvxBackgroundTabPage::GetRanges() 448*cdf0e10cSrcweir 449*cdf0e10cSrcweir /* [Beschreibung] 450*cdf0e10cSrcweir 451*cdf0e10cSrcweir gibt den Bereich der Which-Werte zur"uck 452*cdf0e10cSrcweir */ 453*cdf0e10cSrcweir 454*cdf0e10cSrcweir { 455*cdf0e10cSrcweir return pRanges; 456*cdf0e10cSrcweir } 457*cdf0e10cSrcweir 458*cdf0e10cSrcweir //------------------------------------------------------------------------ 459*cdf0e10cSrcweir 460*cdf0e10cSrcweir SfxTabPage* SvxBackgroundTabPage::Create( Window* pParent, 461*cdf0e10cSrcweir const SfxItemSet& rAttrSet ) 462*cdf0e10cSrcweir 463*cdf0e10cSrcweir /* [Beschreibung] 464*cdf0e10cSrcweir 465*cdf0e10cSrcweir Create-Methode f"ur den TabDialog 466*cdf0e10cSrcweir */ 467*cdf0e10cSrcweir 468*cdf0e10cSrcweir { 469*cdf0e10cSrcweir return ( new SvxBackgroundTabPage( pParent, rAttrSet ) ); 470*cdf0e10cSrcweir } 471*cdf0e10cSrcweir 472*cdf0e10cSrcweir //------------------------------------------------------------------------ 473*cdf0e10cSrcweir 474*cdf0e10cSrcweir void SvxBackgroundTabPage::Reset( const SfxItemSet& rSet ) 475*cdf0e10cSrcweir 476*cdf0e10cSrcweir /* [Beschreibung] 477*cdf0e10cSrcweir 478*cdf0e10cSrcweir */ 479*cdf0e10cSrcweir 480*cdf0e10cSrcweir { 481*cdf0e10cSrcweir // os: So ein Unsinn! Irgendwo laesst sich so ein Item immer finden, 482*cdf0e10cSrcweir // es muss aber im rSet vorhanden sein! 483*cdf0e10cSrcweir // const SfxPoolItem* pX = GetOldItem( rSet, SID_VIEW_FLD_PIC ); 484*cdf0e10cSrcweir // if( pX && pX->ISA(SfxWallpaperItem)) 485*cdf0e10cSrcweir if(SFX_ITEM_AVAILABLE <= rSet.GetItemState(GetWhich(SID_VIEW_FLD_PIC), sal_False)) 486*cdf0e10cSrcweir { 487*cdf0e10cSrcweir ResetFromWallpaperItem( rSet ); 488*cdf0e10cSrcweir return; 489*cdf0e10cSrcweir } 490*cdf0e10cSrcweir 491*cdf0e10cSrcweir // Zustand des Vorschau-Buttons durch UserData persistent 492*cdf0e10cSrcweir String aUserData = GetUserData(); 493*cdf0e10cSrcweir aBtnPreview.Check( aUserData.Len() && sal_Unicode('1') == aUserData.GetChar( 0 ) ); 494*cdf0e10cSrcweir 495*cdf0e10cSrcweir // nach Reset kein ShowSelector() mehr aufrufen d"urfen 496*cdf0e10cSrcweir bAllowShowSelector = sal_False; 497*cdf0e10cSrcweir 498*cdf0e10cSrcweir 499*cdf0e10cSrcweir // Input-BrushItem besorgen und auswerten 500*cdf0e10cSrcweir const SvxBrushItem* pBgdAttr = NULL; 501*cdf0e10cSrcweir sal_uInt16 nSlot = SID_ATTR_BRUSH; 502*cdf0e10cSrcweir const SfxPoolItem* pItem; 503*cdf0e10cSrcweir sal_uInt16 nDestValue = USHRT_MAX; 504*cdf0e10cSrcweir 505*cdf0e10cSrcweir if ( SFX_ITEM_SET == rSet.GetItemState( SID_BACKGRND_DESTINATION, 506*cdf0e10cSrcweir sal_False, &pItem ) ) 507*cdf0e10cSrcweir { 508*cdf0e10cSrcweir nDestValue = ((const SfxUInt16Item*)pItem)->GetValue(); 509*cdf0e10cSrcweir aTblLBox.SelectEntryPos(nDestValue); 510*cdf0e10cSrcweir 511*cdf0e10cSrcweir switch ( nDestValue ) 512*cdf0e10cSrcweir { 513*cdf0e10cSrcweir case TBL_DEST_CELL: 514*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH; 515*cdf0e10cSrcweir break; 516*cdf0e10cSrcweir case TBL_DEST_ROW: 517*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_ROW; 518*cdf0e10cSrcweir break; 519*cdf0e10cSrcweir case TBL_DEST_TBL: 520*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_TABLE; 521*cdf0e10cSrcweir break; 522*cdf0e10cSrcweir } 523*cdf0e10cSrcweir } 524*cdf0e10cSrcweir else if( SFX_ITEM_SET == rSet.GetItemState( 525*cdf0e10cSrcweir SID_PARA_BACKGRND_DESTINATION, sal_False, &pItem ) ) 526*cdf0e10cSrcweir { 527*cdf0e10cSrcweir nDestValue = ((const SfxUInt16Item*)pItem)->GetValue(); 528*cdf0e10cSrcweir // ist gerade Zeichen aktiviert? 529*cdf0e10cSrcweir sal_uInt16 nParaSel = aParaLBox.GetSelectEntryPos(); 530*cdf0e10cSrcweir if(1 == nParaSel) 531*cdf0e10cSrcweir { 532*cdf0e10cSrcweir // dann war das ein "Standard" - Aufruf 533*cdf0e10cSrcweir nDestValue = nParaSel; 534*cdf0e10cSrcweir } 535*cdf0e10cSrcweir aParaLBox.SelectEntryPos(nDestValue); 536*cdf0e10cSrcweir 537*cdf0e10cSrcweir switch ( nDestValue ) 538*cdf0e10cSrcweir { 539*cdf0e10cSrcweir case PARA_DEST_PARA: 540*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH; 541*cdf0e10cSrcweir break; 542*cdf0e10cSrcweir case PARA_DEST_CHAR: 543*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_CHAR; 544*cdf0e10cSrcweir break; 545*cdf0e10cSrcweir } 546*cdf0e10cSrcweir } 547*cdf0e10cSrcweir //#111173# the destination item is missing when the parent style has been changed 548*cdf0e10cSrcweir if(USHRT_MAX == nDestValue && (aParaLBox.IsVisible()||aTblLBox.IsVisible())) 549*cdf0e10cSrcweir nDestValue = 0; 550*cdf0e10cSrcweir sal_uInt16 nWhich = GetWhich( nSlot ); 551*cdf0e10cSrcweir 552*cdf0e10cSrcweir if ( rSet.GetItemState( nWhich, sal_False ) >= SFX_ITEM_AVAILABLE ) 553*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( nWhich ) ); 554*cdf0e10cSrcweir 555*cdf0e10cSrcweir aBtnTile.Check(); 556*cdf0e10cSrcweir 557*cdf0e10cSrcweir if ( pBgdAttr ) 558*cdf0e10cSrcweir { 559*cdf0e10cSrcweir FillControls_Impl(*pBgdAttr, aUserData); 560*cdf0e10cSrcweir aBgdColor = ( (SvxBrushItem*)pBgdAttr )->GetColor(); 561*cdf0e10cSrcweir } 562*cdf0e10cSrcweir else 563*cdf0e10cSrcweir { 564*cdf0e10cSrcweir aSelectTxt.Hide(); 565*cdf0e10cSrcweir aLbSelect.Hide(); 566*cdf0e10cSrcweir aLbSelect.SelectEntryPos( 0 ); 567*cdf0e10cSrcweir ShowColorUI_Impl(); 568*cdf0e10cSrcweir 569*cdf0e10cSrcweir const SfxPoolItem* pOld = GetOldItem( rSet, SID_ATTR_BRUSH ); 570*cdf0e10cSrcweir 571*cdf0e10cSrcweir if ( pOld ) 572*cdf0e10cSrcweir aBgdColor = ( (SvxBrushItem*)pOld )->GetColor(); 573*cdf0e10cSrcweir } 574*cdf0e10cSrcweir 575*cdf0e10cSrcweir if ( nDestValue != USHRT_MAX ) 576*cdf0e10cSrcweir { 577*cdf0e10cSrcweir if(aTblLBox.IsVisible()) 578*cdf0e10cSrcweir { 579*cdf0e10cSrcweir sal_uInt16 nValue = aTblLBox.GetSelectEntryPos(); 580*cdf0e10cSrcweir 581*cdf0e10cSrcweir if ( pTableBck_Impl ) 582*cdf0e10cSrcweir { 583*cdf0e10cSrcweir DELETEZ( pTableBck_Impl->pCellBrush); 584*cdf0e10cSrcweir DELETEZ( pTableBck_Impl->pRowBrush); 585*cdf0e10cSrcweir DELETEZ( pTableBck_Impl->pTableBrush); 586*cdf0e10cSrcweir } 587*cdf0e10cSrcweir else 588*cdf0e10cSrcweir pTableBck_Impl = new SvxBackgroundTable_Impl(); 589*cdf0e10cSrcweir 590*cdf0e10cSrcweir pTableBck_Impl->nActPos = nValue; 591*cdf0e10cSrcweir 592*cdf0e10cSrcweir nWhich = GetWhich( SID_ATTR_BRUSH ); 593*cdf0e10cSrcweir if ( rSet.GetItemState( nWhich, sal_False ) >= SFX_ITEM_AVAILABLE ) 594*cdf0e10cSrcweir { 595*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( nWhich ) ); 596*cdf0e10cSrcweir pTableBck_Impl->pCellBrush = new SvxBrushItem(*pBgdAttr); 597*cdf0e10cSrcweir } 598*cdf0e10cSrcweir pTableBck_Impl->nCellWhich = nWhich; 599*cdf0e10cSrcweir 600*cdf0e10cSrcweir if ( rSet.GetItemState( SID_ATTR_BRUSH_ROW, sal_False ) >= SFX_ITEM_AVAILABLE ) 601*cdf0e10cSrcweir { 602*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( SID_ATTR_BRUSH_ROW ) ); 603*cdf0e10cSrcweir pTableBck_Impl->pRowBrush = new SvxBrushItem(*pBgdAttr); 604*cdf0e10cSrcweir } 605*cdf0e10cSrcweir pTableBck_Impl->nRowWhich = SID_ATTR_BRUSH_ROW; 606*cdf0e10cSrcweir 607*cdf0e10cSrcweir if ( rSet.GetItemState( SID_ATTR_BRUSH_TABLE, sal_False ) >= SFX_ITEM_AVAILABLE ) 608*cdf0e10cSrcweir { 609*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( SID_ATTR_BRUSH_TABLE ) ); 610*cdf0e10cSrcweir pTableBck_Impl->pTableBrush = new SvxBrushItem(*pBgdAttr); 611*cdf0e10cSrcweir } 612*cdf0e10cSrcweir pTableBck_Impl->nTableWhich = SID_ATTR_BRUSH_TABLE; 613*cdf0e10cSrcweir 614*cdf0e10cSrcweir TblDestinationHdl_Impl(&aTblLBox); 615*cdf0e10cSrcweir aTblLBox.SaveValue(); 616*cdf0e10cSrcweir } 617*cdf0e10cSrcweir else 618*cdf0e10cSrcweir { 619*cdf0e10cSrcweir sal_uInt16 nValue = aParaLBox.GetSelectEntryPos(); 620*cdf0e10cSrcweir 621*cdf0e10cSrcweir if ( pParaBck_Impl ) 622*cdf0e10cSrcweir { 623*cdf0e10cSrcweir delete pParaBck_Impl->pParaBrush; 624*cdf0e10cSrcweir delete pParaBck_Impl->pCharBrush; 625*cdf0e10cSrcweir } 626*cdf0e10cSrcweir else 627*cdf0e10cSrcweir pParaBck_Impl = new SvxBackgroundPara_Impl(); 628*cdf0e10cSrcweir 629*cdf0e10cSrcweir pParaBck_Impl->nActPos = nValue; 630*cdf0e10cSrcweir 631*cdf0e10cSrcweir nWhich = GetWhich( SID_ATTR_BRUSH ); 632*cdf0e10cSrcweir if ( rSet.GetItemState( nWhich, sal_False ) >= SFX_ITEM_AVAILABLE ) 633*cdf0e10cSrcweir { 634*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( nWhich ) ); 635*cdf0e10cSrcweir pParaBck_Impl->pParaBrush = new SvxBrushItem(*pBgdAttr); 636*cdf0e10cSrcweir } 637*cdf0e10cSrcweir 638*cdf0e10cSrcweir nWhich = GetWhich( SID_ATTR_BRUSH_CHAR ); 639*cdf0e10cSrcweir SfxItemState eState = rSet.GetItemState( nWhich, sal_True ); 640*cdf0e10cSrcweir eState = rSet.GetItemState( nWhich, sal_False ); 641*cdf0e10cSrcweir if ( rSet.GetItemState( nWhich, sal_True ) > SFX_ITEM_AVAILABLE ) 642*cdf0e10cSrcweir { 643*cdf0e10cSrcweir pBgdAttr = (const SvxBrushItem*)&( rSet.Get( nWhich ) ); 644*cdf0e10cSrcweir pParaBck_Impl->pCharBrush = new SvxBrushItem(*pBgdAttr); 645*cdf0e10cSrcweir } 646*cdf0e10cSrcweir else 647*cdf0e10cSrcweir pParaBck_Impl->pCharBrush = new SvxBrushItem(SID_ATTR_BRUSH_CHAR); 648*cdf0e10cSrcweir 649*cdf0e10cSrcweir ParaDestinationHdl_Impl(&aParaLBox); 650*cdf0e10cSrcweir aParaLBox.SaveValue(); 651*cdf0e10cSrcweir } 652*cdf0e10cSrcweir } 653*cdf0e10cSrcweir if(!bResized) 654*cdf0e10cSrcweir { 655*cdf0e10cSrcweir if(!aLbSelect.IsVisible() && !aTblLBox.IsVisible() && !aParaLBox.IsVisible()) 656*cdf0e10cSrcweir { 657*cdf0e10cSrcweir long nY(LogicToPixel(Point(11,14), MAP_APPFONT).X()); 658*cdf0e10cSrcweir long nX(LogicToPixel(Point(11,14), MAP_APPFONT).Y()); 659*cdf0e10cSrcweir Point aPos(aBorderWin.GetPosPixel()); 660*cdf0e10cSrcweir aPos.X() = nX; 661*cdf0e10cSrcweir aPos.Y() = nY; 662*cdf0e10cSrcweir aBorderWin.SetPosPixel(aPos); 663*cdf0e10cSrcweir aPos = pPreviewWin1->GetPosPixel(); 664*cdf0e10cSrcweir aPos.Y() = nY; 665*cdf0e10cSrcweir pPreviewWin1->SetPosPixel(aPos); 666*cdf0e10cSrcweir aBackgroundColorBox.Hide(); 667*cdf0e10cSrcweir aBackgroundColorSet.SetAccessibleRelationLabeledBy(&aBackgroundColorSet); 668*cdf0e10cSrcweir } 669*cdf0e10cSrcweir } 670*cdf0e10cSrcweir } 671*cdf0e10cSrcweir 672*cdf0e10cSrcweir void SvxBackgroundTabPage::ResetFromWallpaperItem( const SfxItemSet& rSet ) 673*cdf0e10cSrcweir { 674*cdf0e10cSrcweir ShowSelector(); 675*cdf0e10cSrcweir 676*cdf0e10cSrcweir // Zustand des Vorschau-Buttons durch UserData persistent 677*cdf0e10cSrcweir String aUserData = GetUserData(); 678*cdf0e10cSrcweir aBtnPreview.Check( aUserData.Len() && sal_Unicode('1') == aUserData.GetChar( 0 ) ); 679*cdf0e10cSrcweir 680*cdf0e10cSrcweir // Input-BrushItem besorgen und auswerten 681*cdf0e10cSrcweir const SvxBrushItem* pBgdAttr = NULL; 682*cdf0e10cSrcweir sal_uInt16 nSlot = SID_VIEW_FLD_PIC; 683*cdf0e10cSrcweir sal_uInt16 nWhich = GetWhich( nSlot ); 684*cdf0e10cSrcweir SvxBrushItem* pTemp = 0; 685*cdf0e10cSrcweir const CntWallpaperItem* pItem = 0; 686*cdf0e10cSrcweir 687*cdf0e10cSrcweir if ( rSet.GetItemState( nWhich, sal_False ) >= SFX_ITEM_AVAILABLE ) 688*cdf0e10cSrcweir { 689*cdf0e10cSrcweir pItem = (const CntWallpaperItem*)&rSet.Get( nWhich ); 690*cdf0e10cSrcweir pTemp = new SvxBrushItem( *pItem, nWhich ); 691*cdf0e10cSrcweir pBgdAttr = pTemp; 692*cdf0e10cSrcweir } 693*cdf0e10cSrcweir 694*cdf0e10cSrcweir aBtnTile.Check(); 695*cdf0e10cSrcweir 696*cdf0e10cSrcweir if ( pBgdAttr ) 697*cdf0e10cSrcweir { 698*cdf0e10cSrcweir FillControls_Impl(*pBgdAttr, aUserData); 699*cdf0e10cSrcweir // Auch bei Anzeige der Grafik, soll die Brush erhalten bleiben 700*cdf0e10cSrcweir if( aBgdColor != pBgdAttr->GetColor() ) 701*cdf0e10cSrcweir { 702*cdf0e10cSrcweir aBgdColor = pBgdAttr->GetColor(); 703*cdf0e10cSrcweir sal_uInt16 nCol = GetItemId_Impl( aBackgroundColorSet, aBgdColor ); 704*cdf0e10cSrcweir aBackgroundColorSet.SelectItem( nCol ); 705*cdf0e10cSrcweir pPreviewWin1->NotifyChange( aBgdColor ); 706*cdf0e10cSrcweir } 707*cdf0e10cSrcweir } 708*cdf0e10cSrcweir else 709*cdf0e10cSrcweir { 710*cdf0e10cSrcweir aLbSelect.SelectEntryPos( 0 ); 711*cdf0e10cSrcweir ShowColorUI_Impl(); 712*cdf0e10cSrcweir 713*cdf0e10cSrcweir const SfxPoolItem* pOld = GetOldItem( rSet, SID_VIEW_FLD_PIC ); 714*cdf0e10cSrcweir if ( pOld ) 715*cdf0e10cSrcweir aBgdColor = Color( ((CntWallpaperItem*)pOld)->GetColor() ); 716*cdf0e10cSrcweir } 717*cdf0e10cSrcweir 718*cdf0e10cSrcweir // We now have always a link to the background 719*cdf0e10cSrcweir bLinkOnly = sal_True; 720*cdf0e10cSrcweir aBtnLink.Check( sal_True ); 721*cdf0e10cSrcweir aBtnLink.Show( sal_False ); 722*cdf0e10cSrcweir // if( !pItem || !pItem->GetWallpaper(sal_False).IsBitmap() ) 723*cdf0e10cSrcweir // aBtnLink.Check(); 724*cdf0e10cSrcweir 725*cdf0e10cSrcweir delete pTemp; 726*cdf0e10cSrcweir } 727*cdf0e10cSrcweir 728*cdf0e10cSrcweir 729*cdf0e10cSrcweir 730*cdf0e10cSrcweir //------------------------------------------------------------------------ 731*cdf0e10cSrcweir 732*cdf0e10cSrcweir void SvxBackgroundTabPage::FillUserData() 733*cdf0e10cSrcweir 734*cdf0e10cSrcweir /* [Beschreibung] 735*cdf0e10cSrcweir 736*cdf0e10cSrcweir Beim Destruieren einer SfxTabPage wird diese virtuelle Methode gerufen, 737*cdf0e10cSrcweir damit die TabPage interne Informationen sichern kann. 738*cdf0e10cSrcweir 739*cdf0e10cSrcweir In diesem Fall wird der Zustand des Vorschau-Buttons gesichert. 740*cdf0e10cSrcweir */ 741*cdf0e10cSrcweir 742*cdf0e10cSrcweir { 743*cdf0e10cSrcweir SetUserData( String( aBtnPreview.IsChecked() ? sal_Unicode('1') : sal_Unicode('0') ) ); 744*cdf0e10cSrcweir } 745*cdf0e10cSrcweir 746*cdf0e10cSrcweir //------------------------------------------------------------------------ 747*cdf0e10cSrcweir 748*cdf0e10cSrcweir sal_Bool SvxBackgroundTabPage::FillItemSet( SfxItemSet& rCoreSet ) 749*cdf0e10cSrcweir 750*cdf0e10cSrcweir /* [Beschreibung] 751*cdf0e10cSrcweir 752*cdf0e10cSrcweir */ 753*cdf0e10cSrcweir 754*cdf0e10cSrcweir { 755*cdf0e10cSrcweir if ( pPageImpl->pLoadTimer && pPageImpl->pLoadTimer->IsActive() ) 756*cdf0e10cSrcweir { 757*cdf0e10cSrcweir pPageImpl->pLoadTimer->Stop(); 758*cdf0e10cSrcweir LoadTimerHdl_Impl( pPageImpl->pLoadTimer ); 759*cdf0e10cSrcweir } 760*cdf0e10cSrcweir // os: So ein Unsinn! Irgendwo laesst sich so ein Item immer finden, 761*cdf0e10cSrcweir // es muss aber im rSet vorhanden sein! 762*cdf0e10cSrcweir 763*cdf0e10cSrcweir // const SfxPoolItem* pX = GetOldItem( rCoreSet, SID_VIEW_FLD_PIC ); 764*cdf0e10cSrcweir // if( pX && pX->ISA(SfxWallpaperItem)) 765*cdf0e10cSrcweir if(SFX_ITEM_AVAILABLE <= rCoreSet.GetItemState(GetWhich(SID_VIEW_FLD_PIC), sal_False)) 766*cdf0e10cSrcweir return FillItemSetWithWallpaperItem( rCoreSet, SID_VIEW_FLD_PIC ); 767*cdf0e10cSrcweir 768*cdf0e10cSrcweir sal_Bool bModified = sal_False; 769*cdf0e10cSrcweir sal_uInt16 nSlot = SID_ATTR_BRUSH; 770*cdf0e10cSrcweir 771*cdf0e10cSrcweir if ( aTblLBox.IsVisible() ) 772*cdf0e10cSrcweir { 773*cdf0e10cSrcweir switch( aTblLBox.GetSelectEntryPos() ) 774*cdf0e10cSrcweir { 775*cdf0e10cSrcweir case TBL_DEST_CELL: 776*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH; 777*cdf0e10cSrcweir break; 778*cdf0e10cSrcweir case TBL_DEST_ROW: 779*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_ROW; 780*cdf0e10cSrcweir break; 781*cdf0e10cSrcweir case TBL_DEST_TBL: 782*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_TABLE; 783*cdf0e10cSrcweir break; 784*cdf0e10cSrcweir } 785*cdf0e10cSrcweir } 786*cdf0e10cSrcweir else if(aParaLBox.GetData() == &aParaLBox) 787*cdf0e10cSrcweir { 788*cdf0e10cSrcweir switch(aParaLBox.GetSelectEntryPos()) 789*cdf0e10cSrcweir { 790*cdf0e10cSrcweir case PARA_DEST_PARA: 791*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH; 792*cdf0e10cSrcweir break; 793*cdf0e10cSrcweir case PARA_DEST_CHAR: 794*cdf0e10cSrcweir nSlot = SID_ATTR_BRUSH_CHAR; 795*cdf0e10cSrcweir break; 796*cdf0e10cSrcweir } 797*cdf0e10cSrcweir } 798*cdf0e10cSrcweir sal_uInt16 nWhich = GetWhich( nSlot ); 799*cdf0e10cSrcweir 800*cdf0e10cSrcweir const SfxPoolItem* pOld = GetOldItem( rCoreSet, nSlot ); 801*cdf0e10cSrcweir SfxItemState eOldItemState = rCoreSet.GetItemState(nSlot, sal_False); 802*cdf0e10cSrcweir const SfxItemSet& rOldSet = GetItemSet(); 803*cdf0e10cSrcweir 804*cdf0e10cSrcweir sal_Bool bGraphTransparencyChanged = bGraphTransparency && (aGraphTransMF.GetText() != aGraphTransMF.GetSavedValue()); 805*cdf0e10cSrcweir if ( pOld ) 806*cdf0e10cSrcweir { 807*cdf0e10cSrcweir const SvxBrushItem& rOldItem = (const SvxBrushItem&)*pOld; 808*cdf0e10cSrcweir SvxGraphicPosition eOldPos = rOldItem.GetGraphicPos(); 809*cdf0e10cSrcweir const sal_Bool bIsBrush = ( 0 == aLbSelect.GetSelectEntryPos() ); 810*cdf0e10cSrcweir 811*cdf0e10cSrcweir // transparency has to be set if enabled, the color not already set to "No fill" and 812*cdf0e10cSrcweir if( bColTransparency && 813*cdf0e10cSrcweir aBgdColor.GetTransparency() < 0xff) 814*cdf0e10cSrcweir { 815*cdf0e10cSrcweir aBgdColor.SetTransparency(lcl_PercentToTransparency(static_cast<long>(aColTransMF.GetValue()))); 816*cdf0e10cSrcweir } 817*cdf0e10cSrcweir if ( ( (GPOS_NONE == eOldPos) && bIsBrush ) 818*cdf0e10cSrcweir || ( (GPOS_NONE != eOldPos) && !bIsBrush ) ) // Brush <-> Bitmap gewechselt? 819*cdf0e10cSrcweir { 820*cdf0e10cSrcweir // Hintergrund-Art wurde nicht gewechselt: 821*cdf0e10cSrcweir 822*cdf0e10cSrcweir if ( (GPOS_NONE == eOldPos) || !aLbSelect.IsVisible() ) 823*cdf0e10cSrcweir { 824*cdf0e10cSrcweir // Brush-Behandlung: 825*cdf0e10cSrcweir if ( rOldItem.GetColor() != aBgdColor || 826*cdf0e10cSrcweir (SFX_ITEM_AVAILABLE >= eOldItemState && !aBackgroundColorSet.IsNoSelection())) 827*cdf0e10cSrcweir { 828*cdf0e10cSrcweir bModified = sal_True; 829*cdf0e10cSrcweir rCoreSet.Put( SvxBrushItem( aBgdColor, nWhich ) ); 830*cdf0e10cSrcweir } 831*cdf0e10cSrcweir else if ( SFX_ITEM_DEFAULT == rOldSet.GetItemState( nWhich, sal_False ) ) 832*cdf0e10cSrcweir rCoreSet.ClearItem( nWhich ); 833*cdf0e10cSrcweir } 834*cdf0e10cSrcweir else 835*cdf0e10cSrcweir { 836*cdf0e10cSrcweir // Bitmap-Behandlung: 837*cdf0e10cSrcweir 838*cdf0e10cSrcweir SvxGraphicPosition eNewPos = GetGraphicPosition_Impl(); 839*cdf0e10cSrcweir const sal_Bool bIsLink = aBtnLink.IsChecked(); 840*cdf0e10cSrcweir const sal_Bool bWasLink = (NULL != rOldItem.GetGraphicLink() ); 841*cdf0e10cSrcweir 842*cdf0e10cSrcweir 843*cdf0e10cSrcweir if ( !bIsLink && !bIsGraphicValid ) 844*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 845*cdf0e10cSrcweir 846*cdf0e10cSrcweir if ( bGraphTransparencyChanged || 847*cdf0e10cSrcweir eNewPos != eOldPos 848*cdf0e10cSrcweir || bIsLink != bWasLink 849*cdf0e10cSrcweir || ( bWasLink && *rOldItem.GetGraphicLink() 850*cdf0e10cSrcweir != aBgdGraphicPath ) 851*cdf0e10cSrcweir || ( !bWasLink && rOldItem.GetGraphic()->GetBitmap() 852*cdf0e10cSrcweir != aBgdGraphic.GetBitmap() ) 853*cdf0e10cSrcweir ) 854*cdf0e10cSrcweir { 855*cdf0e10cSrcweir bModified = sal_True; 856*cdf0e10cSrcweir 857*cdf0e10cSrcweir SvxBrushItem aTmpBrush(nWhich); 858*cdf0e10cSrcweir if ( bIsLink ) 859*cdf0e10cSrcweir { 860*cdf0e10cSrcweir aTmpBrush = SvxBrushItem( aBgdGraphicPath, 861*cdf0e10cSrcweir aBgdGraphicFilter, 862*cdf0e10cSrcweir eNewPos, 863*cdf0e10cSrcweir nWhich ); 864*cdf0e10cSrcweir } 865*cdf0e10cSrcweir else 866*cdf0e10cSrcweir aTmpBrush = SvxBrushItem( aBgdGraphic, 867*cdf0e10cSrcweir eNewPos, 868*cdf0e10cSrcweir nWhich ); 869*cdf0e10cSrcweir lcl_SetTransparency(aTmpBrush, static_cast<long>(aGraphTransMF.GetValue())); 870*cdf0e10cSrcweir 871*cdf0e10cSrcweir rCoreSet.Put(aTmpBrush); 872*cdf0e10cSrcweir } 873*cdf0e10cSrcweir else if ( SFX_ITEM_DEFAULT == rOldSet.GetItemState( nWhich, sal_False ) ) 874*cdf0e10cSrcweir rCoreSet.ClearItem( nWhich ); 875*cdf0e10cSrcweir } 876*cdf0e10cSrcweir } 877*cdf0e10cSrcweir else // Brush <-> Bitmap gewechselt! 878*cdf0e10cSrcweir { 879*cdf0e10cSrcweir if ( bIsBrush ) 880*cdf0e10cSrcweir rCoreSet.Put( SvxBrushItem( aBgdColor, nWhich ) ); 881*cdf0e10cSrcweir else 882*cdf0e10cSrcweir { 883*cdf0e10cSrcweir SvxBrushItem* pTmpBrush = 0; 884*cdf0e10cSrcweir if ( aBtnLink.IsChecked() ) 885*cdf0e10cSrcweir { 886*cdf0e10cSrcweir pTmpBrush = new SvxBrushItem( aBgdGraphicPath, 887*cdf0e10cSrcweir aBgdGraphicFilter, 888*cdf0e10cSrcweir GetGraphicPosition_Impl(), 889*cdf0e10cSrcweir nWhich ); 890*cdf0e10cSrcweir } 891*cdf0e10cSrcweir else 892*cdf0e10cSrcweir { 893*cdf0e10cSrcweir if ( !bIsGraphicValid ) 894*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 895*cdf0e10cSrcweir 896*cdf0e10cSrcweir if ( bIsGraphicValid ) 897*cdf0e10cSrcweir pTmpBrush = new SvxBrushItem( aBgdGraphic, 898*cdf0e10cSrcweir GetGraphicPosition_Impl(), 899*cdf0e10cSrcweir nWhich ); 900*cdf0e10cSrcweir } 901*cdf0e10cSrcweir if(pTmpBrush) 902*cdf0e10cSrcweir { 903*cdf0e10cSrcweir lcl_SetTransparency(*pTmpBrush, static_cast<long>(aGraphTransMF.GetValue())); 904*cdf0e10cSrcweir rCoreSet.Put(*pTmpBrush); 905*cdf0e10cSrcweir delete pTmpBrush; 906*cdf0e10cSrcweir } 907*cdf0e10cSrcweir } 908*cdf0e10cSrcweir bModified = ( bIsBrush || aBtnLink.IsChecked() || bIsGraphicValid ); 909*cdf0e10cSrcweir } 910*cdf0e10cSrcweir } 911*cdf0e10cSrcweir else if ( SID_ATTR_BRUSH_CHAR == nSlot && aBgdColor != Color( COL_WHITE ) ) 912*cdf0e10cSrcweir { 913*cdf0e10cSrcweir rCoreSet.Put( SvxBrushItem( aBgdColor, nWhich ) ); 914*cdf0e10cSrcweir bModified = sal_True; 915*cdf0e10cSrcweir } 916*cdf0e10cSrcweir 917*cdf0e10cSrcweir if( aTblLBox.IsVisible() ) 918*cdf0e10cSrcweir { 919*cdf0e10cSrcweir // Der aktuelle Zustand wurde bereits geputtet 920*cdf0e10cSrcweir if( nSlot != SID_ATTR_BRUSH && pTableBck_Impl->pCellBrush) 921*cdf0e10cSrcweir { 922*cdf0e10cSrcweir const SfxPoolItem* pOldCell = 923*cdf0e10cSrcweir GetOldItem( rCoreSet, SID_ATTR_BRUSH ); 924*cdf0e10cSrcweir 925*cdf0e10cSrcweir if ( *pTableBck_Impl->pCellBrush != *pOldCell ) 926*cdf0e10cSrcweir { 927*cdf0e10cSrcweir rCoreSet.Put( *pTableBck_Impl->pCellBrush ); 928*cdf0e10cSrcweir bModified |= sal_True; 929*cdf0e10cSrcweir } 930*cdf0e10cSrcweir } 931*cdf0e10cSrcweir 932*cdf0e10cSrcweir if( nSlot != SID_ATTR_BRUSH_ROW && pTableBck_Impl->pRowBrush) 933*cdf0e10cSrcweir { 934*cdf0e10cSrcweir const SfxPoolItem* pOldRow = 935*cdf0e10cSrcweir GetOldItem( rCoreSet, SID_ATTR_BRUSH_ROW ); 936*cdf0e10cSrcweir 937*cdf0e10cSrcweir if ( *pTableBck_Impl->pRowBrush != *pOldRow ) 938*cdf0e10cSrcweir { 939*cdf0e10cSrcweir rCoreSet.Put( *pTableBck_Impl->pRowBrush ); 940*cdf0e10cSrcweir bModified |= sal_True; 941*cdf0e10cSrcweir } 942*cdf0e10cSrcweir } 943*cdf0e10cSrcweir 944*cdf0e10cSrcweir if( nSlot != SID_ATTR_BRUSH_TABLE && pTableBck_Impl->pTableBrush) 945*cdf0e10cSrcweir { 946*cdf0e10cSrcweir const SfxPoolItem* pOldTable = 947*cdf0e10cSrcweir GetOldItem( rCoreSet, SID_ATTR_BRUSH_TABLE ); 948*cdf0e10cSrcweir 949*cdf0e10cSrcweir if ( *pTableBck_Impl->pTableBrush != *pOldTable ) 950*cdf0e10cSrcweir { 951*cdf0e10cSrcweir rCoreSet.Put( *pTableBck_Impl->pTableBrush ); 952*cdf0e10cSrcweir bModified |= sal_True; 953*cdf0e10cSrcweir } 954*cdf0e10cSrcweir } 955*cdf0e10cSrcweir 956*cdf0e10cSrcweir if( aTblLBox.GetSavedValue() != aTblLBox.GetSelectEntryPos() ) 957*cdf0e10cSrcweir { 958*cdf0e10cSrcweir rCoreSet.Put( SfxUInt16Item( SID_BACKGRND_DESTINATION, 959*cdf0e10cSrcweir aTblLBox.GetSelectEntryPos() ) ); 960*cdf0e10cSrcweir bModified |= sal_True; 961*cdf0e10cSrcweir } 962*cdf0e10cSrcweir } 963*cdf0e10cSrcweir else if(aParaLBox.GetData() == &aParaLBox) 964*cdf0e10cSrcweir { 965*cdf0e10cSrcweir // Der aktuelle Zustand wurde bereits geputtet 966*cdf0e10cSrcweir if( nSlot != SID_ATTR_BRUSH && aParaLBox.IsVisible()) // nicht im Suchen-Format-Dialog 967*cdf0e10cSrcweir { 968*cdf0e10cSrcweir const SfxPoolItem* pOldPara = 969*cdf0e10cSrcweir GetOldItem( rCoreSet, SID_ATTR_BRUSH ); 970*cdf0e10cSrcweir 971*cdf0e10cSrcweir if ( *pParaBck_Impl->pParaBrush != *pOldPara ) 972*cdf0e10cSrcweir { 973*cdf0e10cSrcweir rCoreSet.Put( *pParaBck_Impl->pParaBrush ); 974*cdf0e10cSrcweir bModified |= sal_True; 975*cdf0e10cSrcweir } 976*cdf0e10cSrcweir } 977*cdf0e10cSrcweir 978*cdf0e10cSrcweir if( nSlot != SID_ATTR_BRUSH_CHAR ) 979*cdf0e10cSrcweir { 980*cdf0e10cSrcweir const SfxPoolItem* pOldChar = 981*cdf0e10cSrcweir GetOldItem( rCoreSet, SID_ATTR_BRUSH_CHAR ); 982*cdf0e10cSrcweir DBG_ASSERT(pParaBck_Impl, "pParaBck_Impl == NULL ?"); 983*cdf0e10cSrcweir if ( pOldChar && 984*cdf0e10cSrcweir //#111173# crash report shows that pParaBck_Impl can be NULL, the cause is unknown 985*cdf0e10cSrcweir pParaBck_Impl && 986*cdf0e10cSrcweir (*pParaBck_Impl->pCharBrush != *pOldChar || 987*cdf0e10cSrcweir *pParaBck_Impl->pCharBrush != SvxBrushItem(SID_ATTR_BRUSH_CHAR))) 988*cdf0e10cSrcweir { 989*cdf0e10cSrcweir rCoreSet.Put( *pParaBck_Impl->pCharBrush ); 990*cdf0e10cSrcweir bModified |= sal_True; 991*cdf0e10cSrcweir } 992*cdf0e10cSrcweir } 993*cdf0e10cSrcweir 994*cdf0e10cSrcweir if( aParaLBox.GetSavedValue() != aParaLBox.GetSelectEntryPos() ) 995*cdf0e10cSrcweir { 996*cdf0e10cSrcweir rCoreSet.Put( SfxUInt16Item( SID_BACKGRND_DESTINATION, 997*cdf0e10cSrcweir aParaLBox.GetSelectEntryPos() ) ); 998*cdf0e10cSrcweir bModified |= sal_True; 999*cdf0e10cSrcweir } 1000*cdf0e10cSrcweir } 1001*cdf0e10cSrcweir return bModified; 1002*cdf0e10cSrcweir } 1003*cdf0e10cSrcweir 1004*cdf0e10cSrcweir sal_Bool SvxBackgroundTabPage::FillItemSetWithWallpaperItem( SfxItemSet& rCoreSet, sal_uInt16 nSlot) 1005*cdf0e10cSrcweir { 1006*cdf0e10cSrcweir sal_uInt16 nWhich = GetWhich( nSlot ); 1007*cdf0e10cSrcweir const SfxPoolItem* pOld = GetOldItem( rCoreSet, nSlot ); 1008*cdf0e10cSrcweir const SfxItemSet& rOldSet = GetItemSet(); 1009*cdf0e10cSrcweir DBG_ASSERT(pOld,"FillItemSetWithWallpaperItem: Item not found"); 1010*cdf0e10cSrcweir 1011*cdf0e10cSrcweir SvxBrushItem rOldItem( (const CntWallpaperItem&)*pOld, nWhich ); 1012*cdf0e10cSrcweir SvxGraphicPosition eOldPos = rOldItem.GetGraphicPos(); 1013*cdf0e10cSrcweir const sal_Bool bIsBrush = ( 0 == aLbSelect.GetSelectEntryPos() ); 1014*cdf0e10cSrcweir sal_Bool bModified = sal_False; 1015*cdf0e10cSrcweir 1016*cdf0e10cSrcweir if ( ( (GPOS_NONE == eOldPos) && bIsBrush ) 1017*cdf0e10cSrcweir || ( (GPOS_NONE != eOldPos) && !bIsBrush ) ) // Brush <-> Bitmap gewechselt? 1018*cdf0e10cSrcweir { 1019*cdf0e10cSrcweir // Hintergrund-Art wurde nicht gewechselt: 1020*cdf0e10cSrcweir 1021*cdf0e10cSrcweir if ( (GPOS_NONE == eOldPos) || !aLbSelect.IsVisible() ) 1022*cdf0e10cSrcweir { 1023*cdf0e10cSrcweir // Brush-Behandlung: 1024*cdf0e10cSrcweir if ( rOldItem.GetColor() != aBgdColor ) 1025*cdf0e10cSrcweir { 1026*cdf0e10cSrcweir bModified = sal_True; 1027*cdf0e10cSrcweir CntWallpaperItem aItem( nWhich ); 1028*cdf0e10cSrcweir aItem.SetColor( aBgdColor ); 1029*cdf0e10cSrcweir rCoreSet.Put( aItem ); 1030*cdf0e10cSrcweir } 1031*cdf0e10cSrcweir else if ( SFX_ITEM_DEFAULT == rOldSet.GetItemState( nWhich, sal_False ) ) 1032*cdf0e10cSrcweir rCoreSet.ClearItem( nWhich ); 1033*cdf0e10cSrcweir } 1034*cdf0e10cSrcweir else 1035*cdf0e10cSrcweir { 1036*cdf0e10cSrcweir // Bitmap-Behandlung: 1037*cdf0e10cSrcweir SvxGraphicPosition eNewPos = GetGraphicPosition_Impl(); 1038*cdf0e10cSrcweir 1039*cdf0e10cSrcweir int bBitmapChanged = ( ( eNewPos != eOldPos ) || 1040*cdf0e10cSrcweir ( *rOldItem.GetGraphicLink() != aBgdGraphicPath ) ); 1041*cdf0e10cSrcweir int bBrushChanged = ( rOldItem.GetColor() != aBgdColor ); 1042*cdf0e10cSrcweir if( bBitmapChanged || bBrushChanged ) 1043*cdf0e10cSrcweir { 1044*cdf0e10cSrcweir bModified = sal_True; 1045*cdf0e10cSrcweir 1046*cdf0e10cSrcweir CntWallpaperItem aItem( nWhich ); 1047*cdf0e10cSrcweir WallpaperStyle eWallStyle = SvxBrushItem::GraphicPos2WallpaperStyle(eNewPos); 1048*cdf0e10cSrcweir aItem.SetStyle( sal::static_int_cast< sal_uInt16 >( eWallStyle ) ); 1049*cdf0e10cSrcweir aItem.SetColor( aBgdColor ); 1050*cdf0e10cSrcweir aItem.SetBitmapURL( aBgdGraphicPath ); 1051*cdf0e10cSrcweir rCoreSet.Put( aItem ); 1052*cdf0e10cSrcweir } 1053*cdf0e10cSrcweir else if ( SFX_ITEM_DEFAULT == rOldSet.GetItemState( nWhich, sal_False ) ) 1054*cdf0e10cSrcweir rCoreSet.ClearItem( nWhich ); 1055*cdf0e10cSrcweir } 1056*cdf0e10cSrcweir } 1057*cdf0e10cSrcweir else // Brush <-> Bitmap gewechselt! 1058*cdf0e10cSrcweir { 1059*cdf0e10cSrcweir CntWallpaperItem aItem( nWhich ); 1060*cdf0e10cSrcweir if ( bIsBrush ) 1061*cdf0e10cSrcweir { 1062*cdf0e10cSrcweir aItem.SetColor( aBgdColor ); 1063*cdf0e10cSrcweir rCoreSet.Put( aItem ); 1064*cdf0e10cSrcweir } 1065*cdf0e10cSrcweir else 1066*cdf0e10cSrcweir { 1067*cdf0e10cSrcweir WallpaperStyle eWallStyle = 1068*cdf0e10cSrcweir SvxBrushItem::GraphicPos2WallpaperStyle( GetGraphicPosition_Impl() ); 1069*cdf0e10cSrcweir aItem.SetStyle( sal::static_int_cast< sal_uInt16 >( eWallStyle ) ); 1070*cdf0e10cSrcweir aItem.SetColor( aBgdColor ); 1071*cdf0e10cSrcweir aItem.SetBitmapURL( aBgdGraphicPath ); 1072*cdf0e10cSrcweir rCoreSet.Put( aItem ); 1073*cdf0e10cSrcweir } 1074*cdf0e10cSrcweir 1075*cdf0e10cSrcweir bModified = sal_True; 1076*cdf0e10cSrcweir } 1077*cdf0e10cSrcweir return bModified; 1078*cdf0e10cSrcweir } 1079*cdf0e10cSrcweir 1080*cdf0e10cSrcweir //----------------------------------------------------------------------- 1081*cdf0e10cSrcweir 1082*cdf0e10cSrcweir int SvxBackgroundTabPage::DeactivatePage( SfxItemSet* _pSet ) 1083*cdf0e10cSrcweir 1084*cdf0e10cSrcweir /* [Beschreibung] 1085*cdf0e10cSrcweir 1086*cdf0e10cSrcweir virtuelle Methode, wird beim Deaktivieren gerufen 1087*cdf0e10cSrcweir */ 1088*cdf0e10cSrcweir 1089*cdf0e10cSrcweir { 1090*cdf0e10cSrcweir if ( pPageImpl->bIsImportDlgInExecute ) 1091*cdf0e10cSrcweir return KEEP_PAGE; 1092*cdf0e10cSrcweir 1093*cdf0e10cSrcweir if ( _pSet ) 1094*cdf0e10cSrcweir FillItemSet( *_pSet ); 1095*cdf0e10cSrcweir 1096*cdf0e10cSrcweir return LEAVE_PAGE; 1097*cdf0e10cSrcweir } 1098*cdf0e10cSrcweir 1099*cdf0e10cSrcweir //----------------------------------------------------------------------- 1100*cdf0e10cSrcweir 1101*cdf0e10cSrcweir void SvxBackgroundTabPage::PointChanged( Window* , RECT_POINT ) 1102*cdf0e10cSrcweir 1103*cdf0e10cSrcweir /* [Beschreibung] 1104*cdf0e10cSrcweir 1105*cdf0e10cSrcweir */ 1106*cdf0e10cSrcweir 1107*cdf0e10cSrcweir { 1108*cdf0e10cSrcweir // muss implementiert werden, damit Position-Control funktioniert 1109*cdf0e10cSrcweir } 1110*cdf0e10cSrcweir 1111*cdf0e10cSrcweir //----------------------------------------------------------------------- 1112*cdf0e10cSrcweir 1113*cdf0e10cSrcweir void SvxBackgroundTabPage::ShowSelector() 1114*cdf0e10cSrcweir 1115*cdf0e10cSrcweir /* [Beschreibung] 1116*cdf0e10cSrcweir 1117*cdf0e10cSrcweir */ 1118*cdf0e10cSrcweir 1119*cdf0e10cSrcweir { 1120*cdf0e10cSrcweir if( bAllowShowSelector) 1121*cdf0e10cSrcweir { 1122*cdf0e10cSrcweir aSelectTxt.Show(); 1123*cdf0e10cSrcweir aLbSelect.Show(); 1124*cdf0e10cSrcweir aLbSelect.SetSelectHdl( HDL(SelectHdl_Impl) ); 1125*cdf0e10cSrcweir aBtnLink.SetClickHdl( HDL(FileClickHdl_Impl) ); 1126*cdf0e10cSrcweir aBtnPreview.SetClickHdl( HDL(FileClickHdl_Impl) ); 1127*cdf0e10cSrcweir aBtnBrowse.SetClickHdl( HDL(BrowseHdl_Impl) ); 1128*cdf0e10cSrcweir aBtnArea.SetClickHdl( HDL(RadioClickHdl_Impl) ); 1129*cdf0e10cSrcweir aBtnTile.SetClickHdl( HDL(RadioClickHdl_Impl) ); 1130*cdf0e10cSrcweir aBtnPosition.SetClickHdl( HDL(RadioClickHdl_Impl) ); 1131*cdf0e10cSrcweir 1132*cdf0e10cSrcweir // Verz"ogertes Laden "uber Timer (wg. UI-Update) 1133*cdf0e10cSrcweir pPageImpl->pLoadTimer = new Timer; 1134*cdf0e10cSrcweir pPageImpl->pLoadTimer->SetTimeout( 500 ); // 500ms verz"ogern 1135*cdf0e10cSrcweir pPageImpl->pLoadTimer->SetTimeoutHdl( 1136*cdf0e10cSrcweir LINK( this, SvxBackgroundTabPage, LoadTimerHdl_Impl ) ); 1137*cdf0e10cSrcweir 1138*cdf0e10cSrcweir bAllowShowSelector = sal_False; 1139*cdf0e10cSrcweir 1140*cdf0e10cSrcweir if(nHtmlMode & HTMLMODE_ON) 1141*cdf0e10cSrcweir { 1142*cdf0e10cSrcweir if(!(nHtmlMode & HTMLMODE_GRAPH_POS)) 1143*cdf0e10cSrcweir aBtnPosition.Enable(sal_False); 1144*cdf0e10cSrcweir aBtnArea.Enable(sal_False); 1145*cdf0e10cSrcweir } 1146*cdf0e10cSrcweir } 1147*cdf0e10cSrcweir } 1148*cdf0e10cSrcweir 1149*cdf0e10cSrcweir //------------------------------------------------------------------------ 1150*cdf0e10cSrcweir 1151*cdf0e10cSrcweir 1152*cdf0e10cSrcweir void SvxBackgroundTabPage::RaiseLoadError_Impl() 1153*cdf0e10cSrcweir 1154*cdf0e10cSrcweir /* [Beschreibung] 1155*cdf0e10cSrcweir 1156*cdf0e10cSrcweir */ 1157*cdf0e10cSrcweir 1158*cdf0e10cSrcweir { 1159*cdf0e10cSrcweir SfxErrorContext aContext( ERRCTX_SVX_BACKGROUND, 1160*cdf0e10cSrcweir String(), 1161*cdf0e10cSrcweir this, 1162*cdf0e10cSrcweir RID_SVXERRCTX, 1163*cdf0e10cSrcweir &CUI_MGR() ); 1164*cdf0e10cSrcweir 1165*cdf0e10cSrcweir ErrorHandler::HandleError( 1166*cdf0e10cSrcweir *new StringErrorInfo( ERRCODE_SVX_GRAPHIC_NOTREADABLE, 1167*cdf0e10cSrcweir aBgdGraphicPath ) ); 1168*cdf0e10cSrcweir } 1169*cdf0e10cSrcweir 1170*cdf0e10cSrcweir //------------------------------------------------------------------------ 1171*cdf0e10cSrcweir 1172*cdf0e10cSrcweir sal_Bool SvxBackgroundTabPage::LoadLinkedGraphic_Impl() 1173*cdf0e10cSrcweir 1174*cdf0e10cSrcweir /* [Beschreibung] 1175*cdf0e10cSrcweir 1176*cdf0e10cSrcweir */ 1177*cdf0e10cSrcweir 1178*cdf0e10cSrcweir { 1179*cdf0e10cSrcweir sal_Bool bResult = ( aBgdGraphicPath.Len() > 0 ) && 1180*cdf0e10cSrcweir ( GRFILTER_OK == GraphicFilter::LoadGraphic( aBgdGraphicPath, 1181*cdf0e10cSrcweir aBgdGraphicFilter, 1182*cdf0e10cSrcweir aBgdGraphic ) ); 1183*cdf0e10cSrcweir return bResult; 1184*cdf0e10cSrcweir } 1185*cdf0e10cSrcweir 1186*cdf0e10cSrcweir //------------------------------------------------------------------------ 1187*cdf0e10cSrcweir 1188*cdf0e10cSrcweir 1189*cdf0e10cSrcweir void SvxBackgroundTabPage::FillColorValueSets_Impl() 1190*cdf0e10cSrcweir 1191*cdf0e10cSrcweir /* [Beschreibung] 1192*cdf0e10cSrcweir 1193*cdf0e10cSrcweir F"ullen des Farb-Sets 1194*cdf0e10cSrcweir */ 1195*cdf0e10cSrcweir 1196*cdf0e10cSrcweir { 1197*cdf0e10cSrcweir SfxObjectShell* pDocSh = SfxObjectShell::Current(); 1198*cdf0e10cSrcweir const SfxPoolItem* pItem = NULL; 1199*cdf0e10cSrcweir XColorTable* pColorTable = NULL; 1200*cdf0e10cSrcweir const Size aSize15x15 = Size( 15, 15 ); 1201*cdf0e10cSrcweir FASTBOOL bOwn = sal_False; 1202*cdf0e10cSrcweir 1203*cdf0e10cSrcweir if ( pDocSh && ( 0 != ( pItem = pDocSh->GetItem( SID_COLOR_TABLE ) ) ) ) 1204*cdf0e10cSrcweir pColorTable = ( (SvxColorTableItem*)pItem )->GetColorTable(); 1205*cdf0e10cSrcweir 1206*cdf0e10cSrcweir if ( !pColorTable ) 1207*cdf0e10cSrcweir { 1208*cdf0e10cSrcweir bOwn = sal_True; 1209*cdf0e10cSrcweir pColorTable = new XColorTable( SvtPathOptions().GetPalettePath() ); 1210*cdf0e10cSrcweir } 1211*cdf0e10cSrcweir 1212*cdf0e10cSrcweir if ( pColorTable ) 1213*cdf0e10cSrcweir { 1214*cdf0e10cSrcweir short i = 0; 1215*cdf0e10cSrcweir long nCount = pColorTable->Count(); 1216*cdf0e10cSrcweir XColorEntry* pEntry = NULL; 1217*cdf0e10cSrcweir Color aColWhite( COL_WHITE ); 1218*cdf0e10cSrcweir String aStrWhite( EditResId( RID_SVXITEMS_COLOR_WHITE ) ); 1219*cdf0e10cSrcweir WinBits nBits = ( aBackgroundColorSet.GetStyle() | WB_ITEMBORDER | WB_NAMEFIELD | WB_NONEFIELD ); 1220*cdf0e10cSrcweir aBackgroundColorSet.SetText( SVX_RESSTR( RID_SVXSTR_TRANSPARENT ) ); 1221*cdf0e10cSrcweir aBackgroundColorSet.SetStyle( nBits ); 1222*cdf0e10cSrcweir aBackgroundColorSet.SetAccessibleName(aBackgroundColorBox.GetText()); 1223*cdf0e10cSrcweir for ( i = 0; i < nCount; i++ ) 1224*cdf0e10cSrcweir { 1225*cdf0e10cSrcweir pEntry = pColorTable->GetColor(i); 1226*cdf0e10cSrcweir aBackgroundColorSet.InsertItem( i + 1, pEntry->GetColor(), pEntry->GetName() ); 1227*cdf0e10cSrcweir } 1228*cdf0e10cSrcweir 1229*cdf0e10cSrcweir while ( i < 80 ) 1230*cdf0e10cSrcweir { 1231*cdf0e10cSrcweir aBackgroundColorSet.InsertItem( i + 1, aColWhite, aStrWhite ); 1232*cdf0e10cSrcweir i++; 1233*cdf0e10cSrcweir } 1234*cdf0e10cSrcweir 1235*cdf0e10cSrcweir if ( nCount > 80 ) 1236*cdf0e10cSrcweir { 1237*cdf0e10cSrcweir aBackgroundColorSet.SetStyle( nBits | WB_VSCROLL ); 1238*cdf0e10cSrcweir } 1239*cdf0e10cSrcweir } 1240*cdf0e10cSrcweir 1241*cdf0e10cSrcweir if ( bOwn ) 1242*cdf0e10cSrcweir delete pColorTable; 1243*cdf0e10cSrcweir 1244*cdf0e10cSrcweir aBackgroundColorSet.SetColCount( 10 ); 1245*cdf0e10cSrcweir aBackgroundColorSet.SetLineCount( 10 ); 1246*cdf0e10cSrcweir aBackgroundColorSet.CalcWindowSizePixel( aSize15x15 ); 1247*cdf0e10cSrcweir 1248*cdf0e10cSrcweir } 1249*cdf0e10cSrcweir 1250*cdf0e10cSrcweir //------------------------------------------------------------------------ 1251*cdf0e10cSrcweir 1252*cdf0e10cSrcweir 1253*cdf0e10cSrcweir 1254*cdf0e10cSrcweir //------------------------------------------------------------------------ 1255*cdf0e10cSrcweir 1256*cdf0e10cSrcweir void SvxBackgroundTabPage::ShowColorUI_Impl() 1257*cdf0e10cSrcweir 1258*cdf0e10cSrcweir /* [Beschreibung] 1259*cdf0e10cSrcweir 1260*cdf0e10cSrcweir Die Controls f"ur das Einstellen der Grafik ausblenden und die 1261*cdf0e10cSrcweir Controls f"ur die Farbeinstellung einblenden. 1262*cdf0e10cSrcweir */ 1263*cdf0e10cSrcweir 1264*cdf0e10cSrcweir { 1265*cdf0e10cSrcweir if( !aBackgroundColorSet.IsVisible() ) 1266*cdf0e10cSrcweir { 1267*cdf0e10cSrcweir aBackgroundColorSet.Show(); 1268*cdf0e10cSrcweir aBackgroundColorBox.Show(); 1269*cdf0e10cSrcweir aBorderWin.Show(); 1270*cdf0e10cSrcweir pPreviewWin1->Show(); 1271*cdf0e10cSrcweir aBtnBrowse.Hide(); 1272*cdf0e10cSrcweir aFtFile.Hide(); 1273*cdf0e10cSrcweir aBtnLink.Hide(); 1274*cdf0e10cSrcweir aBtnPreview.Hide(); 1275*cdf0e10cSrcweir aGbFile.Hide(); 1276*cdf0e10cSrcweir aBtnPosition.Hide(); 1277*cdf0e10cSrcweir aBtnArea.Hide(); 1278*cdf0e10cSrcweir aBtnTile.Hide(); 1279*cdf0e10cSrcweir aWndPosition.Hide(); 1280*cdf0e10cSrcweir aGbPosition.Hide(); 1281*cdf0e10cSrcweir pPreviewWin2->Hide(); 1282*cdf0e10cSrcweir aGraphTransFL.Show(sal_False); 1283*cdf0e10cSrcweir aGraphTransMF.Show(sal_False); 1284*cdf0e10cSrcweir if(bColTransparency) 1285*cdf0e10cSrcweir { 1286*cdf0e10cSrcweir aColTransFT.Show(); 1287*cdf0e10cSrcweir aColTransMF.Show(); 1288*cdf0e10cSrcweir } 1289*cdf0e10cSrcweir } 1290*cdf0e10cSrcweir } 1291*cdf0e10cSrcweir 1292*cdf0e10cSrcweir //------------------------------------------------------------------------ 1293*cdf0e10cSrcweir 1294*cdf0e10cSrcweir void SvxBackgroundTabPage::ShowBitmapUI_Impl() 1295*cdf0e10cSrcweir 1296*cdf0e10cSrcweir /* [Beschreibung] 1297*cdf0e10cSrcweir 1298*cdf0e10cSrcweir Die Controls f"ur die Farbeinstellung ausblenden und die 1299*cdf0e10cSrcweir Controls f"ur das Einstellen der Grafik einblenden. 1300*cdf0e10cSrcweir */ 1301*cdf0e10cSrcweir 1302*cdf0e10cSrcweir { 1303*cdf0e10cSrcweir if ( aLbSelect.IsVisible() && 1304*cdf0e10cSrcweir ( 1305*cdf0e10cSrcweir aBackgroundColorSet.IsVisible() 1306*cdf0e10cSrcweir || !aBtnBrowse.IsVisible() ) ) 1307*cdf0e10cSrcweir { 1308*cdf0e10cSrcweir aBackgroundColorSet.Hide(); 1309*cdf0e10cSrcweir aBackgroundColorBox.Hide(); 1310*cdf0e10cSrcweir aBorderWin.Hide(); 1311*cdf0e10cSrcweir pPreviewWin1->Hide(); 1312*cdf0e10cSrcweir aBtnBrowse.Show(); 1313*cdf0e10cSrcweir aFtFile.Show(); 1314*cdf0e10cSrcweir 1315*cdf0e10cSrcweir if ( !bLinkOnly && ! nHtmlMode & HTMLMODE_ON ) 1316*cdf0e10cSrcweir aBtnLink.Show(); 1317*cdf0e10cSrcweir aBtnPreview.Show(); 1318*cdf0e10cSrcweir aGbFile.Show(); 1319*cdf0e10cSrcweir aBtnPosition.Show(); 1320*cdf0e10cSrcweir aBtnArea.Show(); 1321*cdf0e10cSrcweir aBtnTile.Show(); 1322*cdf0e10cSrcweir aWndPosition.Show(); 1323*cdf0e10cSrcweir aGbPosition.Show(); 1324*cdf0e10cSrcweir pPreviewWin2->Show(); 1325*cdf0e10cSrcweir if(bGraphTransparency) 1326*cdf0e10cSrcweir { 1327*cdf0e10cSrcweir aGraphTransFL.Show(); 1328*cdf0e10cSrcweir aGraphTransMF.Show(); 1329*cdf0e10cSrcweir } 1330*cdf0e10cSrcweir aColTransFT.Show(sal_False); 1331*cdf0e10cSrcweir aColTransMF.Show(sal_False); 1332*cdf0e10cSrcweir } 1333*cdf0e10cSrcweir } 1334*cdf0e10cSrcweir 1335*cdf0e10cSrcweir //------------------------------------------------------------------------ 1336*cdf0e10cSrcweir 1337*cdf0e10cSrcweir void SvxBackgroundTabPage::SetGraphicPosition_Impl( SvxGraphicPosition ePos ) 1338*cdf0e10cSrcweir 1339*cdf0e10cSrcweir /* [Beschreibung] 1340*cdf0e10cSrcweir 1341*cdf0e10cSrcweir Die Controls f"ur die Grafikposition einstellen. 1342*cdf0e10cSrcweir */ 1343*cdf0e10cSrcweir 1344*cdf0e10cSrcweir { 1345*cdf0e10cSrcweir switch ( ePos ) 1346*cdf0e10cSrcweir { 1347*cdf0e10cSrcweir case GPOS_AREA: 1348*cdf0e10cSrcweir { 1349*cdf0e10cSrcweir aBtnArea.Check(); 1350*cdf0e10cSrcweir aWndPosition.Disable(); 1351*cdf0e10cSrcweir } 1352*cdf0e10cSrcweir break; 1353*cdf0e10cSrcweir 1354*cdf0e10cSrcweir case GPOS_TILED: 1355*cdf0e10cSrcweir { 1356*cdf0e10cSrcweir aBtnTile.Check(); 1357*cdf0e10cSrcweir aWndPosition.Disable(); 1358*cdf0e10cSrcweir } 1359*cdf0e10cSrcweir break; 1360*cdf0e10cSrcweir 1361*cdf0e10cSrcweir default: 1362*cdf0e10cSrcweir { 1363*cdf0e10cSrcweir aBtnPosition.Check(); 1364*cdf0e10cSrcweir aWndPosition.Enable(); 1365*cdf0e10cSrcweir RECT_POINT eNewPos = RP_MM; 1366*cdf0e10cSrcweir 1367*cdf0e10cSrcweir switch ( ePos ) 1368*cdf0e10cSrcweir { 1369*cdf0e10cSrcweir case GPOS_MM: break; 1370*cdf0e10cSrcweir case GPOS_LT: eNewPos = RP_LT; break; 1371*cdf0e10cSrcweir case GPOS_MT: eNewPos = RP_MT; break; 1372*cdf0e10cSrcweir case GPOS_RT: eNewPos = RP_RT; break; 1373*cdf0e10cSrcweir case GPOS_LM: eNewPos = RP_LM; break; 1374*cdf0e10cSrcweir case GPOS_RM: eNewPos = RP_RM; break; 1375*cdf0e10cSrcweir case GPOS_LB: eNewPos = RP_LB; break; 1376*cdf0e10cSrcweir case GPOS_MB: eNewPos = RP_MB; break; 1377*cdf0e10cSrcweir case GPOS_RB: eNewPos = RP_RB; break; 1378*cdf0e10cSrcweir default: ;//prevent warning 1379*cdf0e10cSrcweir } 1380*cdf0e10cSrcweir aWndPosition.SetActualRP( eNewPos ); 1381*cdf0e10cSrcweir } 1382*cdf0e10cSrcweir break; 1383*cdf0e10cSrcweir } 1384*cdf0e10cSrcweir aWndPosition.Invalidate(); 1385*cdf0e10cSrcweir } 1386*cdf0e10cSrcweir 1387*cdf0e10cSrcweir //------------------------------------------------------------------------ 1388*cdf0e10cSrcweir 1389*cdf0e10cSrcweir SvxGraphicPosition SvxBackgroundTabPage::GetGraphicPosition_Impl() 1390*cdf0e10cSrcweir 1391*cdf0e10cSrcweir /* [Beschreibung] 1392*cdf0e10cSrcweir 1393*cdf0e10cSrcweir Die Position der Grafik zur"uckgeben. 1394*cdf0e10cSrcweir */ 1395*cdf0e10cSrcweir 1396*cdf0e10cSrcweir { 1397*cdf0e10cSrcweir if ( aBtnTile.IsChecked() ) 1398*cdf0e10cSrcweir return GPOS_TILED; 1399*cdf0e10cSrcweir else if ( aBtnArea.IsChecked() ) 1400*cdf0e10cSrcweir return GPOS_AREA; 1401*cdf0e10cSrcweir else 1402*cdf0e10cSrcweir { 1403*cdf0e10cSrcweir switch ( aWndPosition.GetActualRP() ) 1404*cdf0e10cSrcweir { 1405*cdf0e10cSrcweir case RP_LT: return GPOS_LT; 1406*cdf0e10cSrcweir case RP_MT: return GPOS_MT; 1407*cdf0e10cSrcweir case RP_RT: return GPOS_RT; 1408*cdf0e10cSrcweir case RP_LM: return GPOS_LM; 1409*cdf0e10cSrcweir case RP_MM: return GPOS_MM; 1410*cdf0e10cSrcweir case RP_RM: return GPOS_RM; 1411*cdf0e10cSrcweir case RP_LB: return GPOS_LB; 1412*cdf0e10cSrcweir case RP_MB: return GPOS_MB; 1413*cdf0e10cSrcweir case RP_RB: return GPOS_RB; 1414*cdf0e10cSrcweir } 1415*cdf0e10cSrcweir } 1416*cdf0e10cSrcweir return GPOS_MM; 1417*cdf0e10cSrcweir } 1418*cdf0e10cSrcweir 1419*cdf0e10cSrcweir //----------------------------------------------------------------------- 1420*cdf0e10cSrcweir // Handler 1421*cdf0e10cSrcweir //----------------------------------------------------------------------- 1422*cdf0e10cSrcweir 1423*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, BackgroundColorHdl_Impl, ValueSet*, EMPTYARG ) 1424*cdf0e10cSrcweir /* 1425*cdf0e10cSrcweir Handler, called when color selection is changed 1426*cdf0e10cSrcweir */ 1427*cdf0e10cSrcweir { 1428*cdf0e10cSrcweir sal_uInt16 nItemId = aBackgroundColorSet.GetSelectItemId(); 1429*cdf0e10cSrcweir Color aColor = nItemId ? ( aBackgroundColorSet.GetItemColor( nItemId ) ) : Color( COL_TRANSPARENT ); 1430*cdf0e10cSrcweir aBgdColor = aColor; 1431*cdf0e10cSrcweir pPreviewWin1->NotifyChange( aBgdColor ); 1432*cdf0e10cSrcweir sal_Bool bEnableTransp = aBgdColor.GetTransparency() < 0xff; 1433*cdf0e10cSrcweir aColTransFT.Enable(bEnableTransp); 1434*cdf0e10cSrcweir aColTransMF.Enable(bEnableTransp); 1435*cdf0e10cSrcweir return 0; 1436*cdf0e10cSrcweir } 1437*cdf0e10cSrcweir 1438*cdf0e10cSrcweir //------------------------------------------------------------------------ 1439*cdf0e10cSrcweir 1440*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, SelectHdl_Impl, ListBox*, EMPTYARG ) 1441*cdf0e10cSrcweir 1442*cdf0e10cSrcweir /* [Beschreibung] 1443*cdf0e10cSrcweir 1444*cdf0e10cSrcweir */ 1445*cdf0e10cSrcweir 1446*cdf0e10cSrcweir { 1447*cdf0e10cSrcweir if ( 0 == aLbSelect.GetSelectEntryPos() ) 1448*cdf0e10cSrcweir { 1449*cdf0e10cSrcweir ShowColorUI_Impl(); 1450*cdf0e10cSrcweir aParaLBox.Enable(); // Zeichenhintergrund kann keine Bitmap sein 1451*cdf0e10cSrcweir } 1452*cdf0e10cSrcweir else 1453*cdf0e10cSrcweir { 1454*cdf0e10cSrcweir ShowBitmapUI_Impl(); 1455*cdf0e10cSrcweir aParaLBox.Enable(sal_False);// Zeichenhintergrund kann keine Bitmap sein 1456*cdf0e10cSrcweir } 1457*cdf0e10cSrcweir return 0; 1458*cdf0e10cSrcweir } 1459*cdf0e10cSrcweir 1460*cdf0e10cSrcweir //------------------------------------------------------------------------ 1461*cdf0e10cSrcweir 1462*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, FileClickHdl_Impl, CheckBox*, pBox ) 1463*cdf0e10cSrcweir 1464*cdf0e10cSrcweir /* [Beschreibung] 1465*cdf0e10cSrcweir 1466*cdf0e10cSrcweir */ 1467*cdf0e10cSrcweir 1468*cdf0e10cSrcweir { 1469*cdf0e10cSrcweir if ( &aBtnLink == pBox ) 1470*cdf0e10cSrcweir { 1471*cdf0e10cSrcweir if ( aBtnLink.IsChecked() ) 1472*cdf0e10cSrcweir { 1473*cdf0e10cSrcweir INetURLObject aObj( aBgdGraphicPath ); 1474*cdf0e10cSrcweir String aFilePath; 1475*cdf0e10cSrcweir if ( aObj.GetProtocol() == INET_PROT_FILE ) 1476*cdf0e10cSrcweir aFilePath = aObj.getFSysPath( INetURLObject::FSYS_DETECT ); 1477*cdf0e10cSrcweir else 1478*cdf0e10cSrcweir aFilePath = aBgdGraphicPath; 1479*cdf0e10cSrcweir aFtFile.SetText( aFilePath ); 1480*cdf0e10cSrcweir } 1481*cdf0e10cSrcweir else 1482*cdf0e10cSrcweir aFtFile.SetText( aStrUnlinked ); 1483*cdf0e10cSrcweir } 1484*cdf0e10cSrcweir else if ( &aBtnPreview == pBox ) 1485*cdf0e10cSrcweir { 1486*cdf0e10cSrcweir if ( aBtnPreview.IsChecked() ) 1487*cdf0e10cSrcweir { 1488*cdf0e10cSrcweir if ( !bIsGraphicValid ) 1489*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 1490*cdf0e10cSrcweir 1491*cdf0e10cSrcweir if ( bIsGraphicValid ) 1492*cdf0e10cSrcweir { 1493*cdf0e10cSrcweir Bitmap aBmp = aBgdGraphic.GetBitmap(); 1494*cdf0e10cSrcweir pPreviewWin2->NotifyChange( &aBmp ); 1495*cdf0e10cSrcweir } 1496*cdf0e10cSrcweir else 1497*cdf0e10cSrcweir { 1498*cdf0e10cSrcweir if ( aBgdGraphicPath.Len() > 0 ) // nur bei gelinkter Grafik 1499*cdf0e10cSrcweir RaiseLoadError_Impl(); // ein Fehler 1500*cdf0e10cSrcweir pPreviewWin2->NotifyChange( NULL ); 1501*cdf0e10cSrcweir } 1502*cdf0e10cSrcweir } 1503*cdf0e10cSrcweir else 1504*cdf0e10cSrcweir pPreviewWin2->NotifyChange( NULL ); 1505*cdf0e10cSrcweir } 1506*cdf0e10cSrcweir return 0; 1507*cdf0e10cSrcweir } 1508*cdf0e10cSrcweir 1509*cdf0e10cSrcweir //------------------------------------------------------------------------ 1510*cdf0e10cSrcweir 1511*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, RadioClickHdl_Impl, RadioButton*, pBtn ) 1512*cdf0e10cSrcweir 1513*cdf0e10cSrcweir /* [Beschreibung] 1514*cdf0e10cSrcweir 1515*cdf0e10cSrcweir */ 1516*cdf0e10cSrcweir 1517*cdf0e10cSrcweir { 1518*cdf0e10cSrcweir if ( pBtn == &aBtnPosition ) 1519*cdf0e10cSrcweir { 1520*cdf0e10cSrcweir if ( !aWndPosition.IsEnabled() ) 1521*cdf0e10cSrcweir { 1522*cdf0e10cSrcweir aWndPosition.Enable(); 1523*cdf0e10cSrcweir aWndPosition.Invalidate(); 1524*cdf0e10cSrcweir } 1525*cdf0e10cSrcweir } 1526*cdf0e10cSrcweir else if ( aWndPosition.IsEnabled() ) 1527*cdf0e10cSrcweir { 1528*cdf0e10cSrcweir aWndPosition.Disable(); 1529*cdf0e10cSrcweir aWndPosition.Invalidate(); 1530*cdf0e10cSrcweir } 1531*cdf0e10cSrcweir return 0; 1532*cdf0e10cSrcweir } 1533*cdf0e10cSrcweir 1534*cdf0e10cSrcweir //------------------------------------------------------------------------ 1535*cdf0e10cSrcweir 1536*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, BrowseHdl_Impl, PushButton* , EMPTYARG ) 1537*cdf0e10cSrcweir 1538*cdf0e10cSrcweir /* [Beschreibung] 1539*cdf0e10cSrcweir 1540*cdf0e10cSrcweir Handler, gerufen durch das Dr"ucken des Durchsuchen-Buttons. 1541*cdf0e10cSrcweir Grafik/Einf"ugen-Dialog erzeugen, Pfad setzen und starten. 1542*cdf0e10cSrcweir */ 1543*cdf0e10cSrcweir 1544*cdf0e10cSrcweir { 1545*cdf0e10cSrcweir if ( pPageImpl->pLoadTimer->IsActive() ) 1546*cdf0e10cSrcweir return 0; 1547*cdf0e10cSrcweir sal_Bool bHtml = 0 != ( nHtmlMode & HTMLMODE_ON ); 1548*cdf0e10cSrcweir 1549*cdf0e10cSrcweir pImportDlg = new SvxOpenGraphicDialog( aStrBrowse ); 1550*cdf0e10cSrcweir if ( bHtml || bLinkOnly ) 1551*cdf0e10cSrcweir pImportDlg->EnableLink(sal_False); 1552*cdf0e10cSrcweir pImportDlg->SetPath( aBgdGraphicPath, aBtnLink.IsChecked() ); 1553*cdf0e10cSrcweir 1554*cdf0e10cSrcweir pPageImpl->bIsImportDlgInExecute = sal_True; 1555*cdf0e10cSrcweir short nErr = pImportDlg->Execute(); 1556*cdf0e10cSrcweir pPageImpl->bIsImportDlgInExecute = sal_False; 1557*cdf0e10cSrcweir 1558*cdf0e10cSrcweir if( !nErr ) 1559*cdf0e10cSrcweir { 1560*cdf0e10cSrcweir if ( bHtml ) 1561*cdf0e10cSrcweir aBtnLink.Check(); 1562*cdf0e10cSrcweir // wenn Verkn"upfen nicht gecheckt ist und die Vorschau auch nicht, 1563*cdf0e10cSrcweir // dann die Vorschau aktivieren, damit der Anwender sieht, 1564*cdf0e10cSrcweir // welche Grafik er ausgew"ahlt hat 1565*cdf0e10cSrcweir if ( !aBtnLink.IsChecked() && !aBtnPreview.IsChecked() ) 1566*cdf0e10cSrcweir aBtnPreview.Check( sal_True ); 1567*cdf0e10cSrcweir // timer-verz"ogertes Laden der Grafik 1568*cdf0e10cSrcweir pPageImpl->pLoadTimer->Start(); 1569*cdf0e10cSrcweir } 1570*cdf0e10cSrcweir else 1571*cdf0e10cSrcweir DELETEZ( pImportDlg ); 1572*cdf0e10cSrcweir return 0; 1573*cdf0e10cSrcweir } 1574*cdf0e10cSrcweir 1575*cdf0e10cSrcweir //----------------------------------------------------------------------- 1576*cdf0e10cSrcweir 1577*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, LoadTimerHdl_Impl, Timer* , pTimer ) 1578*cdf0e10cSrcweir 1579*cdf0e10cSrcweir /* [Beschreibung] 1580*cdf0e10cSrcweir 1581*cdf0e10cSrcweir Verz"ogertes Laden der Grafik. 1582*cdf0e10cSrcweir Grafik wird nur dann geladen, wenn sie unterschiedlich zur 1583*cdf0e10cSrcweir aktuellen Grafik ist. 1584*cdf0e10cSrcweir */ 1585*cdf0e10cSrcweir 1586*cdf0e10cSrcweir { 1587*cdf0e10cSrcweir if ( pTimer == pPageImpl->pLoadTimer ) 1588*cdf0e10cSrcweir { 1589*cdf0e10cSrcweir pPageImpl->pLoadTimer->Stop(); 1590*cdf0e10cSrcweir 1591*cdf0e10cSrcweir if ( pImportDlg ) 1592*cdf0e10cSrcweir { 1593*cdf0e10cSrcweir INetURLObject aOld( aBgdGraphicPath ); 1594*cdf0e10cSrcweir INetURLObject aNew( pImportDlg->GetPath() ); 1595*cdf0e10cSrcweir if ( !aBgdGraphicPath.Len() || aNew != aOld ) 1596*cdf0e10cSrcweir { 1597*cdf0e10cSrcweir // neue Datei gew"ahlt 1598*cdf0e10cSrcweir aBgdGraphicPath = pImportDlg->GetPath(); 1599*cdf0e10cSrcweir aBgdGraphicFilter = pImportDlg->GetCurrentFilter(); 1600*cdf0e10cSrcweir sal_Bool bLink = ( nHtmlMode & HTMLMODE_ON ) || bLinkOnly ? sal_True : pImportDlg->IsAsLink(); 1601*cdf0e10cSrcweir aBtnLink.Check( bLink ); 1602*cdf0e10cSrcweir aBtnLink.Enable(); 1603*cdf0e10cSrcweir 1604*cdf0e10cSrcweir if ( aBtnPreview.IsChecked() ) 1605*cdf0e10cSrcweir { 1606*cdf0e10cSrcweir if( !pImportDlg->GetGraphic(aBgdGraphic) ) 1607*cdf0e10cSrcweir { 1608*cdf0e10cSrcweir bIsGraphicValid = sal_True; 1609*cdf0e10cSrcweir } 1610*cdf0e10cSrcweir else 1611*cdf0e10cSrcweir { 1612*cdf0e10cSrcweir aBgdGraphicFilter.Erase(); 1613*cdf0e10cSrcweir aBgdGraphicPath.Erase(); 1614*cdf0e10cSrcweir bIsGraphicValid = sal_False; 1615*cdf0e10cSrcweir } 1616*cdf0e10cSrcweir } 1617*cdf0e10cSrcweir else 1618*cdf0e10cSrcweir bIsGraphicValid = sal_False; // Grafik erst beim Preview-Click laden 1619*cdf0e10cSrcweir 1620*cdf0e10cSrcweir if ( aBtnPreview.IsChecked() && bIsGraphicValid ) 1621*cdf0e10cSrcweir { 1622*cdf0e10cSrcweir Bitmap aBmp = aBgdGraphic.GetBitmap(); 1623*cdf0e10cSrcweir pPreviewWin2->NotifyChange( &aBmp ); 1624*cdf0e10cSrcweir } 1625*cdf0e10cSrcweir else 1626*cdf0e10cSrcweir pPreviewWin2->NotifyChange( NULL ); 1627*cdf0e10cSrcweir } 1628*cdf0e10cSrcweir 1629*cdf0e10cSrcweir FileClickHdl_Impl( &aBtnLink ); 1630*cdf0e10cSrcweir DELETEZ( pImportDlg ); 1631*cdf0e10cSrcweir } 1632*cdf0e10cSrcweir } 1633*cdf0e10cSrcweir return 0; 1634*cdf0e10cSrcweir } 1635*cdf0e10cSrcweir 1636*cdf0e10cSrcweir //----------------------------------------------------------------------- 1637*cdf0e10cSrcweir 1638*cdf0e10cSrcweir void SvxBackgroundTabPage::ShowTblControl() 1639*cdf0e10cSrcweir 1640*cdf0e10cSrcweir /* [Beschreibung] 1641*cdf0e10cSrcweir 1642*cdf0e10cSrcweir */ 1643*cdf0e10cSrcweir 1644*cdf0e10cSrcweir { 1645*cdf0e10cSrcweir aTblLBox .SetSelectHdl( HDL(TblDestinationHdl_Impl) ); 1646*cdf0e10cSrcweir aTblLBox .SelectEntryPos(0); 1647*cdf0e10cSrcweir aTblDesc.Show(); 1648*cdf0e10cSrcweir aTblLBox.Show(); 1649*cdf0e10cSrcweir } 1650*cdf0e10cSrcweir 1651*cdf0e10cSrcweir //----------------------------------------------------------------------- 1652*cdf0e10cSrcweir 1653*cdf0e10cSrcweir void SvxBackgroundTabPage::ShowParaControl(sal_Bool bCharOnly) 1654*cdf0e10cSrcweir { 1655*cdf0e10cSrcweir aParaLBox.SetSelectHdl(HDL(ParaDestinationHdl_Impl)); 1656*cdf0e10cSrcweir aParaLBox.SelectEntryPos(0); 1657*cdf0e10cSrcweir if(!bCharOnly) 1658*cdf0e10cSrcweir { 1659*cdf0e10cSrcweir aTblDesc.Show(); 1660*cdf0e10cSrcweir aParaLBox.Show(); 1661*cdf0e10cSrcweir } 1662*cdf0e10cSrcweir aParaLBox.SetData(&aParaLBox); // hier erkennt man, dass dieser Mode eingeschaltet ist 1663*cdf0e10cSrcweir } 1664*cdf0e10cSrcweir //----------------------------------------------------------------------- 1665*cdf0e10cSrcweir 1666*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, TblDestinationHdl_Impl, ListBox*, pBox ) 1667*cdf0e10cSrcweir 1668*cdf0e10cSrcweir /* [Beschreibung] 1669*cdf0e10cSrcweir 1670*cdf0e10cSrcweir */ 1671*cdf0e10cSrcweir 1672*cdf0e10cSrcweir { 1673*cdf0e10cSrcweir sal_uInt16 nSelPos = pBox->GetSelectEntryPos(); 1674*cdf0e10cSrcweir if( pTableBck_Impl && pTableBck_Impl->nActPos != nSelPos) 1675*cdf0e10cSrcweir { 1676*cdf0e10cSrcweir SvxBrushItem** pActItem = new (SvxBrushItem*); 1677*cdf0e10cSrcweir sal_uInt16 nWhich = 0; 1678*cdf0e10cSrcweir switch(pTableBck_Impl->nActPos) 1679*cdf0e10cSrcweir { 1680*cdf0e10cSrcweir case TBL_DEST_CELL: 1681*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pCellBrush; 1682*cdf0e10cSrcweir nWhich = pTableBck_Impl->nCellWhich; 1683*cdf0e10cSrcweir break; 1684*cdf0e10cSrcweir case TBL_DEST_ROW: 1685*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pRowBrush; 1686*cdf0e10cSrcweir nWhich = pTableBck_Impl->nRowWhich; 1687*cdf0e10cSrcweir break; 1688*cdf0e10cSrcweir case TBL_DEST_TBL: 1689*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pTableBrush; 1690*cdf0e10cSrcweir nWhich = pTableBck_Impl->nTableWhich; 1691*cdf0e10cSrcweir break; 1692*cdf0e10cSrcweir } 1693*cdf0e10cSrcweir pTableBck_Impl->nActPos = nSelPos; 1694*cdf0e10cSrcweir if(!*pActItem) 1695*cdf0e10cSrcweir *pActItem = new SvxBrushItem(nWhich); 1696*cdf0e10cSrcweir if(0 == aLbSelect.GetSelectEntryPos()) // Brush ausgewaehlt 1697*cdf0e10cSrcweir { 1698*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdColor, nWhich ); 1699*cdf0e10cSrcweir } 1700*cdf0e10cSrcweir else 1701*cdf0e10cSrcweir { 1702*cdf0e10cSrcweir SvxGraphicPosition eNewPos = GetGraphicPosition_Impl(); 1703*cdf0e10cSrcweir const sal_Bool bIsLink = aBtnLink.IsChecked(); 1704*cdf0e10cSrcweir 1705*cdf0e10cSrcweir if ( !bIsLink && !bIsGraphicValid ) 1706*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 1707*cdf0e10cSrcweir 1708*cdf0e10cSrcweir if ( bIsLink ) 1709*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdGraphicPath, 1710*cdf0e10cSrcweir aBgdGraphicFilter, 1711*cdf0e10cSrcweir eNewPos, 1712*cdf0e10cSrcweir (*pActItem)->Which() ); 1713*cdf0e10cSrcweir else 1714*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdGraphic, 1715*cdf0e10cSrcweir eNewPos, 1716*cdf0e10cSrcweir (*pActItem)->Which() ); 1717*cdf0e10cSrcweir } 1718*cdf0e10cSrcweir switch(nSelPos) 1719*cdf0e10cSrcweir { 1720*cdf0e10cSrcweir case TBL_DEST_CELL: 1721*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pCellBrush; 1722*cdf0e10cSrcweir aLbSelect.Enable(); 1723*cdf0e10cSrcweir nWhich = pTableBck_Impl->nCellWhich; 1724*cdf0e10cSrcweir break; 1725*cdf0e10cSrcweir case TBL_DEST_ROW: 1726*cdf0e10cSrcweir { 1727*cdf0e10cSrcweir if((nHtmlMode & HTMLMODE_ON) && !(nHtmlMode & HTMLMODE_SOME_STYLES)) 1728*cdf0e10cSrcweir aLbSelect.Disable(); 1729*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pRowBrush; 1730*cdf0e10cSrcweir nWhich = pTableBck_Impl->nRowWhich; 1731*cdf0e10cSrcweir } 1732*cdf0e10cSrcweir break; 1733*cdf0e10cSrcweir case TBL_DEST_TBL: 1734*cdf0e10cSrcweir *pActItem = pTableBck_Impl->pTableBrush; 1735*cdf0e10cSrcweir aLbSelect.Enable(); 1736*cdf0e10cSrcweir nWhich = pTableBck_Impl->nTableWhich; 1737*cdf0e10cSrcweir break; 1738*cdf0e10cSrcweir } 1739*cdf0e10cSrcweir String aUserData = GetUserData(); 1740*cdf0e10cSrcweir if(!*pActItem) 1741*cdf0e10cSrcweir *pActItem = new SvxBrushItem(nWhich); 1742*cdf0e10cSrcweir FillControls_Impl(**pActItem, aUserData); 1743*cdf0e10cSrcweir delete pActItem; 1744*cdf0e10cSrcweir } 1745*cdf0e10cSrcweir return 0; 1746*cdf0e10cSrcweir } 1747*cdf0e10cSrcweir 1748*cdf0e10cSrcweir //----------------------------------------------------------------------- 1749*cdf0e10cSrcweir 1750*cdf0e10cSrcweir IMPL_LINK( SvxBackgroundTabPage, ParaDestinationHdl_Impl, ListBox*, pBox ) 1751*cdf0e10cSrcweir { 1752*cdf0e10cSrcweir sal_uInt16 nSelPos = pBox->GetSelectEntryPos(); 1753*cdf0e10cSrcweir if( pParaBck_Impl && pParaBck_Impl->nActPos != nSelPos) 1754*cdf0e10cSrcweir { 1755*cdf0e10cSrcweir SvxBrushItem** pActItem = new (SvxBrushItem*); 1756*cdf0e10cSrcweir switch(pParaBck_Impl->nActPos) 1757*cdf0e10cSrcweir { 1758*cdf0e10cSrcweir case PARA_DEST_PARA: 1759*cdf0e10cSrcweir *pActItem = pParaBck_Impl->pParaBrush; 1760*cdf0e10cSrcweir break; 1761*cdf0e10cSrcweir case PARA_DEST_CHAR: 1762*cdf0e10cSrcweir *pActItem = pParaBck_Impl->pCharBrush; 1763*cdf0e10cSrcweir break; 1764*cdf0e10cSrcweir } 1765*cdf0e10cSrcweir pParaBck_Impl->nActPos = nSelPos; 1766*cdf0e10cSrcweir if(0 == aLbSelect.GetSelectEntryPos()) // Brush ausgewaehlt 1767*cdf0e10cSrcweir { 1768*cdf0e10cSrcweir sal_uInt16 nWhich = (*pActItem)->Which(); 1769*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdColor, nWhich ); 1770*cdf0e10cSrcweir } 1771*cdf0e10cSrcweir else 1772*cdf0e10cSrcweir { 1773*cdf0e10cSrcweir SvxGraphicPosition eNewPos = GetGraphicPosition_Impl(); 1774*cdf0e10cSrcweir const sal_Bool bIsLink = aBtnLink.IsChecked(); 1775*cdf0e10cSrcweir 1776*cdf0e10cSrcweir if ( !bIsLink && !bIsGraphicValid ) 1777*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 1778*cdf0e10cSrcweir 1779*cdf0e10cSrcweir if ( bIsLink ) 1780*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdGraphicPath, 1781*cdf0e10cSrcweir aBgdGraphicFilter, 1782*cdf0e10cSrcweir eNewPos, 1783*cdf0e10cSrcweir (*pActItem)->Which() ); 1784*cdf0e10cSrcweir else 1785*cdf0e10cSrcweir **pActItem = SvxBrushItem( aBgdGraphic, 1786*cdf0e10cSrcweir eNewPos, 1787*cdf0e10cSrcweir (*pActItem)->Which() ); 1788*cdf0e10cSrcweir } 1789*cdf0e10cSrcweir switch(nSelPos) 1790*cdf0e10cSrcweir { 1791*cdf0e10cSrcweir case PARA_DEST_PARA: 1792*cdf0e10cSrcweir *pActItem = pParaBck_Impl->pParaBrush; 1793*cdf0e10cSrcweir aLbSelect.Enable(); 1794*cdf0e10cSrcweir break; 1795*cdf0e10cSrcweir case PARA_DEST_CHAR: 1796*cdf0e10cSrcweir { 1797*cdf0e10cSrcweir *pActItem = pParaBck_Impl->pCharBrush; 1798*cdf0e10cSrcweir aLbSelect.Enable(sal_False); 1799*cdf0e10cSrcweir } 1800*cdf0e10cSrcweir break; 1801*cdf0e10cSrcweir } 1802*cdf0e10cSrcweir String aUserData = GetUserData(); 1803*cdf0e10cSrcweir FillControls_Impl(**pActItem, aUserData); 1804*cdf0e10cSrcweir delete pActItem; 1805*cdf0e10cSrcweir } 1806*cdf0e10cSrcweir return 0; 1807*cdf0e10cSrcweir } 1808*cdf0e10cSrcweir 1809*cdf0e10cSrcweir //----------------------------------------------------------------------- 1810*cdf0e10cSrcweir 1811*cdf0e10cSrcweir void SvxBackgroundTabPage::FillControls_Impl( const SvxBrushItem& rBgdAttr, 1812*cdf0e10cSrcweir const String& rUserData ) 1813*cdf0e10cSrcweir 1814*cdf0e10cSrcweir /* [Beschreibung] 1815*cdf0e10cSrcweir 1816*cdf0e10cSrcweir */ 1817*cdf0e10cSrcweir 1818*cdf0e10cSrcweir { 1819*cdf0e10cSrcweir SvxGraphicPosition ePos = rBgdAttr.GetGraphicPos(); 1820*cdf0e10cSrcweir const Color& rColor = rBgdAttr.GetColor(); 1821*cdf0e10cSrcweir if(bColTransparency) 1822*cdf0e10cSrcweir { 1823*cdf0e10cSrcweir aColTransMF.SetValue(lcl_TransparencyToPercent(rColor.GetTransparency())); 1824*cdf0e10cSrcweir aColTransMF.SaveValue(); 1825*cdf0e10cSrcweir sal_Bool bEnableTransp = rColor.GetTransparency() < 0xff; 1826*cdf0e10cSrcweir aColTransFT.Enable(bEnableTransp); 1827*cdf0e10cSrcweir aColTransMF.Enable(bEnableTransp); 1828*cdf0e10cSrcweir //the default setting should be "no transparency" 1829*cdf0e10cSrcweir if(!bEnableTransp) 1830*cdf0e10cSrcweir aColTransMF.SetValue(0); 1831*cdf0e10cSrcweir } 1832*cdf0e10cSrcweir 1833*cdf0e10cSrcweir if ( GPOS_NONE == ePos || !aLbSelect.IsVisible() ) 1834*cdf0e10cSrcweir { 1835*cdf0e10cSrcweir aLbSelect.SelectEntryPos( 0 ); 1836*cdf0e10cSrcweir ShowColorUI_Impl(); 1837*cdf0e10cSrcweir Color aTrColor( COL_TRANSPARENT ); 1838*cdf0e10cSrcweir aBgdColor = rColor; 1839*cdf0e10cSrcweir 1840*cdf0e10cSrcweir sal_uInt16 nCol = ( aTrColor != aBgdColor ) ? 1841*cdf0e10cSrcweir GetItemId_Impl( aBackgroundColorSet, aBgdColor ) : 0; 1842*cdf0e10cSrcweir 1843*cdf0e10cSrcweir if( aTrColor != aBgdColor && nCol == 0) 1844*cdf0e10cSrcweir { 1845*cdf0e10cSrcweir aBackgroundColorSet.SetNoSelection(); 1846*cdf0e10cSrcweir } 1847*cdf0e10cSrcweir else 1848*cdf0e10cSrcweir { 1849*cdf0e10cSrcweir aBackgroundColorSet.SelectItem( nCol ); 1850*cdf0e10cSrcweir } 1851*cdf0e10cSrcweir 1852*cdf0e10cSrcweir pPreviewWin1->NotifyChange( aBgdColor ); 1853*cdf0e10cSrcweir if ( aLbSelect.IsVisible() ) // Grafikteil initialisieren 1854*cdf0e10cSrcweir { 1855*cdf0e10cSrcweir aBgdGraphicFilter.Erase(); 1856*cdf0e10cSrcweir aBgdGraphicPath.Erase(); 1857*cdf0e10cSrcweir 1858*cdf0e10cSrcweir if ( !rUserData.Len() ) 1859*cdf0e10cSrcweir aBtnPreview.Check( sal_False ); 1860*cdf0e10cSrcweir aBtnLink.Check( sal_False ); 1861*cdf0e10cSrcweir aBtnLink.Disable(); 1862*cdf0e10cSrcweir pPreviewWin2->NotifyChange( NULL ); 1863*cdf0e10cSrcweir SetGraphicPosition_Impl( GPOS_TILED ); // Kacheln als Default 1864*cdf0e10cSrcweir } 1865*cdf0e10cSrcweir } 1866*cdf0e10cSrcweir else 1867*cdf0e10cSrcweir { 1868*cdf0e10cSrcweir const String* pStrLink = rBgdAttr.GetGraphicLink(); 1869*cdf0e10cSrcweir const String* pStrFilter = rBgdAttr.GetGraphicFilter(); 1870*cdf0e10cSrcweir 1871*cdf0e10cSrcweir aLbSelect.SelectEntryPos( 1 ); 1872*cdf0e10cSrcweir ShowBitmapUI_Impl(); 1873*cdf0e10cSrcweir 1874*cdf0e10cSrcweir if ( pStrLink ) 1875*cdf0e10cSrcweir { 1876*cdf0e10cSrcweir #ifdef DBG_UTIL 1877*cdf0e10cSrcweir INetURLObject aObj( *pStrLink ); 1878*cdf0e10cSrcweir DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" ); 1879*cdf0e10cSrcweir #endif 1880*cdf0e10cSrcweir aBgdGraphicPath = *pStrLink; 1881*cdf0e10cSrcweir aBtnLink.Check( sal_True ); 1882*cdf0e10cSrcweir aBtnLink.Enable(); 1883*cdf0e10cSrcweir } 1884*cdf0e10cSrcweir else 1885*cdf0e10cSrcweir { 1886*cdf0e10cSrcweir aBgdGraphicPath.Erase(); 1887*cdf0e10cSrcweir aBtnLink.Check( sal_False ); 1888*cdf0e10cSrcweir aBtnLink.Disable(); 1889*cdf0e10cSrcweir } 1890*cdf0e10cSrcweir 1891*cdf0e10cSrcweir if(bGraphTransparency) 1892*cdf0e10cSrcweir { 1893*cdf0e10cSrcweir const GraphicObject* pObject = rBgdAttr.GetGraphicObject(); 1894*cdf0e10cSrcweir if(pObject) 1895*cdf0e10cSrcweir aGraphTransMF.SetValue(lcl_TransparencyToPercent(pObject->GetAttr().GetTransparency())); 1896*cdf0e10cSrcweir else 1897*cdf0e10cSrcweir aGraphTransMF.SetValue(0); 1898*cdf0e10cSrcweir aGraphTransMF.SaveValue(); 1899*cdf0e10cSrcweir } 1900*cdf0e10cSrcweir 1901*cdf0e10cSrcweir FileClickHdl_Impl( &aBtnLink ); 1902*cdf0e10cSrcweir 1903*cdf0e10cSrcweir if ( pStrFilter ) 1904*cdf0e10cSrcweir aBgdGraphicFilter = *pStrFilter; 1905*cdf0e10cSrcweir else 1906*cdf0e10cSrcweir aBgdGraphicFilter.Erase(); 1907*cdf0e10cSrcweir 1908*cdf0e10cSrcweir if ( !pStrLink || aBtnPreview.IsChecked() ) 1909*cdf0e10cSrcweir { 1910*cdf0e10cSrcweir // Grafik ist im Item vorhanden und muss nicht 1911*cdf0e10cSrcweir // geladen werden: 1912*cdf0e10cSrcweir 1913*cdf0e10cSrcweir const Graphic* pGraphic = rBgdAttr.GetGraphic(); 1914*cdf0e10cSrcweir 1915*cdf0e10cSrcweir if ( !pGraphic && aBtnPreview.IsChecked() ) 1916*cdf0e10cSrcweir bIsGraphicValid = LoadLinkedGraphic_Impl(); 1917*cdf0e10cSrcweir else if ( pGraphic ) 1918*cdf0e10cSrcweir { 1919*cdf0e10cSrcweir aBgdGraphic = *pGraphic; 1920*cdf0e10cSrcweir bIsGraphicValid = sal_True; 1921*cdf0e10cSrcweir 1922*cdf0e10cSrcweir if ( !rUserData.Len() ) 1923*cdf0e10cSrcweir aBtnPreview.Check(); 1924*cdf0e10cSrcweir } 1925*cdf0e10cSrcweir else 1926*cdf0e10cSrcweir { 1927*cdf0e10cSrcweir RaiseLoadError_Impl(); 1928*cdf0e10cSrcweir bIsGraphicValid = sal_False; 1929*cdf0e10cSrcweir 1930*cdf0e10cSrcweir if ( !rUserData.Len() ) 1931*cdf0e10cSrcweir aBtnPreview.Check( sal_False ); 1932*cdf0e10cSrcweir } 1933*cdf0e10cSrcweir } 1934*cdf0e10cSrcweir 1935*cdf0e10cSrcweir if ( aBtnPreview.IsChecked() && bIsGraphicValid ) 1936*cdf0e10cSrcweir { 1937*cdf0e10cSrcweir Bitmap aBmp = aBgdGraphic.GetBitmap(); 1938*cdf0e10cSrcweir pPreviewWin2->NotifyChange( &aBmp ); 1939*cdf0e10cSrcweir } 1940*cdf0e10cSrcweir else 1941*cdf0e10cSrcweir pPreviewWin2->NotifyChange( NULL ); 1942*cdf0e10cSrcweir 1943*cdf0e10cSrcweir SetGraphicPosition_Impl( ePos ); 1944*cdf0e10cSrcweir } 1945*cdf0e10cSrcweir } 1946*cdf0e10cSrcweir /* -----------------------------09.08.2002 14:04------------------------------ 1947*cdf0e10cSrcweir 1948*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1949*cdf0e10cSrcweir void SvxBackgroundTabPage::EnableTransparency(sal_Bool bColor, sal_Bool bGraphic) 1950*cdf0e10cSrcweir { 1951*cdf0e10cSrcweir bColTransparency = bColor; 1952*cdf0e10cSrcweir bGraphTransparency = bGraphic; 1953*cdf0e10cSrcweir if(bColor) 1954*cdf0e10cSrcweir { 1955*cdf0e10cSrcweir aColTransFT.Show(); 1956*cdf0e10cSrcweir aColTransMF.Show(); 1957*cdf0e10cSrcweir } 1958*cdf0e10cSrcweir if(bGraphic) 1959*cdf0e10cSrcweir { 1960*cdf0e10cSrcweir Size aRectSize(aWndPosition.GetSizePixel()); 1961*cdf0e10cSrcweir Point aRectPos(aWndPosition.GetPosPixel()); 1962*cdf0e10cSrcweir Point aFLPos(aGraphTransFL.GetPosPixel()); 1963*cdf0e10cSrcweir Size aTmp(LogicToPixel(Size(RSC_SP_FLGR_SPACE_Y, RSC_SP_FLGR_SPACE_Y), MAP_APPFONT)); 1964*cdf0e10cSrcweir long nRectHeight = aFLPos.Y() - aRectPos.Y() - aTmp.Height(); 1965*cdf0e10cSrcweir aRectSize.Height() = nRectHeight; 1966*cdf0e10cSrcweir aWndPosition.SetSizePixel(aRectSize); 1967*cdf0e10cSrcweir aWndPosition.Invalidate(); 1968*cdf0e10cSrcweir } 1969*cdf0e10cSrcweir } 1970*cdf0e10cSrcweir 1971*cdf0e10cSrcweir void SvxBackgroundTabPage::PageCreated (SfxAllItemSet aSet) //add CHINA001 1972*cdf0e10cSrcweir { 1973*cdf0e10cSrcweir SFX_ITEMSET_ARG (&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE,sal_False); 1974*cdf0e10cSrcweir if (pFlagItem) 1975*cdf0e10cSrcweir { 1976*cdf0e10cSrcweir sal_uInt32 nFlags=pFlagItem->GetValue(); 1977*cdf0e10cSrcweir if ( ( nFlags & SVX_SHOW_TBLCTL ) == SVX_SHOW_TBLCTL ) 1978*cdf0e10cSrcweir ShowTblControl(); 1979*cdf0e10cSrcweir if ( ( nFlags & SVX_SHOW_PARACTL ) == SVX_SHOW_PARACTL ) 1980*cdf0e10cSrcweir ShowParaControl(); 1981*cdf0e10cSrcweir if ( ( nFlags & SVX_SHOW_SELECTOR ) == SVX_SHOW_SELECTOR ) 1982*cdf0e10cSrcweir ShowSelector(); 1983*cdf0e10cSrcweir if ( ( nFlags & SVX_ENABLE_TRANSPARENCY ) == SVX_ENABLE_TRANSPARENCY ) 1984*cdf0e10cSrcweir EnableTransparency(sal_True, sal_True); 1985*cdf0e10cSrcweir } 1986*cdf0e10cSrcweir } 1987