office-gobmx/sw/inc/swmodule.hxx
Jens-Heiner Rechtien 25913c730f CWS-TOOLING: integrate CWS os123
2008-12-10 10:15:09 +0100 os  r265154 : #i94987# DateTimeValue added
2008-12-10 09:00:58 +0100 os  r265150 : #i96045# ctl languages enabled
2008-12-09 18:09:10 +0100 os  r265129 : syntax error fixed
2008-12-09 09:35:09 +0100 os  r265056 : vertical/horizonatal metric: no bool value
2008-12-08 09:56:50 +0100 os  r264974 : CWS-TOOLING: rebase CWS os123 to trunk@264807 (milestone: DEV300:m37)
2008-12-03 11:41:13 +0100 os  r264762 : #i96822# database removed, too
2008-12-03 11:35:26 +0100 os  r264760 : #i96822# business cards and labels should not be part of the document list
2008-12-01 11:38:26 +0100 os  r264592 : #i96322# command name of ActivateStyleApply added
2008-11-27 14:59:46 +0100 va  r264491 : #i95322#: Initial Revision
2008-11-27 14:53:20 +0100 va  r264490 : #i95322#: New Language Directory for Persian (Farsi)
2008-11-21 08:48:55 +0100 os  r264107 : #i94409# recording/executing split table
2008-11-13 13:18:57 +0100 os  r263636 : #i93924# string reconversion
2008-11-12 15:58:48 +0100 os  r263604 : #i94987# Date property re-add to Annotation service
2008-11-12 15:44:24 +0100 os  r263603 : #i88766# ruler metric
2008-11-12 15:43:33 +0100 os  r263602 : #i88766#
2008-11-11 09:15:28 +0100 os  r263545 : #i94839# get real filter name from dialog instead of guessing from UI name
2009-01-06 16:42:28 +00:00

278 lines
9.9 KiB
C++

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: swmodule.hxx,v $
* $Revision: 1.34 $
*
* 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 <svtools/lstner.hxx>
#include <sfx2/module.hxx>
#include <tools/shl.hxx>
#include <svtools/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
{
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 );
protected:
// Briefumschlaege, Etiketten
void InsertEnv(SfxRequest&);
void InsertLab(SfxRequest&, sal_Bool bLabel);
public:
// public Data - used for internal Clipboard / Drag & Drop / XSelection
SwTransferable *pClipboard, *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