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