| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sw.hxx" |
| |
| |
| #include <hintids.hxx> |
| #ifndef _SWERROR_H |
| #include <swerror.h> |
| #endif |
| #include <vcl/wrkwin.hxx> |
| #include <vcl/graph.hxx> |
| #include <svx/galbrws.hxx> |
| #include <svx/svdobj.hxx> |
| #include <svtools/ehdl.hxx> |
| #include <svx/fntszctl.hxx> |
| #include <svx/fntctl.hxx> |
| #include <svx/SmartTagCtl.hxx> |
| #include <svx/pszctrl.hxx> |
| #include <svx/insctrl.hxx> |
| #include <svx/selctrl.hxx> |
| #include <svx/linectrl.hxx> |
| #include <svx/tbxctl.hxx> //z-Zt falscher includeschutz! |
| #include <svx/fillctrl.hxx> |
| #include <svx/tbcontrl.hxx> |
| #include <svx/verttexttbxctrl.hxx> |
| #include <svx/formatpaintbrushctrl.hxx> |
| #include <svx/contdlg.hxx> |
| #include <svx/layctrl.hxx> |
| #include <svx/fontwork.hxx> |
| #include <SwSpellDialogChildWindow.hxx> |
| #include <svx/tbxalign.hxx> |
| #include <svx/grafctrl.hxx> |
| #include <svx/tbxcolor.hxx> |
| #include <svx/clipboardctl.hxx> |
| #include <svx/lboxctrl.hxx> |
| #include <svx/hyprlink.hxx> |
| #include <svx/tbxcustomshapes.hxx> |
| #include <svx/imapdlg.hxx> |
| #include <svx/srchdlg.hxx> |
| #include <svx/hyperdlg.hxx> |
| #include <svx/extrusioncolorcontrol.hxx> |
| #include <svx/fontworkgallery.hxx> |
| #include <com/sun/star/scanner/XScannerManager.hpp> |
| #include <com/sun/star/container/XSet.hpp> |
| #include <comphelper/processfactory.hxx> |
| #ifndef _DOCSH_HXX |
| #include <docsh.hxx> |
| #endif |
| #include <swmodule.hxx> |
| #include <swevent.hxx> |
| #include <swacorr.hxx> |
| #ifndef _CMDID_H |
| #include <cmdid.h> |
| #endif |
| #include <dobjfac.hxx> |
| #include <init.hxx> |
| #include <pview.hxx> |
| #include <wview.hxx> |
| #include <wdocsh.hxx> |
| #include <globdoc.hxx> |
| #ifndef _SRCVIEW_HXX //autogen |
| #include <srcview.hxx> |
| #endif |
| #include <glshell.hxx> |
| #include <tabsh.hxx> |
| #include <listsh.hxx> |
| #include <grfsh.hxx> |
| #include <mediash.hxx> |
| #include <olesh.hxx> |
| #include <drawsh.hxx> |
| #include <wformsh.hxx> |
| #include <drwtxtsh.hxx> |
| #include <beziersh.hxx> |
| #include <wtextsh.hxx> |
| #include <wfrmsh.hxx> |
| #ifndef _DRFORMSH_HXX |
| #include <drformsh.hxx> |
| #endif |
| #ifndef _WGRFSH_HXX |
| #include <wgrfsh.hxx> |
| #endif |
| #ifndef _WOLESH_HXX |
| #include <wolesh.hxx> |
| #endif |
| #ifndef _WLISTSH_HXX |
| #include <wlistsh.hxx> |
| #endif |
| #ifndef _WTABSH_HXX |
| #include <wtabsh.hxx> |
| #endif |
| #include <navipi.hxx> |
| #include <chartins.hxx> |
| #include <inputwin.hxx> |
| #include <usrpref.hxx> |
| #include <uinums.hxx> |
| #include <prtopt.hxx> |
| #include <bookctrl.hxx> |
| #include <tmplctrl.hxx> |
| #include <viewlayoutctrl.hxx> |
| #include <svx/zoomsliderctrl.hxx> |
| #include <tblctrl.hxx> |
| #include <zoomctrl.hxx> |
| #include <workctrl.hxx> |
| #include <tbxanchr.hxx> |
| #include <fldwrap.hxx> |
| #ifndef _REDLNDLG_HXX |
| #include <redlndlg.hxx> |
| #endif |
| #ifndef _SYNCBTN_HXX |
| #include <syncbtn.hxx> |
| #endif |
| #include <mailmergechildwindow.hxx> |
| #include <modcfg.hxx> |
| #include <fontcfg.hxx> |
| #include <sfx2/sidebar/SidebarChildWindow.hxx> |
| #include <sfx2/taskpane.hxx> |
| #include <sfx2/evntconf.hxx> |
| #include <sfx2/appuno.hxx> |
| #include <swatrset.hxx> |
| #include <idxmrk.hxx> |
| #include <dlelstnr.hxx> |
| #ifndef _BARCFG_HXX |
| #include <barcfg.hxx> |
| #endif |
| #include <svx/rubydialog.hxx> |
| // OD 14.02.2003 #107424# |
| #include <svtools/colorcfg.hxx> |
| |
| #include <editeng/acorrcfg.hxx> |
| #include <unotools/moduleoptions.hxx> |
| |
| #ifndef _AVMEDIA_MEDIAPPLAYER_HXX |
| #include <avmedia/mediaplayer.hxx> |
| #endif |
| #include <avmedia/mediatoolbox.hxx> |
| |
| #include <annotsh.hxx> |
| |
| #include <app.hrc> |
| #include <svx/xmlsecctrl.hxx> |
| ResMgr *pSwResMgr = 0; |
| sal_Bool bNoInterrupt = sal_False; |
| |
| #include <sfx2/app.hxx> |
| |
| #include <svx/svxerr.hxx> |
| |
| #include <unomid.h> |
| |
| using namespace com::sun::star; |
| |
| |
| TYPEINIT1( SwModule, SfxModule ); |
| |
| using namespace ::com::sun::star; |
| using namespace ::com::sun::star::uno; |
| |
| //************************************************************************ |
| |
| SwModule::SwModule( SfxObjectFactory* pWebFact, |
| SfxObjectFactory* pFact, |
| SfxObjectFactory* pGlobalFact ) |
| : SfxModule( SfxApplication::CreateResManager( "sw" ), sal_False, pWebFact, |
| pFact, pGlobalFact, NULL ), |
| pModuleConfig(0), |
| pUsrPref(0), |
| pWebUsrPref(0), |
| pPrtOpt(0), |
| pWebPrtOpt(0), |
| pChapterNumRules(0), |
| pStdFontConfig(0), |
| pNavigationConfig(0), |
| pToolbarConfig(0), |
| pWebToolbarConfig(0), |
| pDBConfig(0), |
| pColorConfig(0), |
| pAccessibilityOptions(0), |
| pCTLOptions(0), |
| pUserOptions(0), |
| pUndoOptions(0), |
| pAttrPool(0), |
| pView(0), |
| bAuthorInitialised(sal_False), |
| bEmbeddedLoadSave( sal_False ), |
| pDragDrop( 0 ), |
| pXSelection( 0 ) |
| { |
| SetName( String::CreateFromAscii("StarWriter") ); |
| pSwResMgr = GetResMgr(); |
| SvxErrorHandler::Get(); |
| pErrorHdl = new SfxErrorHandler( RID_SW_ERRHDL, |
| ERRCODE_AREA_SW, |
| ERRCODE_AREA_SW_END, |
| pSwResMgr ); |
| |
| pModuleConfig = new SwModuleOptions; |
| |
| //Die brauchen wie sowieso |
| pToolbarConfig = new SwToolbarConfigItem( sal_False ); |
| pWebToolbarConfig = new SwToolbarConfigItem( sal_True ); |
| |
| pStdFontConfig = new SwStdFontConfig; |
| |
| pAuthorNames = new SvStringsDtor(5, 1); // Alle Redlining-Autoren |
| |
| //JP 18.10.96: SvxAutocorrect gegen die SwAutocorrect austauschen |
| SvxAutoCorrCfg* pACfg = SvxAutoCorrCfg::Get(); |
| if( pACfg ) |
| { |
| const SvxAutoCorrect* pOld = pACfg->GetAutoCorrect(); |
| pACfg->SetAutoCorrect(new SwAutoCorrect( *pOld )); |
| } |
| |
| StartListening( *SFX_APP() ); |
| |
| // OD 14.02.2003 #107424# - init color configuration |
| // member <pColorConfig> is created and the color configuration is applied |
| // at the view options. |
| GetColorConfig(); |
| } |
| |
| //************************************************************************ |
| |
| uno::Reference< scanner::XScannerManager > |
| SwModule::GetScannerManager() |
| { |
| if (!m_xScannerManager.is()) |
| { |
| uno::Reference< lang::XMultiServiceFactory > xMgr ( |
| comphelper::getProcessServiceFactory() ); |
| if( xMgr.is() ) |
| { |
| m_xScannerManager = |
| uno::Reference< scanner::XScannerManager >( |
| xMgr->createInstance( |
| rtl::OUString::createFromAscii( |
| "com.sun.star.scanner.ScannerManager" ) ), |
| uno::UNO_QUERY ); |
| } |
| } |
| return m_xScannerManager; |
| } |
| |
| uno::Reference< linguistic2::XLanguageGuessing > SwModule::GetLanguageGuesser() |
| { |
| if (!m_xLanguageGuesser.is()) |
| { |
| uno::Reference< lang::XMultiServiceFactory > xMgr ( comphelper::getProcessServiceFactory() ); |
| if (xMgr.is()) |
| { |
| m_xLanguageGuesser = uno::Reference< linguistic2::XLanguageGuessing >( |
| xMgr->createInstance( |
| rtl::OUString::createFromAscii( "com.sun.star.linguistic2.LanguageGuessing" ) ), |
| uno::UNO_QUERY ); |
| } |
| } |
| return m_xLanguageGuesser; |
| } |
| |
| //************************************************************************ |
| |
| SwModule::~SwModule() |
| { |
| SetPool(0); |
| SfxItemPool::Free(pAttrPool); |
| delete pErrorHdl; |
| EndListening( *SFX_APP() ); |
| } |
| |
| //************************************************************************ |
| |
| void SwModule::CreateLngSvcEvtListener() |
| { |
| if (!xLngSvcEvtListener.is()) |
| xLngSvcEvtListener = new SwLinguServiceEventListener; |
| } |
| |
| //************************************************************************ |
| |
| void SwDLL::RegisterFactories() |
| { |
| //Diese Id's duerfen nicht geaendert werden. Mittels der Id's wird vom |
| //Sfx die View (Dokumentansicht wiederherstellen) erzeugt. |
| if ( SvtModuleOptions().IsWriter() ) |
| SwView::RegisterFactory ( 2 ); |
| |
| SwWebView::RegisterFactory ( 5 ); |
| |
| if ( SvtModuleOptions().IsWriter() ) |
| { |
| SwSrcView::RegisterFactory ( 6 ); |
| SwPagePreView::RegisterFactory ( 7 ); |
| } |
| } |
| |
| //************************************************************************ |
| |
| |
| void SwDLL::RegisterInterfaces() |
| { |
| SwModule* pMod = SW_MOD(); |
| SwModule::RegisterInterface( pMod ); |
| SwDocShell::RegisterInterface( pMod ); |
| SwWebDocShell::RegisterInterface( pMod ); |
| SwGlosDocShell::RegisterInterface( pMod ); |
| SwWebGlosDocShell::RegisterInterface( pMod ); |
| SwView::RegisterInterface( pMod ); |
| SwWebView::RegisterInterface( pMod ); |
| SwPagePreView::RegisterInterface( pMod ); |
| SwSrcView::RegisterInterface( pMod ); |
| |
| |
| SwBaseShell::RegisterInterface(pMod); |
| SwTextShell::RegisterInterface(pMod); |
| SwTableShell::RegisterInterface(pMod); |
| SwListShell::RegisterInterface(pMod); |
| SwFrameShell::RegisterInterface(pMod); |
| SwDrawBaseShell::RegisterInterface(pMod); |
| SwDrawShell::RegisterInterface(pMod); |
| SwDrawFormShell::RegisterInterface(pMod); |
| SwDrawTextShell::RegisterInterface(pMod); |
| SwBezierShell::RegisterInterface(pMod); |
| SwGrfShell::RegisterInterface(pMod); |
| SwOleShell::RegisterInterface(pMod); |
| SwWebTextShell::RegisterInterface(pMod); |
| SwWebFrameShell::RegisterInterface(pMod); |
| SwWebGrfShell::RegisterInterface(pMod); |
| SwWebListShell::RegisterInterface(pMod); |
| SwWebTableShell::RegisterInterface(pMod); |
| SwWebDrawFormShell::RegisterInterface(pMod); |
| SwWebOleShell::RegisterInterface(pMod); |
| SwMediaShell::RegisterInterface(pMod); |
| SwAnnotationShell::RegisterInterface(pMod); |
| } |
| |
| //************************************************************************ |
| |
| void SwDLL::RegisterControls() |
| { |
| SwModule* pMod = SW_MOD(); |
| SvxTbxCtlDraw::RegisterControl(SID_INSERT_DRAW, pMod ); |
| SvxTbxCtlAlign::RegisterControl(SID_OBJECT_ALIGN, pMod ); |
| SwTbxAnchor::RegisterControl(FN_TOOL_ANKER, pMod ); |
| SwTbxInsertCtrl::RegisterControl(FN_INSERT_CTRL, pMod ); |
| SwTbxInsertCtrl::RegisterControl(FN_INSERT_OBJ_CTRL, pMod ); |
| SwTbxAutoTextCtrl::RegisterControl(FN_INSERT_FIELD_CTRL, pMod ); |
| SwTbxAutoTextCtrl::RegisterControl(FN_GLOSSARY_DLG, pMod ); |
| |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_BASIC, pMod ); |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_SYMBOL, pMod ); |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_ARROW, pMod ); |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_FLOWCHART, pMod ); |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_CALLOUT, pMod ); |
| SvxTbxCtlCustomShapes::RegisterControl( SID_DRAWTBX_CS_STAR, pMod ); |
| |
| svx::ExtrusionColorControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod ); |
| svx::FontWorkShapeTypeControl::RegisterControl( SID_FONTWORK_SHAPE_TYPE, pMod ); |
| |
| SvxClipBoardControl::RegisterControl(SID_PASTE, pMod ); |
| SvxUndoRedoControl::RegisterControl(SID_UNDO, pMod ); |
| SvxUndoRedoControl::RegisterControl(SID_REDO, pMod ); |
| svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); |
| |
| SvxFillToolBoxControl::RegisterControl(SID_ATTR_FILL_STYLE, pMod ); |
| SvxLineStyleToolBoxControl::RegisterControl(SID_ATTR_LINE_STYLE, pMod ); |
| SvxLineWidthToolBoxControl::RegisterControl(SID_ATTR_LINE_WIDTH, pMod ); |
| SvxLineColorToolBoxControl::RegisterControl(SID_ATTR_LINE_COLOR, pMod ); |
| SvxLineEndToolBoxControl::RegisterControl(SID_ATTR_LINEEND_STYLE, pMod ); |
| |
| SvxFontNameToolBoxControl::RegisterControl(SID_ATTR_CHAR_FONT, pMod ); |
| // SvxFontHeightToolBoxControl::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod ); |
| SvxFontColorToolBoxControl::RegisterControl(SID_ATTR_CHAR_COLOR, pMod ); |
| SvxFontColorExtToolBoxControl::RegisterControl(SID_ATTR_CHAR_COLOR2, pMod ); |
| SvxFontColorExtToolBoxControl::RegisterControl(SID_ATTR_CHAR_COLOR_BACKGROUND, pMod ); |
| SvxStyleToolBoxControl::RegisterControl(SID_STYLE_APPLY, pMod ); |
| SvxColorToolBoxControl::RegisterControl(SID_BACKGROUND_COLOR, pMod ); |
| SvxFrameToolBoxControl::RegisterControl(SID_ATTR_BORDER, pMod ); |
| SvxFrameLineStyleToolBoxControl::RegisterControl(SID_FRAME_LINESTYLE, pMod ); |
| SvxFrameLineColorToolBoxControl::RegisterControl(SID_FRAME_LINECOLOR, pMod ); |
| |
| SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_FRAME_INTERACT, pMod ); |
| SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_FRAME, pMod ); |
| SvxColumnsToolBoxControl::RegisterControl(FN_INSERT_REGION, pMod ); |
| SvxTableToolBoxControl::RegisterControl(FN_INSERT_TABLE, pMod ); |
| SvxTableToolBoxControl::RegisterControl(FN_SHOW_MULTIPLE_PAGES, pMod ); |
| |
| SvxFontMenuControl::RegisterControl(SID_ATTR_CHAR_FONT, pMod ); |
| SvxFontSizeMenuControl::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod ); |
| |
| SwZoomControl::RegisterControl(SID_ATTR_ZOOM, pMod ); |
| SwPreviewZoomControl::RegisterControl(FN_PREVIEW_ZOOM, pMod); |
| SvxPosSizeStatusBarControl::RegisterControl(0, pMod ); |
| SvxInsertStatusBarControl::RegisterControl(SID_ATTR_INSERT, pMod ); |
| SvxSelectionModeControl::RegisterControl(FN_STAT_SELMODE, pMod ); |
| XmlSecStatusBarControl::RegisterControl( SID_SIGNATURE, pMod ); |
| |
| SwBookmarkControl::RegisterControl(FN_STAT_PAGE, pMod ); |
| SwTemplateControl::RegisterControl(FN_STAT_TEMPLATE, pMod ); |
| SwViewLayoutControl::RegisterControl( SID_ATTR_VIEWLAYOUT, pMod ); |
| SvxZoomSliderControl::RegisterControl( SID_ATTR_ZOOMSLIDER, pMod ); |
| |
| SwTableOptimizeCtrl::RegisterControl(FN_OPTIMIZE_TABLE, pMod); |
| |
| SvxIMapDlgChildWindow::RegisterChildWindow( sal_False, pMod ); |
| SvxSearchDialogWrapper::RegisterChildWindow( sal_False, pMod ); |
| SvxHlinkDlgWrapper::RegisterChildWindow( sal_False, pMod ); |
| SvxHyperlinkDlgWrapper::RegisterChildWindow( sal_False, pMod, SFX_CHILDWIN_FORCEDOCK ); |
| SvxFontWorkChildWindow::RegisterChildWindow( sal_False, pMod ); |
| SwFldDlgWrapper::RegisterChildWindow( sal_False, pMod ); |
| SwFldDataOnlyDlgWrapper::RegisterChildWindow( sal_False, pMod ); |
| SvxContourDlgChildWindow::RegisterChildWindow( sal_False, pMod ); |
| SwNavigationChild::RegisterChildWindowContext( pMod ); |
| SwInputChild::RegisterChildWindow( sal_False, pMod, SFX_CHILDWIN_FORCEDOCK ); |
| SwRedlineAcceptChild::RegisterChildWindow( sal_False, pMod ); |
| SwSyncChildWin::RegisterChildWindow( sal_True, pMod ); |
| SwMailMergeChildWindow::RegisterChildWindow( sal_False, pMod ); |
| // SwSendMailChildWindow::RegisterChildWindow( sal_False, pMod ); |
| SwInsertIdxMarkWrapper::RegisterChildWindow( sal_False, pMod ); |
| SwInsertAuthMarkWrapper::RegisterChildWindow( sal_False, pMod ); |
| SvxRubyChildWindow::RegisterChildWindow( sal_False, pMod); |
| SwSpellDialogChildWindow::RegisterChildWindow(sal_False, pMod); |
| |
| SvxGrafRedToolBoxControl::RegisterControl( SID_ATTR_GRAF_RED, pMod ); |
| SvxGrafGreenToolBoxControl::RegisterControl( SID_ATTR_GRAF_GREEN, pMod ); |
| SvxGrafBlueToolBoxControl::RegisterControl( SID_ATTR_GRAF_BLUE, pMod ); |
| SvxGrafLuminanceToolBoxControl::RegisterControl( SID_ATTR_GRAF_LUMINANCE, pMod ); |
| SvxGrafContrastToolBoxControl::RegisterControl( SID_ATTR_GRAF_CONTRAST, pMod ); |
| SvxGrafGammaToolBoxControl::RegisterControl( SID_ATTR_GRAF_GAMMA, pMod ); |
| SvxGrafTransparenceToolBoxControl::RegisterControl( SID_ATTR_GRAF_TRANSPARENCE, pMod ); |
| SvxGrafModeToolBoxControl::RegisterControl( SID_ATTR_GRAF_MODE, pMod ); |
| SvxGrafFilterToolBoxControl::RegisterControl( SID_GRFFILTER, pMod ); |
| SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_LEFT_TO_RIGHT, pMod); |
| SvxVertTextTbxCtrl::RegisterControl(SID_TEXTDIRECTION_TOP_TO_BOTTOM, pMod); |
| SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_CAPTION_VERTICAL, pMod); |
| SvxVertTextTbxCtrl::RegisterControl(SID_DRAW_TEXT_VERTICAL, pMod); |
| |
| SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_LEFT_TO_RIGHT, pMod); |
| SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_RIGHT_TO_LEFT, pMod); |
| |
| GalleryChildWindow::RegisterChildWindow(0, pMod); |
| |
| ::avmedia::MediaToolBoxControl::RegisterControl(SID_AVMEDIA_TOOLBOX, pMod); |
| ::avmedia::MediaPlayer::RegisterChildWindow(0, pMod); |
| |
| SvxSmartTagsControl::RegisterControl(SID_OPEN_SMARTTAGMENU, pMod); |
| ::sfx2::sidebar::SidebarChildWindow::RegisterChildWindow(NULL, pMod); |
| ::sfx2::TaskPaneWrapper::RegisterChildWindow(NULL, pMod); |
| } |
| |
| |
| |
| /************************************************************************* |
| |* |
| |* Modul laden (nur Attrappe fuer das Linken der DLL) |
| |* |
| \************************************************************************/ |
| |
| /* -----------------20.04.99 10:46------------------- |
| * |
| * --------------------------------------------------*/ |
| void SwModule::InitAttrPool() |
| { |
| DBG_ASSERT(!pAttrPool, "Pool ist schon da!"); |
| pAttrPool = new SwAttrPool(0); |
| SetPool(pAttrPool); |
| } |
| /* -----------------20.04.99 10:46------------------- |
| * |
| * --------------------------------------------------*/ |
| void SwModule::RemoveAttrPool() |
| { |
| SetPool(0); |
| SfxItemPool::Free(pAttrPool); |
| } |
| |
| |