xref: /AOO41X/main/svx/source/sidebar/text/TextUnderlineControl.cxx (revision d4aefcae16681f638496d1e984264fe390e450e8)
1*d4aefcaeSZheng Fan /**************************************************************
2*d4aefcaeSZheng Fan  *
3*d4aefcaeSZheng Fan  * Licensed to the Apache Software Foundation (ASF) under one
4*d4aefcaeSZheng Fan  * or more contributor license agreements.  See the NOTICE file
5*d4aefcaeSZheng Fan  * distributed with this work for additional information
6*d4aefcaeSZheng Fan  * regarding copyright ownership.  The ASF licenses this file
7*d4aefcaeSZheng Fan  * to you under the Apache License, Version 2.0 (the
8*d4aefcaeSZheng Fan  * "License"); you may not use this file except in compliance
9*d4aefcaeSZheng Fan  * with the License.  You may obtain a copy of the License at
10*d4aefcaeSZheng Fan  *
11*d4aefcaeSZheng Fan  *   http://www.apache.org/licenses/LICENSE-2.0
12*d4aefcaeSZheng Fan  *
13*d4aefcaeSZheng Fan  * Unless required by applicable law or agreed to in writing,
14*d4aefcaeSZheng Fan  * software distributed under the License is distributed on an
15*d4aefcaeSZheng Fan  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d4aefcaeSZheng Fan  * KIND, either express or implied.  See the License for the
17*d4aefcaeSZheng Fan  * specific language governing permissions and limitations
18*d4aefcaeSZheng Fan  * under the License.
19*d4aefcaeSZheng Fan  *
20*d4aefcaeSZheng Fan  *************************************************************/
21*d4aefcaeSZheng Fan 
22*d4aefcaeSZheng Fan #include "precompiled_svx.hxx"
23*d4aefcaeSZheng Fan #include "TextUnderlineControl.hxx"
24*d4aefcaeSZheng Fan #include "TextPropertyPanel.hrc"
25*d4aefcaeSZheng Fan #include <sfx2/sidebar/propertypanel.hrc>
26*d4aefcaeSZheng Fan #include <svx/dialogs.hrc>
27*d4aefcaeSZheng Fan #include <svx/dialmgr.hxx>
28*d4aefcaeSZheng Fan #include <unotools/viewoptions.hxx>
29*d4aefcaeSZheng Fan #include <editeng/kernitem.hxx>
30*d4aefcaeSZheng Fan #include <sfx2/bindings.hxx>
31*d4aefcaeSZheng Fan #include <sfx2/dispatch.hxx>
32*d4aefcaeSZheng Fan #include <sfx2/sidebar/Theme.hxx>
33*d4aefcaeSZheng Fan #include <editeng/udlnitem.hxx>
34*d4aefcaeSZheng Fan 
35*d4aefcaeSZheng Fan namespace svx { namespace sidebar {
36*d4aefcaeSZheng Fan 
37*d4aefcaeSZheng Fan TextUnderlineControl::TextUnderlineControl(Window* pParent, svx::sidebar::TextPropertyPanel& rPanel)
38*d4aefcaeSZheng Fan :	svx::sidebar::PopupControl( pParent,SVX_RES(RID_POPUPPANEL_TEXTPAGE_UNDERLINE))
39*d4aefcaeSZheng Fan ,	mrTextPropertyPanel(rPanel)
40*d4aefcaeSZheng Fan ,	mpBindings(NULL)
41*d4aefcaeSZheng Fan ,	maVSUnderline( this, SVX_RES(VS_UNDERLINE))
42*d4aefcaeSZheng Fan ,	maPBOptions	(this, SVX_RES(PB_OPTIONS) )
43*d4aefcaeSZheng Fan 
44*d4aefcaeSZheng Fan ,	maIMGSingle		(SVX_RES(IMG_SINGLE))
45*d4aefcaeSZheng Fan ,	maIMGDouble		(SVX_RES(IMG_DOUBLE))
46*d4aefcaeSZheng Fan ,	maIMGBold		(SVX_RES(IMG_BOLD2))
47*d4aefcaeSZheng Fan ,	maIMGDot		(SVX_RES(IMG_DOT))
48*d4aefcaeSZheng Fan ,	maIMGDotBold	(SVX_RES(IMG_DOT_BOLD))
49*d4aefcaeSZheng Fan ,	maIMGDash		(SVX_RES(IMG_DASH))
50*d4aefcaeSZheng Fan ,	maIMGDashLong	(SVX_RES(IMG_DASH_LONG))
51*d4aefcaeSZheng Fan ,	maIMGDashDot	(SVX_RES(IMG_DASH_DOT))
52*d4aefcaeSZheng Fan ,	maIMGDashDotDot	(SVX_RES(IMG_DASH_DOT_DOT))
53*d4aefcaeSZheng Fan ,	maIMGWave		(SVX_RES(IMG_WAVE))
54*d4aefcaeSZheng Fan 
55*d4aefcaeSZheng Fan // high contrast
56*d4aefcaeSZheng Fan ,	maIMGSingleH	(SVX_RES(IMG_SINGLE_H))
57*d4aefcaeSZheng Fan ,	maIMGDoubleH	(SVX_RES(IMG_DOUBLE_H))
58*d4aefcaeSZheng Fan ,	maIMGBoldH		(SVX_RES(IMG_BOLD2_H))
59*d4aefcaeSZheng Fan ,	maIMGDotH		(SVX_RES(IMG_DOT_H))
60*d4aefcaeSZheng Fan ,	maIMGDotBoldH	(SVX_RES(IMG_DOT_BOLD_H))
61*d4aefcaeSZheng Fan ,	maIMGDashH		(SVX_RES(IMG_DASH_H))
62*d4aefcaeSZheng Fan ,	maIMGDashLongH	(SVX_RES(IMG_DASH_LONG_H))
63*d4aefcaeSZheng Fan ,	maIMGDashDotH	(SVX_RES(IMG_DASH_DOT_H))
64*d4aefcaeSZheng Fan ,	maIMGDashDotDotH(SVX_RES(IMG_DASH_DOT_DOT_H))
65*d4aefcaeSZheng Fan ,	maIMGWaveH		(SVX_RES(IMG_WAVE_H))
66*d4aefcaeSZheng Fan 
67*d4aefcaeSZheng Fan ,	maIMGSingleSel		(SVX_RES(IMG_SINGLE_SEL))
68*d4aefcaeSZheng Fan ,	maIMGDoubleSel		(SVX_RES(IMG_DOUBLE_SEL))
69*d4aefcaeSZheng Fan ,	maIMGBoldSel		(SVX_RES(IMG_BOLD2_SEL))
70*d4aefcaeSZheng Fan ,	maIMGDotSel			(SVX_RES(IMG_DOT_SEL))
71*d4aefcaeSZheng Fan ,	maIMGDotBoldSel		(SVX_RES(IMG_DOT_BOLD_SEL))
72*d4aefcaeSZheng Fan ,	maIMGDashSel		(SVX_RES(IMG_DASH_SEL))
73*d4aefcaeSZheng Fan ,	maIMGDashLongSel	(SVX_RES(IMG_DASH_LONG_SEL))
74*d4aefcaeSZheng Fan ,	maIMGDashDotSel		(SVX_RES(IMG_DASH_DOT_SEL))
75*d4aefcaeSZheng Fan ,	maIMGDashDotDotSel	(SVX_RES(IMG_DASH_DOT_DOT_SEL))
76*d4aefcaeSZheng Fan ,	maIMGWaveSel		(SVX_RES(IMG_WAVE_SEL))
77*d4aefcaeSZheng Fan 
78*d4aefcaeSZheng Fan {
79*d4aefcaeSZheng Fan 	initial();
80*d4aefcaeSZheng Fan 	FreeResource();
81*d4aefcaeSZheng Fan 	mpBindings = mrTextPropertyPanel.GetBindings();
82*d4aefcaeSZheng Fan }
83*d4aefcaeSZheng Fan 
84*d4aefcaeSZheng Fan void TextUnderlineControl::initial()
85*d4aefcaeSZheng Fan {
86*d4aefcaeSZheng Fan 	/*maPBOptions.SetDefBkColor(GetSettings().GetStyleSettings().GetHighContrastMode()?
87*d4aefcaeSZheng Fan 		GetSettings().GetStyleSettings().GetMenuColor():
88*d4aefcaeSZheng Fan 		sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_DropDownBackground ));//Color(244,245,249)//for high contract
89*d4aefcaeSZheng Fan 	maPBOptions.SetHoverBkColor(GetSettings().GetStyleSettings().GetHighContrastMode()?
90*d4aefcaeSZheng Fan 		GetSettings().GetStyleSettings().GetMenuColor():
91*d4aefcaeSZheng Fan 		sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ) );//Color( 93, 120, 163 )
92*d4aefcaeSZheng Fan 	maPBOptions.SetHoverTxtColor( sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Color_PanelTitleFont ) );//Color( 255, 255, 255 )
93*d4aefcaeSZheng Fan 	maPBOptions.SetIcoPosX( 2);*/
94*d4aefcaeSZheng Fan 	maVSUnderline.SetColor(GetSettings().GetStyleSettings().GetHighContrastMode()?
95*d4aefcaeSZheng Fan 		GetSettings().GetStyleSettings().GetMenuColor():
96*d4aefcaeSZheng Fan 		sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
97*d4aefcaeSZheng Fan 	maVSUnderline.SetBackground(GetSettings().GetStyleSettings().GetHighContrastMode()?
98*d4aefcaeSZheng Fan 		GetSettings().GetStyleSettings().GetMenuColor():
99*d4aefcaeSZheng Fan 		sfx2::sidebar::Theme::GetColor( sfx2::sidebar::Theme::Paint_PanelBackground ));
100*d4aefcaeSZheng Fan 
101*d4aefcaeSZheng Fan 	Link aLink = LINK( this, TextUnderlineControl, PBClickHdl ) ;
102*d4aefcaeSZheng Fan 	maPBOptions.SetClickHdl(aLink);
103*d4aefcaeSZheng Fan 
104*d4aefcaeSZheng Fan 	maVSUnderline.SetStyle( maVSUnderline.GetStyle()| WB_3DLOOK |  WB_NO_DIRECTSELECT  );// WB_NAMEFIELD | WB_ITEMBORDER |WB_DOUBLEBORDER | WB_NONEFIELD |
105*d4aefcaeSZheng Fan 
106*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(1, maIMGSingle ,String(SVX_RES(STR_SINGLE)));
107*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(1, (void*)(sal_uInt64)UNDERLINE_SINGLE);
108*d4aefcaeSZheng Fan 
109*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(2, maIMGDouble ,String(SVX_RES(STR_DOUBLE)));
110*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(2, (void*)(sal_uInt64)UNDERLINE_DOUBLE);
111*d4aefcaeSZheng Fan 
112*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(3, maIMGBold, String(SVX_RES(STR_BOLD)));
113*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(3,(void*)(sal_uInt64)UNDERLINE_BOLD);
114*d4aefcaeSZheng Fan 
115*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(4, maIMGDot, String(SVX_RES(STR_DOT)));
116*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(4,(void*)(sal_uInt64)UNDERLINE_DOTTED);
117*d4aefcaeSZheng Fan 
118*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(5, maIMGDotBold, String(SVX_RES(STR_DOT_BOLD)));
119*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(5,(void*)(sal_uInt64)UNDERLINE_BOLDDOTTED);
120*d4aefcaeSZheng Fan 
121*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(6, maIMGDash, String(SVX_RES(STR_DASH)));
122*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(6,(void*)(sal_uInt64)UNDERLINE_DASH);
123*d4aefcaeSZheng Fan 
124*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(7, maIMGDashLong,String(SVX_RES(STR_DASH_LONG)));
125*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(7,(void*)(sal_uInt64)UNDERLINE_LONGDASH);
126*d4aefcaeSZheng Fan 
127*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(8, maIMGDashDot, String(SVX_RES(STR_DASH_DOT)));
128*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(8,(void*)(sal_uInt64)UNDERLINE_DASHDOT);
129*d4aefcaeSZheng Fan 
130*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(9, maIMGDashDotDot, String(SVX_RES(STR_DASH_DOT_DOT)));
131*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(9,(void*)(sal_uInt64)UNDERLINE_DASHDOTDOT);
132*d4aefcaeSZheng Fan 
133*d4aefcaeSZheng Fan 	maVSUnderline.InsertItem(10, maIMGWave, String(SVX_RES(STR_WAVE)));
134*d4aefcaeSZheng Fan 	maVSUnderline.SetItemData(10,(void*)(sal_uInt64)UNDERLINE_WAVE);
135*d4aefcaeSZheng Fan 
136*d4aefcaeSZheng Fan 	maVSUnderline.SetColCount( 1 );
137*d4aefcaeSZheng Fan 	aLink =  LINK( this, TextUnderlineControl, VSSelectHdl ) ;
138*d4aefcaeSZheng Fan     maVSUnderline.SetSelectHdl(aLink);
139*d4aefcaeSZheng Fan 
140*d4aefcaeSZheng Fan 	maVSUnderline.StartSelection();
141*d4aefcaeSZheng Fan 	maVSUnderline.Show();
142*d4aefcaeSZheng Fan }
143*d4aefcaeSZheng Fan 
144*d4aefcaeSZheng Fan void TextUnderlineControl::GetFocus()
145*d4aefcaeSZheng Fan {
146*d4aefcaeSZheng Fan 	maVSUnderline.GrabFocus();
147*d4aefcaeSZheng Fan }
148*d4aefcaeSZheng Fan void TextUnderlineControl::Rearrange(FontUnderline eLine)
149*d4aefcaeSZheng Fan {
150*d4aefcaeSZheng Fan 	// high contrast
151*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(1,  GetDisplayBackground().GetColor().IsDark()? maIMGSingleH :maIMGSingle);
152*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(2,  GetDisplayBackground().GetColor().IsDark()? maIMGDoubleH : maIMGDouble );
153*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(3, GetDisplayBackground().GetColor().IsDark()? maIMGBoldH : maIMGBold);
154*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(4, GetDisplayBackground().GetColor().IsDark()? maIMGDotH : maIMGDot);
155*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(5, GetDisplayBackground().GetColor().IsDark()? maIMGDotBoldH :maIMGDotBold);
156*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(6,  GetDisplayBackground().GetColor().IsDark()? maIMGDashH :maIMGDash);
157*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(7, GetDisplayBackground().GetColor().IsDark()? maIMGDashLongH : maIMGDashLong);
158*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(8, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotH : maIMGDashDot);
159*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(9, GetDisplayBackground().GetColor().IsDark()? maIMGDashDotDotH : maIMGDashDotDot);
160*d4aefcaeSZheng Fan 	maVSUnderline.SetItemImage(10, GetDisplayBackground().GetColor().IsDark()? maIMGWaveH : maIMGWave);
161*d4aefcaeSZheng Fan //	maVSUnderline.SelectItem(0);		//delete
162*d4aefcaeSZheng Fan //	maVSUnderline.SetNoSelection();
163*d4aefcaeSZheng Fan 
164*d4aefcaeSZheng Fan 	switch(eLine)
165*d4aefcaeSZheng Fan 	{
166*d4aefcaeSZheng Fan 	case UNDERLINE_SINGLE:
167*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(1, maIMGSingleSel);
168*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(1);	//add
169*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
170*d4aefcaeSZheng Fan 		break;
171*d4aefcaeSZheng Fan 	case UNDERLINE_DOUBLE:
172*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(2, maIMGDoubleSel);
173*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(2);	//add
174*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
175*d4aefcaeSZheng Fan 		break;
176*d4aefcaeSZheng Fan 	case UNDERLINE_BOLD:
177*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(3, maIMGBoldSel);
178*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(3);	//add
179*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
180*d4aefcaeSZheng Fan 		break;
181*d4aefcaeSZheng Fan 	case UNDERLINE_DOTTED:
182*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(4, maIMGDotSel);
183*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(4);	//add
184*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
185*d4aefcaeSZheng Fan 		break;
186*d4aefcaeSZheng Fan 	case UNDERLINE_BOLDDOTTED:
187*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(5, maIMGDotBoldSel);
188*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(5);	//add
189*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
190*d4aefcaeSZheng Fan 		break;
191*d4aefcaeSZheng Fan 	case UNDERLINE_DASH:
192*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(6, maIMGDashSel);
193*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(6);	//add
194*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
195*d4aefcaeSZheng Fan 		break;
196*d4aefcaeSZheng Fan 	case UNDERLINE_LONGDASH:
197*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(7, maIMGDashLongSel);
198*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(7);	//add
199*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
200*d4aefcaeSZheng Fan 		break;
201*d4aefcaeSZheng Fan 	case UNDERLINE_DASHDOT:
202*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(8, maIMGDashDotSel);
203*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(8);	//add
204*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
205*d4aefcaeSZheng Fan 		break;
206*d4aefcaeSZheng Fan 	case UNDERLINE_DASHDOTDOT:
207*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(9, maIMGDashDotDotSel);
208*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(9);	//add
209*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
210*d4aefcaeSZheng Fan 		break;
211*d4aefcaeSZheng Fan 	case UNDERLINE_WAVE:
212*d4aefcaeSZheng Fan 		maVSUnderline.SetItemImage(10, maIMGWaveSel);
213*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(10);	//add
214*d4aefcaeSZheng Fan 		maVSUnderline.GrabFocus();
215*d4aefcaeSZheng Fan 		break;
216*d4aefcaeSZheng Fan 	case UNDERLINE_NONE:
217*d4aefcaeSZheng Fan 	default:
218*d4aefcaeSZheng Fan 		maVSUnderline.SelectItem(1);
219*d4aefcaeSZheng Fan 		maVSUnderline.SetNoSelection();//add
220*d4aefcaeSZheng Fan 		maPBOptions.GrabFocus();
221*d4aefcaeSZheng Fan 	}
222*d4aefcaeSZheng Fan 	maVSUnderline.StartSelection();
223*d4aefcaeSZheng Fan 	//removed
224*d4aefcaeSZheng Fan 	//if(mpPage->meContextType == PROPERTY_CONTEXT_SC_CELL)
225*d4aefcaeSZheng Fan 	//	maPBOptions.Disable();
226*d4aefcaeSZheng Fan 	//else
227*d4aefcaeSZheng Fan 	//	maPBOptions.Enable();
228*d4aefcaeSZheng Fan 	//removed end
229*d4aefcaeSZheng Fan }
230*d4aefcaeSZheng Fan ValueSet& TextUnderlineControl::GetValueSet()
231*d4aefcaeSZheng Fan {
232*d4aefcaeSZheng Fan 	return maVSUnderline;
233*d4aefcaeSZheng Fan }
234*d4aefcaeSZheng Fan Control& TextUnderlineControl::GetPB()
235*d4aefcaeSZheng Fan {
236*d4aefcaeSZheng Fan 	return maPBOptions;
237*d4aefcaeSZheng Fan }
238*d4aefcaeSZheng Fan IMPL_LINK(TextUnderlineControl, VSSelectHdl, void *, pControl)
239*d4aefcaeSZheng Fan {
240*d4aefcaeSZheng Fan 	if(pControl == &maVSUnderline)
241*d4aefcaeSZheng Fan 	{
242*d4aefcaeSZheng Fan 		sal_uInt16 iPos = maVSUnderline.GetSelectItemId();
243*d4aefcaeSZheng Fan 		FontUnderline eUnderline = (FontUnderline)(sal_uInt64)maVSUnderline.GetItemData( iPos );
244*d4aefcaeSZheng Fan 
245*d4aefcaeSZheng Fan 		//<<modified
246*d4aefcaeSZheng Fan 		//SvxTextLineItem aLineItem(eUnderline, SID_ATTR_CHAR_UNDERLINE);
247*d4aefcaeSZheng Fan 		SvxUnderlineItem aLineItem(eUnderline, SID_ATTR_CHAR_UNDERLINE);
248*d4aefcaeSZheng Fan 		//modify end>>
249*d4aefcaeSZheng Fan 
250*d4aefcaeSZheng Fan 		//<<add , this line of code will keep the new underline use pre-color
251*d4aefcaeSZheng Fan 		aLineItem.SetColor(mrTextPropertyPanel.GetUnderlineColor());
252*d4aefcaeSZheng Fan 		//add end>>
253*d4aefcaeSZheng Fan 		mpBindings->GetDispatcher()->Execute(SID_ATTR_CHAR_UNDERLINE, SFX_CALLMODE_RECORD, &aLineItem, 0L);
254*d4aefcaeSZheng Fan 
255*d4aefcaeSZheng Fan 		//add , for the popup page not update immediately
256*d4aefcaeSZheng Fan 		mrTextPropertyPanel.SetUnderline(eUnderline);
257*d4aefcaeSZheng Fan 		//add end
258*d4aefcaeSZheng Fan 		//mrTextPropertyPanel.SetDefaultUnderline(eUnderline);
259*d4aefcaeSZheng Fan 
260*d4aefcaeSZheng Fan 		mrTextPropertyPanel.EndUnderlinePopupMode();
261*d4aefcaeSZheng Fan 	}
262*d4aefcaeSZheng Fan 	return( 0L );
263*d4aefcaeSZheng Fan }
264*d4aefcaeSZheng Fan 
265*d4aefcaeSZheng Fan IMPL_LINK(TextUnderlineControl, PBClickHdl, PushButton *, pPBtn)
266*d4aefcaeSZheng Fan {
267*d4aefcaeSZheng Fan 	if(pPBtn == &maPBOptions)
268*d4aefcaeSZheng Fan 	{
269*d4aefcaeSZheng Fan 		if (mpBindings)
270*d4aefcaeSZheng Fan 		{
271*d4aefcaeSZheng Fan 			SfxDispatcher* pDisp = mpBindings->GetDispatcher();
272*d4aefcaeSZheng Fan 			pDisp->Execute( SID_CHAR_DLG_EFFECT, SFX_CALLMODE_ASYNCHRON );
273*d4aefcaeSZheng Fan 		}
274*d4aefcaeSZheng Fan 		//add
275*d4aefcaeSZheng Fan 		mrTextPropertyPanel.EndUnderlinePopupMode();
276*d4aefcaeSZheng Fan 		//add end
277*d4aefcaeSZheng Fan 	}
278*d4aefcaeSZheng Fan 	return 0;
279*d4aefcaeSZheng Fan }
280*d4aefcaeSZheng Fan 
281*d4aefcaeSZheng Fan }}
282