update dev300-m58
[ooovba.git] / sc / source / ui / app / scdll.cxx
blobd3d2116a7fa889f11cfd95076df781b12bccc482
1 /************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: scdll.cxx,v $
10 * $Revision: 1.44.32.2 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sc.hxx"
36 #include <svx/eeitem.hxx>
39 #ifndef _FM_FMOBJFAC_HXX
40 #include <svx/fmobjfac.hxx>
41 #endif
42 #include <svx/objfac3d.hxx>
43 #include <svx/tbxcolor.hxx>
45 #include <sot/clsids.hxx>
46 #include <sfx2/docfilt.hxx>
47 #include <sfx2/fcontnr.hxx>
48 #include <sfx2/docfile.hxx>
49 #include <sfx2/app.hxx>
50 #include <avmedia/mediaplayer.hxx>
51 #include <avmedia/mediatoolbox.hxx>
52 #include <comphelper/types.hxx>
53 #include <svx/extrusioncontrols.hxx>
54 #include <svx/fontworkgallery.hxx>
55 #include <svx/tbxcustomshapes.hxx>
57 #include <svtools/parhtml.hxx>
58 #include <sot/formats.hxx>
59 #define SOT_FORMATSTR_ID_STARCALC_30 SOT_FORMATSTR_ID_STARCALC
61 #include "scitems.hxx" // fuer tbxctrls etc.
62 #include "scmod.hxx"
63 #include "scresid.hxx"
64 #include "sc.hrc"
65 #include "cfgids.hxx"
67 //! die Registrierung wird wegen CLOOKs in ein eigenes File wandern muessen...
69 // Interface-Registrierung
70 #include "docsh.hxx"
71 #include "tabvwsh.hxx"
72 #include "prevwsh.hxx"
73 #include "drawsh.hxx"
74 #include "drformsh.hxx"
75 #include "drtxtob.hxx"
76 #include "editsh.hxx"
77 #include "pivotsh.hxx"
78 #include "auditsh.hxx"
79 #include "cellsh.hxx"
80 #include "oleobjsh.hxx"
81 #include "chartsh.hxx"
82 #include "graphsh.hxx"
83 #include "mediash.hxx"
84 #include "pgbrksh.hxx"
86 #include "docpool.hxx"
87 #include "appoptio.hxx"
89 // Controls
91 #include <svx/tbxalign.hxx>
92 #include <svx/tbxctl.hxx>
93 #include <svx/fillctrl.hxx>
94 #include <svx/linectrl.hxx>
95 #include <svx/tbcontrl.hxx>
96 #include <svx/selctrl.hxx>
97 #include <svx/insctrl.hxx>
98 #include <svx/zoomctrl.hxx>
99 #include <svx/flditem.hxx>
100 #include <svx/modctrl.hxx>
101 #include <svx/pszctrl.hxx>
102 #include <svx/fntctl.hxx>
103 #include <svx/fntszctl.hxx>
104 #include <svx/grafctrl.hxx>
105 #include <svx/galbrws.hxx>
106 #include <svx/clipboardctl.hxx>
107 #include <svx/lboxctrl.hxx>
108 #include <svx/verttexttbxctrl.hxx>
109 #include <svx/formatpaintbrushctrl.hxx>
110 #include "tbinsert.hxx"
111 #include "tbzoomsliderctrl.hxx"
112 #include <svx/zoomsliderctrl.hxx>
114 #include <svx/xmlsecctrl.hxx>
115 // Child-Windows
116 #include "reffact.hxx"
117 #include "navipi.hxx"
118 #include "inputwin.hxx"
119 #include "spelldialog.hxx"
120 #include <svx/fontwork.hxx>
121 #include <svx/srchdlg.hxx>
122 #include <svx/hyprlink.hxx>
123 #include <svx/hyperdlg.hxx>
124 #include <svx/imapdlg.hxx>
126 #include "editutil.hxx"
127 #include <svx/svdfield.hxx> // SdrRegisterFieldClasses
128 #include <rtl/logfile.hxx>
130 #include "dwfunctr.hxx"
131 #include "acredlin.hxx"
133 //------------------------------------------------------------------
135 //UNUSED2008-05 // filter detection can't use ScFilterOptions (in sc-dll),
136 //UNUSED2008-05 // so access to wk3 flag must be implemented here again
137 //UNUSED2008-05
138 //UNUSED2008-05 class ScLibOptions : public utl::ConfigItem
139 //UNUSED2008-05 {
140 //UNUSED2008-05 BOOL bWK3Flag;
141 //UNUSED2008-05
142 //UNUSED2008-05 public:
143 //UNUSED2008-05 ScLibOptions();
144 //UNUSED2008-05 BOOL GetWK3Flag() const { return bWK3Flag; }
145 //UNUSED2008-05 };
146 //UNUSED2008-05
147 //UNUSED2008-05 #define CFGPATH_LIBFILTER "Office.Calc/Filter/Import/Lotus123"
148 //UNUSED2008-05 #define ENTRYSTR_WK3 "WK3"
149 //UNUSED2008-05
150 //UNUSED2008-05 ScLibOptions::ScLibOptions() :
151 //UNUSED2008-05 ConfigItem( rtl::OUString::createFromAscii( CFGPATH_LIBFILTER ) ),
152 //UNUSED2008-05 bWK3Flag( FALSE )
153 //UNUSED2008-05 {
154 //UNUSED2008-05 com::sun::star::uno::Sequence<rtl::OUString> aNames(1);
155 //UNUSED2008-05 aNames[0] = rtl::OUString::createFromAscii( ENTRYSTR_WK3 );
156 //UNUSED2008-05 com::sun::star::uno::Sequence<com::sun::star::uno::Any> aValues = GetProperties(aNames);
157 //UNUSED2008-05 if ( aValues.getLength() == 1 && aValues[0].hasValue() )
158 //UNUSED2008-05 bWK3Flag = comphelper::getBOOL( aValues[0] );
159 //UNUSED2008-05 }
161 //------------------------------------------------------------------
163 ScResId::ScResId( USHORT nId ) :
164 ResId( nId, *SC_MOD()->GetResMgr() )
168 //------------------------------------------------------------------
170 void ScDLL::Init()
172 RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDLL::Init" );
174 ScModule **ppShlPtr = (ScModule**) GetAppData(SHL_CALC);
175 if ( *ppShlPtr )
176 return;
178 ScDocumentPool::InitVersionMaps(); // wird im ScModule ctor gebraucht
180 ScModule* pMod = new ScModule( &ScDocShell::Factory() );
181 (*ppShlPtr) = pMod;
183 //REMOVE ScDocShell::RegisterFactory( SDT_SC_DOCFACTPRIO );
185 ScDocShell::Factory().SetDocumentServiceName( rtl::OUString::createFromAscii( "com.sun.star.sheet.SpreadsheetDocument" ) );
187 ScGlobal::Init(); // erst wenn der ResManager initialisiert ist
188 // erst nach ScGlobal::Init duerfen die App-Optionen
189 // initialisiert werden
191 // register your view-factories here
193 ScTabViewShell ::RegisterFactory(1);
194 ScPreviewShell ::RegisterFactory(2);
196 // register your shell-interfaces here
198 ScModule ::RegisterInterface(pMod);
199 ScDocShell ::RegisterInterface(pMod);
200 ScTabViewShell ::RegisterInterface(pMod);
201 ScPreviewShell ::RegisterInterface(pMod);
202 ScDrawShell ::RegisterInterface(pMod);
203 ScDrawFormShell ::RegisterInterface(pMod);
204 ScDrawTextObjectBar ::RegisterInterface(pMod);
205 ScEditShell ::RegisterInterface(pMod);
206 ScPivotShell ::RegisterInterface(pMod);
207 ScAuditingShell ::RegisterInterface(pMod);
208 ScFormatShell ::RegisterInterface(pMod);
209 ScCellShell ::RegisterInterface(pMod);
210 ScOleObjectShell ::RegisterInterface(pMod);
211 ScChartShell ::RegisterInterface(pMod);
212 ScGraphicShell ::RegisterInterface(pMod);
213 ScMediaShell ::RegisterInterface(pMod);
214 ScPageBreakShell ::RegisterInterface(pMod);
216 // eigene Controller
217 ScTbxInsertCtrl ::RegisterControl(SID_TBXCTL_INSERT, pMod);
218 ScTbxInsertCtrl ::RegisterControl(SID_TBXCTL_INSCELLS, pMod);
219 ScTbxInsertCtrl ::RegisterControl(SID_TBXCTL_INSOBJ, pMod);
220 ScZoomSliderControl ::RegisterControl(SID_PREVIEW_SCALINGFACTOR, pMod);
222 // Svx-Toolbox-Controller
223 SvxTbxCtlDraw ::RegisterControl(SID_INSERT_DRAW, pMod);
224 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_BASIC, pMod);
225 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_SYMBOL, pMod);
226 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_ARROW, pMod);
227 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_FLOWCHART, pMod);
228 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_CALLOUT, pMod);
229 SvxTbxCtlCustomShapes ::RegisterControl(SID_DRAWTBX_CS_STAR, pMod);
230 SvxTbxCtlAlign ::RegisterControl(SID_OBJECT_ALIGN, pMod);
231 SvxFillToolBoxControl ::RegisterControl(0, pMod);
232 SvxLineStyleToolBoxControl ::RegisterControl(0, pMod);
233 SvxLineWidthToolBoxControl ::RegisterControl(0, pMod);
234 SvxLineColorToolBoxControl ::RegisterControl(0, pMod);
235 SvxLineEndToolBoxControl ::RegisterControl(SID_ATTR_LINEEND_STYLE, pMod);
236 SvxStyleToolBoxControl ::RegisterControl(SID_STYLE_APPLY, pMod);
237 SvxFontNameToolBoxControl ::RegisterControl(SID_ATTR_CHAR_FONT, pMod);
238 // SvxFontHeightToolBoxControl ::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod);
239 SvxFontColorToolBoxControl ::RegisterControl(SID_ATTR_CHAR_COLOR, pMod);
240 SvxColorToolBoxControl ::RegisterControl(SID_BACKGROUND_COLOR, pMod);
241 SvxFrameToolBoxControl ::RegisterControl(SID_ATTR_BORDER, pMod);
242 SvxFrameLineStyleToolBoxControl ::RegisterControl(SID_FRAME_LINESTYLE, pMod);
243 SvxFrameLineColorToolBoxControl ::RegisterControl(SID_FRAME_LINECOLOR, pMod);
244 SvxClipBoardControl ::RegisterControl(SID_PASTE, pMod );
245 SvxUndoRedoControl ::RegisterControl(SID_UNDO, pMod );
246 SvxUndoRedoControl ::RegisterControl(SID_REDO, pMod );
247 svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
249 SvxGrafModeToolBoxControl ::RegisterControl(SID_ATTR_GRAF_MODE, pMod);
250 SvxGrafRedToolBoxControl ::RegisterControl(SID_ATTR_GRAF_RED, pMod);
251 SvxGrafGreenToolBoxControl ::RegisterControl(SID_ATTR_GRAF_GREEN, pMod);
252 SvxGrafBlueToolBoxControl ::RegisterControl(SID_ATTR_GRAF_BLUE, pMod);
253 SvxGrafLuminanceToolBoxControl ::RegisterControl(SID_ATTR_GRAF_LUMINANCE, pMod);
254 SvxGrafContrastToolBoxControl ::RegisterControl(SID_ATTR_GRAF_CONTRAST, pMod);
255 SvxGrafGammaToolBoxControl ::RegisterControl(SID_ATTR_GRAF_GAMMA, pMod);
256 SvxGrafTransparenceToolBoxControl::RegisterControl(SID_ATTR_GRAF_TRANSPARENCE, pMod);
257 SvxGrafFilterToolBoxControl ::RegisterControl(SID_GRFFILTER, pMod);
259 SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_CAPTION_VERTICAL, pMod);
260 SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_TEXT_VERTICAL, pMod);
261 SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_LEFT_TO_RIGHT, pMod);
262 SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_TOP_TO_BOTTOM, pMod);
263 SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_LEFT_TO_RIGHT, pMod);
264 SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_RIGHT_TO_LEFT, pMod);
266 //Media Controller
267 ::avmedia::MediaToolBoxControl::RegisterControl( SID_AVMEDIA_TOOLBOX, pMod );
269 // Svx-StatusBar-Controller
270 SvxInsertStatusBarControl ::RegisterControl(SID_ATTR_INSERT, pMod);
271 SvxSelectionModeControl ::RegisterControl(SID_STATUS_SELMODE, pMod);
272 SvxZoomStatusBarControl ::RegisterControl(SID_ATTR_ZOOM, pMod);
273 SvxZoomSliderControl ::RegisterControl(SID_ATTR_ZOOMSLIDER, pMod);
274 SvxModifyControl ::RegisterControl(SID_DOC_MODIFIED, pMod);
275 XmlSecStatusBarControl ::RegisterControl( SID_SIGNATURE, pMod );
277 SvxPosSizeStatusBarControl ::RegisterControl(SID_ATTR_SIZE, pMod);
279 // Svx-Menue-Controller
280 SvxFontMenuControl ::RegisterControl(SID_ATTR_CHAR_FONT, pMod);
281 SvxFontSizeMenuControl ::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod);
283 // CustomShape extrusion controller
284 svx::ExtrusionDepthControl::RegisterControl( SID_EXTRUSION_DEPTH_FLOATER, pMod );
285 svx::ExtrusionDirectionControl::RegisterControl( SID_EXTRUSION_DIRECTION_FLOATER, pMod );
286 svx::ExtrusionLightingControl::RegisterControl( SID_EXTRUSION_LIGHTING_FLOATER, pMod );
287 svx::ExtrusionSurfaceControl::RegisterControl( SID_EXTRUSION_SURFACE_FLOATER, pMod );
288 svx::ExtrusionColorControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod );
290 svx::FontWorkShapeTypeControl::RegisterControl( SID_FONTWORK_SHAPE_TYPE, pMod );
291 svx::FontWorkAlignmentControl::RegisterControl( SID_FONTWORK_ALIGNMENT_FLOATER, pMod );
292 svx::FontWorkCharacterSpacingControl::RegisterControl( SID_FONTWORK_CHARACTER_SPACING_FLOATER, pMod );
294 // Child-Windows
296 // Hack: Eingabezeile mit 42 registrieren, damit sie im PlugIn immer sichtbar ist
297 ScInputWindowWrapper ::RegisterChildWindow(42, pMod, SFX_CHILDWIN_TASK|SFX_CHILDWIN_FORCEDOCK);
298 ScNavigatorDialogWrapper ::RegisterChildWindowContext(
299 sal::static_int_cast<sal_uInt16>(ScTabViewShell::GetInterfaceId()), pMod);
300 ScSolverDlgWrapper ::RegisterChildWindow(FALSE, pMod);
301 ScOptSolverDlgWrapper ::RegisterChildWindow(FALSE, pMod);
302 ScNameDlgWrapper ::RegisterChildWindow(FALSE, pMod);
303 ScPivotLayoutWrapper ::RegisterChildWindow(FALSE, pMod);
304 ScTabOpDlgWrapper ::RegisterChildWindow(FALSE, pMod);
305 ScFilterDlgWrapper ::RegisterChildWindow(FALSE, pMod);
306 ScSpecialFilterDlgWrapper ::RegisterChildWindow(FALSE, pMod);
307 ScDbNameDlgWrapper ::RegisterChildWindow(FALSE, pMod);
308 ScConsolidateDlgWrapper ::RegisterChildWindow(FALSE, pMod);
309 ScPrintAreasDlgWrapper ::RegisterChildWindow(FALSE, pMod);
310 ScCondFormatDlgWrapper ::RegisterChildWindow(FALSE, pMod);
311 ScColRowNameRangesDlgWrapper::RegisterChildWindow(FALSE, pMod);
312 ScFormulaDlgWrapper ::RegisterChildWindow(FALSE, pMod);
314 // First docking Window for Calc
315 ScFunctionChildWindow ::RegisterChildWindow(FALSE, pMod);
317 // Redlining- Window
318 ScAcceptChgDlgWrapper ::RegisterChildWindow(FALSE, pMod);
319 ScSimpleRefDlgWrapper ::RegisterChildWindow(FALSE, pMod, SFX_CHILDWIN_ALWAYSAVAILABLE|SFX_CHILDWIN_NEVERHIDE );
320 ScHighlightChgDlgWrapper ::RegisterChildWindow(FALSE, pMod);
322 SvxSearchDialogWrapper ::RegisterChildWindow(FALSE, pMod);
323 SvxHlinkDlgWrapper ::RegisterChildWindow(FALSE, pMod);
324 SvxFontWorkChildWindow ::RegisterChildWindow(FALSE, pMod);
325 SvxHyperlinkDlgWrapper ::RegisterChildWindow(FALSE, pMod, SFX_CHILDWIN_FORCEDOCK);
326 SvxIMapDlgChildWindow ::RegisterChildWindow(FALSE, pMod);
327 GalleryChildWindow ::RegisterChildWindow(FALSE, pMod);
328 ScSpellDialogChildWindow ::RegisterChildWindow(FALSE, pMod);
329 ::avmedia::MediaPlayer ::RegisterChildWindow(FALSE, pMod);
331 // Edit-Engine-Felder, soweit nicht schon in OfficeApplication::Init
333 SvClassManager& rClassManager = SvxFieldItem::GetClassManager();
334 // rClassManager.SV_CLASS_REGISTER( SvxURLField );
335 // rClassManager.SV_CLASS_REGISTER( SvxDateField );
336 // rClassManager.SV_CLASS_REGISTER( SvxPageField );
337 rClassManager.SV_CLASS_REGISTER( SvxPagesField );
338 // rClassManager.SV_CLASS_REGISTER( SvxTimeField );
339 rClassManager.SV_CLASS_REGISTER( SvxFileField );
340 // rClassManager.SV_CLASS_REGISTER( SvxExtFileField );
341 rClassManager.SV_CLASS_REGISTER( SvxTableField );
343 SdrRegisterFieldClasses(); // SvDraw-Felder registrieren
345 // 3D-Objekt-Factory eintragen
346 E3dObjFactory();
348 // ::com::sun::star::form::component::Form-Objekt-Factory eintragen
349 FmFormObjFactory();
351 pMod->PutItem( SfxUInt16Item( SID_ATTR_METRIC, sal::static_int_cast<UINT16>(pMod->GetAppOptions().GetAppMetric()) ) );
353 // StarOne Services are now handled in the registry
356 void ScDLL::Exit()
358 // the SxxModule must be destroyed
359 ScModule **ppShlPtr = (ScModule**) GetAppData(SHL_CALC);
360 delete (*ppShlPtr);
361 (*ppShlPtr) = NULL;
363 // ScGlobal::Clear ist schon im Module-dtor
366 //------------------------------------------------------------------
367 // Statusbar
368 //------------------------------------------------------------------
370 #define TEXT_WIDTH(s) rStatusBar.GetTextWidth((s))
372 //UNUSED2008-05 void ScDLL::FillStatusBar(StatusBar &rStatusBar)
373 //UNUSED2008-05 {
374 //UNUSED2008-05 // Dokumentposition (Tabelle x / y)
375 //UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_DOCPOS,
376 //UNUSED2008-05 TEXT_WIDTH( String().Fill( 10, 'X' ) ),
377 //UNUSED2008-05 SIB_LEFT|SIB_AUTOSIZE );
378 //UNUSED2008-05
379 //UNUSED2008-05 // Seitenvorlage
380 //UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_PAGESTYLE,
381 //UNUSED2008-05 TEXT_WIDTH( String().Fill( 15, 'X' ) ),
382 //UNUSED2008-05 SIB_LEFT|SIB_AUTOSIZE );
383 //UNUSED2008-05
384 //UNUSED2008-05 // Ma"sstab
385 //UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_ZOOM,
386 //UNUSED2008-05 SvxZoomStatusBarControl::GetDefItemWidth(rStatusBar),
387 //UNUSED2008-05 SIB_CENTER );
388 //UNUSED2008-05
389 //UNUSED2008-05 // Einfuege-/Ueberschreibmodus
390 //UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_INSERT,
391 //UNUSED2008-05 SvxInsertStatusBarControl::GetDefItemWidth(rStatusBar),
392 //UNUSED2008-05 SIB_CENTER );
393 //UNUSED2008-05
394 //UNUSED2008-05 // Selektionsmodus
395 //UNUSED2008-05 rStatusBar.InsertItem( SID_STATUS_SELMODE,
396 //UNUSED2008-05 SvxSelectionModeControl::GetDefItemWidth(rStatusBar),
397 //UNUSED2008-05 SIB_CENTER );
398 //UNUSED2008-05
399 //UNUSED2008-05 // Dokument geaendert
400 //UNUSED2008-05 rStatusBar.InsertItem( SID_DOC_MODIFIED,
401 //UNUSED2008-05 SvxModifyControl::GetDefItemWidth(rStatusBar));
402 //UNUSED2008-05
403 //UNUSED2008-05 // signatures
404 //UNUSED2008-05 rStatusBar.InsertItem( SID_SIGNATURE, XmlSecStatusBarControl::GetDefItemWidth( rStatusBar ), SIB_USERDRAW );
405 //UNUSED2008-05 rStatusBar.SetHelpId(SID_SIGNATURE, SID_SIGNATURE);
406 //UNUSED2008-05
407 //UNUSED2008-05 // Mail
408 //UNUSED2008-05 rStatusBar.InsertItem( SID_MAIL_NOTIFY,
409 //UNUSED2008-05 TEXT_WIDTH( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("Mail")) ),
410 //UNUSED2008-05 SIB_CENTER );
411 //UNUSED2008-05
412 //UNUSED2008-05 // den aktuellen Kontext anzeigen Uhrzeit / FramePos / TabellenInfo / Errors
413 //UNUSED2008-05 rStatusBar.InsertItem( SID_ATTR_SIZE,
414 //UNUSED2008-05 SvxPosSizeStatusBarControl::GetDefItemWidth(rStatusBar),
415 //UNUSED2008-05 SIB_AUTOSIZE|SIB_LEFT|SIB_USERDRAW);
416 //UNUSED2008-05 }
418 #undef TEXT_WIDTH
420 // DetectFilter functionality has moved - please update your bookmarks
421 // see sc/source/ui/unoobj/scdetect.cxx, have a nice day.