1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski #include <hintids.hxx>
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski #include <com/sun/star/i18n/TransliterationModules.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/i18n/TextConversionOption.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XInitialization.hpp>
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielski #include <tools/shl.hxx>
36*b1cdbd2cSJim Jagielski #include <i18npool/mslangid.hxx>
37*b1cdbd2cSJim Jagielski #include <sfx2/objface.hxx>
38*b1cdbd2cSJim Jagielski #include <sfx2/viewfrm.hxx>
39*b1cdbd2cSJim Jagielski #include <sfx2/bindings.hxx>
40*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
41*b1cdbd2cSJim Jagielski #include <sfx2/request.hxx>
42*b1cdbd2cSJim Jagielski #include <editeng/spltitem.hxx>
43*b1cdbd2cSJim Jagielski #include <editeng/lrspitem.hxx>
44*b1cdbd2cSJim Jagielski #include <editeng/ulspitem.hxx>
45*b1cdbd2cSJim Jagielski #include <editeng/orphitem.hxx>
46*b1cdbd2cSJim Jagielski #include <editeng/brkitem.hxx>
47*b1cdbd2cSJim Jagielski #include <editeng/widwitem.hxx>
48*b1cdbd2cSJim Jagielski #include <editeng/kernitem.hxx>
49*b1cdbd2cSJim Jagielski #include <editeng/escpitem.hxx>
50*b1cdbd2cSJim Jagielski #include <editeng/lspcitem.hxx>
51*b1cdbd2cSJim Jagielski #include <editeng/adjitem.hxx>
52*b1cdbd2cSJim Jagielski #include <editeng/crsditem.hxx>
53*b1cdbd2cSJim Jagielski #include <editeng/shdditem.hxx>
54*b1cdbd2cSJim Jagielski #include <editeng/hyznitem.hxx>
55*b1cdbd2cSJim Jagielski #include <editeng/udlnitem.hxx>
56*b1cdbd2cSJim Jagielski #include <editeng/fontitem.hxx>
57*b1cdbd2cSJim Jagielski #include <editeng/fhgtitem.hxx>
58*b1cdbd2cSJim Jagielski #include <svx/clipfmtitem.hxx>
59*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx>
60*b1cdbd2cSJim Jagielski #include <svl/slstitm.hxx>
61*b1cdbd2cSJim Jagielski #include <editeng/colritem.hxx>
62*b1cdbd2cSJim Jagielski #include <editeng/wghtitem.hxx>
63*b1cdbd2cSJim Jagielski #include <editeng/cntritem.hxx>
64*b1cdbd2cSJim Jagielski #include <editeng/postitem.hxx>
65*b1cdbd2cSJim Jagielski #include <editeng/frmdiritem.hxx>
66*b1cdbd2cSJim Jagielski #include <svx/svdoutl.hxx>
67*b1cdbd2cSJim Jagielski #include <svl/whiter.hxx>
68*b1cdbd2cSJim Jagielski #include <svl/cjkoptions.hxx>
69*b1cdbd2cSJim Jagielski #include <svl/ctloptions.hxx>
70*b1cdbd2cSJim Jagielski #include <unotools/useroptions.hxx>
71*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
72*b1cdbd2cSJim Jagielski #include <editeng/flditem.hxx>
73*b1cdbd2cSJim Jagielski #include <editeng/editstat.hxx>
74*b1cdbd2cSJim Jagielski #include <svx/hlnkitem.hxx>
75*b1cdbd2cSJim Jagielski #include <svx/htmlmode.hxx>
76*b1cdbd2cSJim Jagielski #include <editeng/langitem.hxx>
77*b1cdbd2cSJim Jagielski #include <editeng/unolingu.hxx>
78*b1cdbd2cSJim Jagielski #include <editeng/scripttypeitem.hxx>
79*b1cdbd2cSJim Jagielski #include <editeng/writingmodeitem.hxx>
80*b1cdbd2cSJim Jagielski #include <swundo.hxx>
81*b1cdbd2cSJim Jagielski #include <doc.hxx>
82*b1cdbd2cSJim Jagielski #include <viewopt.hxx>
83*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
84*b1cdbd2cSJim Jagielski #include <uitool.hxx>
85*b1cdbd2cSJim Jagielski #include <popup.hrc>
86*b1cdbd2cSJim Jagielski #include <pardlg.hxx>
87*b1cdbd2cSJim Jagielski #include <swdtflvr.hxx>
88*b1cdbd2cSJim Jagielski #include <drwtxtsh.hxx>
89*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
90*b1cdbd2cSJim Jagielski #include <initui.hxx>
91*b1cdbd2cSJim Jagielski #include <edtwin.hxx>
92*b1cdbd2cSJim Jagielski #include <swwait.hxx>
93*b1cdbd2cSJim Jagielski #include <docstat.hxx>
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski #include <cmdid.h>
96*b1cdbd2cSJim Jagielski #include <globals.hrc>
97*b1cdbd2cSJim Jagielski #include <shells.hrc>
98*b1cdbd2cSJim Jagielski #include <breakit.hxx>
99*b1cdbd2cSJim Jagielski #include "annotsh.hxx"
100*b1cdbd2cSJim Jagielski #include "view.hxx"
101*b1cdbd2cSJim Jagielski #include <PostItMgr.hxx>
102*b1cdbd2cSJim Jagielski #include <SidebarWin.hxx>
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski #include "swtypes.hxx"
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski #include <svx/svxdlg.hxx>
107*b1cdbd2cSJim Jagielski #include <svx/dialogs.hrc>
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielski #include <svx/svxids.hrc>
110*b1cdbd2cSJim Jagielski #include <sfx2/sidebar/EnumContext.hxx>
111*b1cdbd2cSJim Jagielski #include <svl/itempool.hxx>
112*b1cdbd2cSJim Jagielski #include <editeng/outliner.hxx>
113*b1cdbd2cSJim Jagielski #include <editeng/editeng.hxx>
114*b1cdbd2cSJim Jagielski #include <editeng/editview.hxx>
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski #include <svl/languageoptions.hxx>
117*b1cdbd2cSJim Jagielski #include <editeng/langitem.hxx>
118*b1cdbd2cSJim Jagielski #include <svtools/langtab.hxx>
119*b1cdbd2cSJim Jagielski #include <svl/slstitm.hxx>
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski #include <docsh.hxx>
122*b1cdbd2cSJim Jagielski #include <svl/undo.hxx>
123*b1cdbd2cSJim Jagielski #include "swabstdlg.hxx"
124*b1cdbd2cSJim Jagielski #include "chrdlg.hrc"
125*b1cdbd2cSJim Jagielski #include "misc.hrc"
126*b1cdbd2cSJim Jagielski #include <app.hrc>
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
129*b1cdbd2cSJim Jagielski
130*b1cdbd2cSJim Jagielski #include <cppuhelper/bootstrap.hxx>
131*b1cdbd2cSJim Jagielski
132*b1cdbd2cSJim Jagielski #include <langhelper.hxx>
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
135*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
136*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::beans;
137*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::i18n;
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielski #define SwAnnotationShell
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski #include <sfx2/msg.hxx>
142*b1cdbd2cSJim Jagielski #include <swslots.hxx>
143*b1cdbd2cSJim Jagielski
SFX_IMPL_INTERFACE(SwAnnotationShell,SfxShell,SW_RES (STR_SHELLNAME_DRAW_TEXT))144*b1cdbd2cSJim Jagielski SFX_IMPL_INTERFACE(SwAnnotationShell, SfxShell, SW_RES(STR_SHELLNAME_DRAW_TEXT))
145*b1cdbd2cSJim Jagielski {
146*b1cdbd2cSJim Jagielski SFX_OBJECTBAR_REGISTRATION(SFX_OBJECTBAR_OBJECT, SW_RES(RID_TEXT_TOOLBOX));
147*b1cdbd2cSJim Jagielski SFX_POPUPMENU_REGISTRATION(SW_RES(MN_ANNOTATION_POPUPMENU));
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski
TYPEINIT1(SwAnnotationShell,SfxShell)150*b1cdbd2cSJim Jagielski TYPEINIT1(SwAnnotationShell,SfxShell)
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski SwAnnotationShell::SwAnnotationShell( SwView& r )
153*b1cdbd2cSJim Jagielski : rView(r)
154*b1cdbd2cSJim Jagielski {
155*b1cdbd2cSJim Jagielski SwWrtShell &rSh = rView.GetWrtShell();
156*b1cdbd2cSJim Jagielski SetPool(rSh.GetAttrPool().GetSecondaryPool());
157*b1cdbd2cSJim Jagielski SfxShell::SetContextName(sfx2::sidebar::EnumContext::GetContextName(sfx2::sidebar::EnumContext::Context_Annotation));
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski
~SwAnnotationShell()160*b1cdbd2cSJim Jagielski SwAnnotationShell::~SwAnnotationShell()
161*b1cdbd2cSJim Jagielski {
162*b1cdbd2cSJim Jagielski }
163*b1cdbd2cSJim Jagielski
GetUndoManager()164*b1cdbd2cSJim Jagielski ::svl::IUndoManager* SwAnnotationShell::GetUndoManager()
165*b1cdbd2cSJim Jagielski {
166*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
167*b1cdbd2cSJim Jagielski if ( !pPostItMgr ||
168*b1cdbd2cSJim Jagielski !pPostItMgr->HasActiveSidebarWin() )
169*b1cdbd2cSJim Jagielski {
170*b1cdbd2cSJim Jagielski DBG_ASSERT(pPostItMgr,"PostItMgr::Layout(): We are looping forever");
171*b1cdbd2cSJim Jagielski return 0;
172*b1cdbd2cSJim Jagielski }
173*b1cdbd2cSJim Jagielski return &pPostItMgr->GetActiveSidebarWin()->GetOutlinerView()->GetOutliner()->GetUndoManager();
174*b1cdbd2cSJim Jagielski }
175*b1cdbd2cSJim Jagielski
Exec(SfxRequest & rReq)176*b1cdbd2cSJim Jagielski void SwAnnotationShell::Exec( SfxRequest &rReq )
177*b1cdbd2cSJim Jagielski {
178*b1cdbd2cSJim Jagielski //TODO: clean this up!!!!
179*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
180*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
181*b1cdbd2cSJim Jagielski return;
182*b1cdbd2cSJim Jagielski
183*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
184*b1cdbd2cSJim Jagielski SfxItemSet aEditAttr(pOLV->GetAttribs());
185*b1cdbd2cSJim Jagielski SfxItemSet aNewAttr(*aEditAttr.GetPool(), aEditAttr.GetRanges());
186*b1cdbd2cSJim Jagielski
187*b1cdbd2cSJim Jagielski sal_uInt16 nSlot = rReq.GetSlot();
188*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = GetPool().GetWhich(nSlot);
189*b1cdbd2cSJim Jagielski const SfxItemSet *pNewAttrs = rReq.GetArgs();
190*b1cdbd2cSJim Jagielski sal_uInt16 nEEWhich = 0;
191*b1cdbd2cSJim Jagielski switch (nSlot)
192*b1cdbd2cSJim Jagielski {
193*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LRSPACE:
194*b1cdbd2cSJim Jagielski {
195*b1cdbd2cSJim Jagielski SvxLRSpaceItem aParaMargin((const SvxLRSpaceItem&)rReq.
196*b1cdbd2cSJim Jagielski GetArgs()->Get(nSlot));
197*b1cdbd2cSJim Jagielski aParaMargin.SetWhich( EE_PARA_LRSPACE );
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski aNewAttr.Put(aParaMargin);
200*b1cdbd2cSJim Jagielski rReq.Done();
201*b1cdbd2cSJim Jagielski break;
202*b1cdbd2cSJim Jagielski }
203*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE:
204*b1cdbd2cSJim Jagielski {
205*b1cdbd2cSJim Jagielski SvxLineSpacingItem aParaMargin = (const SvxLineSpacingItem&)pNewAttrs->Get(
206*b1cdbd2cSJim Jagielski GetPool().GetWhich(nSlot));
207*b1cdbd2cSJim Jagielski aParaMargin.SetWhich( EE_PARA_SBL );
208*b1cdbd2cSJim Jagielski
209*b1cdbd2cSJim Jagielski aNewAttr.Put(aParaMargin);
210*b1cdbd2cSJim Jagielski rReq.Done();
211*b1cdbd2cSJim Jagielski break;
212*b1cdbd2cSJim Jagielski }
213*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ULSPACE:
214*b1cdbd2cSJim Jagielski {
215*b1cdbd2cSJim Jagielski SvxULSpaceItem aULSpace = (const SvxULSpaceItem&)pNewAttrs->Get(
216*b1cdbd2cSJim Jagielski GetPool().GetWhich(nSlot));
217*b1cdbd2cSJim Jagielski aULSpace.SetWhich( EE_PARA_ULSPACE );
218*b1cdbd2cSJim Jagielski aNewAttr.Put( aULSpace );
219*b1cdbd2cSJim Jagielski rReq.Done();
220*b1cdbd2cSJim Jagielski }
221*b1cdbd2cSJim Jagielski break;
222*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_FONT:
223*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_FONTHEIGHT:
224*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_WEIGHT:
225*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_POSTURE:
226*b1cdbd2cSJim Jagielski {
227*b1cdbd2cSJim Jagielski SfxItemPool* pSecondPool = aEditAttr.GetPool()->GetSecondaryPool();
228*b1cdbd2cSJim Jagielski if( !pSecondPool )
229*b1cdbd2cSJim Jagielski pSecondPool = aEditAttr.GetPool();
230*b1cdbd2cSJim Jagielski SvxScriptSetItem aSetItem( nSlot, *pSecondPool );
231*b1cdbd2cSJim Jagielski aSetItem.PutItemForScriptType( pOLV->GetSelectedScriptType(), pNewAttrs->Get( nWhich ));
232*b1cdbd2cSJim Jagielski aNewAttr.Put( aSetItem.GetItemSet() );
233*b1cdbd2cSJim Jagielski rReq.Done();
234*b1cdbd2cSJim Jagielski break;
235*b1cdbd2cSJim Jagielski }
236*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_COLOR: nEEWhich = EE_CHAR_COLOR; break;
237*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_UNDERLINE:
238*b1cdbd2cSJim Jagielski {
239*b1cdbd2cSJim Jagielski if( rReq.GetArgs() )
240*b1cdbd2cSJim Jagielski {
241*b1cdbd2cSJim Jagielski SFX_REQUEST_ARG( rReq, pItem, SvxUnderlineItem, SID_ATTR_CHAR_UNDERLINE , sal_False );
242*b1cdbd2cSJim Jagielski if (pItem)
243*b1cdbd2cSJim Jagielski {
244*b1cdbd2cSJim Jagielski aNewAttr.Put(*pItem);
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski else
247*b1cdbd2cSJim Jagielski {
248*b1cdbd2cSJim Jagielski FontUnderline eFU = ( (const SvxUnderlineItem&) aEditAttr.Get( EE_CHAR_UNDERLINE ) ).GetLineStyle();
249*b1cdbd2cSJim Jagielski aNewAttr.Put( SvxUnderlineItem( eFU != UNDERLINE_NONE ?UNDERLINE_NONE : UNDERLINE_SINGLE, EE_CHAR_UNDERLINE ) );
250*b1cdbd2cSJim Jagielski }
251*b1cdbd2cSJim Jagielski }
252*b1cdbd2cSJim Jagielski break;
253*b1cdbd2cSJim Jagielski }
254*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_OVERLINE:
255*b1cdbd2cSJim Jagielski {
256*b1cdbd2cSJim Jagielski FontUnderline eFO = ((const SvxOverlineItem&)aEditAttr.Get(EE_CHAR_OVERLINE)).GetLineStyle();
257*b1cdbd2cSJim Jagielski aNewAttr.Put(SvxOverlineItem(eFO == UNDERLINE_SINGLE ? UNDERLINE_NONE : UNDERLINE_SINGLE, EE_CHAR_OVERLINE));
258*b1cdbd2cSJim Jagielski break;
259*b1cdbd2cSJim Jagielski }
260*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_CONTOUR: nEEWhich = EE_CHAR_OUTLINE; break;
261*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_SHADOWED: nEEWhich = EE_CHAR_SHADOW; break;
262*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_STRIKEOUT: nEEWhich = EE_CHAR_STRIKEOUT; break;
263*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_WORDLINEMODE: nEEWhich = EE_CHAR_WLM; break;
264*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_RELIEF : nEEWhich = EE_CHAR_RELIEF; break;
265*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_LANGUAGE : nEEWhich = EE_CHAR_LANGUAGE;break;
266*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_KERNING : nEEWhich = EE_CHAR_KERNING; break;
267*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_SCALEWIDTH: nEEWhich = EE_CHAR_FONTWIDTH; break;
268*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_AUTOKERN : nEEWhich = EE_CHAR_PAIRKERNING; break;
269*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_ESCAPEMENT: nEEWhich = EE_CHAR_ESCAPEMENT; break;
270*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_LEFT:
271*b1cdbd2cSJim Jagielski aNewAttr.Put(SvxAdjustItem(SVX_ADJUST_LEFT, EE_PARA_JUST));
272*b1cdbd2cSJim Jagielski break;
273*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_CENTER:
274*b1cdbd2cSJim Jagielski aNewAttr.Put(SvxAdjustItem(SVX_ADJUST_CENTER, EE_PARA_JUST));
275*b1cdbd2cSJim Jagielski break;
276*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_RIGHT:
277*b1cdbd2cSJim Jagielski aNewAttr.Put(SvxAdjustItem(SVX_ADJUST_RIGHT, EE_PARA_JUST));
278*b1cdbd2cSJim Jagielski break;
279*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_BLOCK:
280*b1cdbd2cSJim Jagielski aNewAttr.Put(SvxAdjustItem(SVX_ADJUST_BLOCK, EE_PARA_JUST));
281*b1cdbd2cSJim Jagielski break;
282*b1cdbd2cSJim Jagielski
283*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_10:
284*b1cdbd2cSJim Jagielski {
285*b1cdbd2cSJim Jagielski SvxLineSpacingItem aItem(SVX_LINESPACE_ONE_LINE, EE_PARA_SBL);
286*b1cdbd2cSJim Jagielski aItem.SetPropLineSpace(100);
287*b1cdbd2cSJim Jagielski aNewAttr.Put(aItem);
288*b1cdbd2cSJim Jagielski }
289*b1cdbd2cSJim Jagielski break;
290*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_15:
291*b1cdbd2cSJim Jagielski {
292*b1cdbd2cSJim Jagielski SvxLineSpacingItem aItem(SVX_LINESPACE_ONE_POINT_FIVE_LINES, EE_PARA_SBL);
293*b1cdbd2cSJim Jagielski aItem.SetPropLineSpace(150);
294*b1cdbd2cSJim Jagielski aNewAttr.Put(aItem);
295*b1cdbd2cSJim Jagielski }
296*b1cdbd2cSJim Jagielski break;
297*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_20:
298*b1cdbd2cSJim Jagielski {
299*b1cdbd2cSJim Jagielski SvxLineSpacingItem aItem(SVX_LINESPACE_TWO_LINES, EE_PARA_SBL);
300*b1cdbd2cSJim Jagielski aItem.SetPropLineSpace(200);
301*b1cdbd2cSJim Jagielski aNewAttr.Put(aItem);
302*b1cdbd2cSJim Jagielski }
303*b1cdbd2cSJim Jagielski break;
304*b1cdbd2cSJim Jagielski case SID_SELECTALL:
305*b1cdbd2cSJim Jagielski {
306*b1cdbd2cSJim Jagielski Outliner * pOutliner = pOLV->GetOutliner();
307*b1cdbd2cSJim Jagielski if(pOutliner)
308*b1cdbd2cSJim Jagielski {
309*b1cdbd2cSJim Jagielski sal_uLong nParaCount = pOutliner->GetParagraphCount();
310*b1cdbd2cSJim Jagielski if (nParaCount > 0)
311*b1cdbd2cSJim Jagielski pOLV->SelectRange(0L, sal_uInt16(nParaCount) );
312*b1cdbd2cSJim Jagielski }
313*b1cdbd2cSJim Jagielski break;
314*b1cdbd2cSJim Jagielski }
315*b1cdbd2cSJim Jagielski case FN_FORMAT_RESET:
316*b1cdbd2cSJim Jagielski {
317*b1cdbd2cSJim Jagielski pPostItMgr->GetActiveSidebarWin()->ResetAttributes();
318*b1cdbd2cSJim Jagielski rReq.Done();
319*b1cdbd2cSJim Jagielski break;
320*b1cdbd2cSJim Jagielski }
321*b1cdbd2cSJim Jagielski case FN_SET_SUPER_SCRIPT:
322*b1cdbd2cSJim Jagielski {
323*b1cdbd2cSJim Jagielski SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
324*b1cdbd2cSJim Jagielski SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
325*b1cdbd2cSJim Jagielski aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
326*b1cdbd2cSJim Jagielski
327*b1cdbd2cSJim Jagielski if( eEsc == SVX_ESCAPEMENT_SUPERSCRIPT )
328*b1cdbd2cSJim Jagielski aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
329*b1cdbd2cSJim Jagielski else
330*b1cdbd2cSJim Jagielski aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT );
331*b1cdbd2cSJim Jagielski aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
332*b1cdbd2cSJim Jagielski }
333*b1cdbd2cSJim Jagielski break;
334*b1cdbd2cSJim Jagielski case FN_SET_SUB_SCRIPT:
335*b1cdbd2cSJim Jagielski {
336*b1cdbd2cSJim Jagielski SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
337*b1cdbd2cSJim Jagielski SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
338*b1cdbd2cSJim Jagielski aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
339*b1cdbd2cSJim Jagielski
340*b1cdbd2cSJim Jagielski if( eEsc == SVX_ESCAPEMENT_SUBSCRIPT )
341*b1cdbd2cSJim Jagielski aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
342*b1cdbd2cSJim Jagielski else
343*b1cdbd2cSJim Jagielski aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT );
344*b1cdbd2cSJim Jagielski aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
345*b1cdbd2cSJim Jagielski }
346*b1cdbd2cSJim Jagielski break;
347*b1cdbd2cSJim Jagielski case SID_HYPERLINK_SETLINK:
348*b1cdbd2cSJim Jagielski {
349*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = 0;
350*b1cdbd2cSJim Jagielski if(pNewAttrs)
351*b1cdbd2cSJim Jagielski pNewAttrs->GetItemState(nSlot, sal_False, &pItem);
352*b1cdbd2cSJim Jagielski
353*b1cdbd2cSJim Jagielski if(pItem)
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski const SvxHyperlinkItem& rHLinkItem = *(const SvxHyperlinkItem *)pItem;
356*b1cdbd2cSJim Jagielski SvxURLField aFld(rHLinkItem.GetURL(), rHLinkItem.GetName(), SVXURLFORMAT_APPDEFAULT);
357*b1cdbd2cSJim Jagielski aFld.SetTargetFrame(rHLinkItem.GetTargetFrame());
358*b1cdbd2cSJim Jagielski
359*b1cdbd2cSJim Jagielski const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
360*b1cdbd2cSJim Jagielski
361*b1cdbd2cSJim Jagielski if (pFieldItem && pFieldItem->GetField()->ISA(SvxURLField))
362*b1cdbd2cSJim Jagielski {
363*b1cdbd2cSJim Jagielski // Feld selektieren, so dass es beim Insert geloescht wird
364*b1cdbd2cSJim Jagielski ESelection aSel = pOLV->GetSelection();
365*b1cdbd2cSJim Jagielski aSel.nEndPos++;
366*b1cdbd2cSJim Jagielski pOLV->SetSelection(aSel);
367*b1cdbd2cSJim Jagielski }
368*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
369*b1cdbd2cSJim Jagielski pOLV->InsertField(SvxFieldItem(aFld, EE_FEATURE_FIELD));
370*b1cdbd2cSJim Jagielski }
371*b1cdbd2cSJim Jagielski break;
372*b1cdbd2cSJim Jagielski }
373*b1cdbd2cSJim Jagielski case FN_INSERT_SOFT_HYPHEN:
374*b1cdbd2cSJim Jagielski case FN_INSERT_HARDHYPHEN:
375*b1cdbd2cSJim Jagielski case FN_INSERT_HARD_SPACE:
376*b1cdbd2cSJim Jagielski case SID_INSERT_RLM :
377*b1cdbd2cSJim Jagielski case SID_INSERT_LRM :
378*b1cdbd2cSJim Jagielski case SID_INSERT_ZWNBSP :
379*b1cdbd2cSJim Jagielski case SID_INSERT_ZWSP:
380*b1cdbd2cSJim Jagielski {
381*b1cdbd2cSJim Jagielski sal_Unicode cIns = 0;
382*b1cdbd2cSJim Jagielski switch(rReq.GetSlot())
383*b1cdbd2cSJim Jagielski {
384*b1cdbd2cSJim Jagielski case FN_INSERT_SOFT_HYPHEN: cIns = CHAR_SOFTHYPHEN; break;
385*b1cdbd2cSJim Jagielski case FN_INSERT_HARDHYPHEN: cIns = CHAR_HARDHYPHEN; break;
386*b1cdbd2cSJim Jagielski case FN_INSERT_HARD_SPACE: cIns = CHAR_HARDBLANK; break;
387*b1cdbd2cSJim Jagielski case SID_INSERT_RLM : cIns = CHAR_RLM ; break;
388*b1cdbd2cSJim Jagielski case SID_INSERT_LRM : cIns = CHAR_LRM ; break;
389*b1cdbd2cSJim Jagielski case SID_INSERT_ZWSP : cIns = CHAR_ZWSP ; break;
390*b1cdbd2cSJim Jagielski case SID_INSERT_ZWNBSP: cIns = CHAR_ZWNBSP; break;
391*b1cdbd2cSJim Jagielski }
392*b1cdbd2cSJim Jagielski pOLV->InsertText( String(cIns));
393*b1cdbd2cSJim Jagielski rReq.Done();
394*b1cdbd2cSJim Jagielski break;
395*b1cdbd2cSJim Jagielski }
396*b1cdbd2cSJim Jagielski case SID_CHARMAP:
397*b1cdbd2cSJim Jagielski {
398*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
399*b1cdbd2cSJim Jagielski InsertSymbol(rReq);
400*b1cdbd2cSJim Jagielski break;
401*b1cdbd2cSJim Jagielski }
402*b1cdbd2cSJim Jagielski case FN_INSERT_STRING:
403*b1cdbd2cSJim Jagielski {
404*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = 0;
405*b1cdbd2cSJim Jagielski if(pNewAttrs)
406*b1cdbd2cSJim Jagielski pNewAttrs->GetItemState(nSlot, sal_False, &pItem );
407*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
408*b1cdbd2cSJim Jagielski pOLV->InsertText(((const SfxStringItem *)pItem)->GetValue());
409*b1cdbd2cSJim Jagielski break;
410*b1cdbd2cSJim Jagielski }
411*b1cdbd2cSJim Jagielski
412*b1cdbd2cSJim Jagielski case FN_FORMAT_FOOTNOTE_DLG:
413*b1cdbd2cSJim Jagielski {
414*b1cdbd2cSJim Jagielski SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
415*b1cdbd2cSJim Jagielski DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");
416*b1cdbd2cSJim Jagielski
417*b1cdbd2cSJim Jagielski VclAbstractDialog* pDlg = pFact->CreateSwFootNoteOptionDlg( rView.GetWindow(), rView.GetWrtShell(), DLG_DOC_FOOTNOTE );
418*b1cdbd2cSJim Jagielski DBG_ASSERT(pDlg, "Dialogdiet fail!");
419*b1cdbd2cSJim Jagielski pDlg->Execute();
420*b1cdbd2cSJim Jagielski delete pDlg;
421*b1cdbd2cSJim Jagielski break;
422*b1cdbd2cSJim Jagielski }
423*b1cdbd2cSJim Jagielski case FN_NUMBERING_OUTLINE_DLG:
424*b1cdbd2cSJim Jagielski {
425*b1cdbd2cSJim Jagielski SfxItemSet aTmp(GetPool(), FN_PARAM_1, FN_PARAM_1);
426*b1cdbd2cSJim Jagielski SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
427*b1cdbd2cSJim Jagielski DBG_ASSERT(pFact, "Dialogdiet fail!");
428*b1cdbd2cSJim Jagielski SfxAbstractTabDialog* pDlg = pFact->CreateSwTabDialog( DLG_TAB_OUTLINE,
429*b1cdbd2cSJim Jagielski rView.GetWindow(), &aTmp, rView.GetWrtShell());
430*b1cdbd2cSJim Jagielski DBG_ASSERT(pDlg, "Dialogdiet fail!");
431*b1cdbd2cSJim Jagielski pDlg->Execute();
432*b1cdbd2cSJim Jagielski delete pDlg;
433*b1cdbd2cSJim Jagielski rReq.Done();
434*b1cdbd2cSJim Jagielski }
435*b1cdbd2cSJim Jagielski break;
436*b1cdbd2cSJim Jagielski case SID_OPEN_XML_FILTERSETTINGS:
437*b1cdbd2cSJim Jagielski {
438*b1cdbd2cSJim Jagielski try
439*b1cdbd2cSJim Jagielski {
440*b1cdbd2cSJim Jagielski uno::Reference < ui::dialogs::XExecutableDialog > xDialog(::comphelper::getProcessServiceFactory()->createInstance(rtl::OUString::createFromAscii("com.sun.star.comp.ui.XSLTFilterDialog")), uno::UNO_QUERY);
441*b1cdbd2cSJim Jagielski if( xDialog.is() )
442*b1cdbd2cSJim Jagielski {
443*b1cdbd2cSJim Jagielski xDialog->execute();
444*b1cdbd2cSJim Jagielski }
445*b1cdbd2cSJim Jagielski }
446*b1cdbd2cSJim Jagielski catch( uno::Exception& )
447*b1cdbd2cSJim Jagielski {
448*b1cdbd2cSJim Jagielski }
449*b1cdbd2cSJim Jagielski rReq.Ignore ();
450*b1cdbd2cSJim Jagielski }
451*b1cdbd2cSJim Jagielski break;
452*b1cdbd2cSJim Jagielski case FN_WORDCOUNT_DIALOG:
453*b1cdbd2cSJim Jagielski {
454*b1cdbd2cSJim Jagielski SwWrtShell &rSh = rView.GetWrtShell();
455*b1cdbd2cSJim Jagielski SwDocStat aCurr;
456*b1cdbd2cSJim Jagielski SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
457*b1cdbd2cSJim Jagielski {
458*b1cdbd2cSJim Jagielski SwWait aWait( *rView.GetDocShell(), true );
459*b1cdbd2cSJim Jagielski rSh.StartAction();
460*b1cdbd2cSJim Jagielski rSh.CountWords( aCurr );
461*b1cdbd2cSJim Jagielski rSh.UpdateDocStat( aDocStat );
462*b1cdbd2cSJim Jagielski rSh.EndAction();
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski
465*b1cdbd2cSJim Jagielski SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
466*b1cdbd2cSJim Jagielski DBG_ASSERT(pFact, "Dialogdiet fail!");
467*b1cdbd2cSJim Jagielski AbstractSwWordCountDialog* pDialog = pFact->CreateSwWordCountDialog( rView.GetWindow() );
468*b1cdbd2cSJim Jagielski pDialog->SetValues(aCurr, aDocStat );
469*b1cdbd2cSJim Jagielski pDialog->Execute();
470*b1cdbd2cSJim Jagielski delete pDialog;
471*b1cdbd2cSJim Jagielski }
472*b1cdbd2cSJim Jagielski break;
473*b1cdbd2cSJim Jagielski case SID_CHAR_DLG_EFFECT:
474*b1cdbd2cSJim Jagielski case SID_CHAR_DLG:
475*b1cdbd2cSJim Jagielski {
476*b1cdbd2cSJim Jagielski const SfxItemSet* pArgs = rReq.GetArgs();
477*b1cdbd2cSJim Jagielski
478*b1cdbd2cSJim Jagielski if( !pArgs )
479*b1cdbd2cSJim Jagielski {
480*b1cdbd2cSJim Jagielski /* mod
481*b1cdbd2cSJim Jagielski SwView* pView = &GetView();
482*b1cdbd2cSJim Jagielski FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, pView));
483*b1cdbd2cSJim Jagielski SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, eMetric));
484*b1cdbd2cSJim Jagielski */
485*b1cdbd2cSJim Jagielski SfxItemSet aDlgAttr(GetPool(), EE_ITEMS_START, EE_ITEMS_END);
486*b1cdbd2cSJim Jagielski
487*b1cdbd2cSJim Jagielski // util::Language gibts an der EditEngine nicht! Daher nicht im Set.
488*b1cdbd2cSJim Jagielski
489*b1cdbd2cSJim Jagielski aDlgAttr.Put( aEditAttr );
490*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxKerningItem(0, RES_CHRATR_KERNING) );
491*b1cdbd2cSJim Jagielski
492*b1cdbd2cSJim Jagielski //CHINA001 SwCharDlg* pDlg = new SwCharDlg(pView->GetWindow(), *pView, aDlgAttr, 0, sal_True);
493*b1cdbd2cSJim Jagielski SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();//CHINA001
494*b1cdbd2cSJim Jagielski DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");//CHINA001
495*b1cdbd2cSJim Jagielski
496*b1cdbd2cSJim Jagielski SfxAbstractTabDialog* pDlg = pFact->CreateSwCharDlg( rView.GetWindow(), rView, aDlgAttr, DLG_CHAR,0, sal_True );
497*b1cdbd2cSJim Jagielski DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
498*b1cdbd2cSJim Jagielski if (nSlot == SID_CHAR_DLG_EFFECT)
499*b1cdbd2cSJim Jagielski {
500*b1cdbd2cSJim Jagielski pDlg->SetCurPageId(TP_CHAR_EXT);
501*b1cdbd2cSJim Jagielski }
502*b1cdbd2cSJim Jagielski sal_uInt16 nRet = pDlg->Execute();
503*b1cdbd2cSJim Jagielski if(RET_OK == nRet )
504*b1cdbd2cSJim Jagielski {
505*b1cdbd2cSJim Jagielski rReq.Done( *( pDlg->GetOutputItemSet() ) );
506*b1cdbd2cSJim Jagielski aNewAttr.Put(*pDlg->GetOutputItemSet());
507*b1cdbd2cSJim Jagielski }
508*b1cdbd2cSJim Jagielski delete( pDlg );
509*b1cdbd2cSJim Jagielski if(RET_OK != nRet)
510*b1cdbd2cSJim Jagielski return ;
511*b1cdbd2cSJim Jagielski }
512*b1cdbd2cSJim Jagielski else
513*b1cdbd2cSJim Jagielski aNewAttr.Put(*pArgs);
514*b1cdbd2cSJim Jagielski break;
515*b1cdbd2cSJim Jagielski }
516*b1cdbd2cSJim Jagielski case SID_PARA_DLG:
517*b1cdbd2cSJim Jagielski {
518*b1cdbd2cSJim Jagielski const SfxItemSet* pArgs = rReq.GetArgs();
519*b1cdbd2cSJim Jagielski
520*b1cdbd2cSJim Jagielski if (!pArgs)
521*b1cdbd2cSJim Jagielski {
522*b1cdbd2cSJim Jagielski /* mod todo ???
523*b1cdbd2cSJim Jagielski SwView* pView = &GetView();
524*b1cdbd2cSJim Jagielski FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, pView));
525*b1cdbd2cSJim Jagielski SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, eMetric));
526*b1cdbd2cSJim Jagielski */
527*b1cdbd2cSJim Jagielski SfxItemSet aDlgAttr(GetPool(),
528*b1cdbd2cSJim Jagielski EE_ITEMS_START, EE_ITEMS_END,
529*b1cdbd2cSJim Jagielski SID_ATTR_PARA_HYPHENZONE, SID_ATTR_PARA_HYPHENZONE,
530*b1cdbd2cSJim Jagielski SID_ATTR_PARA_SPLIT, SID_ATTR_PARA_SPLIT,
531*b1cdbd2cSJim Jagielski SID_ATTR_PARA_WIDOWS, SID_ATTR_PARA_WIDOWS,
532*b1cdbd2cSJim Jagielski SID_ATTR_PARA_ORPHANS, SID_ATTR_PARA_ORPHANS,
533*b1cdbd2cSJim Jagielski 0);
534*b1cdbd2cSJim Jagielski
535*b1cdbd2cSJim Jagielski aDlgAttr.Put(aEditAttr);
536*b1cdbd2cSJim Jagielski
537*b1cdbd2cSJim Jagielski
538*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxHyphenZoneItem( sal_False, RES_PARATR_HYPHENZONE) );
539*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxFmtBreakItem( SVX_BREAK_NONE, RES_BREAK ) );
540*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxFmtSplitItem( sal_True, RES_PARATR_SPLIT ) );
541*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxWidowsItem( 0, RES_PARATR_WIDOWS ) );
542*b1cdbd2cSJim Jagielski aDlgAttr.Put( SvxOrphansItem( 0, RES_PARATR_ORPHANS ) );
543*b1cdbd2cSJim Jagielski
544*b1cdbd2cSJim Jagielski //CHINA001 SwParaDlg* pDlg = new SwParaDlg(GetView().GetWindow(), GetView(), aDlgAttr, DLG_STD, 0, sal_True);
545*b1cdbd2cSJim Jagielski
546*b1cdbd2cSJim Jagielski SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();//CHINA001
547*b1cdbd2cSJim Jagielski DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");//CHINA001
548*b1cdbd2cSJim Jagielski
549*b1cdbd2cSJim Jagielski SfxAbstractTabDialog* pDlg = pFact->CreateSwParaDlg( rView.GetWindow(), rView, aDlgAttr,DLG_STD, DLG_PARA, 0, sal_True );
550*b1cdbd2cSJim Jagielski DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
551*b1cdbd2cSJim Jagielski sal_uInt16 nRet = pDlg->Execute();
552*b1cdbd2cSJim Jagielski if(RET_OK == nRet)
553*b1cdbd2cSJim Jagielski {
554*b1cdbd2cSJim Jagielski rReq.Done( *( pDlg->GetOutputItemSet() ) );
555*b1cdbd2cSJim Jagielski aNewAttr.Put(*pDlg->GetOutputItemSet());
556*b1cdbd2cSJim Jagielski }
557*b1cdbd2cSJim Jagielski delete( pDlg );
558*b1cdbd2cSJim Jagielski if(RET_OK != nRet)
559*b1cdbd2cSJim Jagielski return;
560*b1cdbd2cSJim Jagielski }
561*b1cdbd2cSJim Jagielski else
562*b1cdbd2cSJim Jagielski aNewAttr.Put(*pArgs);
563*b1cdbd2cSJim Jagielski break;
564*b1cdbd2cSJim Jagielski }
565*b1cdbd2cSJim Jagielski
566*b1cdbd2cSJim Jagielski case SID_AUTOSPELL_CHECK:
567*b1cdbd2cSJim Jagielski {
568*b1cdbd2cSJim Jagielski rView.ExecuteSlot(rReq);
569*b1cdbd2cSJim Jagielski break;
570*b1cdbd2cSJim Jagielski }
571*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LEFT_TO_RIGHT:
572*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_RIGHT_TO_LEFT:
573*b1cdbd2cSJim Jagielski {
574*b1cdbd2cSJim Jagielski sal_Bool bLeftToRight = nSlot == SID_ATTR_PARA_LEFT_TO_RIGHT;
575*b1cdbd2cSJim Jagielski
576*b1cdbd2cSJim Jagielski const SfxPoolItem* pPoolItem;
577*b1cdbd2cSJim Jagielski if( pNewAttrs && SFX_ITEM_SET == pNewAttrs->GetItemState( nSlot, sal_True, &pPoolItem ) )
578*b1cdbd2cSJim Jagielski {
579*b1cdbd2cSJim Jagielski if( !( (SfxBoolItem*)pPoolItem)->GetValue() )
580*b1cdbd2cSJim Jagielski bLeftToRight = !bLeftToRight;
581*b1cdbd2cSJim Jagielski }
582*b1cdbd2cSJim Jagielski SfxItemSet aAttr( *aNewAttr.GetPool(),
583*b1cdbd2cSJim Jagielski EE_PARA_JUST, EE_PARA_JUST,
584*b1cdbd2cSJim Jagielski EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR,
585*b1cdbd2cSJim Jagielski 0 );
586*b1cdbd2cSJim Jagielski
587*b1cdbd2cSJim Jagielski sal_uInt16 nAdjust = SVX_ADJUST_LEFT;
588*b1cdbd2cSJim Jagielski if( SFX_ITEM_ON == aEditAttr.GetItemState(EE_PARA_JUST, sal_True, &pPoolItem ) )
589*b1cdbd2cSJim Jagielski nAdjust = ( (SvxAdjustItem*)pPoolItem)->GetEnumValue();
590*b1cdbd2cSJim Jagielski
591*b1cdbd2cSJim Jagielski if( bLeftToRight )
592*b1cdbd2cSJim Jagielski {
593*b1cdbd2cSJim Jagielski aAttr.Put( SvxFrameDirectionItem( FRMDIR_HORI_LEFT_TOP, EE_PARA_WRITINGDIR ) );
594*b1cdbd2cSJim Jagielski if( nAdjust == SVX_ADJUST_RIGHT )
595*b1cdbd2cSJim Jagielski aAttr.Put( SvxAdjustItem( SVX_ADJUST_LEFT, EE_PARA_JUST ) );
596*b1cdbd2cSJim Jagielski }
597*b1cdbd2cSJim Jagielski else
598*b1cdbd2cSJim Jagielski {
599*b1cdbd2cSJim Jagielski aAttr.Put( SvxFrameDirectionItem( FRMDIR_HORI_RIGHT_TOP, EE_PARA_WRITINGDIR ) );
600*b1cdbd2cSJim Jagielski if( nAdjust == SVX_ADJUST_LEFT )
601*b1cdbd2cSJim Jagielski aAttr.Put( SvxAdjustItem( SVX_ADJUST_RIGHT, EE_PARA_JUST ) );
602*b1cdbd2cSJim Jagielski }
603*b1cdbd2cSJim Jagielski pOLV->SetAttribs(aAttr);
604*b1cdbd2cSJim Jagielski break;
605*b1cdbd2cSJim Jagielski }
606*b1cdbd2cSJim Jagielski }
607*b1cdbd2cSJim Jagielski
608*b1cdbd2cSJim Jagielski if(nEEWhich && pNewAttrs)
609*b1cdbd2cSJim Jagielski aNewAttr.Put(pNewAttrs->Get(nWhich), nEEWhich);
610*b1cdbd2cSJim Jagielski
611*b1cdbd2cSJim Jagielski Rectangle aNullRect;
612*b1cdbd2cSJim Jagielski Rectangle aOutRect = pOLV->GetOutputArea();
613*b1cdbd2cSJim Jagielski if (aNullRect != aOutRect)
614*b1cdbd2cSJim Jagielski pOLV->SetAttribs(aNewAttr);
615*b1cdbd2cSJim Jagielski
616*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetBindings().InvalidateAll(sal_False);
617*b1cdbd2cSJim Jagielski if ( pOLV->GetOutliner()->IsModified() )
618*b1cdbd2cSJim Jagielski rView.GetWrtShell().SetModified();
619*b1cdbd2cSJim Jagielski
620*b1cdbd2cSJim Jagielski }
621*b1cdbd2cSJim Jagielski
GetState(SfxItemSet & rSet)622*b1cdbd2cSJim Jagielski void SwAnnotationShell::GetState(SfxItemSet& rSet)
623*b1cdbd2cSJim Jagielski {
624*b1cdbd2cSJim Jagielski //TODO: clean this up!!!
625*b1cdbd2cSJim Jagielski // FN_SET_SUPER_SCRIPT
626*b1cdbd2cSJim Jagielski //SID_ATTR_PARA_ADJUST
627*b1cdbd2cSJim Jagielski //SID_ATTR_PARA_ADJUST_BLOCK
628*b1cdbd2cSJim Jagielski
629*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
630*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
631*b1cdbd2cSJim Jagielski return;
632*b1cdbd2cSJim Jagielski
633*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
634*b1cdbd2cSJim Jagielski SfxItemSet aEditAttr(pOLV->GetAttribs());
635*b1cdbd2cSJim Jagielski
636*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
637*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
638*b1cdbd2cSJim Jagielski while(nWhich)
639*b1cdbd2cSJim Jagielski {
640*b1cdbd2cSJim Jagielski sal_uInt16 nEEWhich = 0;
641*b1cdbd2cSJim Jagielski sal_uInt16 nSlotId = GetPool().GetSlotId( nWhich );
642*b1cdbd2cSJim Jagielski switch( nSlotId )
643*b1cdbd2cSJim Jagielski {
644*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LRSPACE:
645*b1cdbd2cSJim Jagielski {
646*b1cdbd2cSJim Jagielski SfxItemState eState = aEditAttr.GetItemState( EE_PARA_LRSPACE );
647*b1cdbd2cSJim Jagielski if( eState >= SFX_ITEM_DEFAULT )
648*b1cdbd2cSJim Jagielski {
649*b1cdbd2cSJim Jagielski SvxLRSpaceItem aLR = ( (const SvxLRSpaceItem&) aEditAttr.Get( EE_PARA_LRSPACE ) );
650*b1cdbd2cSJim Jagielski aLR.SetWhich(SID_ATTR_PARA_LRSPACE);
651*b1cdbd2cSJim Jagielski rSet.Put(aLR);
652*b1cdbd2cSJim Jagielski }
653*b1cdbd2cSJim Jagielski else
654*b1cdbd2cSJim Jagielski rSet.InvalidateItem(nSlotId);
655*b1cdbd2cSJim Jagielski }
656*b1cdbd2cSJim Jagielski break;
657*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE:
658*b1cdbd2cSJim Jagielski {
659*b1cdbd2cSJim Jagielski SfxItemState eState = aEditAttr.GetItemState( EE_PARA_SBL );
660*b1cdbd2cSJim Jagielski if( eState >= SFX_ITEM_DEFAULT )
661*b1cdbd2cSJim Jagielski {
662*b1cdbd2cSJim Jagielski SvxLineSpacingItem aLR = ( (const SvxLineSpacingItem&) aEditAttr.Get( EE_PARA_SBL ) );
663*b1cdbd2cSJim Jagielski rSet.Put(aLR);
664*b1cdbd2cSJim Jagielski }
665*b1cdbd2cSJim Jagielski else
666*b1cdbd2cSJim Jagielski rSet.InvalidateItem(nSlotId);
667*b1cdbd2cSJim Jagielski }
668*b1cdbd2cSJim Jagielski break;
669*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ULSPACE:
670*b1cdbd2cSJim Jagielski {
671*b1cdbd2cSJim Jagielski SfxItemState eState = aEditAttr.GetItemState( EE_PARA_ULSPACE );
672*b1cdbd2cSJim Jagielski if( eState >= SFX_ITEM_DEFAULT )
673*b1cdbd2cSJim Jagielski {
674*b1cdbd2cSJim Jagielski SvxULSpaceItem aULSpace = (const SvxULSpaceItem&) aEditAttr.Get( EE_PARA_ULSPACE );
675*b1cdbd2cSJim Jagielski aULSpace.SetWhich(SID_ATTR_PARA_ULSPACE);
676*b1cdbd2cSJim Jagielski rSet.Put(aULSpace);
677*b1cdbd2cSJim Jagielski }
678*b1cdbd2cSJim Jagielski else
679*b1cdbd2cSJim Jagielski rSet.InvalidateItem(nSlotId);
680*b1cdbd2cSJim Jagielski }
681*b1cdbd2cSJim Jagielski break;
682*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_FONT:
683*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_FONTHEIGHT:
684*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_WEIGHT:
685*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_POSTURE:
686*b1cdbd2cSJim Jagielski {
687*b1cdbd2cSJim Jagielski if ( pOLV )
688*b1cdbd2cSJim Jagielski {
689*b1cdbd2cSJim Jagielski sal_uInt16 nScriptType = pOLV->GetSelectedScriptType();
690*b1cdbd2cSJim Jagielski SfxItemPool* pSecondPool = aEditAttr.GetPool()->GetSecondaryPool();
691*b1cdbd2cSJim Jagielski if( !pSecondPool )
692*b1cdbd2cSJim Jagielski pSecondPool = aEditAttr.GetPool();
693*b1cdbd2cSJim Jagielski SvxScriptSetItem aSetItem( nSlotId, *pSecondPool );
694*b1cdbd2cSJim Jagielski aSetItem.GetItemSet().Put( aEditAttr, sal_False );
695*b1cdbd2cSJim Jagielski const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType );
696*b1cdbd2cSJim Jagielski if( pI )
697*b1cdbd2cSJim Jagielski rSet.Put( *pI, nWhich );
698*b1cdbd2cSJim Jagielski else
699*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
700*b1cdbd2cSJim Jagielski }
701*b1cdbd2cSJim Jagielski else
702*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
703*b1cdbd2cSJim Jagielski }
704*b1cdbd2cSJim Jagielski break;
705*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_COLOR: nEEWhich = EE_CHAR_COLOR; break;
706*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_UNDERLINE: nEEWhich = EE_CHAR_UNDERLINE;break;
707*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_OVERLINE: nEEWhich = EE_CHAR_OVERLINE;break;
708*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_CONTOUR: nEEWhich = EE_CHAR_OUTLINE; break;
709*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_SHADOWED: nEEWhich = EE_CHAR_SHADOW;break;
710*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_STRIKEOUT: nEEWhich = EE_CHAR_STRIKEOUT;break;
711*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_LANGUAGE : nEEWhich = EE_CHAR_LANGUAGE;break;
712*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_ESCAPEMENT: nEEWhich = EE_CHAR_ESCAPEMENT;break;
713*b1cdbd2cSJim Jagielski case SID_ATTR_CHAR_KERNING: nEEWhich = EE_CHAR_KERNING;break;
714*b1cdbd2cSJim Jagielski case FN_SET_SUPER_SCRIPT:
715*b1cdbd2cSJim Jagielski case FN_SET_SUB_SCRIPT:
716*b1cdbd2cSJim Jagielski {
717*b1cdbd2cSJim Jagielski sal_uInt16 nEsc = 0;
718*b1cdbd2cSJim Jagielski const SfxPoolItem *pEscItem = 0;
719*b1cdbd2cSJim Jagielski if (nWhich==FN_SET_SUPER_SCRIPT)
720*b1cdbd2cSJim Jagielski nEsc = SVX_ESCAPEMENT_SUPERSCRIPT;
721*b1cdbd2cSJim Jagielski else
722*b1cdbd2cSJim Jagielski nEsc = SVX_ESCAPEMENT_SUBSCRIPT;
723*b1cdbd2cSJim Jagielski
724*b1cdbd2cSJim Jagielski if( !pEscItem )
725*b1cdbd2cSJim Jagielski pEscItem = &aEditAttr.Get( EE_CHAR_ESCAPEMENT );
726*b1cdbd2cSJim Jagielski
727*b1cdbd2cSJim Jagielski if( nEsc == ((const SvxEscapementItem*)pEscItem)->GetEnumValue() )
728*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( nWhich, sal_True ));
729*b1cdbd2cSJim Jagielski else
730*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
731*b1cdbd2cSJim Jagielski break;
732*b1cdbd2cSJim Jagielski }
733*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_LEFT:
734*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_RIGHT:
735*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_CENTER:
736*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_ADJUST_BLOCK:
737*b1cdbd2cSJim Jagielski {
738*b1cdbd2cSJim Jagielski const SfxPoolItem *pAdjust = 0;
739*b1cdbd2cSJim Jagielski int eAdjust = 0;
740*b1cdbd2cSJim Jagielski
741*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_ADJUST_LEFT)
742*b1cdbd2cSJim Jagielski eAdjust = SVX_ADJUST_LEFT;
743*b1cdbd2cSJim Jagielski else
744*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_ADJUST_RIGHT)
745*b1cdbd2cSJim Jagielski eAdjust = SVX_ADJUST_RIGHT;
746*b1cdbd2cSJim Jagielski else
747*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_ADJUST_CENTER)
748*b1cdbd2cSJim Jagielski eAdjust = SVX_ADJUST_CENTER;
749*b1cdbd2cSJim Jagielski else
750*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_ADJUST_BLOCK)
751*b1cdbd2cSJim Jagielski eAdjust = SVX_ADJUST_BLOCK;
752*b1cdbd2cSJim Jagielski
753*b1cdbd2cSJim Jagielski if( !pAdjust )
754*b1cdbd2cSJim Jagielski aEditAttr.GetItemState( EE_PARA_JUST, sal_False, &pAdjust);
755*b1cdbd2cSJim Jagielski
756*b1cdbd2cSJim Jagielski if( !pAdjust || IsInvalidItem( pAdjust ))
757*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nSlotId ), nSlotId = 0;
758*b1cdbd2cSJim Jagielski else
759*b1cdbd2cSJim Jagielski {
760*b1cdbd2cSJim Jagielski if ( eAdjust == ((const SvxAdjustItem*)pAdjust)->GetAdjust())
761*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( nWhich, sal_True ));
762*b1cdbd2cSJim Jagielski else
763*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
764*b1cdbd2cSJim Jagielski }
765*b1cdbd2cSJim Jagielski break;
766*b1cdbd2cSJim Jagielski }
767*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_10:
768*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_15:
769*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LINESPACE_20:
770*b1cdbd2cSJim Jagielski {
771*b1cdbd2cSJim Jagielski const SfxPoolItem *pLSpace = 0;
772*b1cdbd2cSJim Jagielski int nLSpace = 0;
773*b1cdbd2cSJim Jagielski
774*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_LINESPACE_10)
775*b1cdbd2cSJim Jagielski nLSpace = 100;
776*b1cdbd2cSJim Jagielski else
777*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_LINESPACE_15)
778*b1cdbd2cSJim Jagielski nLSpace = 150;
779*b1cdbd2cSJim Jagielski else
780*b1cdbd2cSJim Jagielski if (nWhich==SID_ATTR_PARA_LINESPACE_20)
781*b1cdbd2cSJim Jagielski nLSpace = 200;
782*b1cdbd2cSJim Jagielski
783*b1cdbd2cSJim Jagielski if( !pLSpace )
784*b1cdbd2cSJim Jagielski aEditAttr.GetItemState( EE_PARA_SBL, sal_False, &pLSpace );
785*b1cdbd2cSJim Jagielski
786*b1cdbd2cSJim Jagielski if( !pLSpace || IsInvalidItem( pLSpace ))
787*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nSlotId ), nSlotId = 0;
788*b1cdbd2cSJim Jagielski else
789*b1cdbd2cSJim Jagielski {
790*b1cdbd2cSJim Jagielski if( nLSpace == ((const SvxLineSpacingItem*)pLSpace)->GetPropLineSpace() )
791*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( nWhich, sal_True ));
792*b1cdbd2cSJim Jagielski else
793*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
794*b1cdbd2cSJim Jagielski }
795*b1cdbd2cSJim Jagielski break;
796*b1cdbd2cSJim Jagielski }
797*b1cdbd2cSJim Jagielski case SID_AUTOSPELL_CHECK:
798*b1cdbd2cSJim Jagielski {
799*b1cdbd2cSJim Jagielski const SfxPoolItem* pState = rView.GetSlotState(nWhich);
800*b1cdbd2cSJim Jagielski if (pState)
801*b1cdbd2cSJim Jagielski rSet.Put(SfxBoolItem(nWhich, ((const SfxBoolItem*)pState)->GetValue()));
802*b1cdbd2cSJim Jagielski else
803*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
804*b1cdbd2cSJim Jagielski break;
805*b1cdbd2cSJim Jagielski }
806*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_LEFT_TO_RIGHT:
807*b1cdbd2cSJim Jagielski case SID_ATTR_PARA_RIGHT_TO_LEFT:
808*b1cdbd2cSJim Jagielski {
809*b1cdbd2cSJim Jagielski if ( !SvtLanguageOptions().IsCTLFontEnabled() )
810*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
811*b1cdbd2cSJim Jagielski else
812*b1cdbd2cSJim Jagielski {
813*b1cdbd2cSJim Jagielski if(pOLV->GetOutliner() && pOLV->GetOutliner()->IsVertical())
814*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
815*b1cdbd2cSJim Jagielski else
816*b1cdbd2cSJim Jagielski {
817*b1cdbd2cSJim Jagielski sal_Bool bFlag = sal_False;
818*b1cdbd2cSJim Jagielski switch( ( ( (SvxFrameDirectionItem&) aEditAttr.Get( EE_PARA_WRITINGDIR ) ) ).GetValue() )
819*b1cdbd2cSJim Jagielski {
820*b1cdbd2cSJim Jagielski case FRMDIR_HORI_LEFT_TOP:
821*b1cdbd2cSJim Jagielski {
822*b1cdbd2cSJim Jagielski bFlag = nWhich == SID_ATTR_PARA_LEFT_TO_RIGHT;
823*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( nWhich, bFlag ));
824*b1cdbd2cSJim Jagielski break;
825*b1cdbd2cSJim Jagielski }
826*b1cdbd2cSJim Jagielski case FRMDIR_HORI_RIGHT_TOP:
827*b1cdbd2cSJim Jagielski {
828*b1cdbd2cSJim Jagielski bFlag = nWhich != SID_ATTR_PARA_LEFT_TO_RIGHT;
829*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( nWhich, bFlag ));
830*b1cdbd2cSJim Jagielski break;
831*b1cdbd2cSJim Jagielski }
832*b1cdbd2cSJim Jagielski }
833*b1cdbd2cSJim Jagielski }
834*b1cdbd2cSJim Jagielski }
835*b1cdbd2cSJim Jagielski }
836*b1cdbd2cSJim Jagielski break;
837*b1cdbd2cSJim Jagielski case SID_INSERT_RLM :
838*b1cdbd2cSJim Jagielski case SID_INSERT_LRM :
839*b1cdbd2cSJim Jagielski case SID_INSERT_ZWNBSP :
840*b1cdbd2cSJim Jagielski case SID_INSERT_ZWSP:
841*b1cdbd2cSJim Jagielski {
842*b1cdbd2cSJim Jagielski SvtCTLOptions aCTLOptions;
843*b1cdbd2cSJim Jagielski sal_Bool bEnabled = aCTLOptions.IsCTLFontEnabled();
844*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetBindings().SetVisibleState( nWhich, bEnabled );
845*b1cdbd2cSJim Jagielski if(!bEnabled)
846*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
847*b1cdbd2cSJim Jagielski }
848*b1cdbd2cSJim Jagielski break;
849*b1cdbd2cSJim Jagielski default:
850*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
851*b1cdbd2cSJim Jagielski break;
852*b1cdbd2cSJim Jagielski }
853*b1cdbd2cSJim Jagielski
854*b1cdbd2cSJim Jagielski if(nEEWhich)
855*b1cdbd2cSJim Jagielski {
856*b1cdbd2cSJim Jagielski rSet.Put(aEditAttr.Get(nEEWhich, sal_True), nWhich);
857*b1cdbd2cSJim Jagielski if(nEEWhich == EE_CHAR_KERNING)
858*b1cdbd2cSJim Jagielski {
859*b1cdbd2cSJim Jagielski SfxItemState eState = aEditAttr.GetItemState( EE_CHAR_KERNING, sal_True );
860*b1cdbd2cSJim Jagielski if ( eState == SFX_ITEM_DONTCARE )
861*b1cdbd2cSJim Jagielski {
862*b1cdbd2cSJim Jagielski rSet.InvalidateItem(EE_CHAR_KERNING);
863*b1cdbd2cSJim Jagielski }
864*b1cdbd2cSJim Jagielski }
865*b1cdbd2cSJim Jagielski }
866*b1cdbd2cSJim Jagielski
867*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED)
868*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
869*b1cdbd2cSJim Jagielski
870*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
871*b1cdbd2cSJim Jagielski }
872*b1cdbd2cSJim Jagielski }
873*b1cdbd2cSJim Jagielski
ExecSearch(SfxRequest & rReq,sal_Bool bNoMessage)874*b1cdbd2cSJim Jagielski void SwAnnotationShell::ExecSearch(SfxRequest& rReq, sal_Bool bNoMessage)
875*b1cdbd2cSJim Jagielski {
876*b1cdbd2cSJim Jagielski rView.ExecSearch(rReq,bNoMessage);
877*b1cdbd2cSJim Jagielski }
878*b1cdbd2cSJim Jagielski
StateSearch(SfxItemSet & rSet)879*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateSearch(SfxItemSet &rSet)
880*b1cdbd2cSJim Jagielski {
881*b1cdbd2cSJim Jagielski rView.StateSearch(rSet);
882*b1cdbd2cSJim Jagielski }
883*b1cdbd2cSJim Jagielski
ExecClpbrd(SfxRequest & rReq)884*b1cdbd2cSJim Jagielski void SwAnnotationShell::ExecClpbrd(SfxRequest &rReq)
885*b1cdbd2cSJim Jagielski {
886*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
887*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
888*b1cdbd2cSJim Jagielski return;
889*b1cdbd2cSJim Jagielski
890*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
891*b1cdbd2cSJim Jagielski SfxItemSet aEditAttr(pOLV->GetAttribs());
892*b1cdbd2cSJim Jagielski SfxItemSet aNewAttr(*aEditAttr.GetPool(), aEditAttr.GetRanges());
893*b1cdbd2cSJim Jagielski
894*b1cdbd2cSJim Jagielski long aOldHeight = pPostItMgr->GetActiveSidebarWin()->GetPostItTextHeight();
895*b1cdbd2cSJim Jagielski sal_uInt16 nSlot = rReq.GetSlot();
896*b1cdbd2cSJim Jagielski switch (nSlot)
897*b1cdbd2cSJim Jagielski {
898*b1cdbd2cSJim Jagielski case SID_CUT:
899*b1cdbd2cSJim Jagielski if ( (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED) && pOLV->HasSelection() )
900*b1cdbd2cSJim Jagielski pOLV->Cut();
901*b1cdbd2cSJim Jagielski break;
902*b1cdbd2cSJim Jagielski case SID_COPY:
903*b1cdbd2cSJim Jagielski if( pOLV->HasSelection() )
904*b1cdbd2cSJim Jagielski pOLV->Copy();
905*b1cdbd2cSJim Jagielski break;
906*b1cdbd2cSJim Jagielski case SID_PASTE:
907*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
908*b1cdbd2cSJim Jagielski pOLV->Paste();
909*b1cdbd2cSJim Jagielski break;
910*b1cdbd2cSJim Jagielski case SID_PASTE_SPECIAL:
911*b1cdbd2cSJim Jagielski {
912*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
913*b1cdbd2cSJim Jagielski {
914*b1cdbd2cSJim Jagielski SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
915*b1cdbd2cSJim Jagielski SfxAbstractPasteDialog* pDlg = pFact->CreatePasteDialog( &rView.GetEditWin() );
916*b1cdbd2cSJim Jagielski
917*b1cdbd2cSJim Jagielski pDlg->Insert( SOT_FORMAT_STRING, aEmptyStr );
918*b1cdbd2cSJim Jagielski pDlg->Insert( SOT_FORMAT_RTF, aEmptyStr );
919*b1cdbd2cSJim Jagielski
920*b1cdbd2cSJim Jagielski TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( &rView.GetEditWin() ) );
921*b1cdbd2cSJim Jagielski
922*b1cdbd2cSJim Jagielski sal_uLong nFormat = pDlg->GetFormat( aDataHelper.GetTransferable() );
923*b1cdbd2cSJim Jagielski
924*b1cdbd2cSJim Jagielski if (nFormat > 0)
925*b1cdbd2cSJim Jagielski {
926*b1cdbd2cSJim Jagielski if (nFormat == SOT_FORMAT_STRING)
927*b1cdbd2cSJim Jagielski pOLV->Paste();
928*b1cdbd2cSJim Jagielski else
929*b1cdbd2cSJim Jagielski pOLV->PasteSpecial();
930*b1cdbd2cSJim Jagielski }
931*b1cdbd2cSJim Jagielski delete pDlg;
932*b1cdbd2cSJim Jagielski }
933*b1cdbd2cSJim Jagielski break;
934*b1cdbd2cSJim Jagielski }
935*b1cdbd2cSJim Jagielski case SID_CLIPBOARD_FORMAT_ITEMS:
936*b1cdbd2cSJim Jagielski {
937*b1cdbd2cSJim Jagielski sal_uLong nFormat = 0;
938*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem;
939*b1cdbd2cSJim Jagielski if ( rReq.GetArgs() && rReq.GetArgs()->GetItemState(nSlot, sal_True, &pItem) == SFX_ITEM_SET &&
940*b1cdbd2cSJim Jagielski pItem->ISA(SfxUInt32Item) )
941*b1cdbd2cSJim Jagielski {
942*b1cdbd2cSJim Jagielski nFormat = ((const SfxUInt32Item*)pItem)->GetValue();
943*b1cdbd2cSJim Jagielski }
944*b1cdbd2cSJim Jagielski
945*b1cdbd2cSJim Jagielski if ( nFormat )
946*b1cdbd2cSJim Jagielski {
947*b1cdbd2cSJim Jagielski if (SOT_FORMAT_STRING == nFormat)
948*b1cdbd2cSJim Jagielski pOLV->Paste();
949*b1cdbd2cSJim Jagielski else
950*b1cdbd2cSJim Jagielski pOLV->PasteSpecial();
951*b1cdbd2cSJim Jagielski }
952*b1cdbd2cSJim Jagielski break;
953*b1cdbd2cSJim Jagielski }
954*b1cdbd2cSJim Jagielski }
955*b1cdbd2cSJim Jagielski pPostItMgr->GetActiveSidebarWin()->ResizeIfNeccessary(aOldHeight,pPostItMgr->GetActiveSidebarWin()->GetPostItTextHeight());
956*b1cdbd2cSJim Jagielski }
957*b1cdbd2cSJim Jagielski
StateClpbrd(SfxItemSet & rSet)958*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateClpbrd(SfxItemSet &rSet)
959*b1cdbd2cSJim Jagielski {
960*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
961*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
962*b1cdbd2cSJim Jagielski return;
963*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
964*b1cdbd2cSJim Jagielski
965*b1cdbd2cSJim Jagielski TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( &rView.GetEditWin() ) );
966*b1cdbd2cSJim Jagielski bool bPastePossible = ( aDataHelper.HasFormat( SOT_FORMAT_STRING ) || aDataHelper.HasFormat( SOT_FORMAT_RTF ) );
967*b1cdbd2cSJim Jagielski bPastePossible = bPastePossible && (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED);
968*b1cdbd2cSJim Jagielski
969*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
970*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
971*b1cdbd2cSJim Jagielski
972*b1cdbd2cSJim Jagielski while(nWhich)
973*b1cdbd2cSJim Jagielski {
974*b1cdbd2cSJim Jagielski switch(nWhich)
975*b1cdbd2cSJim Jagielski {
976*b1cdbd2cSJim Jagielski case SID_CUT:
977*b1cdbd2cSJim Jagielski {
978*b1cdbd2cSJim Jagielski if ( (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED) || !pOLV->HasSelection() )
979*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
980*b1cdbd2cSJim Jagielski }
981*b1cdbd2cSJim Jagielski case SID_COPY:
982*b1cdbd2cSJim Jagielski {
983*b1cdbd2cSJim Jagielski if( !pOLV->HasSelection() )
984*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
985*b1cdbd2cSJim Jagielski break;
986*b1cdbd2cSJim Jagielski }
987*b1cdbd2cSJim Jagielski case SID_PASTE:
988*b1cdbd2cSJim Jagielski case SID_PASTE_SPECIAL:
989*b1cdbd2cSJim Jagielski {
990*b1cdbd2cSJim Jagielski if( !bPastePossible )
991*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
992*b1cdbd2cSJim Jagielski break;
993*b1cdbd2cSJim Jagielski }
994*b1cdbd2cSJim Jagielski case SID_CLIPBOARD_FORMAT_ITEMS:
995*b1cdbd2cSJim Jagielski {
996*b1cdbd2cSJim Jagielski if ( bPastePossible )
997*b1cdbd2cSJim Jagielski {
998*b1cdbd2cSJim Jagielski SvxClipboardFmtItem aFormats( SID_CLIPBOARD_FORMAT_ITEMS );
999*b1cdbd2cSJim Jagielski if ( aDataHelper.HasFormat( SOT_FORMAT_RTF ) )
1000*b1cdbd2cSJim Jagielski aFormats.AddClipbrdFormat( SOT_FORMAT_RTF );
1001*b1cdbd2cSJim Jagielski //if ( aDataHelper.HasFormat( SOT_FORMAT_STRING ) )
1002*b1cdbd2cSJim Jagielski aFormats.AddClipbrdFormat( SOT_FORMAT_STRING );
1003*b1cdbd2cSJim Jagielski rSet.Put( aFormats );
1004*b1cdbd2cSJim Jagielski }
1005*b1cdbd2cSJim Jagielski else
1006*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1007*b1cdbd2cSJim Jagielski break;
1008*b1cdbd2cSJim Jagielski }
1009*b1cdbd2cSJim Jagielski }
1010*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1011*b1cdbd2cSJim Jagielski }
1012*b1cdbd2cSJim Jagielski }
1013*b1cdbd2cSJim Jagielski
StateStatusLine(SfxItemSet & rSet)1014*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateStatusLine(SfxItemSet &rSet)
1015*b1cdbd2cSJim Jagielski {
1016*b1cdbd2cSJim Jagielski SfxWhichIter aIter( rSet );
1017*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1018*b1cdbd2cSJim Jagielski
1019*b1cdbd2cSJim Jagielski while( nWhich )
1020*b1cdbd2cSJim Jagielski {
1021*b1cdbd2cSJim Jagielski switch( nWhich )
1022*b1cdbd2cSJim Jagielski {
1023*b1cdbd2cSJim Jagielski case FN_STAT_SELMODE:
1024*b1cdbd2cSJim Jagielski {
1025*b1cdbd2cSJim Jagielski rSet.Put(SfxUInt16Item(FN_STAT_SELMODE, 0));
1026*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1027*b1cdbd2cSJim Jagielski break;
1028*b1cdbd2cSJim Jagielski }
1029*b1cdbd2cSJim Jagielski case FN_STAT_TEMPLATE:
1030*b1cdbd2cSJim Jagielski {
1031*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1032*b1cdbd2cSJim Jagielski break;
1033*b1cdbd2cSJim Jagielski }
1034*b1cdbd2cSJim Jagielski }
1035*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1036*b1cdbd2cSJim Jagielski }
1037*b1cdbd2cSJim Jagielski }
1038*b1cdbd2cSJim Jagielski
StateInsert(SfxItemSet & rSet)1039*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateInsert(SfxItemSet &rSet)
1040*b1cdbd2cSJim Jagielski {
1041*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1042*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1043*b1cdbd2cSJim Jagielski return;
1044*b1cdbd2cSJim Jagielski
1045*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
1046*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
1047*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1048*b1cdbd2cSJim Jagielski
1049*b1cdbd2cSJim Jagielski while(nWhich)
1050*b1cdbd2cSJim Jagielski {
1051*b1cdbd2cSJim Jagielski switch(nWhich)
1052*b1cdbd2cSJim Jagielski {
1053*b1cdbd2cSJim Jagielski case SID_HYPERLINK_GETLINK:
1054*b1cdbd2cSJim Jagielski {
1055*b1cdbd2cSJim Jagielski SvxHyperlinkItem aHLinkItem;
1056*b1cdbd2cSJim Jagielski aHLinkItem.SetInsertMode(HLINK_FIELD);
1057*b1cdbd2cSJim Jagielski
1058*b1cdbd2cSJim Jagielski const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
1059*b1cdbd2cSJim Jagielski
1060*b1cdbd2cSJim Jagielski if (pFieldItem)
1061*b1cdbd2cSJim Jagielski {
1062*b1cdbd2cSJim Jagielski const SvxFieldData* pField = pFieldItem->GetField();
1063*b1cdbd2cSJim Jagielski
1064*b1cdbd2cSJim Jagielski if (pField->ISA(SvxURLField))
1065*b1cdbd2cSJim Jagielski {
1066*b1cdbd2cSJim Jagielski aHLinkItem.SetName(((const SvxURLField*) pField)->GetRepresentation());
1067*b1cdbd2cSJim Jagielski aHLinkItem.SetURL(((const SvxURLField*) pField)->GetURL());
1068*b1cdbd2cSJim Jagielski aHLinkItem.SetTargetFrame(((const SvxURLField*) pField)->GetTargetFrame());
1069*b1cdbd2cSJim Jagielski }
1070*b1cdbd2cSJim Jagielski }
1071*b1cdbd2cSJim Jagielski else
1072*b1cdbd2cSJim Jagielski {
1073*b1cdbd2cSJim Jagielski String sSel(pOLV->GetSelected());
1074*b1cdbd2cSJim Jagielski sSel.Erase(255);
1075*b1cdbd2cSJim Jagielski sSel.EraseTrailingChars();
1076*b1cdbd2cSJim Jagielski aHLinkItem.SetName(sSel);
1077*b1cdbd2cSJim Jagielski }
1078*b1cdbd2cSJim Jagielski
1079*b1cdbd2cSJim Jagielski sal_uInt16 nHtmlMode = ::GetHtmlMode(rView.GetDocShell());
1080*b1cdbd2cSJim Jagielski aHLinkItem.SetInsertMode((SvxLinkInsertMode)(aHLinkItem.GetInsertMode() |
1081*b1cdbd2cSJim Jagielski ((nHtmlMode & HTMLMODE_ON) != 0 ? HLINK_HTMLMODE : 0)));
1082*b1cdbd2cSJim Jagielski
1083*b1cdbd2cSJim Jagielski rSet.Put(aHLinkItem);
1084*b1cdbd2cSJim Jagielski }
1085*b1cdbd2cSJim Jagielski break;
1086*b1cdbd2cSJim Jagielski }
1087*b1cdbd2cSJim Jagielski
1088*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED)
1089*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1090*b1cdbd2cSJim Jagielski
1091*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1092*b1cdbd2cSJim Jagielski }
1093*b1cdbd2cSJim Jagielski }
1094*b1cdbd2cSJim Jagielski
1095*b1cdbd2cSJim Jagielski
NoteExec(SfxRequest & rReq)1096*b1cdbd2cSJim Jagielski void SwAnnotationShell::NoteExec(SfxRequest &rReq)
1097*b1cdbd2cSJim Jagielski {
1098*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1099*b1cdbd2cSJim Jagielski if ( !pPostItMgr )
1100*b1cdbd2cSJim Jagielski return;
1101*b1cdbd2cSJim Jagielski
1102*b1cdbd2cSJim Jagielski sal_uInt16 nSlot = rReq.GetSlot();
1103*b1cdbd2cSJim Jagielski switch (nSlot)
1104*b1cdbd2cSJim Jagielski {
1105*b1cdbd2cSJim Jagielski case FN_REPLY:
1106*b1cdbd2cSJim Jagielski case FN_POSTIT:
1107*b1cdbd2cSJim Jagielski case FN_DELETE_COMMENT:
1108*b1cdbd2cSJim Jagielski if ( pPostItMgr->HasActiveSidebarWin() )
1109*b1cdbd2cSJim Jagielski pPostItMgr->GetActiveSidebarWin()->ExecuteCommand(nSlot);
1110*b1cdbd2cSJim Jagielski break;
1111*b1cdbd2cSJim Jagielski
1112*b1cdbd2cSJim Jagielski case FN_DELETE_ALL_NOTES:
1113*b1cdbd2cSJim Jagielski pPostItMgr->Delete();
1114*b1cdbd2cSJim Jagielski break;
1115*b1cdbd2cSJim Jagielski case FN_DELETE_NOTE_AUTHOR:
1116*b1cdbd2cSJim Jagielski {
1117*b1cdbd2cSJim Jagielski SFX_REQUEST_ARG( rReq, pItem, SfxStringItem, nSlot, sal_False);
1118*b1cdbd2cSJim Jagielski if ( pItem )
1119*b1cdbd2cSJim Jagielski pPostItMgr->Delete( pItem->GetValue() );
1120*b1cdbd2cSJim Jagielski break;
1121*b1cdbd2cSJim Jagielski }
1122*b1cdbd2cSJim Jagielski case FN_HIDE_NOTE:
1123*b1cdbd2cSJim Jagielski /*
1124*b1cdbd2cSJim Jagielski if ( Mgr()->GetActiveSidebarWin() == this )
1125*b1cdbd2cSJim Jagielski {
1126*b1cdbd2cSJim Jagielski Mgr()->SetActivePostIt(0);
1127*b1cdbd2cSJim Jagielski // put the cursor back into the document
1128*b1cdbd2cSJim Jagielski SwitchToFieldPos();
1129*b1cdbd2cSJim Jagielski }
1130*b1cdbd2cSJim Jagielski Mgr()->Hide(mpFld);
1131*b1cdbd2cSJim Jagielski */
1132*b1cdbd2cSJim Jagielski break;
1133*b1cdbd2cSJim Jagielski case FN_HIDE_ALL_NOTES:
1134*b1cdbd2cSJim Jagielski pPostItMgr->Hide();
1135*b1cdbd2cSJim Jagielski break;
1136*b1cdbd2cSJim Jagielski case FN_HIDE_NOTE_AUTHOR:
1137*b1cdbd2cSJim Jagielski {
1138*b1cdbd2cSJim Jagielski SFX_REQUEST_ARG( rReq, pItem, SfxStringItem, nSlot, sal_False);
1139*b1cdbd2cSJim Jagielski if ( pItem )
1140*b1cdbd2cSJim Jagielski pPostItMgr->Hide( pItem->GetValue() );
1141*b1cdbd2cSJim Jagielski }
1142*b1cdbd2cSJim Jagielski }
1143*b1cdbd2cSJim Jagielski }
1144*b1cdbd2cSJim Jagielski
GetNoteState(SfxItemSet & rSet)1145*b1cdbd2cSJim Jagielski void SwAnnotationShell::GetNoteState(SfxItemSet &rSet)
1146*b1cdbd2cSJim Jagielski {
1147*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1148*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
1149*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1150*b1cdbd2cSJim Jagielski while(nWhich)
1151*b1cdbd2cSJim Jagielski {
1152*b1cdbd2cSJim Jagielski sal_uInt16 nSlotId = GetPool().GetSlotId( nWhich );
1153*b1cdbd2cSJim Jagielski switch( nSlotId )
1154*b1cdbd2cSJim Jagielski {
1155*b1cdbd2cSJim Jagielski case FN_POSTIT:
1156*b1cdbd2cSJim Jagielski case FN_DELETE_NOTE_AUTHOR:
1157*b1cdbd2cSJim Jagielski case FN_DELETE_ALL_NOTES:
1158*b1cdbd2cSJim Jagielski case FN_HIDE_NOTE:
1159*b1cdbd2cSJim Jagielski case FN_HIDE_NOTE_AUTHOR:
1160*b1cdbd2cSJim Jagielski case FN_HIDE_ALL_NOTES:
1161*b1cdbd2cSJim Jagielski case FN_DELETE_COMMENT:
1162*b1cdbd2cSJim Jagielski {
1163*b1cdbd2cSJim Jagielski if( !pPostItMgr
1164*b1cdbd2cSJim Jagielski || !pPostItMgr->HasActiveAnnotationWin() )
1165*b1cdbd2cSJim Jagielski {
1166*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1167*b1cdbd2cSJim Jagielski }
1168*b1cdbd2cSJim Jagielski break;
1169*b1cdbd2cSJim Jagielski }
1170*b1cdbd2cSJim Jagielski
1171*b1cdbd2cSJim Jagielski case FN_REPLY:
1172*b1cdbd2cSJim Jagielski {
1173*b1cdbd2cSJim Jagielski if ( !pPostItMgr ||
1174*b1cdbd2cSJim Jagielski !pPostItMgr->HasActiveAnnotationWin() )
1175*b1cdbd2cSJim Jagielski {
1176*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1177*b1cdbd2cSJim Jagielski }
1178*b1cdbd2cSJim Jagielski else
1179*b1cdbd2cSJim Jagielski {
1180*b1cdbd2cSJim Jagielski SvtUserOptions aUserOpt;
1181*b1cdbd2cSJim Jagielski String sAuthor;
1182*b1cdbd2cSJim Jagielski if( !(sAuthor = aUserOpt.GetFullName()).Len())
1183*b1cdbd2cSJim Jagielski if( !(sAuthor = aUserOpt.GetID()).Len() )
1184*b1cdbd2cSJim Jagielski sAuthor = String( SW_RES( STR_REDLINE_UNKNOWN_AUTHOR ));
1185*b1cdbd2cSJim Jagielski if (sAuthor == pPostItMgr->GetActiveSidebarWin()->GetAuthor())
1186*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1187*b1cdbd2cSJim Jagielski }
1188*b1cdbd2cSJim Jagielski break;
1189*b1cdbd2cSJim Jagielski }
1190*b1cdbd2cSJim Jagielski default:
1191*b1cdbd2cSJim Jagielski rSet.InvalidateItem( nWhich );
1192*b1cdbd2cSJim Jagielski break;
1193*b1cdbd2cSJim Jagielski }
1194*b1cdbd2cSJim Jagielski
1195*b1cdbd2cSJim Jagielski if (pPostItMgr->HasActiveSidebarWin())
1196*b1cdbd2cSJim Jagielski {
1197*b1cdbd2cSJim Jagielski if ( (pPostItMgr->GetActiveSidebarWin()->IsProtected()) &&
1198*b1cdbd2cSJim Jagielski ( (nSlotId==FN_DELETE_COMMENT) || (nSlotId==FN_REPLY) ) )
1199*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1200*b1cdbd2cSJim Jagielski }
1201*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1202*b1cdbd2cSJim Jagielski }
1203*b1cdbd2cSJim Jagielski }
1204*b1cdbd2cSJim Jagielski
ExecLingu(SfxRequest & rReq)1205*b1cdbd2cSJim Jagielski void SwAnnotationShell::ExecLingu(SfxRequest &rReq)
1206*b1cdbd2cSJim Jagielski {
1207*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1208*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1209*b1cdbd2cSJim Jagielski return;
1210*b1cdbd2cSJim Jagielski
1211*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
1212*b1cdbd2cSJim Jagielski SfxItemSet aEditAttr(pOLV->GetAttribs());
1213*b1cdbd2cSJim Jagielski sal_uInt16 nSlot = rReq.GetSlot();
1214*b1cdbd2cSJim Jagielski SwWrtShell &rSh = rView.GetWrtShell();
1215*b1cdbd2cSJim Jagielski bool bRestoreSelection = false;
1216*b1cdbd2cSJim Jagielski ESelection aOldSelection;
1217*b1cdbd2cSJim Jagielski
1218*b1cdbd2cSJim Jagielski switch (nSlot)
1219*b1cdbd2cSJim Jagielski {
1220*b1cdbd2cSJim Jagielski case SID_LANGUAGE_STATUS:
1221*b1cdbd2cSJim Jagielski {
1222*b1cdbd2cSJim Jagielski aOldSelection = pOLV->GetSelection();
1223*b1cdbd2cSJim Jagielski if (!pOLV->GetEditView().HasSelection())
1224*b1cdbd2cSJim Jagielski {
1225*b1cdbd2cSJim Jagielski bRestoreSelection = true;
1226*b1cdbd2cSJim Jagielski pOLV->GetEditView().SelectCurrentWord();
1227*b1cdbd2cSJim Jagielski }
1228*b1cdbd2cSJim Jagielski
1229*b1cdbd2cSJim Jagielski bRestoreSelection = SwLangHelper::SetLanguageStatus(pOLV,rReq,rView,rSh);
1230*b1cdbd2cSJim Jagielski break;
1231*b1cdbd2cSJim Jagielski }
1232*b1cdbd2cSJim Jagielski case SID_THES:
1233*b1cdbd2cSJim Jagielski {
1234*b1cdbd2cSJim Jagielski String aReplaceText;
1235*b1cdbd2cSJim Jagielski SFX_REQUEST_ARG( rReq, pItem2, SfxStringItem, SID_THES, sal_False );
1236*b1cdbd2cSJim Jagielski if (pItem2)
1237*b1cdbd2cSJim Jagielski aReplaceText = pItem2->GetValue();
1238*b1cdbd2cSJim Jagielski if (aReplaceText.Len() > 0)
1239*b1cdbd2cSJim Jagielski ReplaceTextWithSynonym( pOLV->GetEditView(), aReplaceText );
1240*b1cdbd2cSJim Jagielski break;
1241*b1cdbd2cSJim Jagielski }
1242*b1cdbd2cSJim Jagielski case SID_THESAURUS:
1243*b1cdbd2cSJim Jagielski {
1244*b1cdbd2cSJim Jagielski pOLV->StartThesaurus();
1245*b1cdbd2cSJim Jagielski break;
1246*b1cdbd2cSJim Jagielski }
1247*b1cdbd2cSJim Jagielski case SID_HANGUL_HANJA_CONVERSION:
1248*b1cdbd2cSJim Jagielski pOLV->StartTextConversion( LANGUAGE_KOREAN, LANGUAGE_KOREAN, NULL,
1249*b1cdbd2cSJim Jagielski i18n::TextConversionOption::CHARACTER_BY_CHARACTER, sal_True, sal_False );
1250*b1cdbd2cSJim Jagielski break;
1251*b1cdbd2cSJim Jagielski
1252*b1cdbd2cSJim Jagielski case SID_CHINESE_CONVERSION:
1253*b1cdbd2cSJim Jagielski {
1254*b1cdbd2cSJim Jagielski //open ChineseTranslationDialog
1255*b1cdbd2cSJim Jagielski Reference< XComponentContext > xContext(
1256*b1cdbd2cSJim Jagielski ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
1257*b1cdbd2cSJim Jagielski if(xContext.is())
1258*b1cdbd2cSJim Jagielski {
1259*b1cdbd2cSJim Jagielski Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
1260*b1cdbd2cSJim Jagielski if(xMCF.is())
1261*b1cdbd2cSJim Jagielski {
1262*b1cdbd2cSJim Jagielski Reference< ui::dialogs::XExecutableDialog > xDialog(
1263*b1cdbd2cSJim Jagielski xMCF->createInstanceWithContext(
1264*b1cdbd2cSJim Jagielski rtl::OUString::createFromAscii("com.sun.star.linguistic2.ChineseTranslationDialog")
1265*b1cdbd2cSJim Jagielski , xContext), UNO_QUERY);
1266*b1cdbd2cSJim Jagielski Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
1267*b1cdbd2cSJim Jagielski if( xInit.is() )
1268*b1cdbd2cSJim Jagielski {
1269*b1cdbd2cSJim Jagielski // initialize dialog
1270*b1cdbd2cSJim Jagielski Reference< awt::XWindow > xDialogParentWindow(0);
1271*b1cdbd2cSJim Jagielski Sequence<Any> aSeq(1);
1272*b1cdbd2cSJim Jagielski Any* pArray = aSeq.getArray();
1273*b1cdbd2cSJim Jagielski PropertyValue aParam;
1274*b1cdbd2cSJim Jagielski aParam.Name = rtl::OUString::createFromAscii("ParentWindow");
1275*b1cdbd2cSJim Jagielski aParam.Value <<= makeAny(xDialogParentWindow);
1276*b1cdbd2cSJim Jagielski pArray[0] <<= makeAny(aParam);
1277*b1cdbd2cSJim Jagielski xInit->initialize( aSeq );
1278*b1cdbd2cSJim Jagielski
1279*b1cdbd2cSJim Jagielski //execute dialog
1280*b1cdbd2cSJim Jagielski sal_Int16 nDialogRet = xDialog->execute();
1281*b1cdbd2cSJim Jagielski if( RET_OK == nDialogRet )
1282*b1cdbd2cSJim Jagielski {
1283*b1cdbd2cSJim Jagielski //get some parameters from the dialog
1284*b1cdbd2cSJim Jagielski sal_Bool bToSimplified = sal_True;
1285*b1cdbd2cSJim Jagielski sal_Bool bUseVariants = sal_True;
1286*b1cdbd2cSJim Jagielski sal_Bool bCommonTerms = sal_True;
1287*b1cdbd2cSJim Jagielski Reference< beans::XPropertySet > xProp( xDialog, UNO_QUERY );
1288*b1cdbd2cSJim Jagielski if( xProp.is() )
1289*b1cdbd2cSJim Jagielski {
1290*b1cdbd2cSJim Jagielski try
1291*b1cdbd2cSJim Jagielski {
1292*b1cdbd2cSJim Jagielski xProp->getPropertyValue( C2U("IsDirectionToSimplified") ) >>= bToSimplified;
1293*b1cdbd2cSJim Jagielski xProp->getPropertyValue( C2U("IsUseCharacterVariants") ) >>= bUseVariants;
1294*b1cdbd2cSJim Jagielski xProp->getPropertyValue( C2U("IsTranslateCommonTerms") ) >>= bCommonTerms;
1295*b1cdbd2cSJim Jagielski }
1296*b1cdbd2cSJim Jagielski catch( Exception& )
1297*b1cdbd2cSJim Jagielski {
1298*b1cdbd2cSJim Jagielski }
1299*b1cdbd2cSJim Jagielski }
1300*b1cdbd2cSJim Jagielski
1301*b1cdbd2cSJim Jagielski //execute translation
1302*b1cdbd2cSJim Jagielski sal_Int16 nSourceLang = bToSimplified ? LANGUAGE_CHINESE_TRADITIONAL : LANGUAGE_CHINESE_SIMPLIFIED;
1303*b1cdbd2cSJim Jagielski sal_Int16 nTargetLang = bToSimplified ? LANGUAGE_CHINESE_SIMPLIFIED : LANGUAGE_CHINESE_TRADITIONAL;
1304*b1cdbd2cSJim Jagielski sal_Int32 nOptions = bUseVariants ? i18n::TextConversionOption::USE_CHARACTER_VARIANTS : 0;
1305*b1cdbd2cSJim Jagielski if( !bCommonTerms )
1306*b1cdbd2cSJim Jagielski nOptions = nOptions | i18n::TextConversionOption::CHARACTER_BY_CHARACTER;
1307*b1cdbd2cSJim Jagielski
1308*b1cdbd2cSJim Jagielski Font aTargetFont = pOLV->GetWindow()->GetDefaultFont( DEFAULTFONT_CJK_TEXT,
1309*b1cdbd2cSJim Jagielski nTargetLang, DEFAULTFONT_FLAGS_ONLYONE );
1310*b1cdbd2cSJim Jagielski
1311*b1cdbd2cSJim Jagielski pOLV->StartTextConversion( nSourceLang, nTargetLang, &aTargetFont, nOptions, sal_False, sal_False );
1312*b1cdbd2cSJim Jagielski }
1313*b1cdbd2cSJim Jagielski }
1314*b1cdbd2cSJim Jagielski Reference< lang::XComponent > xComponent( xDialog, UNO_QUERY );
1315*b1cdbd2cSJim Jagielski if( xComponent.is() )
1316*b1cdbd2cSJim Jagielski xComponent->dispose();
1317*b1cdbd2cSJim Jagielski }
1318*b1cdbd2cSJim Jagielski }
1319*b1cdbd2cSJim Jagielski }
1320*b1cdbd2cSJim Jagielski break;
1321*b1cdbd2cSJim Jagielski }
1322*b1cdbd2cSJim Jagielski
1323*b1cdbd2cSJim Jagielski if (bRestoreSelection)
1324*b1cdbd2cSJim Jagielski {
1325*b1cdbd2cSJim Jagielski // restore selection
1326*b1cdbd2cSJim Jagielski pOLV->GetEditView().SetSelection( aOldSelection );
1327*b1cdbd2cSJim Jagielski }
1328*b1cdbd2cSJim Jagielski }
1329*b1cdbd2cSJim Jagielski
GetLinguState(SfxItemSet & rSet)1330*b1cdbd2cSJim Jagielski void SwAnnotationShell::GetLinguState(SfxItemSet &rSet)
1331*b1cdbd2cSJim Jagielski {
1332*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1333*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1334*b1cdbd2cSJim Jagielski return;
1335*b1cdbd2cSJim Jagielski
1336*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
1337*b1cdbd2cSJim Jagielski SfxItemSet aEditAttr(pOLV->GetAttribs());
1338*b1cdbd2cSJim Jagielski
1339*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
1340*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1341*b1cdbd2cSJim Jagielski while(nWhich)
1342*b1cdbd2cSJim Jagielski {
1343*b1cdbd2cSJim Jagielski switch (nWhich)
1344*b1cdbd2cSJim Jagielski {
1345*b1cdbd2cSJim Jagielski case SID_LANGUAGE_STATUS:
1346*b1cdbd2cSJim Jagielski {
1347*b1cdbd2cSJim Jagielski SwLangHelper::GetLanguageStatus(pOLV,rSet);
1348*b1cdbd2cSJim Jagielski break;
1349*b1cdbd2cSJim Jagielski }
1350*b1cdbd2cSJim Jagielski
1351*b1cdbd2cSJim Jagielski case SID_THES:
1352*b1cdbd2cSJim Jagielski {
1353*b1cdbd2cSJim Jagielski String aStatusVal;
1354*b1cdbd2cSJim Jagielski LanguageType nLang = LANGUAGE_NONE;
1355*b1cdbd2cSJim Jagielski bool bIsLookUpWord = GetStatusValueForThesaurusFromContext( aStatusVal, nLang, pOLV->GetEditView() );
1356*b1cdbd2cSJim Jagielski rSet.Put( SfxStringItem( SID_THES, aStatusVal ) );
1357*b1cdbd2cSJim Jagielski
1358*b1cdbd2cSJim Jagielski // disable "Thesaurus" context menu entry if there is nothing to look up
1359*b1cdbd2cSJim Jagielski uno::Reference< linguistic2::XThesaurus > xThes( ::GetThesaurus() );
1360*b1cdbd2cSJim Jagielski lang::Locale aLocale( SvxCreateLocale( nLang ) );
1361*b1cdbd2cSJim Jagielski if (!bIsLookUpWord ||
1362*b1cdbd2cSJim Jagielski !xThes.is() || nLang == LANGUAGE_NONE || !xThes->hasLocale( aLocale ))
1363*b1cdbd2cSJim Jagielski rSet.DisableItem( SID_THES );
1364*b1cdbd2cSJim Jagielski break;
1365*b1cdbd2cSJim Jagielski }
1366*b1cdbd2cSJim Jagielski
1367*b1cdbd2cSJim Jagielski // disable "Thesaurus" if the language is not supported
1368*b1cdbd2cSJim Jagielski case SID_THESAURUS:
1369*b1cdbd2cSJim Jagielski {
1370*b1cdbd2cSJim Jagielski const SfxPoolItem &rItem = rView.GetWrtShell().GetDoc()->GetDefault(
1371*b1cdbd2cSJim Jagielski GetWhichOfScript( RES_CHRATR_LANGUAGE,
1372*b1cdbd2cSJim Jagielski GetI18NScriptTypeOfLanguage( (sal_uInt16)GetAppLanguage())) );
1373*b1cdbd2cSJim Jagielski LanguageType nLang = ((const SvxLanguageItem &)
1374*b1cdbd2cSJim Jagielski rItem).GetLanguage();
1375*b1cdbd2cSJim Jagielski uno::Reference< linguistic2::XThesaurus > xThes( ::GetThesaurus() );
1376*b1cdbd2cSJim Jagielski if (!xThes.is() || nLang == LANGUAGE_NONE ||
1377*b1cdbd2cSJim Jagielski !xThes->hasLocale( SvxCreateLocale( nLang ) ))
1378*b1cdbd2cSJim Jagielski rSet.DisableItem( SID_THESAURUS );
1379*b1cdbd2cSJim Jagielski }
1380*b1cdbd2cSJim Jagielski break;
1381*b1cdbd2cSJim Jagielski case SID_HANGUL_HANJA_CONVERSION:
1382*b1cdbd2cSJim Jagielski case SID_CHINESE_CONVERSION:
1383*b1cdbd2cSJim Jagielski {
1384*b1cdbd2cSJim Jagielski if (!SvtCJKOptions().IsAnyEnabled())
1385*b1cdbd2cSJim Jagielski {
1386*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetBindings().SetVisibleState( nWhich, sal_False );
1387*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1388*b1cdbd2cSJim Jagielski }
1389*b1cdbd2cSJim Jagielski else
1390*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetBindings().SetVisibleState( nWhich, sal_True );
1391*b1cdbd2cSJim Jagielski }
1392*b1cdbd2cSJim Jagielski break;
1393*b1cdbd2cSJim Jagielski }
1394*b1cdbd2cSJim Jagielski
1395*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED)
1396*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1397*b1cdbd2cSJim Jagielski
1398*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1399*b1cdbd2cSJim Jagielski }
1400*b1cdbd2cSJim Jagielski }
1401*b1cdbd2cSJim Jagielski
ExecTransliteration(SfxRequest & rReq)1402*b1cdbd2cSJim Jagielski void SwAnnotationShell::ExecTransliteration(SfxRequest &rReq)
1403*b1cdbd2cSJim Jagielski {
1404*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1405*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1406*b1cdbd2cSJim Jagielski return;
1407*b1cdbd2cSJim Jagielski
1408*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
1409*b1cdbd2cSJim Jagielski
1410*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::i18n;
1411*b1cdbd2cSJim Jagielski {
1412*b1cdbd2cSJim Jagielski sal_uInt32 nMode = 0;
1413*b1cdbd2cSJim Jagielski
1414*b1cdbd2cSJim Jagielski switch( rReq.GetSlot() )
1415*b1cdbd2cSJim Jagielski {
1416*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_SENTENCE_CASE:
1417*b1cdbd2cSJim Jagielski nMode = TransliterationModulesExtra::SENTENCE_CASE;
1418*b1cdbd2cSJim Jagielski break;
1419*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_TITLE_CASE:
1420*b1cdbd2cSJim Jagielski nMode = TransliterationModulesExtra::TITLE_CASE;
1421*b1cdbd2cSJim Jagielski break;
1422*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_TOGGLE_CASE:
1423*b1cdbd2cSJim Jagielski nMode = TransliterationModulesExtra::TOGGLE_CASE;
1424*b1cdbd2cSJim Jagielski break;
1425*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_UPPER:
1426*b1cdbd2cSJim Jagielski nMode = TransliterationModules_LOWERCASE_UPPERCASE;
1427*b1cdbd2cSJim Jagielski break;
1428*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_LOWER:
1429*b1cdbd2cSJim Jagielski nMode = TransliterationModules_UPPERCASE_LOWERCASE;
1430*b1cdbd2cSJim Jagielski break;
1431*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_HALFWIDTH:
1432*b1cdbd2cSJim Jagielski nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
1433*b1cdbd2cSJim Jagielski break;
1434*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_FULLWIDTH:
1435*b1cdbd2cSJim Jagielski nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
1436*b1cdbd2cSJim Jagielski break;
1437*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_HIRAGANA:
1438*b1cdbd2cSJim Jagielski nMode = TransliterationModules_KATAKANA_HIRAGANA;
1439*b1cdbd2cSJim Jagielski break;
1440*b1cdbd2cSJim Jagielski case SID_TRANSLITERATE_KATAGANA:
1441*b1cdbd2cSJim Jagielski nMode = TransliterationModules_HIRAGANA_KATAKANA;
1442*b1cdbd2cSJim Jagielski break;
1443*b1cdbd2cSJim Jagielski
1444*b1cdbd2cSJim Jagielski default:
1445*b1cdbd2cSJim Jagielski ASSERT(!this, "falscher Dispatcher");
1446*b1cdbd2cSJim Jagielski }
1447*b1cdbd2cSJim Jagielski
1448*b1cdbd2cSJim Jagielski if( nMode )
1449*b1cdbd2cSJim Jagielski {
1450*b1cdbd2cSJim Jagielski pOLV->TransliterateText( nMode );
1451*b1cdbd2cSJim Jagielski }
1452*b1cdbd2cSJim Jagielski }
1453*b1cdbd2cSJim Jagielski }
1454*b1cdbd2cSJim Jagielski
ExecUndo(SfxRequest & rReq)1455*b1cdbd2cSJim Jagielski void SwAnnotationShell::ExecUndo(SfxRequest &rReq)
1456*b1cdbd2cSJim Jagielski {
1457*b1cdbd2cSJim Jagielski const SfxItemSet* pArgs = rReq.GetArgs();
1458*b1cdbd2cSJim Jagielski ::svl::IUndoManager* pUndoManager = GetUndoManager();
1459*b1cdbd2cSJim Jagielski SwWrtShell &rSh = rView.GetWrtShell();
1460*b1cdbd2cSJim Jagielski
1461*b1cdbd2cSJim Jagielski long aOldHeight = rView.GetPostItMgr()->HasActiveSidebarWin()
1462*b1cdbd2cSJim Jagielski ? rView.GetPostItMgr()->GetActiveSidebarWin()->GetPostItTextHeight()
1463*b1cdbd2cSJim Jagielski : 0;
1464*b1cdbd2cSJim Jagielski
1465*b1cdbd2cSJim Jagielski sal_uInt16 nId = rReq.GetSlot();
1466*b1cdbd2cSJim Jagielski sal_uInt16 nCnt = 1;
1467*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem=0;
1468*b1cdbd2cSJim Jagielski if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nId, sal_False, &pItem ) )
1469*b1cdbd2cSJim Jagielski nCnt = ((SfxUInt16Item*)pItem)->GetValue();
1470*b1cdbd2cSJim Jagielski switch( nId )
1471*b1cdbd2cSJim Jagielski {
1472*b1cdbd2cSJim Jagielski case SID_UNDO:
1473*b1cdbd2cSJim Jagielski {
1474*b1cdbd2cSJim Jagielski if ( pUndoManager )
1475*b1cdbd2cSJim Jagielski {
1476*b1cdbd2cSJim Jagielski sal_uInt16 nCount = pUndoManager->GetUndoActionCount();
1477*b1cdbd2cSJim Jagielski sal_uInt16 nSteps = nCnt;
1478*b1cdbd2cSJim Jagielski if ( nCount < nCnt )
1479*b1cdbd2cSJim Jagielski {
1480*b1cdbd2cSJim Jagielski nCnt = nCnt - nCount;
1481*b1cdbd2cSJim Jagielski nSteps = nCount;
1482*b1cdbd2cSJim Jagielski }
1483*b1cdbd2cSJim Jagielski else
1484*b1cdbd2cSJim Jagielski nCnt = 0;
1485*b1cdbd2cSJim Jagielski
1486*b1cdbd2cSJim Jagielski while( nSteps-- )
1487*b1cdbd2cSJim Jagielski pUndoManager->Undo();
1488*b1cdbd2cSJim Jagielski }
1489*b1cdbd2cSJim Jagielski
1490*b1cdbd2cSJim Jagielski if ( nCnt )
1491*b1cdbd2cSJim Jagielski rSh.Do( SwWrtShell::UNDO, nCnt );
1492*b1cdbd2cSJim Jagielski
1493*b1cdbd2cSJim Jagielski break;
1494*b1cdbd2cSJim Jagielski }
1495*b1cdbd2cSJim Jagielski
1496*b1cdbd2cSJim Jagielski case SID_REDO:
1497*b1cdbd2cSJim Jagielski {
1498*b1cdbd2cSJim Jagielski if ( pUndoManager )
1499*b1cdbd2cSJim Jagielski {
1500*b1cdbd2cSJim Jagielski sal_uInt16 nCount = pUndoManager->GetRedoActionCount();
1501*b1cdbd2cSJim Jagielski sal_uInt16 nSteps = nCnt;
1502*b1cdbd2cSJim Jagielski if ( nCount < nCnt )
1503*b1cdbd2cSJim Jagielski {
1504*b1cdbd2cSJim Jagielski nCnt = nCnt - nCount;
1505*b1cdbd2cSJim Jagielski nSteps = nCount;
1506*b1cdbd2cSJim Jagielski }
1507*b1cdbd2cSJim Jagielski else
1508*b1cdbd2cSJim Jagielski nCnt = 0;
1509*b1cdbd2cSJim Jagielski
1510*b1cdbd2cSJim Jagielski while( nSteps-- )
1511*b1cdbd2cSJim Jagielski pUndoManager->Redo();
1512*b1cdbd2cSJim Jagielski }
1513*b1cdbd2cSJim Jagielski
1514*b1cdbd2cSJim Jagielski if ( nCnt )
1515*b1cdbd2cSJim Jagielski rSh.Do( SwWrtShell::REDO, nCnt );
1516*b1cdbd2cSJim Jagielski
1517*b1cdbd2cSJim Jagielski break;
1518*b1cdbd2cSJim Jagielski }
1519*b1cdbd2cSJim Jagielski }
1520*b1cdbd2cSJim Jagielski
1521*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetBindings().InvalidateAll(sal_False);
1522*b1cdbd2cSJim Jagielski
1523*b1cdbd2cSJim Jagielski if (rView.GetPostItMgr()->HasActiveSidebarWin())
1524*b1cdbd2cSJim Jagielski rView.GetPostItMgr()->GetActiveSidebarWin()->ResizeIfNeccessary(aOldHeight,rView.GetPostItMgr()->GetActiveSidebarWin()->GetPostItTextHeight());
1525*b1cdbd2cSJim Jagielski }
1526*b1cdbd2cSJim Jagielski
StateUndo(SfxItemSet & rSet)1527*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateUndo(SfxItemSet &rSet)
1528*b1cdbd2cSJim Jagielski {
1529*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1530*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1531*b1cdbd2cSJim Jagielski return;
1532*b1cdbd2cSJim Jagielski
1533*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
1534*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1535*b1cdbd2cSJim Jagielski ::svl::IUndoManager* pUndoManager = GetUndoManager();
1536*b1cdbd2cSJim Jagielski SfxViewFrame *pSfxViewFrame = rView.GetViewFrame();
1537*b1cdbd2cSJim Jagielski SwWrtShell &rSh = rView.GetWrtShell();
1538*b1cdbd2cSJim Jagielski
1539*b1cdbd2cSJim Jagielski while( nWhich )
1540*b1cdbd2cSJim Jagielski {
1541*b1cdbd2cSJim Jagielski switch ( nWhich )
1542*b1cdbd2cSJim Jagielski {
1543*b1cdbd2cSJim Jagielski case SID_UNDO:
1544*b1cdbd2cSJim Jagielski {
1545*b1cdbd2cSJim Jagielski sal_uInt16 nCount = pUndoManager->GetUndoActionCount();
1546*b1cdbd2cSJim Jagielski if ( nCount )
1547*b1cdbd2cSJim Jagielski pSfxViewFrame->GetSlotState( nWhich, pSfxViewFrame->GetInterface(), &rSet );
1548*b1cdbd2cSJim Jagielski else if (rSh.GetLastUndoInfo(0, 0))
1549*b1cdbd2cSJim Jagielski {
1550*b1cdbd2cSJim Jagielski rSet.Put( SfxStringItem( nWhich, rSh.GetDoString(SwWrtShell::UNDO)) );
1551*b1cdbd2cSJim Jagielski }
1552*b1cdbd2cSJim Jagielski else
1553*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1554*b1cdbd2cSJim Jagielski break;
1555*b1cdbd2cSJim Jagielski }
1556*b1cdbd2cSJim Jagielski case SID_REDO:
1557*b1cdbd2cSJim Jagielski {
1558*b1cdbd2cSJim Jagielski sal_uInt16 nCount = pUndoManager->GetRedoActionCount();
1559*b1cdbd2cSJim Jagielski if ( nCount )
1560*b1cdbd2cSJim Jagielski pSfxViewFrame->GetSlotState( nWhich, pSfxViewFrame->GetInterface(), &rSet );
1561*b1cdbd2cSJim Jagielski else if (rSh.GetFirstRedoInfo(0))
1562*b1cdbd2cSJim Jagielski {
1563*b1cdbd2cSJim Jagielski rSet.Put(SfxStringItem( nWhich, rSh.GetDoString(SwWrtShell::REDO)) );
1564*b1cdbd2cSJim Jagielski }
1565*b1cdbd2cSJim Jagielski else
1566*b1cdbd2cSJim Jagielski rSet.DisableItem(nWhich);
1567*b1cdbd2cSJim Jagielski break;
1568*b1cdbd2cSJim Jagielski }
1569*b1cdbd2cSJim Jagielski case SID_GETUNDOSTRINGS:
1570*b1cdbd2cSJim Jagielski case SID_GETREDOSTRINGS:
1571*b1cdbd2cSJim Jagielski {
1572*b1cdbd2cSJim Jagielski if( pUndoManager )
1573*b1cdbd2cSJim Jagielski {
1574*b1cdbd2cSJim Jagielski UniString (::svl::IUndoManager:: *fnGetComment)( size_t, bool const ) const;
1575*b1cdbd2cSJim Jagielski
1576*b1cdbd2cSJim Jagielski sal_uInt16 nCount;
1577*b1cdbd2cSJim Jagielski if( SID_GETUNDOSTRINGS == nWhich )
1578*b1cdbd2cSJim Jagielski {
1579*b1cdbd2cSJim Jagielski nCount = pUndoManager->GetUndoActionCount();
1580*b1cdbd2cSJim Jagielski fnGetComment = &::svl::IUndoManager::GetUndoActionComment;
1581*b1cdbd2cSJim Jagielski }
1582*b1cdbd2cSJim Jagielski else
1583*b1cdbd2cSJim Jagielski {
1584*b1cdbd2cSJim Jagielski nCount = pUndoManager->GetRedoActionCount();
1585*b1cdbd2cSJim Jagielski fnGetComment = &::svl::IUndoManager::GetRedoActionComment;
1586*b1cdbd2cSJim Jagielski }
1587*b1cdbd2cSJim Jagielski
1588*b1cdbd2cSJim Jagielski String sList;
1589*b1cdbd2cSJim Jagielski if( nCount )
1590*b1cdbd2cSJim Jagielski {
1591*b1cdbd2cSJim Jagielski for( sal_uInt16 n = 0; n < nCount; ++n )
1592*b1cdbd2cSJim Jagielski ( sList += (pUndoManager->*fnGetComment)( n, ::svl::IUndoManager::TopLevel ) )
1593*b1cdbd2cSJim Jagielski += '\n';
1594*b1cdbd2cSJim Jagielski }
1595*b1cdbd2cSJim Jagielski
1596*b1cdbd2cSJim Jagielski SfxStringListItem aItem( nWhich );
1597*b1cdbd2cSJim Jagielski if ((nWhich == SID_GETUNDOSTRINGS) &&
1598*b1cdbd2cSJim Jagielski rSh.GetLastUndoInfo(0, 0))
1599*b1cdbd2cSJim Jagielski {
1600*b1cdbd2cSJim Jagielski rSh.GetDoStrings( SwWrtShell::UNDO, aItem );
1601*b1cdbd2cSJim Jagielski }
1602*b1cdbd2cSJim Jagielski else if ((nWhich == SID_GETREDOSTRINGS) &&
1603*b1cdbd2cSJim Jagielski (rSh.GetFirstRedoInfo(0)))
1604*b1cdbd2cSJim Jagielski {
1605*b1cdbd2cSJim Jagielski rSh.GetDoStrings( SwWrtShell::UNDO, aItem );
1606*b1cdbd2cSJim Jagielski }
1607*b1cdbd2cSJim Jagielski
1608*b1cdbd2cSJim Jagielski sList += aItem.GetString();
1609*b1cdbd2cSJim Jagielski aItem.SetString( sList );
1610*b1cdbd2cSJim Jagielski rSet.Put( aItem );
1611*b1cdbd2cSJim Jagielski }
1612*b1cdbd2cSJim Jagielski else
1613*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1614*b1cdbd2cSJim Jagielski }
1615*b1cdbd2cSJim Jagielski break;
1616*b1cdbd2cSJim Jagielski
1617*b1cdbd2cSJim Jagielski default:
1618*b1cdbd2cSJim Jagielski {
1619*b1cdbd2cSJim Jagielski pSfxViewFrame->GetSlotState( nWhich, pSfxViewFrame->GetInterface(), &rSet );
1620*b1cdbd2cSJim Jagielski break;
1621*b1cdbd2cSJim Jagielski }
1622*b1cdbd2cSJim Jagielski
1623*b1cdbd2cSJim Jagielski }
1624*b1cdbd2cSJim Jagielski
1625*b1cdbd2cSJim Jagielski if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED)
1626*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1627*b1cdbd2cSJim Jagielski
1628*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1629*b1cdbd2cSJim Jagielski }
1630*b1cdbd2cSJim Jagielski }
1631*b1cdbd2cSJim Jagielski
StateDisableItems(SfxItemSet & rSet)1632*b1cdbd2cSJim Jagielski void SwAnnotationShell::StateDisableItems( SfxItemSet &rSet )
1633*b1cdbd2cSJim Jagielski {
1634*b1cdbd2cSJim Jagielski SfxWhichIter aIter(rSet);
1635*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = aIter.FirstWhich();
1636*b1cdbd2cSJim Jagielski while (nWhich)
1637*b1cdbd2cSJim Jagielski {
1638*b1cdbd2cSJim Jagielski rSet.DisableItem( nWhich );
1639*b1cdbd2cSJim Jagielski nWhich = aIter.NextWhich();
1640*b1cdbd2cSJim Jagielski }
1641*b1cdbd2cSJim Jagielski }
1642*b1cdbd2cSJim Jagielski
InsertSymbol(SfxRequest & rReq)1643*b1cdbd2cSJim Jagielski void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
1644*b1cdbd2cSJim Jagielski {
1645*b1cdbd2cSJim Jagielski SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
1646*b1cdbd2cSJim Jagielski if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
1647*b1cdbd2cSJim Jagielski return;
1648*b1cdbd2cSJim Jagielski
1649*b1cdbd2cSJim Jagielski OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
1650*b1cdbd2cSJim Jagielski
1651*b1cdbd2cSJim Jagielski const SfxItemSet *pArgs = rReq.GetArgs();
1652*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = 0;
1653*b1cdbd2cSJim Jagielski if( pArgs )
1654*b1cdbd2cSJim Jagielski pArgs->GetItemState(GetPool().GetWhich(SID_CHARMAP), sal_False, &pItem);
1655*b1cdbd2cSJim Jagielski
1656*b1cdbd2cSJim Jagielski String sSym;
1657*b1cdbd2cSJim Jagielski String sFontName;
1658*b1cdbd2cSJim Jagielski if ( pItem )
1659*b1cdbd2cSJim Jagielski {
1660*b1cdbd2cSJim Jagielski sSym = ((const SfxStringItem*)pItem)->GetValue();
1661*b1cdbd2cSJim Jagielski const SfxPoolItem* pFtItem = NULL;
1662*b1cdbd2cSJim Jagielski pArgs->GetItemState( GetPool().GetWhich(SID_ATTR_SPECIALCHAR), sal_False, &pFtItem);
1663*b1cdbd2cSJim Jagielski const SfxStringItem* pFontItem = PTR_CAST( SfxStringItem, pFtItem );
1664*b1cdbd2cSJim Jagielski if ( pFontItem )
1665*b1cdbd2cSJim Jagielski sFontName = pFontItem->GetValue();
1666*b1cdbd2cSJim Jagielski }
1667*b1cdbd2cSJim Jagielski
1668*b1cdbd2cSJim Jagielski SfxItemSet aSet(pOLV->GetAttribs());
1669*b1cdbd2cSJim Jagielski sal_uInt16 nScript = pOLV->GetSelectedScriptType();
1670*b1cdbd2cSJim Jagielski SvxFontItem aSetDlgFont( RES_CHRATR_FONT );
1671*b1cdbd2cSJim Jagielski {
1672*b1cdbd2cSJim Jagielski SvxScriptSetItem aSetItem( SID_ATTR_CHAR_FONT, *aSet.GetPool() );
1673*b1cdbd2cSJim Jagielski aSetItem.GetItemSet().Put( aSet, sal_False );
1674*b1cdbd2cSJim Jagielski const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
1675*b1cdbd2cSJim Jagielski if( pI )
1676*b1cdbd2cSJim Jagielski aSetDlgFont = *(SvxFontItem*)pI;
1677*b1cdbd2cSJim Jagielski else
1678*b1cdbd2cSJim Jagielski aSetDlgFont = (SvxFontItem&)aSet.Get( GetWhichOfScript(
1679*b1cdbd2cSJim Jagielski SID_ATTR_CHAR_FONT,
1680*b1cdbd2cSJim Jagielski GetI18NScriptTypeOfLanguage( (sal_uInt16)GetAppLanguage() ) ));
1681*b1cdbd2cSJim Jagielski if (!sFontName.Len())
1682*b1cdbd2cSJim Jagielski sFontName = aSetDlgFont.GetFamilyName();
1683*b1cdbd2cSJim Jagielski }
1684*b1cdbd2cSJim Jagielski
1685*b1cdbd2cSJim Jagielski Font aFont(sFontName, Size(1,1));
1686*b1cdbd2cSJim Jagielski if( !sSym.Len() )
1687*b1cdbd2cSJim Jagielski {
1688*b1cdbd2cSJim Jagielski SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
1689*b1cdbd2cSJim Jagielski
1690*b1cdbd2cSJim Jagielski SfxAllItemSet aAllSet( GetPool() );
1691*b1cdbd2cSJim Jagielski aAllSet.Put( SfxBoolItem( FN_PARAM_1, sal_False ) );
1692*b1cdbd2cSJim Jagielski
1693*b1cdbd2cSJim Jagielski SwViewOption aOpt(*rView.GetWrtShell().GetViewOptions());
1694*b1cdbd2cSJim Jagielski String sSymbolFont = aOpt.GetSymbolFont();
1695*b1cdbd2cSJim Jagielski if( sSymbolFont.Len() )
1696*b1cdbd2cSJim Jagielski aAllSet.Put( SfxStringItem( SID_FONT_NAME, sSymbolFont ) );
1697*b1cdbd2cSJim Jagielski else
1698*b1cdbd2cSJim Jagielski aAllSet.Put( SfxStringItem( SID_FONT_NAME, aSetDlgFont.GetFamilyName() ) );
1699*b1cdbd2cSJim Jagielski
1700*b1cdbd2cSJim Jagielski // Wenn Zeichen selektiert ist kann es angezeigt werden
1701*b1cdbd2cSJim Jagielski SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( rView.GetWindow(), aAllSet,
1702*b1cdbd2cSJim Jagielski rView.GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
1703*b1cdbd2cSJim Jagielski
1704*b1cdbd2cSJim Jagielski sal_uInt16 nResult = pDlg->Execute();
1705*b1cdbd2cSJim Jagielski if( nResult == RET_OK )
1706*b1cdbd2cSJim Jagielski {
1707*b1cdbd2cSJim Jagielski SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pCItem, SfxStringItem, SID_CHARMAP, sal_False );
1708*b1cdbd2cSJim Jagielski SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pFontItem, SvxFontItem, SID_ATTR_CHAR_FONT, sal_False );
1709*b1cdbd2cSJim Jagielski if ( pFontItem )
1710*b1cdbd2cSJim Jagielski {
1711*b1cdbd2cSJim Jagielski aFont.SetName( pFontItem->GetFamilyName() );
1712*b1cdbd2cSJim Jagielski aFont.SetStyleName( pFontItem->GetStyleName() );
1713*b1cdbd2cSJim Jagielski aFont.SetCharSet( pFontItem->GetCharSet() );
1714*b1cdbd2cSJim Jagielski aFont.SetPitch( pFontItem->GetPitch() );
1715*b1cdbd2cSJim Jagielski }
1716*b1cdbd2cSJim Jagielski
1717*b1cdbd2cSJim Jagielski if ( pCItem )
1718*b1cdbd2cSJim Jagielski {
1719*b1cdbd2cSJim Jagielski sSym = pCItem->GetValue();
1720*b1cdbd2cSJim Jagielski aOpt.SetSymbolFont(aFont.GetName());
1721*b1cdbd2cSJim Jagielski SW_MOD()->ApplyUsrPref(aOpt, &rView);
1722*b1cdbd2cSJim Jagielski }
1723*b1cdbd2cSJim Jagielski }
1724*b1cdbd2cSJim Jagielski
1725*b1cdbd2cSJim Jagielski delete( pDlg );
1726*b1cdbd2cSJim Jagielski }
1727*b1cdbd2cSJim Jagielski
1728*b1cdbd2cSJim Jagielski if( sSym.Len() )
1729*b1cdbd2cSJim Jagielski {
1730*b1cdbd2cSJim Jagielski // nicht flackern
1731*b1cdbd2cSJim Jagielski pOLV->HideCursor();
1732*b1cdbd2cSJim Jagielski Outliner * pOutliner = pOLV->GetOutliner();
1733*b1cdbd2cSJim Jagielski pOutliner->SetUpdateMode(sal_False);
1734*b1cdbd2cSJim Jagielski
1735*b1cdbd2cSJim Jagielski SfxItemSet aOldSet( pOLV->GetAttribs() );
1736*b1cdbd2cSJim Jagielski SfxItemSet aFontSet( *aOldSet.GetPool(),
1737*b1cdbd2cSJim Jagielski EE_CHAR_FONTINFO, EE_CHAR_FONTINFO,
1738*b1cdbd2cSJim Jagielski EE_CHAR_FONTINFO_CJK, EE_CHAR_FONTINFO_CJK,
1739*b1cdbd2cSJim Jagielski EE_CHAR_FONTINFO_CTL, EE_CHAR_FONTINFO_CTL,
1740*b1cdbd2cSJim Jagielski 0 );
1741*b1cdbd2cSJim Jagielski aFontSet.Set( aOldSet );
1742*b1cdbd2cSJim Jagielski
1743*b1cdbd2cSJim Jagielski // String einfuegen
1744*b1cdbd2cSJim Jagielski pOLV->InsertText( sSym);
1745*b1cdbd2cSJim Jagielski
1746*b1cdbd2cSJim Jagielski // attributieren (Font setzen)
1747*b1cdbd2cSJim Jagielski SfxItemSet aSetFont( *aFontSet.GetPool(), aFontSet.GetRanges() );
1748*b1cdbd2cSJim Jagielski SvxFontItem aFontItem (aFont.GetFamily(), aFont.GetName(),
1749*b1cdbd2cSJim Jagielski aFont.GetStyleName(), aFont.GetPitch(),
1750*b1cdbd2cSJim Jagielski aFont.GetCharSet(),
1751*b1cdbd2cSJim Jagielski EE_CHAR_FONTINFO );
1752*b1cdbd2cSJim Jagielski sal_uInt16 nScriptBreak = pBreakIt->GetAllScriptsOfText( sSym );
1753*b1cdbd2cSJim Jagielski if( SCRIPTTYPE_LATIN & nScriptBreak )
1754*b1cdbd2cSJim Jagielski aSetFont.Put( aFontItem, EE_CHAR_FONTINFO );
1755*b1cdbd2cSJim Jagielski if( SCRIPTTYPE_ASIAN & nScriptBreak )
1756*b1cdbd2cSJim Jagielski aSetFont.Put( aFontItem, EE_CHAR_FONTINFO_CJK );
1757*b1cdbd2cSJim Jagielski if( SCRIPTTYPE_COMPLEX & nScriptBreak )
1758*b1cdbd2cSJim Jagielski aSetFont.Put( aFontItem, EE_CHAR_FONTINFO_CTL );
1759*b1cdbd2cSJim Jagielski pOLV->SetAttribs(aSetFont);
1760*b1cdbd2cSJim Jagielski
1761*b1cdbd2cSJim Jagielski // Selektion loeschen
1762*b1cdbd2cSJim Jagielski ESelection aSel(pOLV->GetSelection());
1763*b1cdbd2cSJim Jagielski aSel.nStartPara = aSel.nEndPara;
1764*b1cdbd2cSJim Jagielski aSel.nStartPos = aSel.nEndPos;
1765*b1cdbd2cSJim Jagielski pOLV->SetSelection(aSel);
1766*b1cdbd2cSJim Jagielski
1767*b1cdbd2cSJim Jagielski // Alten Font restaurieren
1768*b1cdbd2cSJim Jagielski pOLV->SetAttribs( aFontSet );
1769*b1cdbd2cSJim Jagielski
1770*b1cdbd2cSJim Jagielski // ab jetzt wieder anzeigen
1771*b1cdbd2cSJim Jagielski pOutliner->SetUpdateMode(sal_True);
1772*b1cdbd2cSJim Jagielski pOLV->ShowCursor();
1773*b1cdbd2cSJim Jagielski
1774*b1cdbd2cSJim Jagielski rReq.AppendItem( SfxStringItem( GetPool().GetWhich(SID_CHARMAP), sSym ) );
1775*b1cdbd2cSJim Jagielski if(aFont.GetName().Len())
1776*b1cdbd2cSJim Jagielski rReq.AppendItem( SfxStringItem( SID_ATTR_SPECIALCHAR, aFont.GetName() ) );
1777*b1cdbd2cSJim Jagielski rReq.Done();
1778*b1cdbd2cSJim Jagielski }
1779*b1cdbd2cSJim Jagielski }
1780