summaryrefslogtreecommitdiff
path: root/sw/inc/swmodule.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/inc/swmodule.hxx')
-rw-r--r--sw/inc/swmodule.hxx278
1 files changed, 278 insertions, 0 deletions
diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx
new file mode 100644
index 000000000000..c8e601143877
--- /dev/null
+++ b/sw/inc/swmodule.hxx
@@ -0,0 +1,278 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SWMODULE_HXX
+#define _SWMODULE_HXX
+#include <tools/link.hxx>
+#include <tools/string.hxx>
+#include <vcl/fldunit.hxx>
+#include <svl/lstner.hxx>
+#include <unotools/options.hxx>
+#include <sfx2/module.hxx>
+
+#include <tools/shl.hxx>
+#include <svl/lstner.hxx>
+#include "swdllapi.h"
+#include "shellid.hxx"
+#include <fldupde.hxx>
+#include <com/sun/star/linguistic2/XLinguServiceEventListener.hpp>
+#include <com/sun/star/linguistic2/XLanguageGuessing.hpp>
+
+class SvStringsDtor;
+class Color;
+class SfxItemSet;
+class SfxRequest;
+class SfxErrorHandler;
+class SwDBConfig;
+class SwModuleOptions;
+class SwMasterUsrPref;
+class SwViewOption;
+class SwView;
+class SwWrtShell;
+class SwPrintOptions;
+class SwChapterNumRules;
+class SwStdFontConfig;
+class SwNavigationConfig;
+class SwTransferable;
+class SwToolbarConfigItem;
+class SwAttrPool;
+namespace svtools{ class ColorConfig;}
+class SvtAccessibilityOptions;
+class SvtCTLOptions;
+class SvtUserOptions;
+class SvtUndoOptions;
+
+struct SwDBData;
+#define VIEWOPT_DEST_VIEW 0
+#define VIEWOPT_DEST_TEXT 1
+#define VIEWOPT_DEST_WEB 2
+#define VIEWOPT_DEST_VIEW_ONLY 3 //ViewOptions werden nur an der ::com::sun::star::sdbcx::View, nicht an der Appl. gesetzt
+
+namespace com{ namespace sun{ namespace star{ namespace scanner{
+ class XScannerManager;
+}}}}
+
+class SW_DLLPUBLIC SwModule: public SfxModule, public SfxListener, public utl::ConfigurationListener
+{
+ String sActAuthor;
+
+ // ConfigItems
+ SwModuleOptions* pModuleConfig;
+ SwMasterUsrPref* pUsrPref;
+ SwMasterUsrPref* pWebUsrPref;
+ SwPrintOptions* pPrtOpt;
+ SwPrintOptions* pWebPrtOpt;
+ SwChapterNumRules* pChapterNumRules;
+ SwStdFontConfig* pStdFontConfig;
+ SwNavigationConfig* pNavigationConfig;
+ SwToolbarConfigItem*pToolbarConfig; //fuer gestackte Toolbars, welche
+ SwToolbarConfigItem*pWebToolbarConfig; //war sichtbar?
+ SwDBConfig* pDBConfig;
+ svtools::ColorConfig* pColorConfig;
+ SvtAccessibilityOptions* pAccessibilityOptions;
+ SvtCTLOptions* pCTLOptions;
+ SvtUserOptions* pUserOptions;
+ SvtUndoOptions* pUndoOptions;
+
+ SfxErrorHandler* pErrorHdl;
+
+ SwAttrPool *pAttrPool;
+
+ // Die aktuelle View wird hier gehalten um nicht ueber
+ // GetActiveView arbeiten zu muessen
+ // Die View ist solange gueltig bis Sie im Activate
+ // zerstoert oder ausgetauscht wird
+ SwView* pView;
+
+ // Liste aller Redline-Autoren
+ SvStringsDtor* pAuthorNames;
+
+ // DictionaryList listener to trigger spellchecking or hyphenation
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLinguServiceEventListener > xLngSvcEvtListener;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::scanner::XScannerManager > m_xScannerManager;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLanguageGuessing > m_xLanguageGuesser;
+
+ sal_Bool bAuthorInitialised : 1;
+ sal_Bool bEmbeddedLoadSave : 1;
+
+ // Hint abfangen fuer DocInfo
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 );
+
+protected:
+ // Briefumschlaege, Etiketten
+ void InsertEnv(SfxRequest&);
+ void InsertLab(SfxRequest&, sal_Bool bLabel);
+
+public:
+ // public Data - used for internal Clipboard / Drag & Drop / XSelection
+ SwTransferable *pDragDrop, *pXSelection;
+
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SW_INTERFACE_MODULE)
+
+ // dieser Ctor nur fuer SW-Dll
+ SwModule( SfxObjectFactory* pFact,
+ SfxObjectFactory* pWebFact,
+ SfxObjectFactory* pGlobalFact );
+
+ ~SwModule();
+
+ // View setzen nur fuer internen Gebrauch,
+ // aus techn. Gruenden public
+ //
+ inline void SetView(SwView* pVw) { pView = pVw; }
+ inline SwView* GetView() { return pView; }
+
+ //Die Handler fuer die Slots
+ void StateOther(SfxItemSet &); // andere
+
+ void ExecOther(SfxRequest &); // Felder, Formel ..
+
+ // Benutzereinstellungen modifizieren
+ const SwMasterUsrPref *GetUsrPref(sal_Bool bWeb) const;
+ const SwViewOption* GetViewOption(sal_Bool bWeb);
+ void ApplyUsrPref(const SwViewOption &, SwView*,
+ sal_uInt16 nDest = VIEWOPT_DEST_VIEW );
+ void ApplyUserMetric( FieldUnit eMetric, BOOL bWeb );
+ void ApplyRulerMetric( FieldUnit eMetric, BOOL bHorizontal, BOOL bWeb );
+ void ApplyFldUpdateFlags(SwFldUpdateFlags eFldFlags);
+ void ApplyLinkMode(sal_Int32 nNewLinkMode);
+
+ //default page mode for text grid
+ void ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode);
+
+ // ConfigItems erzeugen
+ SwModuleOptions* GetModuleConfig() { return pModuleConfig;}
+ SwPrintOptions* GetPrtOptions(sal_Bool bWeb);
+ SwChapterNumRules* GetChapterNumRules();
+ SwStdFontConfig* GetStdFontConfig() { return pStdFontConfig; }
+ SwNavigationConfig* GetNavigationConfig();
+ SwToolbarConfigItem*GetToolbarConfig() { return pToolbarConfig; }
+ SwToolbarConfigItem*GetWebToolbarConfig() { return pWebToolbarConfig; }
+ SwDBConfig* GetDBConfig();
+ svtools::ColorConfig& GetColorConfig();
+ SvtAccessibilityOptions& GetAccessibilityOptions();
+ SvtCTLOptions& GetCTLOptions();
+ SvtUserOptions& GetUserOptions();
+ SvtUndoOptions& GetUndoOptions();
+
+ // Ueber Sichten iterieren
+ static SwView* GetFirstView();
+ static SwView* GetNextView(SwView*);
+
+ sal_Bool IsEmbeddedLoadSave() const { return bEmbeddedLoadSave; }
+ void SetEmbeddedLoadSave( sal_Bool bFlag ) { bEmbeddedLoadSave = bFlag; }
+
+ void ShowDBObj( SwView& rView, const SwDBData& rData, BOOL bOnlyIfAvailable = FALSE);
+
+ // Tabellenmodi
+ sal_Bool IsInsTblFormatNum(sal_Bool bHTML) const;
+ sal_Bool IsInsTblChangeNumFormat(sal_Bool bHTML) const;
+ sal_Bool IsInsTblAlignNum(sal_Bool bHTML) const;
+
+ // Redlining
+ sal_uInt16 GetRedlineAuthor();
+ const String& GetRedlineAuthor(sal_uInt16 nPos);
+ sal_uInt16 InsertRedlineAuthor(const String& rAuthor);
+
+ void GetInsertAuthorAttr(sal_uInt16 nAuthor, SfxItemSet &rSet);
+ void GetDeletedAuthorAttr(sal_uInt16 nAuthor, SfxItemSet &rSet);
+ void GetFormatAuthorAttr(sal_uInt16 nAuthor, SfxItemSet &rSet);
+
+ sal_uInt16 GetRedlineMarkPos();
+ const Color& GetRedlineMarkColor();
+
+ // returne den definierten DocStat - WordDelimiter
+ const String& GetDocStatWordDelim() const;
+
+ // Durchreichen der Metric von der ModuleConfig (fuer HTML-Export)
+ sal_uInt16 GetMetric( sal_Bool bWeb ) const;
+
+ // Update-Stati durchreichen
+ sal_uInt16 GetLinkUpdMode( sal_Bool bWeb ) const;
+ SwFldUpdateFlags GetFldUpdateFlags( sal_Bool bWeb ) const;
+
+ //virtuelle Methoden fuer den Optionendialog
+ virtual SfxItemSet* CreateItemSet( sal_uInt16 nId );
+ virtual void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet );
+ virtual SfxTabPage* CreateTabPage( sal_uInt16 nId, Window* pParent, const SfxItemSet& rSet );
+
+ //hier wird der Pool angelegt und an der SfxShell gesetzt
+ void InitAttrPool();
+ //Pool loeschen bevor es zu spaet ist
+ void RemoveAttrPool();
+
+ // Invalidiert ggf. OnlineSpell-WrongListen
+ void CheckSpellChanges( sal_Bool bOnlineSpelling,
+ sal_Bool bIsSpellWrongAgain, sal_Bool bIsSpellAllAgain, sal_Bool bSmartTags );
+
+ inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLinguServiceEventListener >
+ GetLngSvcEvtListener();
+ inline void SetLngSvcEvtListener( ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLinguServiceEventListener > & xLstnr);
+ void CreateLngSvcEvtListener();
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::scanner::XScannerManager >
+ GetScannerManager();
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLanguageGuessing >
+ GetLanguageGuesser();
+};
+
+
+inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLinguServiceEventListener >
+ SwModule::GetLngSvcEvtListener()
+{
+ return xLngSvcEvtListener;
+}
+
+inline void SwModule::SetLngSvcEvtListener(
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::linguistic2::XLinguServiceEventListener > & xLstnr)
+{
+ xLngSvcEvtListener = xLstnr;
+}
+
+
+/*-----------------08.07.97 10.33-------------------
+ Zugriff auf das SwModule, die ::com::sun::star::sdbcx::View und die Shell
+--------------------------------------------------*/
+
+#define SW_MOD() ( *(SwModule**) GetAppData(SHL_WRITER))
+
+SW_DLLPUBLIC SwView* GetActiveView();
+SW_DLLPUBLIC SwWrtShell* GetActiveWrtShell();
+
+#endif