LibreOffice Module sw (master)  1
swmodule.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <config_features.h>
21 
22 #include <hintids.hxx>
23 #include <swerror.h>
24 #include <vcl/wrkwin.hxx>
25 #include <vcl/graph.hxx>
26 #include <svtools/ehdl.hxx>
28 #include <unotools/resmgr.hxx>
29 #include <unotools/useroptions.hxx>
30 #include <svl/ctloptions.hxx>
35 #include <svx/svdobj.hxx>
36 #include <svx/pszctrl.hxx>
37 #include <svx/insctrl.hxx>
38 #include <svx/selctrl.hxx>
39 #include <svx/linectrl.hxx>
40 #include <svx/tbxctl.hxx>
41 #include <svx/fillctrl.hxx>
42 #include <svx/tbcontrl.hxx>
43 #include <svx/verttexttbxctrl.hxx>
45 #include <svx/contdlg.hxx>
46 #include <svx/layctrl.hxx>
47 #include <svx/fontwork.hxx>
49 #include <svx/grafctrl.hxx>
50 #include <svx/tbxcolor.hxx>
51 #include <svx/clipboardctl.hxx>
52 #include <svx/lboxctrl.hxx>
53 #include <svx/imapdlg.hxx>
54 #include <svx/srchdlg.hxx>
55 #include <svx/hyperdlg.hxx>
56 #include <svx/modctrl.hxx>
57 #include <svx/svxids.hrc>
58 #include <sfx2/emojipopup.hxx>
59 #include <sfx2/charmappopup.hxx>
60 #include <com/sun/star/scanner/ScannerManager.hpp>
61 #include <com/sun/star/linguistic2/LanguageGuessing.hpp>
62 #include <ooo/vba/XSinkCaller.hpp>
64 #include <docsh.hxx>
65 #include <swmodule.hxx>
66 #include <swevent.hxx>
67 #include <cmdid.h>
68 #include <dobjfac.hxx>
69 #include <init.hxx>
70 #include <pview.hxx>
71 #include <wview.hxx>
72 #include <wdocsh.hxx>
73 #include <globdoc.hxx>
74 #include <srcview.hxx>
75 #include <glshell.hxx>
76 #include <tabsh.hxx>
77 #include <listsh.hxx>
78 #include <grfsh.hxx>
79 #include <mediash.hxx>
80 #include <olesh.hxx>
81 #include <drawsh.hxx>
82 #include <wformsh.hxx>
83 #include <drwtxtsh.hxx>
84 #include <beziersh.hxx>
85 #include <wtextsh.hxx>
86 #include <wfrmsh.hxx>
87 #include <drformsh.hxx>
88 #include <wgrfsh.hxx>
89 #include <wolesh.hxx>
90 #include <wlistsh.hxx>
91 #include <wtabsh.hxx>
92 #include <navipi.hxx>
93 #include <chartins.hxx>
94 #include <inputwin.hxx>
95 #include <usrpref.hxx>
96 #include <uinums.hxx>
97 #include <prtopt.hxx>
98 #include <bookctrl.hxx>
99 #include <tmplctrl.hxx>
100 #include <viewlayoutctrl.hxx>
101 #include <svx/zoomsliderctrl.hxx>
102 #include <zoomctrl.hxx>
103 #include <wordcountctrl.hxx>
104 #include <workctrl.hxx>
105 #include <fldwrap.hxx>
106 #include <redlndlg.hxx>
107 #include <syncbtn.hxx>
108 #include <modcfg.hxx>
109 #include <fontcfg.hxx>
111 #include <sfx2/evntconf.hxx>
112 #include <swatrset.hxx>
113 #include <idxmrk.hxx>
114 #include <wordcountdialog.hxx>
115 #include <dlelstnr.hxx>
116 #include <barcfg.hxx>
117 #include <svx/rubydialog.hxx>
118 #include <svtools/colorcfg.hxx>
119 #include <PageSizePopup.hxx>
120 #include <PageMarginPopup.hxx>
121 #include <PageOrientationPopup.hxx>
122 #include <PageColumnPopup.hxx>
123 
124 #include <unotools/configmgr.hxx>
126 
127 #include <avmedia/mediaplayer.hxx>
128 #include <avmedia/mediatoolbox.hxx>
129 
130 #include <annotsh.hxx>
131 #include <navsh.hxx>
132 
133 #include <app.hrc>
134 #include <error.hrc>
135 #include <strings.hrc>
136 #include <bitmaps.hlst>
137 #include <svx/xmlsecctrl.hxx>
138 bool g_bNoInterrupt = false;
139 
140 #include <sfx2/app.hxx>
141 
142 #include <svx/svxerr.hxx>
143 
144 #include <unomid.h>
145 
146 #include "swdllimpl.hxx"
147 #include <dbconfig.hxx>
148 #include <navicfg.hxx>
149 
150 using namespace com::sun::star;
151 using namespace ::com::sun::star::uno;
152 
154  SfxObjectFactory* pFact,
155  SfxObjectFactory* pGlobalFact )
156  : SfxModule("sw", {pWebFact, pFact, pGlobalFact}),
157  m_pAttrPool(nullptr),
158  m_pView(nullptr),
159  m_bAuthorInitialised(false),
160  m_bEmbeddedLoadSave( false ),
161  m_pDragDrop( nullptr ),
162  m_pXSelection( nullptr )
163 {
164  SetName( "StarWriter" );
166  m_pErrorHandler.reset( new SfxErrorHandler( RID_SW_ERRHDL,
167  ErrCodeArea::Sw,
168  ErrCodeArea::Sw,
169  GetResLocale() ) );
170 
171  m_pModuleConfig.reset(new SwModuleOptions);
172 
173  // We need them anyways
174  m_pToolbarConfig.reset(new SwToolbarConfigItem( false ));
175  m_pWebToolbarConfig.reset(new SwToolbarConfigItem( true ));
176 
177  m_pStdFontConfig.reset(new SwStdFontConfig);
178 
180 
182  {
183  // init color configuration
184  // member <pColorConfig> is created and the color configuration is applied
185  // at the view options.
186  GetColorConfig();
187  m_xLinguServiceEventListener = new SwLinguServiceEventListener;
188  }
189 }
190 
191 OUString SwResId(const char* pId)
192 {
193  return Translate::get(pId, SW_MOD()->GetResLocale());
194 }
195 
196 OUString SwResId(const char* pId, int nCardinality)
197 {
198  return Translate::nget(pId, nCardinality, SW_MOD()->GetResLocale());
199 }
200 
201 uno::Reference< scanner::XScannerManager2 > const &
203 {
204  if (!m_xScannerManager.is())
205  {
206  m_xScannerManager = scanner::ScannerManager::create( comphelper::getProcessComponentContext() );
207  }
208  return m_xScannerManager;
209 }
210 
211 uno::Reference< linguistic2::XLanguageGuessing > const & SwModule::GetLanguageGuesser()
212 {
213  if (!m_xLanguageGuesser.is())
214  {
215  m_xLanguageGuesser = linguistic2::LanguageGuessing::create( comphelper::getProcessComponentContext() );
216  }
217  return m_xLanguageGuesser;
218 }
219 
221 {
222  css::uno::Sequence< css::uno::Any > aArgs;
223  CallAutomationApplicationEventSinks( "Quit", aArgs );
224  m_pErrorHandler.reset();
225  EndListening( *SfxGetpApp() );
226 }
227 
229 {
230  // These Id's must not be changed. Through these Id's the View (resume Documentview)
231  // is created by Sfx.
232  if (utl::ConfigManager::IsFuzzing() || SvtModuleOptions().IsWriter())
233  SwView::RegisterFactory ( SFX_INTERFACE_SFXDOCSH );
234 
235 #if HAVE_FEATURE_DESKTOP
236  SwWebView::RegisterFactory ( SFX_INTERFACE_SFXMODULE );
237 
238  if (utl::ConfigManager::IsFuzzing() || SvtModuleOptions().IsWriter())
239  {
240  SwSrcView::RegisterFactory ( SfxInterfaceId(6) );
241  SwPagePreview::RegisterFactory ( SfxInterfaceId(7) );
242  }
243 #endif
244 }
245 
247 {
248  SwModule* pMod = SW_MOD();
249  SwModule::RegisterInterface( pMod );
250  SwDocShell::RegisterInterface( pMod );
251  SwWebDocShell::RegisterInterface( pMod );
252  SwGlosDocShell::RegisterInterface( pMod );
253  SwWebGlosDocShell::RegisterInterface( pMod );
254  SwView::RegisterInterface( pMod );
255  SwWebView::RegisterInterface( pMod );
256  SwPagePreview::RegisterInterface( pMod );
257  SwSrcView::RegisterInterface( pMod );
258 
259  SwBaseShell::RegisterInterface(pMod);
260  SwTextShell::RegisterInterface(pMod);
261  SwTableShell::RegisterInterface(pMod);
262  SwListShell::RegisterInterface(pMod);
263  SwFrameShell::RegisterInterface(pMod);
264  SwDrawBaseShell::RegisterInterface(pMod);
265  SwDrawShell::RegisterInterface(pMod);
266  SwDrawFormShell::RegisterInterface(pMod);
267  SwDrawTextShell::RegisterInterface(pMod);
268  SwBezierShell::RegisterInterface(pMod);
269  SwGrfShell::RegisterInterface(pMod);
270  SwOleShell::RegisterInterface(pMod);
271  SwNavigationShell::RegisterInterface(pMod);
272  SwWebTextShell::RegisterInterface(pMod);
273  SwWebFrameShell::RegisterInterface(pMod);
274  SwWebGrfShell::RegisterInterface(pMod);
275  SwWebListShell::RegisterInterface(pMod);
276  SwWebTableShell::RegisterInterface(pMod);
277  SwWebDrawFormShell::RegisterInterface(pMod);
278  SwWebOleShell::RegisterInterface(pMod);
279  SwMediaShell::RegisterInterface(pMod);
280  SwAnnotationShell::RegisterInterface(pMod);
281 }
282 
284 {
285  SwModule* pMod = SW_MOD();
286 
287  SvxTbxCtlDraw::RegisterControl(SID_INSERT_DRAW, pMod );
288  SvxTbxCtlDraw::RegisterControl(SID_TRACK_CHANGES_BAR, pMod );
289  SwTbxAutoTextCtrl::RegisterControl(FN_GLOSSARY_DLG, pMod );
290  svx::ParaLineSpacingPopup::RegisterControl(SID_ATTR_PARA_LINESPACE, pMod);
291  svx::TextCharacterSpacingPopup::RegisterControl(SID_ATTR_CHAR_KERNING, pMod);
292  svx::TextUnderlinePopup::RegisterControl(SID_ATTR_CHAR_UNDERLINE, pMod);
293  svx::ParaAboveSpacingControl::RegisterControl(SID_ATTR_PARA_ABOVESPACE, pMod);
294  svx::ParaBelowSpacingControl::RegisterControl(SID_ATTR_PARA_BELOWSPACE, pMod);
295  svx::ParaLeftSpacingControl::RegisterControl(SID_ATTR_PARA_LEFTSPACE, pMod);
296  svx::ParaRightSpacingControl::RegisterControl(SID_ATTR_PARA_RIGHTSPACE, pMod);
297  svx::ParaFirstLineSpacingControl::RegisterControl(SID_ATTR_PARA_FIRSTLINESPACE, pMod);
298  PageMarginPopup::RegisterControl(SID_ATTR_PAGE_MARGIN, pMod);
299  PageOrientationPopup::RegisterControl(SID_ATTR_PAGE_ORIENTATION, pMod);
300  PageColumnPopup::RegisterControl(SID_ATTR_PAGE_COLUMN, pMod);
301  PageSizePopup::RegisterControl(SID_ATTR_PAGE_SIZE, pMod);
302 
303  SvxClipBoardControl::RegisterControl(SID_PASTE, pMod );
304  SvxUndoRedoControl::RegisterControl(SID_UNDO, pMod );
305  SvxUndoRedoControl::RegisterControl(SID_REDO, pMod );
306  svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
307 
308  SvxFillToolBoxControl::RegisterControl(SID_ATTR_FILL_STYLE, pMod );
309  SvxLineStyleToolBoxControl::RegisterControl(SID_ATTR_LINE_STYLE, pMod );
310  SvxLineWidthToolBoxControl::RegisterControl(SID_ATTR_LINE_WIDTH, pMod );
311 
312  SvxStyleToolBoxControl::RegisterControl(SID_STYLE_APPLY, pMod );
313 
314  SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_FRAME_INTERACT, pMod );
315  SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_FRAME, pMod );
316  SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_REGION, pMod );
317  SvxTableToolBoxControl::RegisterControl(FN_INSERT_TABLE, pMod );
318  SvxTableToolBoxControl::RegisterControl(FN_SHOW_MULTIPLE_PAGES, pMod );
319 
320  SwZoomControl::RegisterControl(SID_ATTR_ZOOM, pMod );
321  SwPreviewZoomControl::RegisterControl(FN_PREVIEW_ZOOM, pMod);
322  SvxPosSizeStatusBarControl::RegisterControl(0, pMod );
323  SvxInsertStatusBarControl::RegisterControl(SID_ATTR_INSERT, pMod );
324  SvxSelectionModeControl::RegisterControl(FN_STAT_SELMODE, pMod );
325  XmlSecStatusBarControl::RegisterControl( SID_SIGNATURE, pMod );
326  SwWordCountStatusBarControl::RegisterControl(FN_STAT_WORDCOUNT, pMod);
327 
328  SwBookmarkControl::RegisterControl(FN_STAT_PAGE, pMod );
329  SwTemplateControl::RegisterControl(FN_STAT_TEMPLATE, pMod );
330  SwViewLayoutControl::RegisterControl( SID_ATTR_VIEWLAYOUT, pMod );
331  SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
332  SvxZoomSliderControl::RegisterControl( SID_ATTR_ZOOMSLIDER, pMod );
333 
334  EmojiPopup::RegisterControl(SID_EMOJI_CONTROL, pMod );
335 
336  SvxIMapDlgChildWindow::RegisterChildWindow( false, pMod );
337  SvxSearchDialogWrapper::RegisterChildWindow( false, pMod );
338  SvxHlinkDlgWrapper::RegisterChildWindow( false, pMod );
339  SvxFontWorkChildWindow::RegisterChildWindow( false, pMod );
342  SvxContourDlgChildWindow::RegisterChildWindow( false, pMod );
344  SwInputChild::RegisterChildWindow( false, pMod, SfxChildWindowFlags::FORCEDOCK );
350  SvxRubyChildWindow::RegisterChildWindow( false, pMod);
351  SwSpellDialogChildWindow::RegisterChildWindow(false, pMod);
352 
353  CharmapPopup::RegisterControl(SID_CHARMAP_CONTROL, pMod );
354 
355  SvxGrafRedToolBoxControl::RegisterControl( SID_ATTR_GRAF_RED, pMod );
356  SvxGrafGreenToolBoxControl::RegisterControl( SID_ATTR_GRAF_GREEN, pMod );
357  SvxGrafBlueToolBoxControl::RegisterControl( SID_ATTR_GRAF_BLUE, pMod );
358  SvxGrafLuminanceToolBoxControl::RegisterControl( SID_ATTR_GRAF_LUMINANCE, pMod );
359  SvxGrafContrastToolBoxControl::RegisterControl( SID_ATTR_GRAF_CONTRAST, pMod );
360  SvxGrafGammaToolBoxControl::RegisterControl( SID_ATTR_GRAF_GAMMA, pMod );
361  SvxGrafTransparenceToolBoxControl::RegisterControl( SID_ATTR_GRAF_TRANSPARENCE, pMod );
362  SvxGrafModeToolBoxControl::RegisterControl( SID_ATTR_GRAF_MODE, pMod );
363  SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_LEFT_TO_RIGHT, pMod);
364  SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_TOP_TO_BOTTOM, pMod);
365  SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_CAPTION_VERTICAL, pMod);
366  SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_TEXT_VERTICAL, pMod);
367 
368  SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_LEFT_TO_RIGHT, pMod);
369  SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_RIGHT_TO_LEFT, pMod);
370 
371 #if HAVE_FEATURE_AVMEDIA
372  ::avmedia::MediaToolBoxControl::RegisterControl(SID_AVMEDIA_TOOLBOX, pMod);
373  ::avmedia::MediaPlayer::RegisterChildWindow(false, pMod);
374 #endif
375 
377 
378  SwJumpToSpecificPageControl::RegisterControl(SID_JUMP_TO_SPECIFIC_PAGE, pMod);
379 }
380 
381 // Load Module (only dummy for linking of the DLL)
383 {
384  OSL_ENSURE(!m_pAttrPool, "Pool already exists!");
385  m_pAttrPool = new SwAttrPool(nullptr);
387 }
388 
390 {
391  SetPool(nullptr);
393 }
394 
395 std::unique_ptr<SfxStyleFamilies> SwModule::CreateStyleFamilies()
396 {
397  std::unique_ptr<SfxStyleFamilies> pStyleFamilies(new SfxStyleFamilies);
398 
399  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Para,
400  SwResId(STR_PARAGRAPHSTYLEFAMILY),
401  Image(StockImage::Yes, BMP_STYLES_FAMILY_PARA),
402  RID_PARAGRAPHSTYLEFAMILY, GetResLocale()));
403 
404  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Char,
405  SwResId(STR_CHARACTERSTYLEFAMILY),
406  Image(StockImage::Yes, BMP_STYLES_FAMILY_CHAR),
407  RID_CHARACTERSTYLEFAMILY, GetResLocale()));
408 
409  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Frame,
410  SwResId(STR_FRAMESTYLEFAMILY),
411  Image(StockImage::Yes, BMP_STYLES_FAMILY_FRAME),
412  RID_FRAMESTYLEFAMILY, GetResLocale()));
413 
414  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Page,
415  SwResId(STR_PAGESTYLEFAMILY),
416  Image(StockImage::Yes, BMP_STYLES_FAMILY_PAGE),
417  RID_PAGESTYLEFAMILY, GetResLocale()));
418 
419  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Pseudo,
420  SwResId(STR_LISTSTYLEFAMILY),
421  Image(StockImage::Yes, BMP_STYLES_FAMILY_LIST),
422  RID_LISTSTYLEFAMILY, GetResLocale()));
423 
424  pStyleFamilies->emplace_back(SfxStyleFamilyItem(SfxStyleFamily::Table,
425  SwResId(STR_TABLESTYLEFAMILY),
426  Image(StockImage::Yes, BMP_STYLES_FAMILY_TABLE),
427  RID_TABLESTYLEFAMILY, GetResLocale()));
428 
429  return pStyleFamilies;
430 }
431 
432 void SwModule::RegisterAutomationApplicationEventsCaller(css::uno::Reference< ooo::vba::XSinkCaller > const& xCaller)
433 {
435 }
436 
437 void SwModule::CallAutomationApplicationEventSinks(const OUString& Method, css::uno::Sequence< css::uno::Any >& Arguments)
438 {
440  mxAutomationApplicationEventsCaller->CallSinks(Method, Arguments);
441 }
442 
443 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
css::uno::Reference< css::scanner::XScannerManager2 > const & GetScannerManager()
Definition: swmodule.cxx:202
SwAttrPool * m_pAttrPool
Definition: swmodule.hxx:97
#define FN_SHOW_MULTIPLE_PAGES
Definition: cmdid.h:809
std::vector< SfxStyleFamilyItem > SfxStyleFamilies
std::locale GetResLocale() const
#define SID_ATTR_PAGE_COLUMN
Definition: cmdid.h:829
SwModule(SfxObjectFactory *pFact, SfxObjectFactory *pWebFact, SfxObjectFactory *pGlobalFact)
Definition: swmodule.cxx:153
#define FN_PREVIEW_ZOOM
Definition: cmdid.h:173
void CallAutomationApplicationEventSinks(const OUString &Method, css::uno::Sequence< css::uno::Any > &Arguments)
Definition: swmodule.cxx:437
void RegisterAutomationApplicationEventsCaller(css::uno::Reference< ooo::vba::XSinkCaller > const &xCaller)
Definition: swmodule.cxx:432
#define FN_INSERT_REGION
Definition: cmdid.h:270
void InitAttrPool()
Definition: swmodule.cxx:382
static void RegisterControls()
Definition: swmodule.cxx:283
#define FN_STAT_PAGE
Definition: cmdid.h:799
#define FN_INSERT_FRAME_INTERACT
Definition: cmdid.h:209
SfxApplication * SfxGetpApp()
css::uno::Reference< ooo::vba::XSinkCaller > mxAutomationApplicationEventsCaller
Definition: swmodule.hxx:124
#define SID_ATTR_PAGE_MARGIN
Definition: cmdid.h:838
static bool IsFuzzing()
#define SID_JUMP_TO_SPECIFIC_PAGE
Definition: cmdid.h:698
#define FN_STAT_SELMODE
Definition: cmdid.h:802
#define FN_STAT_TEMPLATE
Definition: cmdid.h:800
OUString nget(const char *pContextAndIds, int n, const std::locale &loc)
#define SW_MOD()
Definition: swmodule.hxx:255
static void RegisterInterfaces()
Definition: swmodule.cxx:246
#define FN_INSERT_TABLE
Definition: cmdid.h:207
#define FN_GLOSSARY_DLG
Definition: cmdid.h:472
constexpr auto SFX_INTERFACE_SFXMODULE
void SetPool(SfxItemPool *pNewPool)
static void RegisterChildWindow(SfxModule *, std::unique_ptr< SfxChildWinFactory >)
virtual ~SwModule() override
Definition: swmodule.cxx:220
OUString SwResId(const char *pId)
Definition: swmodule.cxx:191
#define FN_STAT_WORDCOUNT
Definition: cmdid.h:804
constexpr auto SFX_INTERFACE_SFXDOCSH
virtual std::unique_ptr< SfxStyleFamilies > CreateStyleFamilies() override
Definition: swmodule.cxx:395
css::uno::Reference< css::scanner::XScannerManager2 > m_xScannerManager
Definition: swmodule.hxx:109
#define FN_INSERT_FRAME
Definition: cmdid.h:210
static void RegisterFactories()
Definition: swmodule.cxx:228
static void Free(SfxItemPool *pPool)
static void RegisterChildWindowContext(SfxModule *pMod)
Definition: navipi.cxx:74
css::uno::Reference< css::linguistic2::XLanguageGuessing > const & GetLanguageGuesser()
Definition: swmodule.cxx:211
EventListener that triggers spellchecking and hyphenation.
Definition: dlelstnr.hxx:42
css::uno::Reference< css::linguistic2::XLanguageGuessing > m_xLanguageGuesser
Definition: swmodule.hxx:110
void RemoveAttrPool()
Definition: swmodule.cxx:389
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
Reference< XComponentContext > getProcessComponentContext()
static void ensure()
#define SID_TRACK_CHANGES_BAR
Definition: cmdid.h:699
bool g_bNoInterrupt
Definition: swmodule.cxx:138
OUString get(const char *pContextAndId, const std::locale &loc)
std::unique_ptr< SfxErrorHandler > m_pErrorHandler
Definition: swmodule.hxx:95