18dcb2a10SAndre Fischer /**************************************************************
28dcb2a10SAndre Fischer  *
38dcb2a10SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
48dcb2a10SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
58dcb2a10SAndre Fischer  * distributed with this work for additional information
68dcb2a10SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
78dcb2a10SAndre Fischer  * to you under the Apache License, Version 2.0 (the
88dcb2a10SAndre Fischer  * "License"); you may not use this file except in compliance
98dcb2a10SAndre Fischer  * with the License.  You may obtain a copy of the License at
108dcb2a10SAndre Fischer  *
118dcb2a10SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
128dcb2a10SAndre Fischer  *
138dcb2a10SAndre Fischer  * Unless required by applicable law or agreed to in writing,
148dcb2a10SAndre Fischer  * software distributed under the License is distributed on an
158dcb2a10SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
168dcb2a10SAndre Fischer  * KIND, either express or implied.  See the License for the
178dcb2a10SAndre Fischer  * specific language governing permissions and limitations
188dcb2a10SAndre Fischer  * under the License.
198dcb2a10SAndre Fischer  *
208dcb2a10SAndre Fischer  *************************************************************/
218dcb2a10SAndre Fischer 
228dcb2a10SAndre Fischer #include "LineWidthControl.hxx"
238dcb2a10SAndre Fischer #include "LinePropertyPanel.hrc"
248dcb2a10SAndre Fischer #include "LinePropertyPanel.hxx"
258dcb2a10SAndre Fischer 
268dcb2a10SAndre Fischer #include <svx/dialogs.hrc>
278dcb2a10SAndre Fischer #include <svx/dialmgr.hxx>
28d29c2fc2SAndre Fischer #include <sfx2/sidebar/ResourceDefinitions.hrc>
298dcb2a10SAndre Fischer #include <comphelper/processfactory.hxx>
308dcb2a10SAndre Fischer #include <vcl/svapp.hxx>
318dcb2a10SAndre Fischer #include <unotools/viewoptions.hxx>
328dcb2a10SAndre Fischer #include <svx/xlnwtit.hxx>
338dcb2a10SAndre Fischer #include <sfx2/bindings.hxx>
348dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx>
358dcb2a10SAndre Fischer #include "svx/sidebar/PopupContainer.hxx"
368dcb2a10SAndre Fischer 
378dcb2a10SAndre Fischer 
388dcb2a10SAndre Fischer namespace svx { namespace sidebar {
398dcb2a10SAndre Fischer 
LineWidthControl(Window * pParent,LinePropertyPanel & rPanel)408dcb2a10SAndre Fischer LineWidthControl::LineWidthControl (
418dcb2a10SAndre Fischer     Window* pParent,
428dcb2a10SAndre Fischer     LinePropertyPanel& rPanel)
438dcb2a10SAndre Fischer     : svx::sidebar::PopupControl(pParent,SVX_RES(RID_POPUPPANEL_LINEPAGE_WIDTH)),
448dcb2a10SAndre Fischer       mrLinePropertyPanel(rPanel),
458dcb2a10SAndre Fischer       mpBindings(NULL),
468dcb2a10SAndre Fischer       maVSWidth( this, SVX_RES(VS_WIDTH)),
478dcb2a10SAndre Fischer       maFTCus( this, SVX_RES(FT_CUSTOME)),
488dcb2a10SAndre Fischer       maFTWidth( this, SVX_RES(FT_LINE_WIDTH)),
498dcb2a10SAndre Fischer       maMFWidth( this, SVX_RES(MF_WIDTH)),
508dcb2a10SAndre Fischer       meMapUnit(SFX_MAPUNIT_TWIP),
518dcb2a10SAndre Fischer       rStr(NULL),
528dcb2a10SAndre Fischer       mstrPT(SVX_RES(STR_PT)),
538dcb2a10SAndre Fischer       mnCustomWidth(0),
548dcb2a10SAndre Fischer       mbCustom(false),
55*926f14f6SPedro Giffuni       mbCloseByEdit(false),
56*926f14f6SPedro Giffuni       mnTmpCustomWidth(0),
578dcb2a10SAndre Fischer       mbVSFocus(true),
588dcb2a10SAndre Fischer       maIMGCus(SVX_RES(IMG_WIDTH_CUSTOM)),
598dcb2a10SAndre Fischer       maIMGCusGray(SVX_RES(IMG_WIDTH_CUSTOM_GRAY))
608dcb2a10SAndre Fischer {
618dcb2a10SAndre Fischer 	Initialize();
628dcb2a10SAndre Fischer 	FreeResource();
638dcb2a10SAndre Fischer 	mpBindings = mrLinePropertyPanel.GetBindings();
648dcb2a10SAndre Fischer }
658dcb2a10SAndre Fischer 
668dcb2a10SAndre Fischer 
678dcb2a10SAndre Fischer 
688dcb2a10SAndre Fischer 
~LineWidthControl(void)698dcb2a10SAndre Fischer LineWidthControl::~LineWidthControl (void)
708dcb2a10SAndre Fischer {
718dcb2a10SAndre Fischer 	delete[] rStr;
728dcb2a10SAndre Fischer }
738dcb2a10SAndre Fischer 
748dcb2a10SAndre Fischer 
758dcb2a10SAndre Fischer 
768dcb2a10SAndre Fischer 
Paint(const Rectangle & rect)778dcb2a10SAndre Fischer void LineWidthControl::Paint(const Rectangle& rect)
788dcb2a10SAndre Fischer {
798dcb2a10SAndre Fischer 	svx::sidebar::PopupControl::Paint(rect);
808dcb2a10SAndre Fischer 
818dcb2a10SAndre Fischer 	Color aOldLineColor = GetLineColor();
828dcb2a10SAndre Fischer 	Color aOldFillColor = GetFillColor();
838dcb2a10SAndre Fischer 
848dcb2a10SAndre Fischer 	Point aPos( LogicToPixel( Point( CUSTOM_X, CUSTOM_Y), MAP_APPFONT ));
858dcb2a10SAndre Fischer 	Size aSize( LogicToPixel( Size(  CUSTOM_W, CUSTOM_H ), MAP_APPFONT ));
868dcb2a10SAndre Fischer 	Rectangle aRect( aPos, aSize );
878dcb2a10SAndre Fischer 	aRect.Left() -= 1;
888dcb2a10SAndre Fischer 	aRect.Top() -= 1;
898dcb2a10SAndre Fischer 	aRect.Right() += 1;
908dcb2a10SAndre Fischer 	aRect.Bottom() += 1;
918dcb2a10SAndre Fischer 
928dcb2a10SAndre Fischer 	Color aLineColor(189,201,219);
938dcb2a10SAndre Fischer 	if(!GetSettings().GetStyleSettings().GetHighContrastMode())
948dcb2a10SAndre Fischer 		SetLineColor(aLineColor);
958dcb2a10SAndre Fischer 	else
968dcb2a10SAndre Fischer 		SetLineColor(GetSettings().GetStyleSettings().GetShadowColor());
978dcb2a10SAndre Fischer 	SetFillColor(COL_TRANSPARENT);
988dcb2a10SAndre Fischer 	DrawRect(aRect);
998dcb2a10SAndre Fischer 
1008dcb2a10SAndre Fischer 	SetLineColor(aOldLineColor);
1018dcb2a10SAndre Fischer 	SetFillColor(aOldFillColor);
1028dcb2a10SAndre Fischer }
1038dcb2a10SAndre Fischer 
1048dcb2a10SAndre Fischer 
1058dcb2a10SAndre Fischer 
1068dcb2a10SAndre Fischer 
Initialize()1078dcb2a10SAndre Fischer void LineWidthControl::Initialize()
1088dcb2a10SAndre Fischer {
1098dcb2a10SAndre Fischer 	maVSWidth.SetStyle( maVSWidth.GetStyle()| WB_3DLOOK |  WB_NO_DIRECTSELECT  );// WB_NAMEFIELD | WB_ITEMBORDER |WB_DOUBLEBORDER | WB_NONEFIELD |
1108dcb2a10SAndre Fischer 	//for high contract wj
1118dcb2a10SAndre Fischer 	if(GetSettings().GetStyleSettings().GetHighContrastMode())
1128dcb2a10SAndre Fischer 	{
1138dcb2a10SAndre Fischer 		maVSWidth.SetColor(GetSettings().GetStyleSettings().GetMenuColor());
1148dcb2a10SAndre Fischer 	//	maBorder.SetBackground(GetSettings().GetStyleSettings().GetMenuColor());
1158dcb2a10SAndre Fischer 		maFTWidth.SetBackground(GetSettings().GetStyleSettings().GetMenuColor());
1168dcb2a10SAndre Fischer 	}
1178dcb2a10SAndre Fischer 	else
1188dcb2a10SAndre Fischer 	{
1198dcb2a10SAndre Fischer 		maVSWidth.SetColor(COL_WHITE);
1208dcb2a10SAndre Fischer 	//	maBorder.SetBackground(Wallpaper(COL_WHITE));
1218dcb2a10SAndre Fischer 		maFTWidth.SetBackground(Wallpaper(COL_WHITE));
1228dcb2a10SAndre Fischer 	}
1238dcb2a10SAndre Fischer 
1248dcb2a10SAndre Fischer 	sal_Int64 nFirst= maMFWidth.Denormalize( maMFWidth.GetFirst( FUNIT_TWIP ) );
1258dcb2a10SAndre Fischer 	sal_Int64 nLast = maMFWidth.Denormalize( maMFWidth.GetLast( FUNIT_TWIP ) );
1268dcb2a10SAndre Fischer 	sal_Int64 nMin = maMFWidth.Denormalize( maMFWidth.GetMin( FUNIT_TWIP ) );
1278dcb2a10SAndre Fischer 	sal_Int64 nMax = maMFWidth.Denormalize( maMFWidth.GetMax( FUNIT_TWIP ) );
1288dcb2a10SAndre Fischer 	maMFWidth.SetSpinSize( 10 );
1298dcb2a10SAndre Fischer 	maMFWidth.SetUnit( FUNIT_POINT );
1308dcb2a10SAndre Fischer     if( maMFWidth.GetDecimalDigits() > 1 )
1318dcb2a10SAndre Fischer 		 maMFWidth.SetDecimalDigits( 1 );
1328dcb2a10SAndre Fischer 	maMFWidth.SetFirst( maMFWidth.Normalize( nFirst ), FUNIT_TWIP );
1338dcb2a10SAndre Fischer 	maMFWidth.SetLast( maMFWidth.Normalize( nLast ), FUNIT_TWIP );
1348dcb2a10SAndre Fischer 	maMFWidth.SetMin( maMFWidth.Normalize( nMin ), FUNIT_TWIP );
1358dcb2a10SAndre Fischer 	maMFWidth.SetMax( maMFWidth.Normalize( nMax ), FUNIT_TWIP );
1368dcb2a10SAndre Fischer 
1378dcb2a10SAndre Fischer 	rStr = new XubString[9];
1388dcb2a10SAndre Fischer 	//modify,
1398dcb2a10SAndre Fischer 	rStr[0] = String("05", 2, RTL_TEXTENCODING_ASCII_US);
1408dcb2a10SAndre Fischer 	rStr[1] = String("08", 2, RTL_TEXTENCODING_ASCII_US);
1418dcb2a10SAndre Fischer 	rStr[2] = String("10", 2, RTL_TEXTENCODING_ASCII_US);
1428dcb2a10SAndre Fischer 	rStr[3] = String("15", 2, RTL_TEXTENCODING_ASCII_US);
1438dcb2a10SAndre Fischer 	rStr[4] = String("23", 2, RTL_TEXTENCODING_ASCII_US);
1448dcb2a10SAndre Fischer 	rStr[5] = String("30", 2, RTL_TEXTENCODING_ASCII_US);
1458dcb2a10SAndre Fischer 	rStr[6] = String("45", 2, RTL_TEXTENCODING_ASCII_US);
1468dcb2a10SAndre Fischer 	rStr[7] = String("60", 2, RTL_TEXTENCODING_ASCII_US);
1478dcb2a10SAndre Fischer 	rStr[8] = String( SVX_RES(STR_WIDTH_LAST_CUSTOM) );
1488dcb2a10SAndre Fischer 
1498dcb2a10SAndre Fischer 	LocaleDataWrapper aLocaleWrapper( ::comphelper::getProcessServiceFactory(), Application::GetSettings().GetLocale() );
1508dcb2a10SAndre Fischer 	const sal_Unicode cSep = aLocaleWrapper.getNumDecimalSep().GetChar(0);
1518dcb2a10SAndre Fischer 
1528dcb2a10SAndre Fischer 	for(int i = 0; i <= 7 ; i++)
1538dcb2a10SAndre Fischer 	{
1548dcb2a10SAndre Fischer 		rStr[i] = rStr[i].Insert(cSep, 1);//Modify
1558dcb2a10SAndre Fischer 		rStr[i].Append(mstrPT);
1568dcb2a10SAndre Fischer 	}
1578dcb2a10SAndre Fischer 	//end
1588dcb2a10SAndre Fischer 
1598dcb2a10SAndre Fischer 	for(sal_uInt16 i = 1 ; i <= 9 ; i++)
1608dcb2a10SAndre Fischer 	{
1618dcb2a10SAndre Fischer 		maVSWidth.InsertItem(i);
1628dcb2a10SAndre Fischer 		maVSWidth.SetItemText(i, rStr[i-1]);
1638dcb2a10SAndre Fischer 	}
1648dcb2a10SAndre Fischer 	maVSWidth.SetUnit(rStr);
1658dcb2a10SAndre Fischer 	maVSWidth.SetItemData(1,(void*)5);
1668dcb2a10SAndre Fischer 	maVSWidth.SetItemData(2,(void*)8);
1678dcb2a10SAndre Fischer 	maVSWidth.SetItemData(3,(void*)10);
1688dcb2a10SAndre Fischer 	maVSWidth.SetItemData(4,(void*)15);
1698dcb2a10SAndre Fischer 	maVSWidth.SetItemData(5,(void*)23);
1708dcb2a10SAndre Fischer 	maVSWidth.SetItemData(6,(void*)30);
1718dcb2a10SAndre Fischer 	maVSWidth.SetItemData(7,(void*)45);
1728dcb2a10SAndre Fischer 	maVSWidth.SetItemData(8,(void*)60);
1738dcb2a10SAndre Fischer 	maVSWidth.SetImage(maIMGCusGray);
1748dcb2a10SAndre Fischer 
1758dcb2a10SAndre Fischer 	maVSWidth.SetSelItem(0);
1768dcb2a10SAndre Fischer 	Link aLink =  LINK( this, LineWidthControl, VSSelectHdl ) ;
1778dcb2a10SAndre Fischer     maVSWidth.SetSelectHdl(aLink);
1788dcb2a10SAndre Fischer 	aLink = LINK(this, LineWidthControl, MFModifyHdl);
1798dcb2a10SAndre Fischer 	maMFWidth.SetModifyHdl(aLink);
1808dcb2a10SAndre Fischer 
1818dcb2a10SAndre Fischer 	maVSWidth.StartSelection();
1828dcb2a10SAndre Fischer 	maVSWidth.Show();
1838dcb2a10SAndre Fischer }
1848dcb2a10SAndre Fischer 
1858dcb2a10SAndre Fischer 
1868dcb2a10SAndre Fischer 
1878dcb2a10SAndre Fischer 
GetFocus()1888dcb2a10SAndre Fischer void LineWidthControl::GetFocus()
1898dcb2a10SAndre Fischer {
1908dcb2a10SAndre Fischer 	if(!mbVSFocus)
1918dcb2a10SAndre Fischer 		maMFWidth.GrabFocus();
1928dcb2a10SAndre Fischer 	else
1938dcb2a10SAndre Fischer 		maVSWidth.GrabFocus();
1948dcb2a10SAndre Fischer }
1958dcb2a10SAndre Fischer 
1968dcb2a10SAndre Fischer 
1978dcb2a10SAndre Fischer 
1988dcb2a10SAndre Fischer 
GetValueSet()1998dcb2a10SAndre Fischer ValueSet& LineWidthControl::GetValueSet()
2008dcb2a10SAndre Fischer {
2018dcb2a10SAndre Fischer 	return maVSWidth;
2028dcb2a10SAndre Fischer }
2038dcb2a10SAndre Fischer 
2048dcb2a10SAndre Fischer 
2058dcb2a10SAndre Fischer 
2068dcb2a10SAndre Fischer 
SetWidthSelect(long lValue,bool bValuable,SfxMapUnit eMapUnit)2078dcb2a10SAndre Fischer void LineWidthControl::SetWidthSelect( long lValue, bool bValuable, SfxMapUnit eMapUnit)
2088dcb2a10SAndre Fischer {
2098dcb2a10SAndre Fischer 	mbVSFocus = true;
2108dcb2a10SAndre Fischer 	maVSWidth.SetSelItem(0);
211*926f14f6SPedro Giffuni 	mbCloseByEdit = false;
2128dcb2a10SAndre Fischer 	meMapUnit = eMapUnit;
2138dcb2a10SAndre Fischer 	SvtViewOptions aWinOpt( E_WINDOW, SIDEBAR_LINE_WIDTH_GLOBAL_VALUE );
2148dcb2a10SAndre Fischer     if ( aWinOpt.Exists() )
2158dcb2a10SAndre Fischer 	{
2168dcb2a10SAndre Fischer 		::com::sun::star::uno::Sequence < ::com::sun::star::beans::NamedValue > aSeq = aWinOpt.GetUserData();
2178dcb2a10SAndre Fischer 		::rtl::OUString aTmp;
2188dcb2a10SAndre Fischer 		if ( aSeq.getLength())
2198dcb2a10SAndre Fischer 			aSeq[0].Value >>= aTmp;
2208dcb2a10SAndre Fischer 
2218dcb2a10SAndre Fischer 		String aWinData( aTmp );
2228dcb2a10SAndre Fischer 		mnCustomWidth = aWinData.ToInt32();
2238dcb2a10SAndre Fischer 		mbCustom = true;
2248dcb2a10SAndre Fischer 		maVSWidth.SetImage(maIMGCus);
2258dcb2a10SAndre Fischer 		maVSWidth.SetCusEnable(true);
2268dcb2a10SAndre Fischer 
2278dcb2a10SAndre Fischer 		String aStrTip( String::CreateFromDouble( (double)mnCustomWidth / 10));
2288dcb2a10SAndre Fischer 		aStrTip.Append(mstrPT);		//
2298dcb2a10SAndre Fischer 		maVSWidth.SetItemText(9, aStrTip);
2308dcb2a10SAndre Fischer 	}
2318dcb2a10SAndre Fischer 	else
2328dcb2a10SAndre Fischer 	{
2338dcb2a10SAndre Fischer 		mbCustom = false;
2348dcb2a10SAndre Fischer 		maVSWidth.SetImage(maIMGCusGray);
2358dcb2a10SAndre Fischer 		maVSWidth.SetCusEnable(false);
2368dcb2a10SAndre Fischer 		//modify
2378dcb2a10SAndre Fischer 		//String aStrTip(String(SVX_RES(STR_WIDTH_LAST_CUSTOM)));
2388dcb2a10SAndre Fischer 		//maVSWidth.SetItemText(9, aStrTip);
2398dcb2a10SAndre Fischer 		maVSWidth.SetItemText(9, rStr[8]);
2408dcb2a10SAndre Fischer 	}
2418dcb2a10SAndre Fischer 
2428dcb2a10SAndre Fischer 	if(bValuable)
2438dcb2a10SAndre Fischer     {
2448dcb2a10SAndre Fischer         sal_Int64 nVal = OutputDevice::LogicToLogic( lValue, (MapUnit)eMapUnit, MAP_100TH_MM );
2458dcb2a10SAndre Fischer         nVal = maMFWidth.Normalize( nVal );
2468dcb2a10SAndre Fischer         maMFWidth.SetValue( nVal, FUNIT_100TH_MM );
2478dcb2a10SAndre Fischer     }
2488dcb2a10SAndre Fischer 	else
2498dcb2a10SAndre Fischer     {
2508dcb2a10SAndre Fischer 		maMFWidth.SetText( String() );
2518dcb2a10SAndre Fischer     }
2528dcb2a10SAndre Fischer 
2538dcb2a10SAndre Fischer 	MapUnit eOrgUnit = (MapUnit)eMapUnit;
2548dcb2a10SAndre Fischer 	MapUnit ePntUnit( MAP_TWIP );
2558dcb2a10SAndre Fischer 	lValue = LogicToLogic( lValue , eOrgUnit, ePntUnit );
2568dcb2a10SAndre Fischer 
2578dcb2a10SAndre Fischer 	XubString strCurrValue = maMFWidth.GetText();
2588dcb2a10SAndre Fischer 	sal_uInt16 i = 0;
2598dcb2a10SAndre Fischer 	for(; i < 8; i++)
2608dcb2a10SAndre Fischer 		if(strCurrValue == rStr[i])
2618dcb2a10SAndre Fischer 		{
2628dcb2a10SAndre Fischer 			maVSWidth.SetSelItem(i+1);
2638dcb2a10SAndre Fischer 			break;
2648dcb2a10SAndre Fischer 		}
2658dcb2a10SAndre Fischer 	if (i>=8)
2668dcb2a10SAndre Fischer 	{
2678dcb2a10SAndre Fischer 		mbVSFocus = false;
2688dcb2a10SAndre Fischer 		maVSWidth.SetSelItem(0);
2698dcb2a10SAndre Fischer 	}
2708dcb2a10SAndre Fischer 	maVSWidth.Format();
2718dcb2a10SAndre Fischer 	maVSWidth.StartSelection();
2728dcb2a10SAndre Fischer }
2738dcb2a10SAndre Fischer 
2748dcb2a10SAndre Fischer 
2758dcb2a10SAndre Fischer 
2768dcb2a10SAndre Fischer 
IMPL_LINK(LineWidthControl,VSSelectHdl,void *,pControl)2778dcb2a10SAndre Fischer IMPL_LINK(LineWidthControl, VSSelectHdl, void *, pControl)
2788dcb2a10SAndre Fischer {
2798dcb2a10SAndre Fischer 	if(pControl == &maVSWidth)
2808dcb2a10SAndre Fischer 	{
2818dcb2a10SAndre Fischer 		sal_uInt16 iPos = maVSWidth.GetSelectItemId();
2828dcb2a10SAndre Fischer 		if(iPos >= 1 && iPos <= 8)
2838dcb2a10SAndre Fischer 		{
2848dcb2a10SAndre Fischer 			long nVal = LogicToLogic((long)(unsigned long)maVSWidth.GetItemData( iPos ) , MAP_POINT, (MapUnit)meMapUnit);
2858dcb2a10SAndre Fischer 			nVal = maMFWidth.Denormalize(nVal);
2868dcb2a10SAndre Fischer 			XLineWidthItem aWidthItem( nVal );
2878dcb2a10SAndre Fischer 			mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L);
2888dcb2a10SAndre Fischer 			mrLinePropertyPanel.SetWidthIcon(iPos);
2898dcb2a10SAndre Fischer 			mrLinePropertyPanel.SetWidth(nVal);
290*926f14f6SPedro Giffuni 			mbCloseByEdit = false;
291*926f14f6SPedro Giffuni 			mnTmpCustomWidth = 0;
2928dcb2a10SAndre Fischer 		}
2938dcb2a10SAndre Fischer 		else if(iPos == 9)
2948dcb2a10SAndre Fischer 		{//last custom
2958dcb2a10SAndre Fischer 			//modified
2968dcb2a10SAndre Fischer 			if(mbCustom)
2978dcb2a10SAndre Fischer 			{
2988dcb2a10SAndre Fischer 				long nVal = LogicToLogic(mnCustomWidth , MAP_POINT, (MapUnit)meMapUnit);
2998dcb2a10SAndre Fischer 				nVal = maMFWidth.Denormalize(nVal);
3008dcb2a10SAndre Fischer 				XLineWidthItem aWidthItem( nVal );
3018dcb2a10SAndre Fischer 				mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L);
3028dcb2a10SAndre Fischer 				mrLinePropertyPanel.SetWidth(nVal);
303*926f14f6SPedro Giffuni 				mbCloseByEdit = false;
304*926f14f6SPedro Giffuni 				mnTmpCustomWidth = 0;
3058dcb2a10SAndre Fischer 			}
3068dcb2a10SAndre Fischer 			else
3078dcb2a10SAndre Fischer 			{
3088dcb2a10SAndre Fischer 				maVSWidth.SetNoSelection();		//add , set no selection and keep the last select item
3098dcb2a10SAndre Fischer 				maVSWidth.Format();
3108dcb2a10SAndre Fischer 				Invalidate();
3118dcb2a10SAndre Fischer 				maVSWidth.StartSelection();
3128dcb2a10SAndre Fischer 			}
3138dcb2a10SAndre Fischer 			//modify end
3148dcb2a10SAndre Fischer 		}
3158dcb2a10SAndre Fischer 		if((iPos >= 1 && iPos <= 8) || (iPos == 9 && mbCustom)) //add
3168dcb2a10SAndre Fischer 			mrLinePropertyPanel.EndLineWidthPopupMode();
3178dcb2a10SAndre Fischer 	}
3188dcb2a10SAndre Fischer 	return( 0L );
3198dcb2a10SAndre Fischer }
3208dcb2a10SAndre Fischer 
3218dcb2a10SAndre Fischer 
3228dcb2a10SAndre Fischer 
3238dcb2a10SAndre Fischer 
IMPL_LINK(LineWidthControl,MFModifyHdl,void *,pControl)3248dcb2a10SAndre Fischer IMPL_LINK(LineWidthControl, MFModifyHdl, void *, pControl)
3258dcb2a10SAndre Fischer {
3268dcb2a10SAndre Fischer 	if(pControl == &maMFWidth)
3278dcb2a10SAndre Fischer 	{
3288dcb2a10SAndre Fischer 		if(maVSWidth.GetSelItem())
3298dcb2a10SAndre Fischer 		{
3308dcb2a10SAndre Fischer 			maVSWidth.SetSelItem(0);
3318dcb2a10SAndre Fischer 			maVSWidth.Format();
3328dcb2a10SAndre Fischer 			Invalidate();
3338dcb2a10SAndre Fischer 			maVSWidth.StartSelection();
3348dcb2a10SAndre Fischer 		}
3358dcb2a10SAndre Fischer 		long nTmp = static_cast<long>(maMFWidth.GetValue());
3368dcb2a10SAndre Fischer 		long nVal = LogicToLogic( nTmp, MAP_POINT, (MapUnit)meMapUnit );
3378dcb2a10SAndre Fischer 		sal_Int32 nNewWidth = (short)maMFWidth.Denormalize( nVal );
3388dcb2a10SAndre Fischer 		XLineWidthItem aWidthItem(nNewWidth);
3398dcb2a10SAndre Fischer 		mpBindings->GetDispatcher()->Execute(SID_ATTR_LINE_WIDTH, SFX_CALLMODE_RECORD, &aWidthItem, 0L);
3408dcb2a10SAndre Fischer 
341*926f14f6SPedro Giffuni 		mbCloseByEdit = true;
342*926f14f6SPedro Giffuni 		mnTmpCustomWidth = nTmp;
3438dcb2a10SAndre Fischer 		/*for(sal_uInt16 i = 0; i < 8; i++)
3448dcb2a10SAndre Fischer 		{
3458dcb2a10SAndre Fischer 			if(nTmp == (sal_Int32)maVSWidth.GetItemData(i))
3468dcb2a10SAndre Fischer 			{
347*926f14f6SPedro Giffuni 				mbCloseByEdit = false;
3488dcb2a10SAndre Fischer 				break;
3498dcb2a10SAndre Fischer 			}
3508dcb2a10SAndre Fischer 		}*/
3518dcb2a10SAndre Fischer 
3528dcb2a10SAndre Fischer 	}
3538dcb2a10SAndre Fischer 	return( 0L );
3548dcb2a10SAndre Fischer }
3558dcb2a10SAndre Fischer 
3568dcb2a10SAndre Fischer 
3578dcb2a10SAndre Fischer 
3588dcb2a10SAndre Fischer 
IsCloseByEdit()3598dcb2a10SAndre Fischer bool LineWidthControl::IsCloseByEdit()
3608dcb2a10SAndre Fischer {
361*926f14f6SPedro Giffuni 	return mbCloseByEdit;
3628dcb2a10SAndre Fischer }
3638dcb2a10SAndre Fischer 
3648dcb2a10SAndre Fischer 
3658dcb2a10SAndre Fischer 
3668dcb2a10SAndre Fischer 
GetTmpCustomWidth()3678dcb2a10SAndre Fischer long LineWidthControl::GetTmpCustomWidth()
3688dcb2a10SAndre Fischer {
369*926f14f6SPedro Giffuni 	return mnTmpCustomWidth;
3708dcb2a10SAndre Fischer }
3718dcb2a10SAndre Fischer 
3728dcb2a10SAndre Fischer 
3738dcb2a10SAndre Fischer 
3748dcb2a10SAndre Fischer } } // end of namespace svx::sidebar
3754e8031e0SArmin Le Grand 
3764e8031e0SArmin Le Grand // eof
377