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_svx.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir // include --------------------------------------------------------------- 32*cdf0e10cSrcweir #include <sfx2/module.hxx> 33*cdf0e10cSrcweir #include <sfx2/dispatch.hxx> 34*cdf0e10cSrcweir #include <tools/shl.hxx> 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir #define _SVX_FONTWORK_CXX 37*cdf0e10cSrcweir #include <svx/svdobj.hxx> 38*cdf0e10cSrcweir #include <svx/svdopath.hxx> 39*cdf0e10cSrcweir #include <svx/svdview.hxx> 40*cdf0e10cSrcweir #include <svx/svdocirc.hxx> 41*cdf0e10cSrcweir #include <svx/xtextit.hxx> 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir #include <svx/dialmgr.hxx> 44*cdf0e10cSrcweir #include "svx/dlgutil.hxx" 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir #include <svx/dialogs.hrc> 47*cdf0e10cSrcweir #include "fontwork.hrc" 48*cdf0e10cSrcweir #include <svx/fontwork.hxx> 49*cdf0e10cSrcweir #include <editeng/outlobj.hxx> 50*cdf0e10cSrcweir #include <basegfx/polygon/b2dpolygon.hxx> 51*cdf0e10cSrcweir #include <basegfx/point/b2dpoint.hxx> 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir SFX_IMPL_DOCKINGWINDOW( SvxFontWorkChildWindow, SID_FONTWORK ); 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir /************************************************************************* 56*cdf0e10cSrcweir |* 57*cdf0e10cSrcweir |* ControllerItem fuer Fontwork 58*cdf0e10cSrcweir |* 59*cdf0e10cSrcweir \************************************************************************/ 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir SvxFontWorkControllerItem::SvxFontWorkControllerItem 62*cdf0e10cSrcweir ( 63*cdf0e10cSrcweir sal_uInt16 _nId, 64*cdf0e10cSrcweir SvxFontWorkDialog& rDlg, 65*cdf0e10cSrcweir SfxBindings& rBindings 66*cdf0e10cSrcweir ) : 67*cdf0e10cSrcweir 68*cdf0e10cSrcweir SfxControllerItem( _nId, rBindings ), 69*cdf0e10cSrcweir 70*cdf0e10cSrcweir rFontWorkDlg( rDlg ) 71*cdf0e10cSrcweir { 72*cdf0e10cSrcweir } 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir /************************************************************************* 75*cdf0e10cSrcweir |* 76*cdf0e10cSrcweir |* StateChanged-Methode fuer FontWork-Items 77*cdf0e10cSrcweir |* 78*cdf0e10cSrcweir \************************************************************************/ 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState /*eState*/, 81*cdf0e10cSrcweir const SfxPoolItem* pItem ) 82*cdf0e10cSrcweir { 83*cdf0e10cSrcweir switch ( GetId() ) 84*cdf0e10cSrcweir { 85*cdf0e10cSrcweir case SID_FORMTEXT_STYLE: 86*cdf0e10cSrcweir { 87*cdf0e10cSrcweir const XFormTextStyleItem* pStateItem = 88*cdf0e10cSrcweir PTR_CAST(XFormTextStyleItem, pItem); 89*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextStyleItem erwartet"); 90*cdf0e10cSrcweir rFontWorkDlg.SetStyle_Impl(pStateItem); 91*cdf0e10cSrcweir break; 92*cdf0e10cSrcweir } 93*cdf0e10cSrcweir case SID_FORMTEXT_ADJUST: 94*cdf0e10cSrcweir { 95*cdf0e10cSrcweir const XFormTextAdjustItem* pStateItem = 96*cdf0e10cSrcweir PTR_CAST(XFormTextAdjustItem, pItem); 97*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextAdjustItem erwartet"); 98*cdf0e10cSrcweir rFontWorkDlg.SetAdjust_Impl(pStateItem); 99*cdf0e10cSrcweir break; 100*cdf0e10cSrcweir } 101*cdf0e10cSrcweir case SID_FORMTEXT_DISTANCE: 102*cdf0e10cSrcweir { 103*cdf0e10cSrcweir const XFormTextDistanceItem* pStateItem = 104*cdf0e10cSrcweir PTR_CAST(XFormTextDistanceItem, pItem); 105*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextDistanceItem erwartet"); 106*cdf0e10cSrcweir rFontWorkDlg.SetDistance_Impl(pStateItem); 107*cdf0e10cSrcweir break; 108*cdf0e10cSrcweir } 109*cdf0e10cSrcweir case SID_FORMTEXT_START: 110*cdf0e10cSrcweir { 111*cdf0e10cSrcweir const XFormTextStartItem* pStateItem = 112*cdf0e10cSrcweir PTR_CAST(XFormTextStartItem, pItem); 113*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextStartItem erwartet"); 114*cdf0e10cSrcweir rFontWorkDlg.SetStart_Impl(pStateItem); 115*cdf0e10cSrcweir break; 116*cdf0e10cSrcweir } 117*cdf0e10cSrcweir case SID_FORMTEXT_MIRROR: 118*cdf0e10cSrcweir { 119*cdf0e10cSrcweir const XFormTextMirrorItem* pStateItem = 120*cdf0e10cSrcweir PTR_CAST(XFormTextMirrorItem, pItem); 121*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextMirrorItem erwartet"); 122*cdf0e10cSrcweir rFontWorkDlg.SetMirror_Impl(pStateItem); 123*cdf0e10cSrcweir break; 124*cdf0e10cSrcweir } 125*cdf0e10cSrcweir case SID_FORMTEXT_STDFORM: 126*cdf0e10cSrcweir { 127*cdf0e10cSrcweir const XFormTextStdFormItem* pStateItem = 128*cdf0e10cSrcweir PTR_CAST(XFormTextStdFormItem, pItem); 129*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextStdFormItem erwartet"); 130*cdf0e10cSrcweir rFontWorkDlg.SetStdForm_Impl(pStateItem); 131*cdf0e10cSrcweir break; 132*cdf0e10cSrcweir } 133*cdf0e10cSrcweir case SID_FORMTEXT_HIDEFORM: 134*cdf0e10cSrcweir { 135*cdf0e10cSrcweir const XFormTextHideFormItem* pStateItem = 136*cdf0e10cSrcweir PTR_CAST(XFormTextHideFormItem, pItem); 137*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextHideFormItem erwartet"); 138*cdf0e10cSrcweir rFontWorkDlg.SetShowForm_Impl(pStateItem); 139*cdf0e10cSrcweir break; 140*cdf0e10cSrcweir } 141*cdf0e10cSrcweir case SID_FORMTEXT_OUTLINE: 142*cdf0e10cSrcweir { 143*cdf0e10cSrcweir const XFormTextOutlineItem* pStateItem = 144*cdf0e10cSrcweir PTR_CAST(XFormTextOutlineItem, pItem); 145*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextOutlineItem erwartet"); 146*cdf0e10cSrcweir rFontWorkDlg.SetOutline_Impl(pStateItem); 147*cdf0e10cSrcweir break; 148*cdf0e10cSrcweir } 149*cdf0e10cSrcweir case SID_FORMTEXT_SHADOW: 150*cdf0e10cSrcweir { 151*cdf0e10cSrcweir const XFormTextShadowItem* pStateItem = 152*cdf0e10cSrcweir PTR_CAST(XFormTextShadowItem, pItem); 153*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowItem erwartet"); 154*cdf0e10cSrcweir rFontWorkDlg.SetShadow_Impl(pStateItem); 155*cdf0e10cSrcweir break; 156*cdf0e10cSrcweir } 157*cdf0e10cSrcweir case SID_FORMTEXT_SHDWCOLOR: 158*cdf0e10cSrcweir { 159*cdf0e10cSrcweir const XFormTextShadowColorItem* pStateItem = 160*cdf0e10cSrcweir PTR_CAST(XFormTextShadowColorItem, pItem); 161*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowColorItem erwartet"); 162*cdf0e10cSrcweir rFontWorkDlg.SetShadowColor_Impl(pStateItem); 163*cdf0e10cSrcweir break; 164*cdf0e10cSrcweir } 165*cdf0e10cSrcweir case SID_FORMTEXT_SHDWXVAL: 166*cdf0e10cSrcweir { 167*cdf0e10cSrcweir const XFormTextShadowXValItem* pStateItem = 168*cdf0e10cSrcweir PTR_CAST(XFormTextShadowXValItem, pItem); 169*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowXValItem erwartet"); 170*cdf0e10cSrcweir rFontWorkDlg.SetShadowXVal_Impl(pStateItem); 171*cdf0e10cSrcweir break; 172*cdf0e10cSrcweir } 173*cdf0e10cSrcweir case SID_FORMTEXT_SHDWYVAL: 174*cdf0e10cSrcweir { 175*cdf0e10cSrcweir const XFormTextShadowYValItem* pStateItem = 176*cdf0e10cSrcweir PTR_CAST(XFormTextShadowYValItem, pItem); 177*cdf0e10cSrcweir DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowYValItem erwartet"); 178*cdf0e10cSrcweir rFontWorkDlg.SetShadowYVal_Impl(pStateItem); 179*cdf0e10cSrcweir break; 180*cdf0e10cSrcweir } 181*cdf0e10cSrcweir } 182*cdf0e10cSrcweir } 183*cdf0e10cSrcweir 184*cdf0e10cSrcweir /************************************************************************* 185*cdf0e10cSrcweir |* 186*cdf0e10cSrcweir |* Ableitung vom SfxChildWindow als "Behaelter" fuer Fontwork-Dialog 187*cdf0e10cSrcweir |* 188*cdf0e10cSrcweir \************************************************************************/ 189*cdf0e10cSrcweir 190*cdf0e10cSrcweir SvxFontWorkChildWindow::SvxFontWorkChildWindow 191*cdf0e10cSrcweir ( 192*cdf0e10cSrcweir Window* _pParent, 193*cdf0e10cSrcweir sal_uInt16 nId, 194*cdf0e10cSrcweir SfxBindings* pBindings, 195*cdf0e10cSrcweir SfxChildWinInfo* pInfo 196*cdf0e10cSrcweir ) : 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir SfxChildWindow( _pParent, nId ) 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir { 201*cdf0e10cSrcweir pWindow = new SvxFontWorkDialog( pBindings, this, _pParent, 202*cdf0e10cSrcweir SVX_RES( RID_SVXDLG_FONTWORK ) ); 203*cdf0e10cSrcweir SvxFontWorkDialog* pDlg = (SvxFontWorkDialog*) pWindow; 204*cdf0e10cSrcweir 205*cdf0e10cSrcweir eChildAlignment = SFX_ALIGN_NOALIGNMENT; 206*cdf0e10cSrcweir 207*cdf0e10cSrcweir pDlg->Initialize( pInfo ); 208*cdf0e10cSrcweir } 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir /************************************************************************* 211*cdf0e10cSrcweir |* 212*cdf0e10cSrcweir |* Floating Window zur Attributierung von Texteffekten 213*cdf0e10cSrcweir |* 214*cdf0e10cSrcweir \************************************************************************/ 215*cdf0e10cSrcweir 216*cdf0e10cSrcweir SvxFontWorkDialog::SvxFontWorkDialog( SfxBindings *pBindinx, 217*cdf0e10cSrcweir SfxChildWindow *pCW, 218*cdf0e10cSrcweir Window* _pParent, 219*cdf0e10cSrcweir const ResId& rResId ) : 220*cdf0e10cSrcweir SfxDockingWindow( pBindinx, pCW, _pParent, rResId ), 221*cdf0e10cSrcweir 222*cdf0e10cSrcweir aFormSet (this, ResId(VS_FORMS,*rResId.GetResMgr())), 223*cdf0e10cSrcweir 224*cdf0e10cSrcweir aTbxStyle (this, ResId(TBX_STYLE,*rResId.GetResMgr())), 225*cdf0e10cSrcweir aTbxAdjust (this, ResId(TBX_ADJUST,*rResId.GetResMgr())), 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir aFbDistance (this, ResId(FB_DISTANCE,*rResId.GetResMgr())), 228*cdf0e10cSrcweir aMtrFldDistance (this, ResId(MTR_FLD_DISTANCE,*rResId.GetResMgr())), 229*cdf0e10cSrcweir aFbTextStart (this, ResId(FB_TEXTSTART,*rResId.GetResMgr())), 230*cdf0e10cSrcweir aMtrFldTextStart(this, ResId(MTR_FLD_TEXTSTART,*rResId.GetResMgr())), 231*cdf0e10cSrcweir 232*cdf0e10cSrcweir aTbxShadow (this, ResId(TBX_SHADOW,*rResId.GetResMgr())), 233*cdf0e10cSrcweir 234*cdf0e10cSrcweir aFbShadowX (this, ResId(FB_SHADOW_X,*rResId.GetResMgr())), 235*cdf0e10cSrcweir aMtrFldShadowX (this, ResId(MTR_FLD_SHADOW_X,*rResId.GetResMgr())), 236*cdf0e10cSrcweir aFbShadowY (this, ResId(FB_SHADOW_Y,*rResId.GetResMgr())), 237*cdf0e10cSrcweir aMtrFldShadowY (this, ResId(MTR_FLD_SHADOW_Y,*rResId.GetResMgr())), 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir aShadowColorLB (this, ResId(CLB_SHADOW_COLOR,*rResId.GetResMgr())), 240*cdf0e10cSrcweir rBindings (*pBindinx), 241*cdf0e10cSrcweir 242*cdf0e10cSrcweir nLastStyleTbxId(0), 243*cdf0e10cSrcweir nLastAdjustTbxId(0), 244*cdf0e10cSrcweir nLastShadowTbxId(0), 245*cdf0e10cSrcweir nSaveShadowX (0), 246*cdf0e10cSrcweir nSaveShadowY (0), 247*cdf0e10cSrcweir nSaveShadowAngle(450), 248*cdf0e10cSrcweir nSaveShadowSize (100), 249*cdf0e10cSrcweir 250*cdf0e10cSrcweir maImageList (ResId(IL_FONTWORK,*rResId.GetResMgr())), 251*cdf0e10cSrcweir maImageListH (ResId(ILH_FONTWORK,*rResId.GetResMgr())), 252*cdf0e10cSrcweir 253*cdf0e10cSrcweir pColorTable (NULL) 254*cdf0e10cSrcweir { 255*cdf0e10cSrcweir FreeResource(); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir ApplyImageList(); 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir pCtrlItems[0] = new SvxFontWorkControllerItem(SID_FORMTEXT_STYLE, *this, rBindings); 260*cdf0e10cSrcweir pCtrlItems[1] = new SvxFontWorkControllerItem(SID_FORMTEXT_ADJUST, *this, rBindings); 261*cdf0e10cSrcweir pCtrlItems[2] = new SvxFontWorkControllerItem(SID_FORMTEXT_DISTANCE, *this, rBindings); 262*cdf0e10cSrcweir pCtrlItems[3] = new SvxFontWorkControllerItem(SID_FORMTEXT_START, *this, rBindings); 263*cdf0e10cSrcweir pCtrlItems[4] = new SvxFontWorkControllerItem(SID_FORMTEXT_MIRROR, *this, rBindings); 264*cdf0e10cSrcweir pCtrlItems[5] = new SvxFontWorkControllerItem(SID_FORMTEXT_STDFORM, *this, rBindings); 265*cdf0e10cSrcweir pCtrlItems[6] = new SvxFontWorkControllerItem(SID_FORMTEXT_HIDEFORM, *this, rBindings); 266*cdf0e10cSrcweir pCtrlItems[7] = new SvxFontWorkControllerItem(SID_FORMTEXT_OUTLINE, *this, rBindings); 267*cdf0e10cSrcweir pCtrlItems[8] = new SvxFontWorkControllerItem(SID_FORMTEXT_SHADOW, *this, rBindings); 268*cdf0e10cSrcweir pCtrlItems[9] = new SvxFontWorkControllerItem(SID_FORMTEXT_SHDWCOLOR, *this, rBindings); 269*cdf0e10cSrcweir pCtrlItems[10] = new SvxFontWorkControllerItem(SID_FORMTEXT_SHDWXVAL, *this, rBindings); 270*cdf0e10cSrcweir pCtrlItems[11] = new SvxFontWorkControllerItem(SID_FORMTEXT_SHDWYVAL, *this, rBindings); 271*cdf0e10cSrcweir 272*cdf0e10cSrcweir WinBits aNewStyle = ( aFormSet.GetStyle() | WB_VSCROLL | WB_ITEMBORDER | WB_DOUBLEBORDER ); 273*cdf0e10cSrcweir aFormSet.SetStyle( aNewStyle ); 274*cdf0e10cSrcweir 275*cdf0e10cSrcweir Size aSize = aTbxStyle.CalcWindowSizePixel(); 276*cdf0e10cSrcweir aTbxStyle.SetSizePixel(aSize); 277*cdf0e10cSrcweir aTbxStyle.SetSelectHdl( LINK(this, SvxFontWorkDialog, SelectStyleHdl_Impl) ); 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir aTbxAdjust.SetSizePixel(aSize); 280*cdf0e10cSrcweir aTbxAdjust.SetSelectHdl( LINK(this, SvxFontWorkDialog, SelectAdjustHdl_Impl) ); 281*cdf0e10cSrcweir 282*cdf0e10cSrcweir aTbxShadow.SetSizePixel(aSize); 283*cdf0e10cSrcweir aTbxShadow.SetSelectHdl( LINK(this, SvxFontWorkDialog, SelectShadowHdl_Impl) ); 284*cdf0e10cSrcweir 285*cdf0e10cSrcweir // aFbShadowX.SetBitmap(Bitmap(FW_RESID(RID_SVXBMP_SHADOW_XDIST))); 286*cdf0e10cSrcweir // aFbShadowY.SetBitmap(Bitmap(FW_RESID(RID_SVXBMP_SHADOW_YDIST))); 287*cdf0e10cSrcweir 288*cdf0e10cSrcweir Link aLink = LINK(this, SvxFontWorkDialog, ModifyInputHdl_Impl); 289*cdf0e10cSrcweir aMtrFldDistance.SetModifyHdl( aLink ); 290*cdf0e10cSrcweir aMtrFldTextStart.SetModifyHdl( aLink ); 291*cdf0e10cSrcweir aMtrFldShadowX.SetModifyHdl( aLink ); 292*cdf0e10cSrcweir aMtrFldShadowY.SetModifyHdl( aLink ); 293*cdf0e10cSrcweir 294*cdf0e10cSrcweir // System-Metrik setzen 295*cdf0e10cSrcweir const FieldUnit eDlgUnit = rBindings.GetDispatcher()->GetModule()->GetFieldUnit(); 296*cdf0e10cSrcweir SetFieldUnit( aMtrFldDistance, eDlgUnit, sal_True ); 297*cdf0e10cSrcweir SetFieldUnit( aMtrFldTextStart, eDlgUnit, sal_True ); 298*cdf0e10cSrcweir SetFieldUnit( aMtrFldShadowX, eDlgUnit, sal_True ); 299*cdf0e10cSrcweir SetFieldUnit( aMtrFldShadowY, eDlgUnit, sal_True ); 300*cdf0e10cSrcweir if( eDlgUnit == FUNIT_MM ) 301*cdf0e10cSrcweir { 302*cdf0e10cSrcweir aMtrFldDistance.SetSpinSize( 50 ); 303*cdf0e10cSrcweir aMtrFldTextStart.SetSpinSize( 50 ); 304*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize( 50 ); 305*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize( 50 ); 306*cdf0e10cSrcweir } 307*cdf0e10cSrcweir else 308*cdf0e10cSrcweir { 309*cdf0e10cSrcweir aMtrFldDistance.SetSpinSize( 10 ); 310*cdf0e10cSrcweir aMtrFldTextStart.SetSpinSize( 10 ); 311*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize( 10 ); 312*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize( 10 ); 313*cdf0e10cSrcweir } 314*cdf0e10cSrcweir 315*cdf0e10cSrcweir aShadowColorLB.SetSelectHdl( LINK(this, SvxFontWorkDialog, ColorSelectHdl_Impl) ); 316*cdf0e10cSrcweir 317*cdf0e10cSrcweir aInputTimer.SetTimeout(500); 318*cdf0e10cSrcweir aInputTimer.SetTimeoutHdl(LINK(this, SvxFontWorkDialog, InputTimoutHdl_Impl)); 319*cdf0e10cSrcweir 320*cdf0e10cSrcweir aFormSet.SetSelectHdl( LINK(this, SvxFontWorkDialog, FormSelectHdl_Impl) ); 321*cdf0e10cSrcweir aFormSet.SetColCount(4); 322*cdf0e10cSrcweir aFormSet.SetLineCount(2); 323*cdf0e10cSrcweir 324*cdf0e10cSrcweir Bitmap aBmp(SVX_RES(RID_SVXBMP_FONTWORK_FORM1)); 325*cdf0e10cSrcweir aSize.Height() = aFormSet.CalcWindowSizePixel(aBmp.GetSizePixel()).Height() + 2; 326*cdf0e10cSrcweir aFormSet.SetSizePixel(aSize); 327*cdf0e10cSrcweir } 328*cdf0e10cSrcweir 329*cdf0e10cSrcweir /************************************************************************* 330*cdf0e10cSrcweir |* 331*cdf0e10cSrcweir |* Destruktor 332*cdf0e10cSrcweir |* 333*cdf0e10cSrcweir \************************************************************************/ 334*cdf0e10cSrcweir 335*cdf0e10cSrcweir SvxFontWorkDialog::~SvxFontWorkDialog() 336*cdf0e10cSrcweir { 337*cdf0e10cSrcweir for (sal_uInt16 i = 0; i < CONTROLLER_COUNT; i++) 338*cdf0e10cSrcweir DELETEZ(pCtrlItems[i]); 339*cdf0e10cSrcweir } 340*cdf0e10cSrcweir 341*cdf0e10cSrcweir /************************************************************************* 342*cdf0e10cSrcweir |* 343*cdf0e10cSrcweir \************************************************************************/ 344*cdf0e10cSrcweir 345*cdf0e10cSrcweir void SvxFontWorkDialog::Zoom() 346*cdf0e10cSrcweir { 347*cdf0e10cSrcweir SfxDockingWindow::Roll(); 348*cdf0e10cSrcweir } 349*cdf0e10cSrcweir 350*cdf0e10cSrcweir 351*cdf0e10cSrcweir /************************************************************************* 352*cdf0e10cSrcweir |* 353*cdf0e10cSrcweir |* 354*cdf0e10cSrcweir |* 355*cdf0e10cSrcweir \************************************************************************/ 356*cdf0e10cSrcweir 357*cdf0e10cSrcweir SfxChildAlignment SvxFontWorkDialog::CheckAlignment( SfxChildAlignment eActAlign, 358*cdf0e10cSrcweir SfxChildAlignment eAlign ) 359*cdf0e10cSrcweir { 360*cdf0e10cSrcweir SfxChildAlignment eAlignment; 361*cdf0e10cSrcweir 362*cdf0e10cSrcweir switch ( eAlign ) 363*cdf0e10cSrcweir { 364*cdf0e10cSrcweir case SFX_ALIGN_TOP: 365*cdf0e10cSrcweir case SFX_ALIGN_HIGHESTTOP: 366*cdf0e10cSrcweir case SFX_ALIGN_LOWESTTOP: 367*cdf0e10cSrcweir case SFX_ALIGN_BOTTOM: 368*cdf0e10cSrcweir case SFX_ALIGN_LOWESTBOTTOM: 369*cdf0e10cSrcweir case SFX_ALIGN_HIGHESTBOTTOM: 370*cdf0e10cSrcweir { 371*cdf0e10cSrcweir eAlignment = eActAlign; 372*cdf0e10cSrcweir } 373*cdf0e10cSrcweir break; 374*cdf0e10cSrcweir 375*cdf0e10cSrcweir case SFX_ALIGN_LEFT: 376*cdf0e10cSrcweir case SFX_ALIGN_RIGHT: 377*cdf0e10cSrcweir case SFX_ALIGN_FIRSTLEFT: 378*cdf0e10cSrcweir case SFX_ALIGN_LASTLEFT: 379*cdf0e10cSrcweir case SFX_ALIGN_FIRSTRIGHT: 380*cdf0e10cSrcweir case SFX_ALIGN_LASTRIGHT: 381*cdf0e10cSrcweir { 382*cdf0e10cSrcweir eAlignment = eAlign; 383*cdf0e10cSrcweir } 384*cdf0e10cSrcweir break; 385*cdf0e10cSrcweir 386*cdf0e10cSrcweir default: 387*cdf0e10cSrcweir { 388*cdf0e10cSrcweir eAlignment = eAlign; 389*cdf0e10cSrcweir } 390*cdf0e10cSrcweir break; 391*cdf0e10cSrcweir } 392*cdf0e10cSrcweir 393*cdf0e10cSrcweir return eAlignment; 394*cdf0e10cSrcweir } 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir 397*cdf0e10cSrcweir /************************************************************************* 398*cdf0e10cSrcweir |* 399*cdf0e10cSrcweir |* Style-Buttons setzen 400*cdf0e10cSrcweir |* 401*cdf0e10cSrcweir \************************************************************************/ 402*cdf0e10cSrcweir 403*cdf0e10cSrcweir void SvxFontWorkDialog::SetStyle_Impl(const XFormTextStyleItem* pItem) 404*cdf0e10cSrcweir { 405*cdf0e10cSrcweir if ( pItem ) 406*cdf0e10cSrcweir { 407*cdf0e10cSrcweir sal_uInt16 nId = TBI_STYLE_OFF; 408*cdf0e10cSrcweir 409*cdf0e10cSrcweir switch ( pItem->GetValue() ) 410*cdf0e10cSrcweir { 411*cdf0e10cSrcweir case XFT_ROTATE : nId = TBI_STYLE_ROTATE; break; 412*cdf0e10cSrcweir case XFT_UPRIGHT: nId = TBI_STYLE_UPRIGHT; break; 413*cdf0e10cSrcweir case XFT_SLANTX : nId = TBI_STYLE_SLANTX; break; 414*cdf0e10cSrcweir case XFT_SLANTY : nId = TBI_STYLE_SLANTY; break; 415*cdf0e10cSrcweir default: ;//prevent warning 416*cdf0e10cSrcweir } 417*cdf0e10cSrcweir aTbxStyle.Enable(); 418*cdf0e10cSrcweir 419*cdf0e10cSrcweir // Make sure that there is allways exactly one checked toolbox item. 420*cdf0e10cSrcweir if ( pItem->GetValue() == XFT_NONE ) 421*cdf0e10cSrcweir { 422*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_ROTATE, sal_False); 423*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_UPRIGHT, sal_False); 424*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_SLANTX, sal_False); 425*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_SLANTY, sal_False); 426*cdf0e10cSrcweir 427*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_OFF, sal_True); 428*cdf0e10cSrcweir } 429*cdf0e10cSrcweir else 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir aTbxStyle.CheckItem(TBI_STYLE_OFF, sal_False); 432*cdf0e10cSrcweir aTbxStyle.CheckItem(nId); 433*cdf0e10cSrcweir } 434*cdf0e10cSrcweir 435*cdf0e10cSrcweir nLastStyleTbxId = nId; 436*cdf0e10cSrcweir } 437*cdf0e10cSrcweir else 438*cdf0e10cSrcweir aTbxStyle.Disable(); 439*cdf0e10cSrcweir } 440*cdf0e10cSrcweir 441*cdf0e10cSrcweir /************************************************************************* 442*cdf0e10cSrcweir |* 443*cdf0e10cSrcweir |* Adjust-Buttons setzen 444*cdf0e10cSrcweir |* 445*cdf0e10cSrcweir \************************************************************************/ 446*cdf0e10cSrcweir 447*cdf0e10cSrcweir void SvxFontWorkDialog::SetAdjust_Impl(const XFormTextAdjustItem* pItem) 448*cdf0e10cSrcweir { 449*cdf0e10cSrcweir if ( pItem ) 450*cdf0e10cSrcweir { 451*cdf0e10cSrcweir sal_uInt16 nId; 452*cdf0e10cSrcweir 453*cdf0e10cSrcweir aTbxAdjust.Enable(); 454*cdf0e10cSrcweir aMtrFldDistance.Enable(); 455*cdf0e10cSrcweir 456*cdf0e10cSrcweir if ( pItem->GetValue() == XFT_LEFT || pItem->GetValue() == XFT_RIGHT ) 457*cdf0e10cSrcweir { 458*cdf0e10cSrcweir if ( pItem->GetValue() == XFT_LEFT ) nId = TBI_ADJUST_LEFT; 459*cdf0e10cSrcweir else nId = TBI_ADJUST_RIGHT; 460*cdf0e10cSrcweir aMtrFldTextStart.Enable(); 461*cdf0e10cSrcweir } 462*cdf0e10cSrcweir else 463*cdf0e10cSrcweir { 464*cdf0e10cSrcweir if ( pItem->GetValue() == XFT_CENTER ) nId = TBI_ADJUST_CENTER; 465*cdf0e10cSrcweir else nId = TBI_ADJUST_AUTOSIZE; 466*cdf0e10cSrcweir aMtrFldTextStart.Disable(); 467*cdf0e10cSrcweir } 468*cdf0e10cSrcweir 469*cdf0e10cSrcweir if ( !aTbxAdjust.IsItemChecked(nId) ) 470*cdf0e10cSrcweir { 471*cdf0e10cSrcweir aTbxAdjust.CheckItem(nId); 472*cdf0e10cSrcweir } 473*cdf0e10cSrcweir nLastAdjustTbxId = nId; 474*cdf0e10cSrcweir } 475*cdf0e10cSrcweir else 476*cdf0e10cSrcweir { 477*cdf0e10cSrcweir aTbxAdjust.Disable(); 478*cdf0e10cSrcweir aMtrFldTextStart.Disable(); 479*cdf0e10cSrcweir aMtrFldDistance.Disable(); 480*cdf0e10cSrcweir } 481*cdf0e10cSrcweir } 482*cdf0e10cSrcweir 483*cdf0e10cSrcweir /************************************************************************* 484*cdf0e10cSrcweir |* 485*cdf0e10cSrcweir |* Abstand-Wert in Editfeld eintragen 486*cdf0e10cSrcweir |* 487*cdf0e10cSrcweir \************************************************************************/ 488*cdf0e10cSrcweir 489*cdf0e10cSrcweir void SvxFontWorkDialog::SetDistance_Impl(const XFormTextDistanceItem* pItem) 490*cdf0e10cSrcweir { 491*cdf0e10cSrcweir // #104596# Use HasChildPathFocus() instead of HasFocus() at SpinFields 492*cdf0e10cSrcweir if ( pItem && !aMtrFldDistance.HasChildPathFocus() ) 493*cdf0e10cSrcweir { 494*cdf0e10cSrcweir SetMetricValue( aMtrFldDistance, pItem->GetValue(), SFX_MAPUNIT_100TH_MM ); 495*cdf0e10cSrcweir } 496*cdf0e10cSrcweir } 497*cdf0e10cSrcweir 498*cdf0e10cSrcweir /************************************************************************* 499*cdf0e10cSrcweir |* 500*cdf0e10cSrcweir |* Einzug-Wert in Editfeld eintragen 501*cdf0e10cSrcweir |* 502*cdf0e10cSrcweir \************************************************************************/ 503*cdf0e10cSrcweir 504*cdf0e10cSrcweir void SvxFontWorkDialog::SetStart_Impl(const XFormTextStartItem* pItem) 505*cdf0e10cSrcweir { 506*cdf0e10cSrcweir // #104596# Use HasChildPathFocus() instead of HasFocus() at SpinFields 507*cdf0e10cSrcweir if ( pItem && !aMtrFldTextStart.HasChildPathFocus() ) 508*cdf0e10cSrcweir { 509*cdf0e10cSrcweir SetMetricValue( aMtrFldTextStart, pItem->GetValue(), SFX_MAPUNIT_100TH_MM ); 510*cdf0e10cSrcweir } 511*cdf0e10cSrcweir } 512*cdf0e10cSrcweir 513*cdf0e10cSrcweir /************************************************************************* 514*cdf0e10cSrcweir |* 515*cdf0e10cSrcweir |* Button fuer Umkehrung der Textrichtung setzen 516*cdf0e10cSrcweir |* 517*cdf0e10cSrcweir \************************************************************************/ 518*cdf0e10cSrcweir 519*cdf0e10cSrcweir void SvxFontWorkDialog::SetMirror_Impl(const XFormTextMirrorItem* pItem) 520*cdf0e10cSrcweir { 521*cdf0e10cSrcweir if ( pItem ) 522*cdf0e10cSrcweir aTbxAdjust.CheckItem(TBI_ADJUST_MIRROR, pItem->GetValue()); 523*cdf0e10cSrcweir } 524*cdf0e10cSrcweir 525*cdf0e10cSrcweir /************************************************************************* 526*cdf0e10cSrcweir |* 527*cdf0e10cSrcweir |* Standardform im ValueSet anzeigen 528*cdf0e10cSrcweir |* 529*cdf0e10cSrcweir \************************************************************************/ 530*cdf0e10cSrcweir 531*cdf0e10cSrcweir void SvxFontWorkDialog::SetStdForm_Impl(const XFormTextStdFormItem* pItem) 532*cdf0e10cSrcweir { 533*cdf0e10cSrcweir if ( pItem ) 534*cdf0e10cSrcweir { 535*cdf0e10cSrcweir aFormSet.Enable(); 536*cdf0e10cSrcweir aFormSet.SetNoSelection(); 537*cdf0e10cSrcweir 538*cdf0e10cSrcweir if ( pItem->GetValue() != XFTFORM_NONE ) 539*cdf0e10cSrcweir aFormSet.SelectItem( 540*cdf0e10cSrcweir sal::static_int_cast< sal_uInt16 >(pItem->GetValue())); 541*cdf0e10cSrcweir } 542*cdf0e10cSrcweir else 543*cdf0e10cSrcweir aFormSet.Disable(); 544*cdf0e10cSrcweir } 545*cdf0e10cSrcweir 546*cdf0e10cSrcweir /************************************************************************* 547*cdf0e10cSrcweir |* 548*cdf0e10cSrcweir |* Button fuer Konturanzeige setzen 549*cdf0e10cSrcweir |* 550*cdf0e10cSrcweir \************************************************************************/ 551*cdf0e10cSrcweir 552*cdf0e10cSrcweir void SvxFontWorkDialog::SetShowForm_Impl(const XFormTextHideFormItem* pItem) 553*cdf0e10cSrcweir { 554*cdf0e10cSrcweir if ( pItem ) 555*cdf0e10cSrcweir aTbxShadow.CheckItem(TBI_SHOWFORM, !pItem->GetValue()); 556*cdf0e10cSrcweir } 557*cdf0e10cSrcweir 558*cdf0e10cSrcweir /************************************************************************* 559*cdf0e10cSrcweir |* 560*cdf0e10cSrcweir |* Button fuer Zeichenumrandung setzen 561*cdf0e10cSrcweir |* 562*cdf0e10cSrcweir \************************************************************************/ 563*cdf0e10cSrcweir 564*cdf0e10cSrcweir void SvxFontWorkDialog::SetOutline_Impl(const XFormTextOutlineItem* pItem) 565*cdf0e10cSrcweir { 566*cdf0e10cSrcweir if ( pItem ) 567*cdf0e10cSrcweir aTbxShadow.CheckItem(TBI_OUTLINE, pItem->GetValue()); 568*cdf0e10cSrcweir } 569*cdf0e10cSrcweir 570*cdf0e10cSrcweir /************************************************************************* 571*cdf0e10cSrcweir |* 572*cdf0e10cSrcweir |* Shadow-Buttons setzen 573*cdf0e10cSrcweir |* 574*cdf0e10cSrcweir \************************************************************************/ 575*cdf0e10cSrcweir 576*cdf0e10cSrcweir void SvxFontWorkDialog::SetShadow_Impl(const XFormTextShadowItem* pItem, 577*cdf0e10cSrcweir sal_Bool bRestoreValues) 578*cdf0e10cSrcweir { 579*cdf0e10cSrcweir if ( pItem ) 580*cdf0e10cSrcweir { 581*cdf0e10cSrcweir sal_uInt16 nId; 582*cdf0e10cSrcweir 583*cdf0e10cSrcweir aTbxShadow.Enable(); 584*cdf0e10cSrcweir 585*cdf0e10cSrcweir if ( pItem->GetValue() == XFTSHADOW_NONE ) 586*cdf0e10cSrcweir { 587*cdf0e10cSrcweir nId = TBI_SHADOW_OFF; 588*cdf0e10cSrcweir aFbShadowX.Hide(); 589*cdf0e10cSrcweir aFbShadowY.Hide(); 590*cdf0e10cSrcweir aMtrFldShadowX.Disable(); 591*cdf0e10cSrcweir aMtrFldShadowY.Disable(); 592*cdf0e10cSrcweir aShadowColorLB.Disable(); 593*cdf0e10cSrcweir } 594*cdf0e10cSrcweir else 595*cdf0e10cSrcweir { 596*cdf0e10cSrcweir aFbShadowX.Show(); 597*cdf0e10cSrcweir aFbShadowY.Show(); 598*cdf0e10cSrcweir aMtrFldShadowX.Enable(); 599*cdf0e10cSrcweir aMtrFldShadowY.Enable(); 600*cdf0e10cSrcweir aShadowColorLB.Enable(); 601*cdf0e10cSrcweir 602*cdf0e10cSrcweir if ( pItem->GetValue() == XFTSHADOW_NORMAL ) 603*cdf0e10cSrcweir { 604*cdf0e10cSrcweir nId = TBI_SHADOW_NORMAL; 605*cdf0e10cSrcweir const FieldUnit eDlgUnit = rBindings.GetDispatcher()->GetModule()->GetFieldUnit(); 606*cdf0e10cSrcweir 607*cdf0e10cSrcweir // aFbShadowX.SetBitmap( Bitmap( ResId(RID_SVXBMP_SHADOW_XDIST, _pMgr ) ) ); 608*cdf0e10cSrcweir //aMtrFldShadowX.SetUnit(FUNIT_MM); 609*cdf0e10cSrcweir aMtrFldShadowX.SetUnit( eDlgUnit ); 610*cdf0e10cSrcweir aMtrFldShadowX.SetDecimalDigits(2); 611*cdf0e10cSrcweir aMtrFldShadowX.SetMin(LONG_MIN); 612*cdf0e10cSrcweir aMtrFldShadowX.SetMax(LONG_MAX); 613*cdf0e10cSrcweir if( eDlgUnit == FUNIT_MM ) 614*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize( 50 ); 615*cdf0e10cSrcweir else 616*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize( 10 ); 617*cdf0e10cSrcweir 618*cdf0e10cSrcweir // aFbShadowY.SetBitmap( Bitmap( ResId( RID_SVXBMP_SHADOW_YDIST, _pMgr ) ) ); 619*cdf0e10cSrcweir //aMtrFldShadowY.SetUnit(FUNIT_MM); 620*cdf0e10cSrcweir aMtrFldShadowY.SetUnit( eDlgUnit ); 621*cdf0e10cSrcweir aMtrFldShadowY.SetDecimalDigits(2); 622*cdf0e10cSrcweir aMtrFldShadowY.SetMin(LONG_MIN); 623*cdf0e10cSrcweir aMtrFldShadowY.SetMax(LONG_MAX); 624*cdf0e10cSrcweir if( eDlgUnit == FUNIT_MM ) 625*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize( 50 ); 626*cdf0e10cSrcweir else 627*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize( 10 ); 628*cdf0e10cSrcweir 629*cdf0e10cSrcweir if ( bRestoreValues ) 630*cdf0e10cSrcweir { 631*cdf0e10cSrcweir SetMetricValue( aMtrFldShadowX, nSaveShadowX, SFX_MAPUNIT_100TH_MM ); 632*cdf0e10cSrcweir SetMetricValue( aMtrFldShadowY, nSaveShadowY, SFX_MAPUNIT_100TH_MM ); 633*cdf0e10cSrcweir 634*cdf0e10cSrcweir XFormTextShadowXValItem aXItem( nSaveShadowX ); 635*cdf0e10cSrcweir XFormTextShadowYValItem aYItem( nSaveShadowY ); 636*cdf0e10cSrcweir 637*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( 638*cdf0e10cSrcweir SID_FORMTEXT_SHDWXVAL, SFX_CALLMODE_RECORD, &aXItem, &aYItem, 0L ); 639*cdf0e10cSrcweir } 640*cdf0e10cSrcweir } 641*cdf0e10cSrcweir else 642*cdf0e10cSrcweir { 643*cdf0e10cSrcweir nId = TBI_SHADOW_SLANT; 644*cdf0e10cSrcweir 645*cdf0e10cSrcweir // aFbShadowX.SetBitmap( Bitmap( ResId( RID_SVXBMP_SHADOW_ANGLE, _pMgr ) ) ); 646*cdf0e10cSrcweir aMtrFldShadowX.SetUnit(FUNIT_CUSTOM); 647*cdf0e10cSrcweir aMtrFldShadowX.SetDecimalDigits(1); 648*cdf0e10cSrcweir aMtrFldShadowX.SetMin(-1800); 649*cdf0e10cSrcweir aMtrFldShadowX.SetMax( 1800); 650*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize(10); 651*cdf0e10cSrcweir 652*cdf0e10cSrcweir // aFbShadowY.SetBitmap( Bitmap( ResId( RID_SVXBMP_SHADOW_SIZE, _pMgr ) ) ); 653*cdf0e10cSrcweir aMtrFldShadowY.SetUnit(FUNIT_CUSTOM); 654*cdf0e10cSrcweir aMtrFldShadowY.SetDecimalDigits(0); 655*cdf0e10cSrcweir aMtrFldShadowY.SetMin(-999); 656*cdf0e10cSrcweir aMtrFldShadowY.SetMax( 999); 657*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize(10); 658*cdf0e10cSrcweir 659*cdf0e10cSrcweir if ( bRestoreValues ) 660*cdf0e10cSrcweir { 661*cdf0e10cSrcweir aMtrFldShadowX.SetValue(nSaveShadowAngle); 662*cdf0e10cSrcweir aMtrFldShadowY.SetValue(nSaveShadowSize); 663*cdf0e10cSrcweir XFormTextShadowXValItem aXItem(nSaveShadowAngle); 664*cdf0e10cSrcweir XFormTextShadowYValItem aYItem(nSaveShadowSize); 665*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( 666*cdf0e10cSrcweir SID_FORMTEXT_SHDWXVAL, SFX_CALLMODE_RECORD, &aXItem, &aYItem, 0L ); 667*cdf0e10cSrcweir } 668*cdf0e10cSrcweir } 669*cdf0e10cSrcweir } 670*cdf0e10cSrcweir 671*cdf0e10cSrcweir if ( !aTbxShadow.IsItemChecked(nId) ) 672*cdf0e10cSrcweir { 673*cdf0e10cSrcweir aTbxShadow.CheckItem(nId); 674*cdf0e10cSrcweir } 675*cdf0e10cSrcweir nLastShadowTbxId = nId; 676*cdf0e10cSrcweir 677*cdf0e10cSrcweir ApplyImageList(); 678*cdf0e10cSrcweir } 679*cdf0e10cSrcweir else 680*cdf0e10cSrcweir { 681*cdf0e10cSrcweir aTbxShadow.Disable(); 682*cdf0e10cSrcweir aMtrFldShadowX.Disable(); 683*cdf0e10cSrcweir aMtrFldShadowY.Disable(); 684*cdf0e10cSrcweir aShadowColorLB.Disable(); 685*cdf0e10cSrcweir } 686*cdf0e10cSrcweir } 687*cdf0e10cSrcweir 688*cdf0e10cSrcweir /************************************************************************* 689*cdf0e10cSrcweir |* 690*cdf0e10cSrcweir |* Schattenfarbe in Listbox eintragen 691*cdf0e10cSrcweir |* 692*cdf0e10cSrcweir \************************************************************************/ 693*cdf0e10cSrcweir 694*cdf0e10cSrcweir void SvxFontWorkDialog::SetShadowColor_Impl(const XFormTextShadowColorItem* pItem) 695*cdf0e10cSrcweir { 696*cdf0e10cSrcweir if ( pItem ) 697*cdf0e10cSrcweir aShadowColorLB.SelectEntry(pItem->GetColorValue()); 698*cdf0e10cSrcweir } 699*cdf0e10cSrcweir 700*cdf0e10cSrcweir /************************************************************************* 701*cdf0e10cSrcweir |* 702*cdf0e10cSrcweir |* X-Wert fuer Schatten in Editfeld eintragen 703*cdf0e10cSrcweir |* 704*cdf0e10cSrcweir \************************************************************************/ 705*cdf0e10cSrcweir 706*cdf0e10cSrcweir void SvxFontWorkDialog::SetShadowXVal_Impl(const XFormTextShadowXValItem* pItem) 707*cdf0e10cSrcweir { 708*cdf0e10cSrcweir // #104596# Use HasChildPathFocus() instead of HasFocus() at SpinFields 709*cdf0e10cSrcweir if ( pItem && !aMtrFldShadowX.HasChildPathFocus() ) 710*cdf0e10cSrcweir { 711*cdf0e10cSrcweir // #i19251# 712*cdf0e10cSrcweir // sal_Int32 nValue = pItem->GetValue(); 713*cdf0e10cSrcweir 714*cdf0e10cSrcweir // #i19251# 715*cdf0e10cSrcweir // The two involved fields/items are used double and contain/give different 716*cdf0e10cSrcweir // values regarding to the access method. Thus, here we need to separate the access 717*cdf0e10cSrcweir // methos regarding to the kind of value accessed. 718*cdf0e10cSrcweir if(aTbxShadow.IsItemChecked(TBI_SHADOW_SLANT)) 719*cdf0e10cSrcweir { 720*cdf0e10cSrcweir // #i19251# 721*cdf0e10cSrcweir // There is no value correction necessary at all, i think this 722*cdf0e10cSrcweir // was only tried to be done without understanding that the two 723*cdf0e10cSrcweir // involved fields/items are used double and contain/give different 724*cdf0e10cSrcweir // values regarding to the access method. 725*cdf0e10cSrcweir // nValue = nValue - ( int( float( nValue ) / 360.0 ) * 360 ); 726*cdf0e10cSrcweir aMtrFldShadowX.SetValue(pItem->GetValue()); 727*cdf0e10cSrcweir } 728*cdf0e10cSrcweir else 729*cdf0e10cSrcweir { 730*cdf0e10cSrcweir SetMetricValue( aMtrFldShadowX, pItem->GetValue(), SFX_MAPUNIT_100TH_MM ); 731*cdf0e10cSrcweir } 732*cdf0e10cSrcweir } 733*cdf0e10cSrcweir } 734*cdf0e10cSrcweir 735*cdf0e10cSrcweir /************************************************************************* 736*cdf0e10cSrcweir |* 737*cdf0e10cSrcweir |* Y-Wert fuer Schatten in Editfeld eintragen 738*cdf0e10cSrcweir |* 739*cdf0e10cSrcweir \************************************************************************/ 740*cdf0e10cSrcweir 741*cdf0e10cSrcweir void SvxFontWorkDialog::SetShadowYVal_Impl(const XFormTextShadowYValItem* pItem) 742*cdf0e10cSrcweir { 743*cdf0e10cSrcweir // #104596# Use HasChildPathFocus() instead of HasFocus() at SpinFields 744*cdf0e10cSrcweir if ( pItem && !aMtrFldShadowY.HasChildPathFocus() ) 745*cdf0e10cSrcweir { 746*cdf0e10cSrcweir // #i19251# 747*cdf0e10cSrcweir // The two involved fields/items are used double and contain/give different 748*cdf0e10cSrcweir // values regarding to the access method. Thus, here we need to separate the access 749*cdf0e10cSrcweir // methos regarding to the kind of value accessed. 750*cdf0e10cSrcweir if(aTbxShadow.IsItemChecked(TBI_SHADOW_SLANT)) 751*cdf0e10cSrcweir { 752*cdf0e10cSrcweir aMtrFldShadowY.SetValue(pItem->GetValue()); 753*cdf0e10cSrcweir } 754*cdf0e10cSrcweir else 755*cdf0e10cSrcweir { 756*cdf0e10cSrcweir SetMetricValue( aMtrFldShadowY, pItem->GetValue(), SFX_MAPUNIT_100TH_MM ); 757*cdf0e10cSrcweir } 758*cdf0e10cSrcweir } 759*cdf0e10cSrcweir } 760*cdf0e10cSrcweir 761*cdf0e10cSrcweir /************************************************************************* 762*cdf0e10cSrcweir |* 763*cdf0e10cSrcweir \************************************************************************/ 764*cdf0e10cSrcweir 765*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, SelectStyleHdl_Impl, void *, EMPTYARG ) 766*cdf0e10cSrcweir { 767*cdf0e10cSrcweir sal_uInt16 nId = aTbxStyle.GetCurItemId(); 768*cdf0e10cSrcweir 769*cdf0e10cSrcweir // Execute this block when a different toolbox item has been clicked or 770*cdf0e10cSrcweir // when the off item has been clicked. The later is necessary to 771*cdf0e10cSrcweir // override the toolbox behaviour of unchecking the item after second 772*cdf0e10cSrcweir // click on it: One of the items has to be checked at all times (when 773*cdf0e10cSrcweir // enabled that is.) 774*cdf0e10cSrcweir if (nId == TBI_STYLE_OFF || nId != nLastStyleTbxId ) 775*cdf0e10cSrcweir { 776*cdf0e10cSrcweir XFormTextStyle eStyle = XFT_NONE; 777*cdf0e10cSrcweir 778*cdf0e10cSrcweir switch ( nId ) 779*cdf0e10cSrcweir { 780*cdf0e10cSrcweir case TBI_STYLE_ROTATE : eStyle = XFT_ROTATE; break; 781*cdf0e10cSrcweir case TBI_STYLE_UPRIGHT : eStyle = XFT_UPRIGHT; break; 782*cdf0e10cSrcweir case TBI_STYLE_SLANTX : eStyle = XFT_SLANTX; break; 783*cdf0e10cSrcweir case TBI_STYLE_SLANTY : eStyle = XFT_SLANTY; break; 784*cdf0e10cSrcweir } 785*cdf0e10cSrcweir XFormTextStyleItem aItem( eStyle ); 786*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_STYLE, SFX_CALLMODE_RECORD, &aItem, 0L ); 787*cdf0e10cSrcweir SetStyle_Impl( &aItem ); 788*cdf0e10cSrcweir nLastStyleTbxId = nId; 789*cdf0e10cSrcweir } 790*cdf0e10cSrcweir return 0; 791*cdf0e10cSrcweir } 792*cdf0e10cSrcweir 793*cdf0e10cSrcweir /************************************************************************* 794*cdf0e10cSrcweir |* 795*cdf0e10cSrcweir \************************************************************************/ 796*cdf0e10cSrcweir 797*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, SelectAdjustHdl_Impl, void *, EMPTYARG ) 798*cdf0e10cSrcweir { 799*cdf0e10cSrcweir sal_uInt16 nId = aTbxAdjust.GetCurItemId(); 800*cdf0e10cSrcweir 801*cdf0e10cSrcweir if ( nId == TBI_ADJUST_MIRROR ) 802*cdf0e10cSrcweir { 803*cdf0e10cSrcweir XFormTextMirrorItem aItem(aTbxAdjust.IsItemChecked(nId)); 804*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_MIRROR, SFX_CALLMODE_SLOT, &aItem, 0L ); 805*cdf0e10cSrcweir } 806*cdf0e10cSrcweir else if ( nId != nLastAdjustTbxId ) 807*cdf0e10cSrcweir { 808*cdf0e10cSrcweir XFormTextAdjust eAdjust = XFT_AUTOSIZE; 809*cdf0e10cSrcweir 810*cdf0e10cSrcweir switch ( nId ) 811*cdf0e10cSrcweir { 812*cdf0e10cSrcweir case TBI_ADJUST_LEFT : eAdjust = XFT_LEFT; break; 813*cdf0e10cSrcweir case TBI_ADJUST_CENTER : eAdjust = XFT_CENTER; break; 814*cdf0e10cSrcweir case TBI_ADJUST_RIGHT : eAdjust = XFT_RIGHT; break; 815*cdf0e10cSrcweir } 816*cdf0e10cSrcweir XFormTextAdjustItem aItem(eAdjust); 817*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_ADJUST, SFX_CALLMODE_RECORD, &aItem, 0L ); 818*cdf0e10cSrcweir SetAdjust_Impl(&aItem); 819*cdf0e10cSrcweir nLastAdjustTbxId = nId; 820*cdf0e10cSrcweir } 821*cdf0e10cSrcweir return 0; 822*cdf0e10cSrcweir } 823*cdf0e10cSrcweir 824*cdf0e10cSrcweir /************************************************************************* 825*cdf0e10cSrcweir |* 826*cdf0e10cSrcweir \************************************************************************/ 827*cdf0e10cSrcweir 828*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, SelectShadowHdl_Impl, void *, EMPTYARG ) 829*cdf0e10cSrcweir { 830*cdf0e10cSrcweir sal_uInt16 nId = aTbxShadow.GetCurItemId(); 831*cdf0e10cSrcweir 832*cdf0e10cSrcweir if ( nId == TBI_SHOWFORM ) 833*cdf0e10cSrcweir { 834*cdf0e10cSrcweir XFormTextHideFormItem aItem(!aTbxShadow.IsItemChecked(nId)); 835*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_HIDEFORM, SFX_CALLMODE_RECORD, &aItem, 0L ); 836*cdf0e10cSrcweir } 837*cdf0e10cSrcweir else if ( nId == TBI_OUTLINE ) 838*cdf0e10cSrcweir { 839*cdf0e10cSrcweir XFormTextOutlineItem aItem(aTbxShadow.IsItemChecked(nId)); 840*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_OUTLINE, SFX_CALLMODE_RECORD, &aItem, 0L ); 841*cdf0e10cSrcweir } 842*cdf0e10cSrcweir else if ( nId != nLastShadowTbxId ) 843*cdf0e10cSrcweir { 844*cdf0e10cSrcweir XFormTextShadow eShadow = XFTSHADOW_NONE; 845*cdf0e10cSrcweir 846*cdf0e10cSrcweir if ( nLastShadowTbxId == TBI_SHADOW_NORMAL ) 847*cdf0e10cSrcweir { 848*cdf0e10cSrcweir nSaveShadowX = GetCoreValue( aMtrFldShadowX, SFX_MAPUNIT_100TH_MM ); 849*cdf0e10cSrcweir nSaveShadowY = GetCoreValue( aMtrFldShadowY, SFX_MAPUNIT_100TH_MM ); 850*cdf0e10cSrcweir } 851*cdf0e10cSrcweir else if ( nLastShadowTbxId == TBI_SHADOW_SLANT ) 852*cdf0e10cSrcweir { 853*cdf0e10cSrcweir nSaveShadowAngle = static_cast<long>(aMtrFldShadowX.GetValue()); 854*cdf0e10cSrcweir nSaveShadowSize = static_cast<long>(aMtrFldShadowY.GetValue()); 855*cdf0e10cSrcweir } 856*cdf0e10cSrcweir nLastShadowTbxId = nId; 857*cdf0e10cSrcweir 858*cdf0e10cSrcweir if ( nId == TBI_SHADOW_NORMAL ) eShadow = XFTSHADOW_NORMAL; 859*cdf0e10cSrcweir else if ( nId == TBI_SHADOW_SLANT ) eShadow = XFTSHADOW_SLANT; 860*cdf0e10cSrcweir 861*cdf0e10cSrcweir XFormTextShadowItem aItem(eShadow); 862*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_SHADOW, SFX_CALLMODE_RECORD, &aItem, 0L ); 863*cdf0e10cSrcweir SetShadow_Impl(&aItem, sal_True); 864*cdf0e10cSrcweir } 865*cdf0e10cSrcweir return 0; 866*cdf0e10cSrcweir } 867*cdf0e10cSrcweir 868*cdf0e10cSrcweir /************************************************************************* 869*cdf0e10cSrcweir |* 870*cdf0e10cSrcweir \************************************************************************/ 871*cdf0e10cSrcweir 872*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvxFontWorkDialog, ModifyInputHdl_Impl, void *, EMPTYARG ) 873*cdf0e10cSrcweir { 874*cdf0e10cSrcweir aInputTimer.Start(); 875*cdf0e10cSrcweir return 0; 876*cdf0e10cSrcweir } 877*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvxFontWorkDialog, ModifyInputHdl_Impl, void *, EMPTYARG ) 878*cdf0e10cSrcweir 879*cdf0e10cSrcweir /************************************************************************* 880*cdf0e10cSrcweir |* 881*cdf0e10cSrcweir \************************************************************************/ 882*cdf0e10cSrcweir 883*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, InputTimoutHdl_Impl, void *, EMPTYARG ) 884*cdf0e10cSrcweir { 885*cdf0e10cSrcweir // System-Metrik evtl. neu setzen 886*cdf0e10cSrcweir // Dieses sollte mal als Listener passieren, ist aber aus 887*cdf0e10cSrcweir // inkompatibilitaetsgruenden z.Z. nicht moeglich 888*cdf0e10cSrcweir const FieldUnit eDlgUnit = rBindings.GetDispatcher()->GetModule()->GetFieldUnit(); 889*cdf0e10cSrcweir if( eDlgUnit != aMtrFldDistance.GetUnit() ) 890*cdf0e10cSrcweir { 891*cdf0e10cSrcweir SetFieldUnit( aMtrFldDistance, eDlgUnit, sal_True ); 892*cdf0e10cSrcweir SetFieldUnit( aMtrFldTextStart, eDlgUnit, sal_True ); 893*cdf0e10cSrcweir aMtrFldDistance.SetSpinSize( eDlgUnit == FUNIT_MM ? 50 : 10 ); 894*cdf0e10cSrcweir aMtrFldTextStart.SetSpinSize( eDlgUnit == FUNIT_MM ? 50 : 10 ); 895*cdf0e10cSrcweir } 896*cdf0e10cSrcweir if( eDlgUnit != aMtrFldShadowX.GetUnit() && 897*cdf0e10cSrcweir aTbxShadow.IsItemChecked( TBI_SHADOW_NORMAL ) ) 898*cdf0e10cSrcweir { 899*cdf0e10cSrcweir SetFieldUnit( aMtrFldShadowX, eDlgUnit, sal_True ); 900*cdf0e10cSrcweir SetFieldUnit( aMtrFldShadowY, eDlgUnit, sal_True ); 901*cdf0e10cSrcweir aMtrFldShadowX.SetSpinSize( eDlgUnit == FUNIT_MM ? 50 : 10 ); 902*cdf0e10cSrcweir aMtrFldShadowY.SetSpinSize( eDlgUnit == FUNIT_MM ? 50 : 10 ); 903*cdf0e10cSrcweir } 904*cdf0e10cSrcweir 905*cdf0e10cSrcweir long nValue = GetCoreValue( aMtrFldDistance, SFX_MAPUNIT_100TH_MM ); 906*cdf0e10cSrcweir XFormTextDistanceItem aDistItem( nValue ); 907*cdf0e10cSrcweir nValue = GetCoreValue( aMtrFldTextStart, SFX_MAPUNIT_100TH_MM ); 908*cdf0e10cSrcweir XFormTextStartItem aStartItem( nValue ); 909*cdf0e10cSrcweir 910*cdf0e10cSrcweir sal_Int32 nValueX(0L); 911*cdf0e10cSrcweir sal_Int32 nValueY(0L); 912*cdf0e10cSrcweir 913*cdf0e10cSrcweir // #i19251# 914*cdf0e10cSrcweir // The two involved fields/items are used double and contain/give different 915*cdf0e10cSrcweir // values regarding to the access method. Thus, here we need to separate the access 916*cdf0e10cSrcweir // methos regarding to the kind of value accessed. 917*cdf0e10cSrcweir if(nLastShadowTbxId == TBI_SHADOW_NORMAL) 918*cdf0e10cSrcweir { 919*cdf0e10cSrcweir nValueX = GetCoreValue( aMtrFldShadowX, SFX_MAPUNIT_100TH_MM ); 920*cdf0e10cSrcweir nValueY = GetCoreValue( aMtrFldShadowY, SFX_MAPUNIT_100TH_MM ); 921*cdf0e10cSrcweir } 922*cdf0e10cSrcweir else if(nLastShadowTbxId == TBI_SHADOW_SLANT) 923*cdf0e10cSrcweir { 924*cdf0e10cSrcweir nValueX = static_cast<long>(aMtrFldShadowX.GetValue()); 925*cdf0e10cSrcweir nValueY = static_cast<long>(aMtrFldShadowY.GetValue()); 926*cdf0e10cSrcweir } 927*cdf0e10cSrcweir 928*cdf0e10cSrcweir XFormTextShadowXValItem aShadowXItem( nValueX ); 929*cdf0e10cSrcweir XFormTextShadowYValItem aShadowYItem( nValueY ); 930*cdf0e10cSrcweir 931*cdf0e10cSrcweir // Slot-ID ist egal, die Exec-Methode wertet das gesamte ItemSet aus 932*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_DISTANCE, SFX_CALLMODE_RECORD, &aDistItem, 933*cdf0e10cSrcweir &aStartItem, &aShadowXItem, &aShadowYItem, 0L ); 934*cdf0e10cSrcweir return 0; 935*cdf0e10cSrcweir } 936*cdf0e10cSrcweir 937*cdf0e10cSrcweir /************************************************************************* 938*cdf0e10cSrcweir |* 939*cdf0e10cSrcweir \************************************************************************/ 940*cdf0e10cSrcweir 941*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, FormSelectHdl_Impl, void *, EMPTYARG ) 942*cdf0e10cSrcweir { 943*cdf0e10cSrcweir XFormTextStdFormItem aItem; 944*cdf0e10cSrcweir 945*cdf0e10cSrcweir if ( aFormSet.IsNoSelection() ) 946*cdf0e10cSrcweir aItem.SetValue(XFTFORM_NONE); 947*cdf0e10cSrcweir else 948*cdf0e10cSrcweir aItem.SetValue(aFormSet.GetSelectItemId()); 949*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_STDFORM, SFX_CALLMODE_RECORD, &aItem, 0L ); 950*cdf0e10cSrcweir aFormSet.SetNoSelection(); 951*cdf0e10cSrcweir return 0; 952*cdf0e10cSrcweir } 953*cdf0e10cSrcweir 954*cdf0e10cSrcweir /************************************************************************* 955*cdf0e10cSrcweir |* 956*cdf0e10cSrcweir \************************************************************************/ 957*cdf0e10cSrcweir 958*cdf0e10cSrcweir IMPL_LINK( SvxFontWorkDialog, ColorSelectHdl_Impl, void *, EMPTYARG ) 959*cdf0e10cSrcweir { 960*cdf0e10cSrcweir // Changed by obo. Linux-Compiler can't parse commented lines 961*cdf0e10cSrcweir XFormTextShadowColorItem aItem( (const String &) String(), 962*cdf0e10cSrcweir (const Color &) aShadowColorLB.GetSelectEntryColor() ); 963*cdf0e10cSrcweir // XFormTextShadowColorItem aItem( String(), 964*cdf0e10cSrcweir // aShadowColorLB.GetSelectEntryColor() ); 965*cdf0e10cSrcweir GetBindings().GetDispatcher()->Execute( SID_FORMTEXT_SHDWCOLOR, SFX_CALLMODE_RECORD, &aItem, 0L ); 966*cdf0e10cSrcweir return 0; 967*cdf0e10cSrcweir } 968*cdf0e10cSrcweir 969*cdf0e10cSrcweir /************************************************************************* 970*cdf0e10cSrcweir |* 971*cdf0e10cSrcweir \************************************************************************/ 972*cdf0e10cSrcweir 973*cdf0e10cSrcweir void SvxFontWorkDialog::SetColorTable(const XColorTable* pTable) 974*cdf0e10cSrcweir { 975*cdf0e10cSrcweir if ( pTable && pTable != pColorTable ) 976*cdf0e10cSrcweir { 977*cdf0e10cSrcweir pColorTable = pTable; 978*cdf0e10cSrcweir aShadowColorLB.Clear(); 979*cdf0e10cSrcweir aShadowColorLB.Fill(pColorTable); 980*cdf0e10cSrcweir } 981*cdf0e10cSrcweir } 982*cdf0e10cSrcweir 983*cdf0e10cSrcweir /************************************************************************* 984*cdf0e10cSrcweir |* 985*cdf0e10cSrcweir \************************************************************************/ 986*cdf0e10cSrcweir 987*cdf0e10cSrcweir void SvxFontWorkDialog::SetActive(sal_Bool /*bActivate*/) 988*cdf0e10cSrcweir { 989*cdf0e10cSrcweir } 990*cdf0e10cSrcweir 991*cdf0e10cSrcweir /************************************************************************* 992*cdf0e10cSrcweir |* 993*cdf0e10cSrcweir |* Standard-FontWork-Objekt erzeugen 994*cdf0e10cSrcweir |* 995*cdf0e10cSrcweir \************************************************************************/ 996*cdf0e10cSrcweir 997*cdf0e10cSrcweir void SvxFontWorkDialog::CreateStdFormObj(SdrView& rView, SdrPageView& rPV, 998*cdf0e10cSrcweir const SfxItemSet& rAttr, 999*cdf0e10cSrcweir SdrObject& rOldObj, 1000*cdf0e10cSrcweir XFormTextStdForm eForm) 1001*cdf0e10cSrcweir { 1002*cdf0e10cSrcweir SfxItemSet aAttr(*rAttr.GetPool(), XATTR_FORMTXTSTYLE, 1003*cdf0e10cSrcweir XATTR_FORMTXTHIDEFORM); 1004*cdf0e10cSrcweir SdrObject* pNewObj = NULL; 1005*cdf0e10cSrcweir Rectangle aRect; 1006*cdf0e10cSrcweir XFormTextAdjust eAdjust = XFT_AUTOSIZE; 1007*cdf0e10cSrcweir 1008*cdf0e10cSrcweir //-/ rOldObj.TakeAttributes(aAttr, sal_True, sal_False); 1009*cdf0e10cSrcweir aAttr.Put(rOldObj.GetMergedItemSet()); 1010*cdf0e10cSrcweir 1011*cdf0e10cSrcweir const XFormTextStdFormItem& rOldForm = (const XFormTextStdFormItem&) 1012*cdf0e10cSrcweir aAttr.Get(XATTR_FORMTXTSTDFORM); 1013*cdf0e10cSrcweir 1014*cdf0e10cSrcweir aRect = rOldObj.GetSnapRect(); 1015*cdf0e10cSrcweir 1016*cdf0e10cSrcweir if ( !rOldObj.ISA(SdrPathObj) ) 1017*cdf0e10cSrcweir { 1018*cdf0e10cSrcweir Point aPos = aRect.TopLeft(); 1019*cdf0e10cSrcweir aRect = rOldObj.GetLogicRect(); 1020*cdf0e10cSrcweir aRect.SetPos(aPos); 1021*cdf0e10cSrcweir } 1022*cdf0e10cSrcweir 1023*cdf0e10cSrcweir aAttr.Put(rAttr); 1024*cdf0e10cSrcweir 1025*cdf0e10cSrcweir if ( rOldForm.GetValue() == XFTFORM_NONE ) 1026*cdf0e10cSrcweir { 1027*cdf0e10cSrcweir long nW = aRect.GetWidth(); 1028*cdf0e10cSrcweir aRect.SetSize(Size(nW, nW)); 1029*cdf0e10cSrcweir aAttr.Put(XFormTextStyleItem(XFT_ROTATE)); 1030*cdf0e10cSrcweir } 1031*cdf0e10cSrcweir 1032*cdf0e10cSrcweir Point aCenter = aRect.Center(); 1033*cdf0e10cSrcweir 1034*cdf0e10cSrcweir switch ( eForm ) 1035*cdf0e10cSrcweir { 1036*cdf0e10cSrcweir case XFTFORM_TOPCIRC: 1037*cdf0e10cSrcweir case XFTFORM_BOTCIRC: 1038*cdf0e10cSrcweir case XFTFORM_LFTCIRC: 1039*cdf0e10cSrcweir case XFTFORM_RGTCIRC: 1040*cdf0e10cSrcweir case XFTFORM_TOPARC: 1041*cdf0e10cSrcweir case XFTFORM_BOTARC: 1042*cdf0e10cSrcweir case XFTFORM_LFTARC: 1043*cdf0e10cSrcweir case XFTFORM_RGTARC: 1044*cdf0e10cSrcweir { 1045*cdf0e10cSrcweir long nBeg, nEnd; 1046*cdf0e10cSrcweir 1047*cdf0e10cSrcweir switch ( eForm ) 1048*cdf0e10cSrcweir { 1049*cdf0e10cSrcweir default: ; //prevent warning 1050*cdf0e10cSrcweir case XFTFORM_TOPCIRC: 1051*cdf0e10cSrcweir nBeg = 0; 1052*cdf0e10cSrcweir nEnd = 18000; 1053*cdf0e10cSrcweir break; 1054*cdf0e10cSrcweir case XFTFORM_BOTCIRC: 1055*cdf0e10cSrcweir nBeg = 18000; 1056*cdf0e10cSrcweir nEnd = 36000; 1057*cdf0e10cSrcweir break; 1058*cdf0e10cSrcweir case XFTFORM_LFTCIRC: 1059*cdf0e10cSrcweir nBeg = 9000; 1060*cdf0e10cSrcweir nEnd = 27000; 1061*cdf0e10cSrcweir break; 1062*cdf0e10cSrcweir case XFTFORM_RGTCIRC: 1063*cdf0e10cSrcweir nBeg = 27000; 1064*cdf0e10cSrcweir nEnd = 9000; 1065*cdf0e10cSrcweir break; 1066*cdf0e10cSrcweir case XFTFORM_TOPARC: 1067*cdf0e10cSrcweir nBeg = 4500; 1068*cdf0e10cSrcweir nEnd = 13500; 1069*cdf0e10cSrcweir break; 1070*cdf0e10cSrcweir case XFTFORM_BOTARC: 1071*cdf0e10cSrcweir nBeg = 22500; 1072*cdf0e10cSrcweir nEnd = 31500; 1073*cdf0e10cSrcweir break; 1074*cdf0e10cSrcweir case XFTFORM_LFTARC: 1075*cdf0e10cSrcweir nBeg = 13500; 1076*cdf0e10cSrcweir nEnd = 22500; 1077*cdf0e10cSrcweir break; 1078*cdf0e10cSrcweir case XFTFORM_RGTARC: 1079*cdf0e10cSrcweir nBeg = 31500; 1080*cdf0e10cSrcweir nEnd = 4500; 1081*cdf0e10cSrcweir break; 1082*cdf0e10cSrcweir } 1083*cdf0e10cSrcweir pNewObj = new SdrCircObj(OBJ_CARC, aRect, nBeg, nEnd); 1084*cdf0e10cSrcweir break; 1085*cdf0e10cSrcweir } 1086*cdf0e10cSrcweir case XFTFORM_BUTTON1: 1087*cdf0e10cSrcweir { 1088*cdf0e10cSrcweir basegfx::B2DPolyPolygon aPolyPolygon; 1089*cdf0e10cSrcweir basegfx::B2DPolygon aLine; 1090*cdf0e10cSrcweir long nR = aRect.GetWidth() / 2; 1091*cdf0e10cSrcweir basegfx::B2DPolygon aTopArc(XPolygon(aCenter, -nR, nR, 50, 1750, sal_False).getB2DPolygon()); 1092*cdf0e10cSrcweir basegfx::B2DPolygon aBottomArc(XPolygon(aCenter, -nR, nR, 1850, 3550, sal_False).getB2DPolygon()); 1093*cdf0e10cSrcweir 1094*cdf0e10cSrcweir // Polygone schliessen 1095*cdf0e10cSrcweir aTopArc.setClosed(true); 1096*cdf0e10cSrcweir aBottomArc.setClosed(true); 1097*cdf0e10cSrcweir aPolyPolygon.append(aTopArc); 1098*cdf0e10cSrcweir 1099*cdf0e10cSrcweir aLine.append(aBottomArc.getB2DPoint(aBottomArc.count() - 1L)); 1100*cdf0e10cSrcweir aLine.append(aBottomArc.getB2DPoint(0L)); 1101*cdf0e10cSrcweir aLine.setClosed(true); 1102*cdf0e10cSrcweir 1103*cdf0e10cSrcweir aPolyPolygon.append(aLine); 1104*cdf0e10cSrcweir aPolyPolygon.append(aBottomArc); 1105*cdf0e10cSrcweir 1106*cdf0e10cSrcweir pNewObj = new SdrPathObj(OBJ_PATHFILL, aPolyPolygon); 1107*cdf0e10cSrcweir eAdjust = XFT_CENTER; 1108*cdf0e10cSrcweir break; 1109*cdf0e10cSrcweir } 1110*cdf0e10cSrcweir case XFTFORM_BUTTON2: 1111*cdf0e10cSrcweir case XFTFORM_BUTTON3: 1112*cdf0e10cSrcweir case XFTFORM_BUTTON4: 1113*cdf0e10cSrcweir { 1114*cdf0e10cSrcweir basegfx::B2DPolyPolygon aPolyPolygon; 1115*cdf0e10cSrcweir basegfx::B2DPolygon aLine; 1116*cdf0e10cSrcweir long nR = aRect.GetWidth() / 2; 1117*cdf0e10cSrcweir long nWDiff = nR / 5; 1118*cdf0e10cSrcweir long nHDiff; 1119*cdf0e10cSrcweir 1120*cdf0e10cSrcweir if ( eForm == XFTFORM_BUTTON4 ) 1121*cdf0e10cSrcweir { 1122*cdf0e10cSrcweir basegfx::B2DPolygon aNewArc(XPolygon(aCenter, -nR, nR, 950, 2650, sal_False).getB2DPolygon()); 1123*cdf0e10cSrcweir aNewArc.setClosed(true); 1124*cdf0e10cSrcweir aPolyPolygon.append(aNewArc); 1125*cdf0e10cSrcweir eAdjust = XFT_CENTER; 1126*cdf0e10cSrcweir } 1127*cdf0e10cSrcweir else 1128*cdf0e10cSrcweir { 1129*cdf0e10cSrcweir basegfx::B2DPolygon aNewArc(XPolygon(aCenter, -nR, nR, 2700, 2700).getB2DPolygon()); 1130*cdf0e10cSrcweir aPolyPolygon.append(aNewArc); 1131*cdf0e10cSrcweir } 1132*cdf0e10cSrcweir 1133*cdf0e10cSrcweir if ( eForm == XFTFORM_BUTTON3 ) 1134*cdf0e10cSrcweir nHDiff = -aRect.GetHeight() / 10; 1135*cdf0e10cSrcweir else 1136*cdf0e10cSrcweir nHDiff = aRect.GetHeight() / 20; 1137*cdf0e10cSrcweir 1138*cdf0e10cSrcweir aLine.append(basegfx::B2DPoint(aRect.Left() + nWDiff, aRect.Center().Y() + nHDiff)); 1139*cdf0e10cSrcweir aLine.append(basegfx::B2DPoint(aRect.Right() - nWDiff, aRect.Center().Y() + nHDiff)); 1140*cdf0e10cSrcweir aLine.setClosed(true); 1141*cdf0e10cSrcweir aPolyPolygon.append(aLine); 1142*cdf0e10cSrcweir 1143*cdf0e10cSrcweir if ( eForm == XFTFORM_BUTTON4 ) 1144*cdf0e10cSrcweir { 1145*cdf0e10cSrcweir basegfx::B2DPolygon aNewArc(XPolygon(aCenter, -nR, nR, 2750, 850, sal_False).getB2DPolygon()); 1146*cdf0e10cSrcweir aNewArc.setClosed(true); 1147*cdf0e10cSrcweir aPolyPolygon.append(aNewArc); 1148*cdf0e10cSrcweir } 1149*cdf0e10cSrcweir 1150*cdf0e10cSrcweir if ( eForm == XFTFORM_BUTTON3 ) 1151*cdf0e10cSrcweir { 1152*cdf0e10cSrcweir nHDiff += nHDiff; 1153*cdf0e10cSrcweir aLine.setB2DPoint(0L, basegfx::B2DPoint(aLine.getB2DPoint(0L).getX(), aLine.getB2DPoint(0L).getY() - nHDiff)); 1154*cdf0e10cSrcweir aLine.setB2DPoint(1L, basegfx::B2DPoint(aLine.getB2DPoint(1L).getX(), aLine.getB2DPoint(1L).getY() - nHDiff)); 1155*cdf0e10cSrcweir aPolyPolygon.append(aLine); 1156*cdf0e10cSrcweir } 1157*cdf0e10cSrcweir 1158*cdf0e10cSrcweir pNewObj = new SdrPathObj(OBJ_PATHFILL, aPolyPolygon); 1159*cdf0e10cSrcweir break; 1160*cdf0e10cSrcweir } 1161*cdf0e10cSrcweir default: ; //prevent warning 1162*cdf0e10cSrcweir } 1163*cdf0e10cSrcweir if ( pNewObj ) 1164*cdf0e10cSrcweir { 1165*cdf0e10cSrcweir // #78478# due to DLs changes in Outliner the object needs 1166*cdf0e10cSrcweir // a model to get an outliner for later calls to 1167*cdf0e10cSrcweir // pNewObj->SetOutlinerParaObject(pPara) (see below). 1168*cdf0e10cSrcweir pNewObj->SetModel(rOldObj.GetModel()); 1169*cdf0e10cSrcweir 1170*cdf0e10cSrcweir Size aSize; 1171*cdf0e10cSrcweir Rectangle aSnap = pNewObj->GetSnapRect(); 1172*cdf0e10cSrcweir 1173*cdf0e10cSrcweir aSize.Width() = aRect.Left() - aSnap.Left(); 1174*cdf0e10cSrcweir aSize.Height() = aRect.Top() - aSnap.Top(); 1175*cdf0e10cSrcweir pNewObj->NbcMove(aSize); 1176*cdf0e10cSrcweir 1177*cdf0e10cSrcweir rView.BegUndo( SVX_RESSTR( RID_SVXSTR_FONTWORK_UNDOCREATE ) ); 1178*cdf0e10cSrcweir OutlinerParaObject* pPara = rOldObj.GetOutlinerParaObject(); 1179*cdf0e10cSrcweir sal_Bool bHide = sal_True; 1180*cdf0e10cSrcweir 1181*cdf0e10cSrcweir if ( pPara != NULL ) 1182*cdf0e10cSrcweir { 1183*cdf0e10cSrcweir pPara = new OutlinerParaObject(*pPara); 1184*cdf0e10cSrcweir pNewObj->SetOutlinerParaObject(pPara); 1185*cdf0e10cSrcweir } 1186*cdf0e10cSrcweir else 1187*cdf0e10cSrcweir bHide = sal_False; 1188*cdf0e10cSrcweir 1189*cdf0e10cSrcweir rView.ReplaceObjectAtView(&rOldObj, rPV, pNewObj, sal_True); 1190*cdf0e10cSrcweir pNewObj->SetLayer(rOldObj.GetLayer()); 1191*cdf0e10cSrcweir aAttr.Put(XFormTextHideFormItem(bHide)); 1192*cdf0e10cSrcweir aAttr.Put(XFormTextAdjustItem(eAdjust)); 1193*cdf0e10cSrcweir 1194*cdf0e10cSrcweir XFormTextShadow eShadow = XFTSHADOW_NONE; 1195*cdf0e10cSrcweir 1196*cdf0e10cSrcweir if ( nLastShadowTbxId == TBI_SHADOW_NORMAL ) 1197*cdf0e10cSrcweir { 1198*cdf0e10cSrcweir eShadow = XFTSHADOW_NORMAL; 1199*cdf0e10cSrcweir aAttr.Put(XFormTextShadowXValItem(nSaveShadowX)); 1200*cdf0e10cSrcweir aAttr.Put(XFormTextShadowYValItem(nSaveShadowY)); 1201*cdf0e10cSrcweir } 1202*cdf0e10cSrcweir else if ( nLastShadowTbxId == TBI_SHADOW_SLANT ) 1203*cdf0e10cSrcweir { 1204*cdf0e10cSrcweir eShadow = XFTSHADOW_SLANT; 1205*cdf0e10cSrcweir aAttr.Put(XFormTextShadowXValItem(nSaveShadowAngle)); 1206*cdf0e10cSrcweir aAttr.Put(XFormTextShadowYValItem(nSaveShadowSize)); 1207*cdf0e10cSrcweir } 1208*cdf0e10cSrcweir 1209*cdf0e10cSrcweir aAttr.Put(XFormTextShadowItem(eShadow)); 1210*cdf0e10cSrcweir 1211*cdf0e10cSrcweir rView.SetAttributes(aAttr); 1212*cdf0e10cSrcweir rView.EndUndo(); 1213*cdf0e10cSrcweir } 1214*cdf0e10cSrcweir } 1215*cdf0e10cSrcweir 1216*cdf0e10cSrcweir void SvxFontWorkDialog::DataChanged( const DataChangedEvent& rDCEvt ) 1217*cdf0e10cSrcweir { 1218*cdf0e10cSrcweir if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) 1219*cdf0e10cSrcweir ApplyImageList(); 1220*cdf0e10cSrcweir 1221*cdf0e10cSrcweir SfxDockingWindow::DataChanged( rDCEvt ); 1222*cdf0e10cSrcweir } 1223*cdf0e10cSrcweir /* -----------------------------08.05.2002 14:28------------------------------ 1224*cdf0e10cSrcweir 1225*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1226*cdf0e10cSrcweir void SvxFontWorkDialog::ApplyImageList() 1227*cdf0e10cSrcweir { 1228*cdf0e10cSrcweir bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode(); 1229*cdf0e10cSrcweir 1230*cdf0e10cSrcweir ResMgr* _pMgr = &DIALOG_MGR(); 1231*cdf0e10cSrcweir 1232*cdf0e10cSrcweir sal_uInt16 nBitmapResId = bHighContrast ? RID_SVXBMP_FONTWORK_FORM1_H : RID_SVXBMP_FONTWORK_FORM1; 1233*cdf0e10cSrcweir sal_uInt16 nTextResId = RID_SVXSTR_FONTWORK_FORM1; 1234*cdf0e10cSrcweir 1235*cdf0e10cSrcweir bool bInit = aFormSet.GetItemCount() == 0; 1236*cdf0e10cSrcweir 1237*cdf0e10cSrcweir if( bInit ) 1238*cdf0e10cSrcweir { 1239*cdf0e10cSrcweir /* 1240*cdf0e10cSrcweir Size aSize( aTbxStyle.CalcWindowSizePixel() ); 1241*cdf0e10cSrcweir Bitmap aBmp(ResId(RID_SVXBMP_FONTWORK_FORM1,_pMgr)); 1242*cdf0e10cSrcweir aSize.Height() = aFormSet.CalcWindowSizePixel(aBmp.GetSizePixel()).Height() + 2; 1243*cdf0e10cSrcweir aFormSet.SetSizePixel(aSize); 1244*cdf0e10cSrcweir */ 1245*cdf0e10cSrcweir } 1246*cdf0e10cSrcweir 1247*cdf0e10cSrcweir sal_uInt16 i; 1248*cdf0e10cSrcweir for( i = 1; i < 13; i++, nTextResId++, nBitmapResId++ ) 1249*cdf0e10cSrcweir { 1250*cdf0e10cSrcweir if( bInit ) 1251*cdf0e10cSrcweir { 1252*cdf0e10cSrcweir aFormSet.InsertItem( i, Bitmap(ResId(nBitmapResId,*_pMgr)), 1253*cdf0e10cSrcweir String(ResId(nTextResId,*_pMgr))); 1254*cdf0e10cSrcweir } 1255*cdf0e10cSrcweir else 1256*cdf0e10cSrcweir { 1257*cdf0e10cSrcweir aFormSet.SetItemImage( i, Bitmap(ResId(nBitmapResId,*_pMgr)) ); 1258*cdf0e10cSrcweir } 1259*cdf0e10cSrcweir } 1260*cdf0e10cSrcweir 1261*cdf0e10cSrcweir ImageList& rImgLst = bHighContrast ? maImageListH : maImageList; 1262*cdf0e10cSrcweir 1263*cdf0e10cSrcweir aTbxStyle.SetImageList( rImgLst ); 1264*cdf0e10cSrcweir aTbxAdjust.SetImageList( rImgLst ); 1265*cdf0e10cSrcweir aTbxShadow.SetImageList( rImgLst ); 1266*cdf0e10cSrcweir 1267*cdf0e10cSrcweir switch( nLastShadowTbxId ) 1268*cdf0e10cSrcweir { 1269*cdf0e10cSrcweir case TBI_SHADOW_SLANT: 1270*cdf0e10cSrcweir aFbShadowX.SetImage( rImgLst.GetImage( TBI_SHADOW_ANGLE ) ); 1271*cdf0e10cSrcweir aFbShadowY.SetImage( rImgLst.GetImage( TBI_SHADOW_SIZE ) ); 1272*cdf0e10cSrcweir break; 1273*cdf0e10cSrcweir // case TBI_SHADOW_NORMAL: 1274*cdf0e10cSrcweir default: 1275*cdf0e10cSrcweir aFbShadowX.SetImage( rImgLst.GetImage( TBI_SHADOW_XDIST ) ); 1276*cdf0e10cSrcweir aFbShadowY.SetImage( rImgLst.GetImage( TBI_SHADOW_YDIST ) ); 1277*cdf0e10cSrcweir break; 1278*cdf0e10cSrcweir } 1279*cdf0e10cSrcweir 1280*cdf0e10cSrcweir aFbDistance.SetImage( rImgLst.GetImage( TBI_DISTANCE ) ); 1281*cdf0e10cSrcweir aFbTextStart.SetImage( rImgLst.GetImage( TBI_TEXTSTART ) ); 1282*cdf0e10cSrcweir 1283*cdf0e10cSrcweir } 1284