xref: /trunk/main/svx/source/sidebar/line/LineWidthControl.cxx (revision 8dcb2a100eb78f12871a9e67d867e1bc0c7bdb07)
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