diff options
Diffstat (limited to 'sw/inc/swmodule.hxx')
-rw-r--r-- | sw/inc/swmodule.hxx | 303 |
1 files changed, 303 insertions, 0 deletions
diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx new file mode 100644 index 000000000000..5fecd2cbb7fd --- /dev/null +++ b/sw/inc/swmodule.hxx @@ -0,0 +1,303 @@ +/************************************************************************* + * + * $RCSfile: swmodule.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:14:28 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SWMODULE_HXX +#define _SWMODULE_HXX + + +#ifndef _LINK_HXX //autogen +#include <tools/link.hxx> +#endif +#ifndef _SFXMODULE_HXX //autogen +#include <sfx2/module.hxx> +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include <svtools/lstner.hxx> +#endif +#ifndef SW_SWDLL_HXX +#include <swdll.hxx> +#endif +#include "shellid.hxx" +#ifndef _STRING_HXX +#include <tools/string.hxx> +#endif +#ifndef _COM_SUN_STAR_LINGUISTIC_XDICTIONARYLISTEVENTLISTENER_HPP_ +#include <com/sun/star/linguistic/XDictionaryListEventListener.hpp> +#endif + +class SvStringsDtor; +class Color; +class AuthorCharAttr; +class SfxItemSet; +class SfxRequest; +class SfxErrorHandler; +class SwSrcViewConfig; +class SwModuleOptions; +class SwMasterUsrPref; +class SwViewOption; +class SwView; +class SwWrtShell; +class SwPrintOptions; +class SwAutoFmtOpt; +class SwChapterNumRules; +class SwStdFontConfig; +class SwNavigationConfig; +class SwDataExchange; +class SwToolbarConfigItem; +class SwAttrPool; +#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 SwModule: public SwModuleDummy , public SfxListener +{ + String sActAuthor; + + // ConfigItems + SwSrcViewConfig* pSrcViewConfig; + SwModuleOptions* pModuleConfig; + SwMasterUsrPref* pUsrPref; + SwMasterUsrPref* pWebUsrPref; + SwPrintOptions* pPrtOpt; + SwPrintOptions* pWebPrtOpt; + SwChapterNumRules* pChapterNumRules; + SwStdFontConfig* pStdFontConfig; + SwNavigationConfig* pNavigationConfig; + SwToolbarConfigItem*pToolbarConfig; //fr gestackte Toolbars, welche + SwToolbarConfigItem*pWebToolbarConfig; //war sichtbar? + + SfxErrorHandler* pErrorHdl; + + SwAttrPool *pAttrPool; + + // Die aktuelle ::com::sun::star::sdbcx::View wird hier gehalten um nicht ueber + // GetActiveView arbeiten zu muessen + // Die ::com::sun::star::sdbcx::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::linguistic::XDictionaryListEventListener > xDicListEvtListener; + ::com::sun::star::uno::Reference< ::com::sun::star::scanner::XScannerManager > m_xScannerManager; + + sal_Bool bAuthorInitialised : 1; + sal_Bool bEmbeddedLoadSave : 1; + + virtual void FillStatusBar( StatusBar& ); + + // Hint abfangen fuer DocInfo + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + +protected: + // Briefumschlaege, Etiketten + void InsertEnv(); + void InsertLab(sal_Bool bLabel); + +public: + TYPEINFO(); + SFX_DECL_INTERFACE(SW_INTERFACE_MODULE); + + // dieser Ctor nur fuer SW-Dll + SwModule( SvFactory* pFact, + SvFactory* pWebFact, + SvFactory* pGlobalFact ); + // dieser Ctor nur fuer Web-Dll + SwModule( SvFactory* pWebFact ); + + ~SwModule(); + + virtual SfxModule* Load(); + + // ::com::sun::star::sdbcx::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 StateViewOptions(SfxItemSet &); + void StateIsView(SfxItemSet &); + + void ExecOther(SfxRequest &); // Felder, Formel .. + void ExecViewOptions(SfxRequest &); + void ExecWizzard(SfxRequest &); + void ExecDB(SfxRequest &); // DBManager + + // Benutzereinstellungen modifizieren + const SwMasterUsrPref *GetUsrPref(sal_Bool bWeb); + const SwViewOption* GetViewOption(sal_Bool bWeb); + void MakeUsrPref( SwViewOption &rToFill, sal_Bool bWeb ) const; + void ApplyUsrPref(const SwViewOption &, SwView*, + sal_uInt16 nDest = VIEWOPT_DEST_VIEW ); + + // ConfigItems erzeugen + SwSrcViewConfig* GetSourceViewConfig(); + 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; } + + // UNO +// virtual Reflection* GetReflection( UsrUik aUIK ); + + // Ueber Sichten iterieren + static SwView* GetFirstView(); + static SwView* GetNextView(SwView*); + + sal_Bool IsEmbeddedLoadSave() const { return bEmbeddedLoadSave; } + void SetEmbeddedLoadSave( sal_Bool bFlag ) { bEmbeddedLoadSave = bFlag; } + + + // Public Data + // + SwDataExchange* pClipboard; + SwDataExchange* pDragDrop; + + void ShowDBObj(SwWrtShell& rShell, const String& rDBName, sal_Bool bShowError = sal_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(); + sal_uInt16 GetRedlineAuthorCount(); + 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); + + const AuthorCharAttr& GetInsertAuthorAttr() const; + const AuthorCharAttr& GetDeletedAuthorAttr() const; + const AuthorCharAttr& GetFormatAuthorAttr() const; + + 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; + sal_uInt16 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 ); + + inline ::com::sun::star::uno::Reference< ::com::sun::star::linguistic::XDictionaryListEventListener > GetDicListEvtListener(); + inline void SetDicListEvtListener(::com::sun::star::uno::Reference< ::com::sun::star::linguistic::XDictionaryListEventListener > xLstnr); + + ::com::sun::star::uno::Reference< ::com::sun::star::scanner::XScannerManager > GetScannerManager() const {return m_xScannerManager;} + +}; + + +inline ::com::sun::star::uno::Reference< ::com::sun::star::linguistic::XDictionaryListEventListener > SwModule::GetDicListEvtListener() +{ + return xDicListEvtListener; +} + +inline void SwModule::SetDicListEvtListener(::com::sun::star::uno::Reference< ::com::sun::star::linguistic::XDictionaryListEventListener > xLstnr) +{ + xDicListEvtListener = 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)) +SwView* GetActiveView(); +SwWrtShell* GetActiveWrtShell(); + + + +#endif |