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