1*8dcb2a10SAndre Fischer /************************************************************** 2*8dcb2a10SAndre Fischer * 3*8dcb2a10SAndre Fischer * Licensed to the Apache Software Foundation (ASF) under one 4*8dcb2a10SAndre Fischer * or more contributor license agreements. See the NOTICE file 5*8dcb2a10SAndre Fischer * distributed with this work for additional information 6*8dcb2a10SAndre Fischer * regarding copyright ownership. The ASF licenses this file 7*8dcb2a10SAndre Fischer * to you under the Apache License, Version 2.0 (the 8*8dcb2a10SAndre Fischer * "License"); you may not use this file except in compliance 9*8dcb2a10SAndre Fischer * with the License. You may obtain a copy of the License at 10*8dcb2a10SAndre Fischer * 11*8dcb2a10SAndre Fischer * http://www.apache.org/licenses/LICENSE-2.0 12*8dcb2a10SAndre Fischer * 13*8dcb2a10SAndre Fischer * Unless required by applicable law or agreed to in writing, 14*8dcb2a10SAndre Fischer * software distributed under the License is distributed on an 15*8dcb2a10SAndre Fischer * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*8dcb2a10SAndre Fischer * KIND, either express or implied. See the License for the 17*8dcb2a10SAndre Fischer * specific language governing permissions and limitations 18*8dcb2a10SAndre Fischer * under the License. 19*8dcb2a10SAndre Fischer * 20*8dcb2a10SAndre Fischer *************************************************************/ 21*8dcb2a10SAndre Fischer 22*8dcb2a10SAndre Fischer #include "LineWidthControl.hxx" 23*8dcb2a10SAndre Fischer #include "LinePropertyPanel.hrc" 24*8dcb2a10SAndre Fischer #include "LinePropertyPanel.hxx" 25*8dcb2a10SAndre Fischer 26*8dcb2a10SAndre Fischer #include <svx/dialogs.hrc> 27*8dcb2a10SAndre Fischer #include <svx/dialmgr.hxx> 28*8dcb2a10SAndre Fischer #include <sfx2/sidebar/propertypanel.hrc> 29*8dcb2a10SAndre Fischer #include <comphelper/processfactory.hxx> 30*8dcb2a10SAndre Fischer #include <vcl/svapp.hxx> 31*8dcb2a10SAndre Fischer #include <unotools/viewoptions.hxx> 32*8dcb2a10SAndre Fischer #include <svx/xlnwtit.hxx> 33*8dcb2a10SAndre Fischer #include <sfx2/bindings.hxx> 34*8dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx> 35*8dcb2a10SAndre Fischer #include "svx/sidebar/PopupContainer.hxx" 36*8dcb2a10SAndre Fischer 37*8dcb2a10SAndre Fischer 38*8dcb2a10SAndre Fischer namespace svx { namespace sidebar { 39*8dcb2a10SAndre Fischer 40*8dcb2a10SAndre Fischer LineWidthControl::LineWidthControl ( 41*8dcb2a10SAndre Fischer Window* pParent, 42*8dcb2a10SAndre Fischer LinePropertyPanel& rPanel) 43*8dcb2a10SAndre Fischer : svx::sidebar::PopupControl(pParent,SVX_RES(RID_POPUPPANEL_LINEPAGE_WIDTH)), 44*8dcb2a10SAndre Fischer mrLinePropertyPanel(rPanel), 45*8dcb2a10SAndre Fischer mpBindings(NULL), 46*8dcb2a10SAndre Fischer maVSWidth( this, SVX_RES(VS_WIDTH)), 47*8dcb2a10SAndre Fischer maFTCus( this, SVX_RES(FT_CUSTOME)), 48*8dcb2a10SAndre Fischer maFTWidth( this, SVX_RES(FT_LINE_WIDTH)), 49*8dcb2a10SAndre Fischer maMFWidth( this, SVX_RES(MF_WIDTH)), 50*8dcb2a10SAndre Fischer meMapUnit(SFX_MAPUNIT_TWIP), 51*8dcb2a10SAndre Fischer rStr(NULL), 52*8dcb2a10SAndre Fischer mstrPT(SVX_RES(STR_PT)), 53*8dcb2a10SAndre Fischer mnCustomWidth(0), 54*8dcb2a10SAndre Fischer mbCustom(false), 55*8dcb2a10SAndre Fischer mbColseByEdit(false), 56*8dcb2a10SAndre Fischer mnTmpCusomWidth(0), 57*8dcb2a10SAndre Fischer mbVSFocus(true), 58*8dcb2a10SAndre Fischer maIMGCus(SVX_RES(IMG_WIDTH_CUSTOM)), 59*8dcb2a10SAndre Fischer maIMGCusGray(SVX_RES(IMG_WIDTH_CUSTOM_GRAY)) 60*8dcb2a10SAndre Fischer { 61*8dcb2a10SAndre Fischer Initialize(); 62*8dcb2a10SAndre Fischer FreeResource(); 63*8dcb2a10SAndre Fischer mpBindings = mrLinePropertyPanel.GetBindings(); 64*8dcb2a10SAndre Fischer } 65*8dcb2a10SAndre Fischer 66*8dcb2a10SAndre Fischer 67*8dcb2a10SAndre Fischer 68*8dcb2a10SAndre Fischer 69*8dcb2a10SAndre Fischer LineWidthControl::~LineWidthControl (void) 70*8dcb2a10SAndre Fischer { 71*8dcb2a10SAndre Fischer delete[] rStr; 72*8dcb2a10SAndre Fischer } 73*8dcb2a10SAndre Fischer 74*8dcb2a10SAndre Fischer 75*8dcb2a10SAndre Fischer 76*8dcb2a10SAndre Fischer 77*8dcb2a10SAndre Fischer void LineWidthControl::Paint(const Rectangle& rect) 78*8dcb2a10SAndre Fischer { 79*8dcb2a10SAndre Fischer svx::sidebar::PopupControl::Paint(rect); 80*8dcb2a10SAndre Fischer 81*8dcb2a10SAndre Fischer Color aOldLineColor = GetLineColor(); 82*8dcb2a10SAndre Fischer Color aOldFillColor = GetFillColor(); 83*8dcb2a10SAndre Fischer 84*8dcb2a10SAndre Fischer Point aPos( LogicToPixel( Point( CUSTOM_X, CUSTOM_Y), MAP_APPFONT )); 85*8dcb2a10SAndre Fischer Size aSize( LogicToPixel( Size( CUSTOM_W, CUSTOM_H ), MAP_APPFONT )); 86*8dcb2a10SAndre Fischer Rectangle aRect( aPos, aSize ); 87*8dcb2a10SAndre Fischer aRect.Left() -= 1; 88*8dcb2a10SAndre Fischer aRect.Top() -= 1; 89*8dcb2a10SAndre Fischer aRect.Right() += 1; 90*8dcb2a10SAndre Fischer aRect.Bottom() += 1; 91*8dcb2a10SAndre Fischer 92*8dcb2a10SAndre Fischer Color aLineColor(189,201,219); 93*8dcb2a10SAndre Fischer if(!GetSettings().GetStyleSettings().GetHighContrastMode()) 94*8dcb2a10SAndre Fischer SetLineColor(aLineColor); 95*8dcb2a10SAndre Fischer else 96*8dcb2a10SAndre Fischer SetLineColor(GetSettings().GetStyleSettings().GetShadowColor()); 97*8dcb2a10SAndre Fischer SetFillColor(COL_TRANSPARENT); 98*8dcb2a10SAndre Fischer DrawRect(aRect); 99*8dcb2a10SAndre Fischer 100*8dcb2a10SAndre Fischer SetLineColor(aOldLineColor); 101*8dcb2a10SAndre Fischer SetFillColor(aOldFillColor); 102*8dcb2a10SAndre Fischer } 103*8dcb2a10SAndre Fischer 104*8dcb2a10SAndre Fischer 105*8dcb2a10SAndre Fischer 106*8dcb2a10SAndre Fischer 107*8dcb2a10SAndre Fischer void LineWidthControl::Initialize() 108*8dcb2a10SAndre Fischer { 109*8dcb2a10SAndre Fischer maVSWidth.SetStyle( maVSWidth.GetStyle()| WB_3DLOOK | WB_NO_DIRECTSELECT );// WB_NAMEFIELD | WB_ITEMBORDER |WB_DOUBLEBORDER | WB_NONEFIELD | 110*8dcb2a10SAndre Fischer //for high contract wj 111*8dcb2a10SAndre Fischer if(GetSettings().GetStyleSettings().GetHighContrastMode()) 112*8dcb2a10SAndre Fischer { 113*8dcb2a10SAndre Fischer maVSWidth.SetColor(GetSettings().GetStyleSettings().GetMenuColor()); 114*8dcb2a10SAndre Fischer // maBorder.SetBackground(GetSettings().GetStyleSettings().GetMenuColor()); 115*8dcb2a10SAndre Fischer maFTWidth.SetBackground(GetSettings().GetStyleSettings().GetMenuColor()); 116*8dcb2a10SAndre Fischer } 117*8dcb2a10SAndre Fischer else 118*8dcb2a10SAndre Fischer { 119*8dcb2a10SAndre Fischer maVSWidth.SetColor(COL_WHITE); 120*8dcb2a10SAndre Fischer // maBorder.SetBackground(Wallpaper(COL_WHITE)); 121*8dcb2a10SAndre Fischer maFTWidth.SetBackground(Wallpaper(COL_WHITE)); 122*8dcb2a10SAndre Fischer } 123*8dcb2a10SAndre Fischer 124*8dcb2a10SAndre Fischer sal_Int64 nFirst= maMFWidth.Denormalize( maMFWidth.GetFirst( FUNIT_TWIP ) ); 125*8dcb2a10SAndre Fischer sal_Int64 nLast = maMFWidth.Denormalize( maMFWidth.GetLast( FUNIT_TWIP ) ); 126*8dcb2a10SAndre Fischer sal_Int64 nMin = maMFWidth.Denormalize( maMFWidth.GetMin( FUNIT_TWIP ) ); 127*8dcb2a10SAndre Fischer sal_Int64 nMax = maMFWidth.Denormalize( maMFWidth.GetMax( FUNIT_TWIP ) ); 128*8dcb2a10SAndre Fischer maMFWidth.SetSpinSize( 10 ); 129*8dcb2a10SAndre Fischer maMFWidth.SetUnit( FUNIT_POINT ); 130*8dcb2a10SAndre Fischer if( maMFWidth.GetDecimalDigits() > 1 ) 131*8dcb2a10SAndre Fischer maMFWidth.SetDecimalDigits( 1 ); 132*8dcb2a10SAndre Fischer maMFWidth.SetFirst( maMFWidth.Normalize( nFirst ), FUNIT_TWIP ); 133*8dcb2a10SAndre Fischer maMFWidth.SetLast( maMFWidth.Normalize( nLast ), FUNIT_TWIP ); 134*8dcb2a10SAndre Fischer maMFWidth.SetMin( maMFWidth.Normalize( nMin ), FUNIT_TWIP ); 135*8dcb2a10SAndre Fischer maMFWidth.SetMax( maMFWidth.Normalize( nMax ), FUNIT_TWIP ); 136*8dcb2a10SAndre Fischer 137*8dcb2a10SAndre Fischer rStr = new XubString[9]; 138*8dcb2a10SAndre Fischer //modify, 139*8dcb2a10SAndre Fischer rStr[0] = String("05", 2, RTL_TEXTENCODING_ASCII_US); 140*8dcb2a10SAndre Fischer rStr[1] = String("08", 2, RTL_TEXTENCODING_ASCII_US); 141*8dcb2a10SAndre Fischer rStr[2] = String("10", 2, RTL_TEXTENCODING_ASCII_US); 142*8dcb2a10SAndre Fischer rStr[3] = String("15", 2, RTL_TEXTENCODING_ASCII_US); 143*8dcb2a10SAndre Fischer rStr[4] = String("23", 2, RTL_TEXTENCODING_ASCII_US); 144*8dcb2a10SAndre Fischer rStr[5] = String("30", 2, RTL_TEXTENCODING_ASCII_US); 145*8dcb2a10SAndre Fischer rStr[6] = String("45", 2, RTL_TEXTENCODING_ASCII_US); 146*8dcb2a10SAndre Fischer rStr[7] = String("60", 2, RTL_TEXTENCODING_ASCII_US); 147*8dcb2a10SAndre Fischer rStr[8] = String( SVX_RES(STR_WIDTH_LAST_CUSTOM) ); 148*8dcb2a10SAndre Fischer 149*8dcb2a10SAndre Fischer LocaleDataWrapper aLocaleWrapper( ::comphelper::getProcessServiceFactory(), Application::GetSettings().GetLocale() ); 150*8dcb2a10SAndre Fischer const sal_Unicode cSep = aLocaleWrapper.getNumDecimalSep().GetChar(0); 151*8dcb2a10SAndre Fischer 152*8dcb2a10SAndre Fischer for(int i = 0; i <= 7 ; i++) 153*8dcb2a10SAndre Fischer { 154*8dcb2a10SAndre Fischer rStr[i] = rStr[i].Insert(cSep, 1);//Modify 155*8dcb2a10SAndre Fischer rStr[i].Append(mstrPT); 156*8dcb2a10SAndre Fischer } 157*8dcb2a10SAndre Fischer //end 158*8dcb2a10SAndre Fischer 159*8dcb2a10SAndre Fischer for(sal_uInt16 i = 1 ; i <= 9 ; i++) 160*8dcb2a10SAndre Fischer { 161*8dcb2a10SAndre Fischer maVSWidth.InsertItem(i); 162*8dcb2a10SAndre Fischer maVSWidth.SetItemText(i, rStr[i-1]); 163*8dcb2a10SAndre Fischer } 164*8dcb2a10SAndre Fischer maVSWidth.SetUnit(rStr); 165*8dcb2a10SAndre Fischer maVSWidth.SetItemData(1,(void*)5); 166*8dcb2a10SAndre Fischer maVSWidth.SetItemData(2,(void*)8); 167*8dcb2a10SAndre Fischer maVSWidth.SetItemData(3,(void*)10); 168*8dcb2a10SAndre Fischer maVSWidth.SetItemData(4,(void*)15); 169*8dcb2a10SAndre Fischer maVSWidth.SetItemData(5,(void*)23); 170*8dcb2a10SAndre Fischer maVSWidth.SetItemData(6,(void*)30); 171*8dcb2a10SAndre Fischer maVSWidth.SetItemData(7,(void*)45); 172*8dcb2a10SAndre Fischer maVSWidth.SetItemData(8,(void*)60); 173*8dcb2a10SAndre Fischer maVSWidth.SetImage(maIMGCusGray); 174*8dcb2a10SAndre Fischer 175*8dcb2a10SAndre Fischer maVSWidth.SetSelItem(0); 176*8dcb2a10SAndre Fischer Link aLink = LINK( this, LineWidthControl, VSSelectHdl ) ; 177*8dcb2a10SAndre Fischer maVSWidth.SetSelectHdl(aLink); 178*8dcb2a10SAndre Fischer aLink = LINK(this, LineWidthControl, MFModifyHdl); 179*8dcb2a10SAndre Fischer maMFWidth.SetModifyHdl(aLink); 180*8dcb2a10SAndre Fischer 181*8dcb2a10SAndre Fischer maVSWidth.StartSelection(); 182*8dcb2a10SAndre Fischer maVSWidth.Show(); 183*8dcb2a10SAndre Fischer } 184*8dcb2a10SAndre Fischer 185*8dcb2a10SAndre Fischer 186*8dcb2a10SAndre Fischer 187*8dcb2a10SAndre Fischer 188*8dcb2a10SAndre Fischer void LineWidthControl::GetFocus() 189*8dcb2a10SAndre Fischer { 190*8dcb2a10SAndre Fischer if(!mbVSFocus) 191*8dcb2a10SAndre Fischer maMFWidth.GrabFocus(); 192*8dcb2a10SAndre Fischer else 193*8dcb2a10SAndre Fischer maVSWidth.GrabFocus(); 194*8dcb2a10SAndre Fischer } 195*8dcb2a10SAndre Fischer 196*8dcb2a10SAndre Fischer 197*8dcb2a10SAndre Fischer 198*8dcb2a10SAndre Fischer 199*8dcb2a10SAndre Fischer ValueSet& LineWidthControl::GetValueSet() 200*8dcb2a10SAndre Fischer { 201*8dcb2a10SAndre Fischer return maVSWidth; 202*8dcb2a10SAndre Fischer } 203*8dcb2a10SAndre Fischer 204*8dcb2a10SAndre Fischer 205*8dcb2a10SAndre Fischer 206*8dcb2a10SAndre Fischer 207*8dcb2a10SAndre Fischer void LineWidthControl::SetWidthSelect( long lValue, bool bValuable, SfxMapUnit eMapUnit) 208*8dcb2a10SAndre Fischer { 209*8dcb2a10SAndre Fischer mbVSFocus = true; 210*8dcb2a10SAndre Fischer maVSWidth.SetSelItem(0); 211*8dcb2a10SAndre Fischer mbColseByEdit = false; 212*8dcb2a10SAndre Fischer meMapUnit = eMapUnit; 213*8dcb2a10SAndre Fischer SvtViewOptions aWinOpt( E_WINDOW, SIDEBAR_LINE_WIDTH_GLOBAL_VALUE ); 214*8dcb2a10SAndre Fischer if ( aWinOpt.Exists() ) 215*8dcb2a10SAndre Fischer { 216*8dcb2a10SAndre Fischer ::com::sun::star::uno::Sequence < ::com::sun::star::beans::NamedValue > aSeq = aWinOpt.GetUserData(); 217*8dcb2a10SAndre Fischer ::rtl::OUString aTmp; 218*8dcb2a10SAndre Fischer if ( aSeq.getLength()) 219*8dcb2a10SAndre Fischer aSeq[0].Value >>= aTmp; 220*8dcb2a10SAndre Fischer 221*8dcb2a10SAndre Fischer String aWinData( aTmp ); 222*8dcb2a10SAndre Fischer mnCustomWidth = aWinData.ToInt32(); 223*8dcb2a10SAndre Fischer mbCustom = true; 224*8dcb2a10SAndre Fischer maVSWidth.SetImage(maIMGCus); 225*8dcb2a10SAndre Fischer maVSWidth.SetCusEnable(true); 226*8dcb2a10SAndre Fischer 227*8dcb2a10SAndre Fischer String aStrTip( String::CreateFromDouble( (double)mnCustomWidth / 10)); 228*8dcb2a10SAndre Fischer aStrTip.Append(mstrPT); // 229*8dcb2a10SAndre Fischer maVSWidth.SetItemText(9, aStrTip); 230*8dcb2a10SAndre Fischer } 231*8dcb2a10SAndre Fischer else 232*8dcb2a10SAndre Fischer { 233*8dcb2a10SAndre Fischer mbCustom = false; 234*8dcb2a10SAndre Fischer maVSWidth.SetImage(maIMGCusGray); 235*8dcb2a10SAndre Fischer maVSWidth.SetCusEnable(false); 236*8dcb2a10SAndre Fischer //modify 237*8dcb2a10SAndre Fischer //String aStrTip(String(SVX_RES(STR_WIDTH_LAST_CUSTOM))); 238*8dcb2a10SAndre Fischer //maVSWidth.SetItemText(9, aStrTip); 239*8dcb2a10SAndre Fischer maVSWidth.SetItemText(9, rStr[8]); 240*8dcb2a10SAndre Fischer } 241*8dcb2a10SAndre Fischer 242*8dcb2a10SAndre Fischer if(bValuable) 243*8dcb2a10SAndre Fischer { 244*8dcb2a10SAndre Fischer sal_Int64 nVal = OutputDevice::LogicToLogic( lValue, (MapUnit)eMapUnit, MAP_100TH_MM ); 245*8dcb2a10SAndre Fischer nVal = maMFWidth.Normalize( nVal ); 246*8dcb2a10SAndre Fischer maMFWidth.SetValue( nVal, FUNIT_100TH_MM ); 247*8dcb2a10SAndre Fischer } 248*8dcb2a10SAndre Fischer else 249*8dcb2a10SAndre Fischer { 250*8dcb2a10SAndre Fischer maMFWidth.SetText( String() ); 251*8dcb2a10SAndre Fischer } 252*8dcb2a10SAndre Fischer 253*8dcb2a10SAndre Fischer MapUnit eOrgUnit = (MapUnit)eMapUnit; 254*8dcb2a10SAndre Fischer MapUnit ePntUnit( MAP_TWIP ); 255*8dcb2a10SAndre Fischer lValue = LogicToLogic( lValue , eOrgUnit, ePntUnit ); 256*8dcb2a10SAndre Fischer 257*8dcb2a10SAndre Fischer XubString strCurrValue = maMFWidth.GetText(); 258*8dcb2a10SAndre Fischer sal_uInt16 i = 0; 259*8dcb2a10SAndre Fischer for(; i < 8; i++) 260*8dcb2a10SAndre Fischer if(strCurrValue == rStr[i]) 261*8dcb2a10SAndre Fischer { 262*8dcb2a10SAndre Fischer maVSWidth.SetSelItem(i+1); 263*8dcb2a10SAndre Fischer break; 264*8dcb2a10SAndre Fischer } 265*8dcb2a10SAndre Fischer if (i>=8) 266*8dcb2a10SAndre Fischer { 267*8dcb2a10SAndre Fischer mbVSFocus = false; 268*8dcb2a10SAndre Fischer maVSWidth.SetSelItem(0); 269*8dcb2a10SAndre Fischer } 270*8dcb2a10SAndre Fischer maVSWidth.Format(); 271*8dcb2a10SAndre Fischer maVSWidth.StartSelection(); 272*8dcb2a10SAndre Fischer } 273*8dcb2a10SAndre Fischer 274*8dcb2a10SAndre Fischer 275*8dcb2a10SAndre Fischer 276*8dcb2a10SAndre Fischer 277*8dcb2a10SAndre Fischer IMPL_LINK(LineWidthControl, VSSelectHdl, void *, pControl) 278*8dcb2a10SAndre Fischer { 279*8dcb2a10SAndre Fischer if(pControl == &maVSWidth) 280*8dcb2a10SAndre Fischer { 281*8dcb2a10SAndre Fischer sal_uInt16 iPos = maVSWidth.GetSelectItemId(); 282*8dcb2a10SAndre Fischer if(iPos >= 1 && iPos <= 8) 283*8dcb2a10SAndre Fischer { 284*8dcb2a10SAndre Fischer long nVal = LogicToLogic((long)(unsigned long)maVSWidth.GetItemData( iPos ) , MAP_POINT, (MapUnit)meMapUnit); 285*8dcb2a10SAndre Fischer nVal = maMFWidth.Denormalize(nVal); 286*8dcb2a10SAndre Fischer XLineWidthItem aWidthItem( nVal ); 287*8dcb2a10SAndre Fischer mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L); 288*8dcb2a10SAndre Fischer mrLinePropertyPanel.SetWidthIcon(iPos); 289*8dcb2a10SAndre Fischer mrLinePropertyPanel.SetWidth(nVal); 290*8dcb2a10SAndre Fischer mbColseByEdit = false; 291*8dcb2a10SAndre Fischer mnTmpCusomWidth = 0; 292*8dcb2a10SAndre Fischer } 293*8dcb2a10SAndre Fischer else if(iPos == 9) 294*8dcb2a10SAndre Fischer {//last custom 295*8dcb2a10SAndre Fischer //modified 296*8dcb2a10SAndre Fischer if(mbCustom) 297*8dcb2a10SAndre Fischer { 298*8dcb2a10SAndre Fischer long nVal = LogicToLogic(mnCustomWidth , MAP_POINT, (MapUnit)meMapUnit); 299*8dcb2a10SAndre Fischer nVal = maMFWidth.Denormalize(nVal); 300*8dcb2a10SAndre Fischer XLineWidthItem aWidthItem( nVal ); 301*8dcb2a10SAndre Fischer mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L); 302*8dcb2a10SAndre Fischer mrLinePropertyPanel.SetWidth(nVal); 303*8dcb2a10SAndre Fischer mbColseByEdit = false; 304*8dcb2a10SAndre Fischer mnTmpCusomWidth = 0; 305*8dcb2a10SAndre Fischer } 306*8dcb2a10SAndre Fischer else 307*8dcb2a10SAndre Fischer { 308*8dcb2a10SAndre Fischer maVSWidth.SetNoSelection(); //add , set no selection and keep the last select item 309*8dcb2a10SAndre Fischer maVSWidth.Format(); 310*8dcb2a10SAndre Fischer Invalidate(); 311*8dcb2a10SAndre Fischer maVSWidth.StartSelection(); 312*8dcb2a10SAndre Fischer } 313*8dcb2a10SAndre Fischer //modify end 314*8dcb2a10SAndre Fischer } 315*8dcb2a10SAndre Fischer if((iPos >= 1 && iPos <= 8) || (iPos == 9 && mbCustom)) //add 316*8dcb2a10SAndre Fischer mrLinePropertyPanel.EndLineWidthPopupMode(); 317*8dcb2a10SAndre Fischer } 318*8dcb2a10SAndre Fischer return( 0L ); 319*8dcb2a10SAndre Fischer } 320*8dcb2a10SAndre Fischer 321*8dcb2a10SAndre Fischer 322*8dcb2a10SAndre Fischer 323*8dcb2a10SAndre Fischer 324*8dcb2a10SAndre Fischer IMPL_LINK(LineWidthControl, MFModifyHdl, void *, pControl) 325*8dcb2a10SAndre Fischer { 326*8dcb2a10SAndre Fischer if(pControl == &maMFWidth) 327*8dcb2a10SAndre Fischer { 328*8dcb2a10SAndre Fischer if(maVSWidth.GetSelItem()) 329*8dcb2a10SAndre Fischer { 330*8dcb2a10SAndre Fischer maVSWidth.SetSelItem(0); 331*8dcb2a10SAndre Fischer maVSWidth.Format(); 332*8dcb2a10SAndre Fischer Invalidate(); 333*8dcb2a10SAndre Fischer maVSWidth.StartSelection(); 334*8dcb2a10SAndre Fischer } 335*8dcb2a10SAndre Fischer long nTmp = static_cast<long>(maMFWidth.GetValue()); 336*8dcb2a10SAndre Fischer long nVal = LogicToLogic( nTmp, MAP_POINT, (MapUnit)meMapUnit ); 337*8dcb2a10SAndre Fischer sal_Int32 nNewWidth = (short)maMFWidth.Denormalize( nVal ); 338*8dcb2a10SAndre Fischer XLineWidthItem aWidthItem(nNewWidth); 339*8dcb2a10SAndre Fischer mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L); 340*8dcb2a10SAndre Fischer 341*8dcb2a10SAndre Fischer mbColseByEdit = true; 342*8dcb2a10SAndre Fischer mnTmpCusomWidth = nTmp; 343*8dcb2a10SAndre Fischer /*for(sal_uInt16 i = 0; i < 8; i++) 344*8dcb2a10SAndre Fischer { 345*8dcb2a10SAndre Fischer if(nTmp == (sal_Int32)maVSWidth.GetItemData(i)) 346*8dcb2a10SAndre Fischer { 347*8dcb2a10SAndre Fischer mbColseByEdit = false; 348*8dcb2a10SAndre Fischer break; 349*8dcb2a10SAndre Fischer } 350*8dcb2a10SAndre Fischer }*/ 351*8dcb2a10SAndre Fischer 352*8dcb2a10SAndre Fischer } 353*8dcb2a10SAndre Fischer return( 0L ); 354*8dcb2a10SAndre Fischer } 355*8dcb2a10SAndre Fischer 356*8dcb2a10SAndre Fischer 357*8dcb2a10SAndre Fischer 358*8dcb2a10SAndre Fischer 359*8dcb2a10SAndre Fischer bool LineWidthControl::IsCloseByEdit() 360*8dcb2a10SAndre Fischer { 361*8dcb2a10SAndre Fischer return mbColseByEdit; 362*8dcb2a10SAndre Fischer } 363*8dcb2a10SAndre Fischer 364*8dcb2a10SAndre Fischer 365*8dcb2a10SAndre Fischer 366*8dcb2a10SAndre Fischer 367*8dcb2a10SAndre Fischer long LineWidthControl::GetTmpCustomWidth() 368*8dcb2a10SAndre Fischer { 369*8dcb2a10SAndre Fischer return mnTmpCusomWidth; 370*8dcb2a10SAndre Fischer } 371*8dcb2a10SAndre Fischer 372*8dcb2a10SAndre Fischer 373*8dcb2a10SAndre Fischer 374*8dcb2a10SAndre Fischer } } // end of namespace svx::sidebar 375