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