diff options
author | Philipp Lohmann [pl] <Philipp.Lohmann@Sun.COM> | 2010-01-14 19:11:13 +0100 |
---|---|---|
committer | Philipp Lohmann [pl] <Philipp.Lohmann@Sun.COM> | 2010-01-14 19:11:13 +0100 |
commit | 7d3f9d117854eecde1f6627cc1656353be46a7ca (patch) | |
tree | f90344f1fe8dfd968f40882ed4b356c59fc29b9c /sw | |
parent | 680ebbec1520b6df42264a450932d779edc07c3c (diff) | |
parent | 3a66e8444c9086c53a27159a1a0edad3b6e85ff5 (diff) |
rebase to DEV300_m69
Diffstat (limited to 'sw')
734 files changed, 15626 insertions, 2314 deletions
diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx index e01041edafcd..36e9bdd08639 100644 --- a/sw/inc/PostItMgr.hxx +++ b/sw/inc/PostItMgr.hxx @@ -31,8 +31,6 @@ #ifndef _POSTITMGR_HXX #define _POSTITMGR_HXX -#include <svtools/lstner.hxx> - #include <list> #include <vector> #include <svx/outlobj.hxx> @@ -41,8 +39,10 @@ #include <tools/debug.hxx> #include <swrect.hxx> #include <unotools/configitem.hxx> +#include <unotools/options.hxx> #include <com/sun/star/util/SearchOptions.hpp> #include <com/sun/star/uno/Any.hxx> +#include <svl/lstner.hxx> class SwWrtShell; class SwDoc; @@ -139,6 +139,9 @@ class SwNoteProps: public utl::ConfigItem } return aNames; } + + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); }; class SwPostItMgr: public SfxListener diff --git a/sw/inc/SwAppletImpl.hxx b/sw/inc/SwAppletImpl.hxx index fcf9d727f05e..8ea953136e49 100644 --- a/sw/inc/SwAppletImpl.hxx +++ b/sw/inc/SwAppletImpl.hxx @@ -46,9 +46,9 @@ #include <vcl/wrkwin.hxx> #endif #include <sot/storage.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> -#include <svtools/ownlist.hxx> +#include <svl/ownlist.hxx> class SfxItemSet; diff --git a/sw/inc/SwNumberTree.hxx b/sw/inc/SwNumberTree.hxx index 03815a265c18..7f4c88b6081c 100644 --- a/sw/inc/SwNumberTree.hxx +++ b/sw/inc/SwNumberTree.hxx @@ -385,7 +385,7 @@ public: // RTL_TEXTENCODING_ASCII_US), // int nDepth = -1) const; -#ifndef PRODUCT +#ifdef DBG_UTIL static unsigned long GetInstances(); unsigned long GetSerial(); #endif @@ -494,7 +494,7 @@ protected: */ mutable tSwNumberTreeChildren::iterator mItLastValid; -#ifndef PRODUCT +#ifdef DBG_UTIL /** Counter for the number of created instances. */ diff --git a/sw/inc/acmplwrd.hxx b/sw/inc/acmplwrd.hxx index 964371ca40da..31041cd700dc 100644 --- a/sw/inc/acmplwrd.hxx +++ b/sw/inc/acmplwrd.hxx @@ -32,7 +32,7 @@ #define _SVSTDARR_STRINGSISORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> class SwDoc; class SwAutoCompleteWord_Impl; diff --git a/sw/inc/authfld.hxx b/sw/inc/authfld.hxx index 1b209ac0b47c..8447210a2d01 100644 --- a/sw/inc/authfld.hxx +++ b/sw/inc/authfld.hxx @@ -35,7 +35,7 @@ #include <toxe.hxx> #define _SVSTDARR_LONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> class SwAuthDataArr; /* -----------------21.09.99 13:32------------------- diff --git a/sw/inc/calc.hxx b/sw/inc/calc.hxx index 91f1e538d355..e336a4fea524 100644 --- a/sw/inc/calc.hxx +++ b/sw/inc/calc.hxx @@ -30,7 +30,7 @@ #ifndef _CALC_HXX #define _CALC_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #ifndef __SBX_SBXVALUE //autogen #include <basic/sbxvar.hxx> diff --git a/sw/inc/ccoll.hxx b/sw/inc/ccoll.hxx index cd25c3c6f892..fe8051c8465c 100644 --- a/sw/inc/ccoll.hxx +++ b/sw/inc/ccoll.hxx @@ -30,7 +30,7 @@ #ifndef _CCOLL_HXX #define _CCOLL_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <tools/string.hxx> #include <sfx2/tabdlg.hxx> diff --git a/sw/inc/cellatr.hxx b/sw/inc/cellatr.hxx index 1ea47d89f8c9..6ce11b1e6cb8 100644 --- a/sw/inc/cellatr.hxx +++ b/sw/inc/cellatr.hxx @@ -31,8 +31,8 @@ #ifndef _CELLATR_HXX #define _CELLATR_HXX -#include <svtools/intitem.hxx> -#include <svtools/zforlist.hxx> +#include <svl/intitem.hxx> +#include <svl/zforlist.hxx> #include "swdllapi.h" #include "format.hxx" #include "cellfml.hxx" diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 85fea8317ef2..b0c8a54125f0 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -111,7 +111,7 @@ struct SwContentAtPos SW_NUMLABEL = 0x0200, // #i23726# SW_CONTENT_CHECK = 0x0400, // --> FME 2005-05-13 #i43742# <-- SW_SMARTTAG = 0x0800 -#ifndef PRODUCT +#ifdef DBG_UTIL ,SW_CURR_ATTRS = 0x4000 // nur zum Debuggen ,SW_TABLEBOXVALUE = 0x8000 // nur zum Debuggen #endif @@ -465,7 +465,7 @@ public: */ void Combine(); -#if defined( PRODUCT ) +#if !defined(DBG_UTIL) void SttCrsrMove() { ++nCrsrMove; StartAction(); } void EndCrsrMove( const BOOL bIdleEnd = FALSE ) { EndAction( bIdleEnd ); --nCrsrMove; } diff --git a/sw/inc/dbmgr.hxx b/sw/inc/dbmgr.hxx index a64bc6750f07..cf49361ee8a4 100644 --- a/sw/inc/dbmgr.hxx +++ b/sw/inc/dbmgr.hxx @@ -33,7 +33,7 @@ #include <tools/string.hxx> #include <tools/link.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <com/sun/star/util/Date.hpp> #include "swdllapi.h" #include <swdbdata.hxx> diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index c6d06cb2d54a..ce6a665c5acd 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -60,7 +60,7 @@ class SwList; // <-- #include <IDocumentExternalData.hxx> #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <com/sun/star/embed/XEmbeddedObject.hpp> #include <com/sun/star/embed/XStorage.hpp> #include <vcl/timer.hxx> @@ -77,7 +77,7 @@ class SwList; #include <com/sun/star/linguistic2/XHyphenatedWord.hpp> #include <vos/ref.hxx> #include <svx/svdtypes.hxx> -#include <svtools/style.hxx> +#include <svl/style.hxx> #include <svx/numitem.hxx> #include "comphelper/implementationreference.hxx" #include <com/sun/star/chart2/data/XDataProvider.hpp> @@ -499,7 +499,7 @@ private: bool mbColumnSelection : 1; // true: this content has bee created by a column selection // (clipboard docs only) -#ifndef PRODUCT +#ifdef DBG_UTIL bool mbXMLExport : 1; // TRUE: during XML export #endif @@ -1073,7 +1073,7 @@ public: inline void SetOLEPrtNotifyPending( bool bSet = true ); void PrtOLENotify( sal_Bool bAll ); //Alle oder nur Markierte -#ifndef PRODUCT +#ifdef DBG_UTIL bool InXMLExport() const { return mbXMLExport; } void SetXMLExport( bool bFlag ) { mbXMLExport = bFlag; } #endif diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx index c8ffcba549ab..d993c0949f2a 100644 --- a/sw/inc/docary.hxx +++ b/sw/inc/docary.hxx @@ -51,7 +51,7 @@ namespace com { namespace sun { namespace star { namespace i18n { #include <tools/table.hxx> #endif #include <swtypes.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> typedef SwFieldType* SwFldTypePtr; #define GROW_FLDTYPES 16 diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx index df06af8a8a36..8f63fe816102 100755 --- a/sw/inc/docsh.hxx +++ b/sw/inc/docsh.hxx @@ -39,7 +39,7 @@ #include <swdll.hxx> #include <shellid.hxx> -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> #include <svtools/embedhlp.hxx> class SwDoc; diff --git a/sw/inc/docstat.hxx b/sw/inc/docstat.hxx index 9e03f57d5a97..4575796440bf 100644 --- a/sw/inc/docstat.hxx +++ b/sw/inc/docstat.hxx @@ -33,12 +33,6 @@ #include <tools/solar.h> #include "swdllapi.h" -/////////////////////////////////////////////////////////////////////////// -// PRODUCT: struct SwInternStat ist nur fuer CORE Interne Statistics und -// hat nichts in einer ProductVersion zu suchen. -/////////////////////////////////////////////////////////////////////////// - -struct SwInternStat; struct SW_DLLPUBLIC SwDocStat { @@ -46,11 +40,14 @@ struct SW_DLLPUBLIC SwDocStat USHORT nGrf; USHORT nOLE; ULONG nPage; + /// paragraphs for document statistic: non-empty and non-hidden ones ULONG nPara; + /// all paragraphs, including empty/hidden ones + ULONG nAllPara; ULONG nWord; ULONG nChar; BOOL bModified; - SwInternStat* pInternStat; + SwDocStat(); void Reset(); }; diff --git a/sw/inc/docstyle.hxx b/sw/inc/docstyle.hxx index e93972690e66..f7e6019de511 100644 --- a/sw/inc/docstyle.hxx +++ b/sw/inc/docstyle.hxx @@ -34,10 +34,10 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/style.hxx> -#include <svtools/itemset.hxx> +#include <svl/style.hxx> +#include <svl/itemset.hxx> #include "swdllapi.h" class SwDoc; diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx index 88c4e650cfd0..6048a18c3a8b 100644 --- a/sw/inc/docufld.hxx +++ b/sw/inc/docufld.hxx @@ -35,7 +35,7 @@ #include <tools/datetime.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include "fldbas.hxx" #include "numrule.hxx" @@ -548,6 +548,8 @@ public: const OutlinerParaObject* GetTextObject() const; void SetTextObject( OutlinerParaObject* pText ); + sal_uInt32 GetNumberOfParagraphs() const; + virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, USHORT nWhich ) const; virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, USHORT nWhich ); virtual String GetDescription() const; diff --git a/sw/inc/edglbldc.hxx b/sw/inc/edglbldc.hxx index b2c5d411f07a..be792453e485 100644 --- a/sw/inc/edglbldc.hxx +++ b/sw/inc/edglbldc.hxx @@ -30,7 +30,7 @@ #ifndef _EDGLBLDC_HXX #define _EDGLBLDC_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SwSection; class SwTOXBase; diff --git a/sw/inc/edimp.hxx b/sw/inc/edimp.hxx index 8cfa04648cf7..8b8a6c8bfde4 100644 --- a/sw/inc/edimp.hxx +++ b/sw/inc/edimp.hxx @@ -32,7 +32,7 @@ #define _EDIMP_HXX #include <tools/solar.h> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SwPaM; class SwNodeIndex; diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx index 1ce87e0df410..d802eb910cff 100644 --- a/sw/inc/editsh.hxx +++ b/sw/inc/editsh.hxx @@ -33,7 +33,7 @@ #include <com/sun/star/text/HoriOrientation.hpp> #include <com/sun/star/embed/XEmbeddedObject.hpp> #include <tools/string.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <vcl/font.hxx> #include <svx/swafopt.hxx> #include "swdllapi.h" diff --git a/sw/inc/errhdl.hxx b/sw/inc/errhdl.hxx index f9fae69e7358..3d7c8a19085d 100644 --- a/sw/inc/errhdl.hxx +++ b/sw/inc/errhdl.hxx @@ -30,7 +30,7 @@ #ifndef _ERRHDL_HXX #define _ERRHDL_HXX -#ifndef PRODUCT +#ifdef DBG_UTIL #include <tools/solar.h> #include <sal/types.h> diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx index 83629f8cf6d5..00a7c57efb3b 100644 --- a/sw/inc/expfld.hxx +++ b/sw/inc/expfld.hxx @@ -30,7 +30,7 @@ #ifndef _EXPFLD_HXX #define _EXPFLD_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swdllapi.h" #include <fldbas.hxx> #include <cellfml.hxx> diff --git a/sw/inc/extinput.hxx b/sw/inc/extinput.hxx index c11c6b9ecaf0..05b88d1bd5a6 100644 --- a/sw/inc/extinput.hxx +++ b/sw/inc/extinput.hxx @@ -32,7 +32,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <pam.hxx> #include <i18npool/lang.h> diff --git a/sw/inc/fchrfmt.hxx b/sw/inc/fchrfmt.hxx index c34d6f484037..b201dddf4f05 100644 --- a/sw/inc/fchrfmt.hxx +++ b/sw/inc/fchrfmt.hxx @@ -31,7 +31,7 @@ #define _FCHRFMT_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <calbck.hxx> #include <format.hxx> diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index 11213224844c..186ca702c8f0 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -278,7 +278,7 @@ protected: public: -#ifndef PRODUCT +#ifdef DBG_UTIL virtual ~SwFieldType(); #endif static const String& GetTypeStr( USHORT nTypeId ); @@ -337,7 +337,7 @@ public: // ResId USHORT Which() const -#ifdef PRODUCT +#ifndef DBG_UTIL { return pType->Which(); } #else ; // in fldbas.cxx implementiert diff --git a/sw/inc/flypos.hxx b/sw/inc/flypos.hxx index 287e6544712b..0ac8b016d24d 100644 --- a/sw/inc/flypos.hxx +++ b/sw/inc/flypos.hxx @@ -31,7 +31,7 @@ #define _FLYPOS_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <swdllapi.h> class SwFrmFmt; diff --git a/sw/inc/fmtanchr.hxx b/sw/inc/fmtanchr.hxx index fd6975205347..d74ed247e0cc 100644 --- a/sw/inc/fmtanchr.hxx +++ b/sw/inc/fmtanchr.hxx @@ -34,7 +34,7 @@ #include <hintids.hxx> #include <swtypes.hxx> #include <format.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> struct SwPosition; class IntlWrapper; diff --git a/sw/inc/fmtautofmt.hxx b/sw/inc/fmtautofmt.hxx index 1d4df2210f15..b39475c8a54c 100644 --- a/sw/inc/fmtautofmt.hxx +++ b/sw/inc/fmtautofmt.hxx @@ -31,7 +31,7 @@ #define _FMTAUTOFMT_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <format.hxx> #include <boost/shared_ptr.hpp> diff --git a/sw/inc/fmtclbl.hxx b/sw/inc/fmtclbl.hxx index c10898ca5716..58d87a06ae42 100644 --- a/sw/inc/fmtclbl.hxx +++ b/sw/inc/fmtclbl.hxx @@ -31,7 +31,7 @@ #define _FMTCLBL_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> #include "swdllapi.h" diff --git a/sw/inc/fmtclds.hxx b/sw/inc/fmtclds.hxx index 3a4069f22acb..c50bfd5bc1a2 100644 --- a/sw/inc/fmtclds.hxx +++ b/sw/inc/fmtclds.hxx @@ -31,7 +31,7 @@ #define _FMTCLDS_HXX #include <tools/color.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtcnct.hxx b/sw/inc/fmtcnct.hxx index d229f91b8b78..20e33fbe7439 100644 --- a/sw/inc/fmtcnct.hxx +++ b/sw/inc/fmtcnct.hxx @@ -31,7 +31,7 @@ #define _FMTCNCT_HXX #include <hintids.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <format.hxx> #include <calbck.hxx> diff --git a/sw/inc/fmtcntnt.hxx b/sw/inc/fmtcntnt.hxx index c5b262331e44..f5a5443c14be 100644 --- a/sw/inc/fmtcntnt.hxx +++ b/sw/inc/fmtcntnt.hxx @@ -30,7 +30,7 @@ #ifndef _FMTCNTNT_HXX #define _FMTCNTNT_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtcol.hxx b/sw/inc/fmtcol.hxx index d06a64cf9bfd..8b4d3cb285b7 100644 --- a/sw/inc/fmtcol.hxx +++ b/sw/inc/fmtcol.hxx @@ -30,7 +30,7 @@ #ifndef _FMTCOL_HXX #define _FMTCOL_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swdllapi.h" #include <format.hxx> #include <swtypes.hxx> // fuer MAXLEVEL diff --git a/sw/inc/fmteiro.hxx b/sw/inc/fmteiro.hxx index a45e9fafc495..b7ab6bc01543 100644 --- a/sw/inc/fmteiro.hxx +++ b/sw/inc/fmteiro.hxx @@ -31,7 +31,7 @@ #define _FMTEIRO_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> #include "swdllapi.h" diff --git a/sw/inc/fmtflcnt.hxx b/sw/inc/fmtflcnt.hxx index c018e8c31c14..3bb498aee050 100644 --- a/sw/inc/fmtflcnt.hxx +++ b/sw/inc/fmtflcnt.hxx @@ -31,7 +31,7 @@ #define _FMTFLCNT_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> class SwFrmFmt; class SwTxtFlyCnt; diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx index 2ca982e80c0b..58fbe2c05699 100644 --- a/sw/inc/fmtfld.hxx +++ b/sw/inc/fmtfld.hxx @@ -30,9 +30,9 @@ #ifndef _FMTFLD_HXX #define _FMTFLD_HXX -#include <svtools/poolitem.hxx> -#include <svtools/brdcst.hxx> -#include <svtools/smplhint.hxx> +#include <svl/poolitem.hxx> +#include <svl/brdcst.hxx> +#include <svl/smplhint.hxx> #include "swdllapi.h" #include <calbck.hxx> diff --git a/sw/inc/fmtfollowtextflow.hxx b/sw/inc/fmtfollowtextflow.hxx index a33cf8a16475..c049b9e9eaa0 100644 --- a/sw/inc/fmtfollowtextflow.hxx +++ b/sw/inc/fmtfollowtextflow.hxx @@ -31,7 +31,7 @@ #define _FMTFOLLOWTEXTFLOW_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> #include "swdllapi.h" diff --git a/sw/inc/fmtfordr.hxx b/sw/inc/fmtfordr.hxx index 93107807d1cd..7227d719c51c 100644 --- a/sw/inc/fmtfordr.hxx +++ b/sw/inc/fmtfordr.hxx @@ -30,7 +30,7 @@ #ifndef _FMTFORDR_HXX #define _FMTFORDR_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtfsize.hxx b/sw/inc/fmtfsize.hxx index b28e3ac94be1..f2486aa916f0 100644 --- a/sw/inc/fmtfsize.hxx +++ b/sw/inc/fmtfsize.hxx @@ -31,7 +31,7 @@ #define _FMTFSIZE_HXX #include <tools/gen.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <swtypes.hxx> diff --git a/sw/inc/fmtftn.hxx b/sw/inc/fmtftn.hxx index e31001ced75f..ca04985bff76 100644 --- a/sw/inc/fmtftn.hxx +++ b/sw/inc/fmtftn.hxx @@ -31,7 +31,7 @@ #define _FMTFTN_HXX #include <tools/string.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" class SwDoc; diff --git a/sw/inc/fmtftntx.hxx b/sw/inc/fmtftntx.hxx index 8e95c4e7128a..b5cbfbfdc6bf 100644 --- a/sw/inc/fmtftntx.hxx +++ b/sw/inc/fmtftntx.hxx @@ -30,7 +30,7 @@ #ifndef _FMTFTNTX_HXX #define _FMTFTNTX_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> #include <numrule.hxx> diff --git a/sw/inc/fmthdft.hxx b/sw/inc/fmthdft.hxx index d6661c9d4ddc..1f8e8289ee86 100644 --- a/sw/inc/fmthdft.hxx +++ b/sw/inc/fmthdft.hxx @@ -32,7 +32,7 @@ #include <hintids.hxx> #include <format.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <calbck.hxx> class SwFrmFmt; diff --git a/sw/inc/fmtinfmt.hxx b/sw/inc/fmtinfmt.hxx index 8efd538ca6e3..4d030da66a7c 100644 --- a/sw/inc/fmtinfmt.hxx +++ b/sw/inc/fmtinfmt.hxx @@ -31,7 +31,7 @@ #define _FMTINFMT_HXX #include <tools/string.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" class SvxMacro; diff --git a/sw/inc/fmtline.hxx b/sw/inc/fmtline.hxx index 357e6cd743b3..db8a694063c3 100644 --- a/sw/inc/fmtline.hxx +++ b/sw/inc/fmtline.hxx @@ -31,7 +31,7 @@ #define SW_FMTLINE_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <hintids.hxx> #include <format.hxx> #include "swdllapi.h" diff --git a/sw/inc/fmtlsplt.hxx b/sw/inc/fmtlsplt.hxx index 43e7ef090df5..0b14626b518e 100644 --- a/sw/inc/fmtlsplt.hxx +++ b/sw/inc/fmtlsplt.hxx @@ -30,7 +30,7 @@ #ifndef _FMTTSPLT_HXX #define _FMTTSPLT_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> #include "swdllapi.h" diff --git a/sw/inc/fmtmeta.hxx b/sw/inc/fmtmeta.hxx index 952181d0498c..f676469b908f 100755..100644 --- a/sw/inc/fmtmeta.hxx +++ b/sw/inc/fmtmeta.hxx @@ -31,7 +31,7 @@ #ifndef SW_FMTMETA_HXX #define SW_FMTMETA_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <sfx2/Metadatable.hxx> #include <boost/shared_ptr.hpp> diff --git a/sw/inc/fmtornt.hxx b/sw/inc/fmtornt.hxx index 8c2dcaff59bd..bdd03264e45c 100644 --- a/sw/inc/fmtornt.hxx +++ b/sw/inc/fmtornt.hxx @@ -37,7 +37,7 @@ #include <hintids.hxx> #include <swtypes.hxx> #include <format.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> class IntlWrapper; diff --git a/sw/inc/fmtpdsc.hxx b/sw/inc/fmtpdsc.hxx index 2c3f88f962b2..0cf3f4a82523 100644 --- a/sw/inc/fmtpdsc.hxx +++ b/sw/inc/fmtpdsc.hxx @@ -31,7 +31,7 @@ #define _FMTPDSC_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtrfmrk.hxx b/sw/inc/fmtrfmrk.hxx index cb12e38cf582..0be58da182aa 100644 --- a/sw/inc/fmtrfmrk.hxx +++ b/sw/inc/fmtrfmrk.hxx @@ -32,7 +32,7 @@ #include <tools/string.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> class SwTxtRefMark; diff --git a/sw/inc/fmtrowsplt.hxx b/sw/inc/fmtrowsplt.hxx index b398721e6246..6e15073813ab 100644 --- a/sw/inc/fmtrowsplt.hxx +++ b/sw/inc/fmtrowsplt.hxx @@ -30,7 +30,7 @@ #ifndef _FMTROWSPLT_HXX #define _FMTROWSPLT_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtruby.hxx b/sw/inc/fmtruby.hxx index 516d5c3d8eed..b7a461427477 100644 --- a/sw/inc/fmtruby.hxx +++ b/sw/inc/fmtruby.hxx @@ -32,7 +32,7 @@ #include <tools/string.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> class SwTxtRuby; diff --git a/sw/inc/fmtsrnd.hxx b/sw/inc/fmtsrnd.hxx index ec6abe89e936..32b0e7d8e9bf 100644 --- a/sw/inc/fmtsrnd.hxx +++ b/sw/inc/fmtsrnd.hxx @@ -33,7 +33,7 @@ #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> // --> OD 2006-08-15 #i68520# - refactoring // separate enumeration <SwSurround> in own header file diff --git a/sw/inc/fmturl.hxx b/sw/inc/fmturl.hxx index bfc82fd4913a..b4bd47a68e9b 100644 --- a/sw/inc/fmturl.hxx +++ b/sw/inc/fmturl.hxx @@ -30,7 +30,7 @@ #ifndef _FMTURL_HXX #define _FMTURL_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/fmtwrapinfluenceonobjpos.hxx b/sw/inc/fmtwrapinfluenceonobjpos.hxx index b9ece15840e7..098c42cafc01 100644 --- a/sw/inc/fmtwrapinfluenceonobjpos.hxx +++ b/sw/inc/fmtwrapinfluenceonobjpos.hxx @@ -32,7 +32,7 @@ #include <hintids.hxx> #include <format.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <com/sun/star/text/WrapInfluenceOnPosition.hpp> class SW_DLLPUBLIC SwFmtWrapInfluenceOnObjPos: public SfxPoolItem diff --git a/sw/inc/ftnidx.hxx b/sw/inc/ftnidx.hxx index 15ab804b5ee0..a06ed6b61769 100644 --- a/sw/inc/ftnidx.hxx +++ b/sw/inc/ftnidx.hxx @@ -32,7 +32,7 @@ #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> class SwTxtFtn; class SwNodeIndex; diff --git a/sw/inc/grfatr.hxx b/sw/inc/grfatr.hxx index f9a232bae0ef..377f1edbada3 100644 --- a/sw/inc/grfatr.hxx +++ b/sw/inc/grfatr.hxx @@ -32,8 +32,8 @@ #include <hintids.hxx> // fuer die WhichIds @@@ must be included first @@@ #include <tools/gen.hxx> -#include <svtools/eitem.hxx> -#include <svtools/intitem.hxx> +#include <svl/eitem.hxx> +#include <svl/intitem.hxx> #include <svx/grfcrop.hxx> #include "swdllapi.h" #include <swatrset.hxx> // fuer inlines diff --git a/sw/inc/hfspacingitem.hxx b/sw/inc/hfspacingitem.hxx index 17b62c0d4760..032f4de88fd4 100644 --- a/sw/inc/hfspacingitem.hxx +++ b/sw/inc/hfspacingitem.hxx @@ -31,7 +31,7 @@ #define _SW_HF_EAT_SPACINGITEM_HXX -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/hints.hxx b/sw/inc/hints.hxx index f1911ce7f0c1..16f8568bcf74 100644 --- a/sw/inc/hints.hxx +++ b/sw/inc/hints.hxx @@ -88,14 +88,6 @@ public: }; -class SwInsChr: public SwMsgPoolItem -{ -public: - xub_StrLen nPos; - - SwInsChr( USHORT nP ); -}; - class SwInsTxt: public SwMsgPoolItem { public: @@ -214,7 +206,7 @@ public: USHORT Count() const { return pChgSet->Count(); } void ClearItem( USHORT nWhichL = 0 ) -#ifdef PRODUCT +#ifndef DBG_UTIL { pChgSet->ClearItem( nWhichL ); } #else ; @@ -270,17 +262,6 @@ public: //}; // <-- -class SwNRuleLowerLevel : public SwMsgPoolItem -{ - const String& rName; - BYTE nLvl; -public: - SwNRuleLowerLevel( const String& rRuleName, BYTE nLevel ); - - const String& GetName() const { return rName; } - BYTE GetLevel() const { return nLvl; } -}; - class SwFindNearestNode : public SwMsgPoolItem { const SwNode *pNd, *pFnd; diff --git a/sw/inc/index.hxx b/sw/inc/index.hxx index 9837a4e664bc..5b28034aa27a 100644 --- a/sw/inc/index.hxx +++ b/sw/inc/index.hxx @@ -43,7 +43,7 @@ class SwIndex; class SwIndexReg; struct SwPosition; -#ifdef PRODUCT +#ifndef DBG_UTIL #define INLINE inline #else #define INLINE @@ -53,7 +53,7 @@ class SW_DLLPUBLIC SwIndex { friend class SwIndexReg; -#ifndef PRODUCT +#ifdef DBG_UTIL static int nSerial; int MySerial; #endif @@ -150,7 +150,7 @@ public: void MoveTo( SwIndexReg& rArr ); }; -#ifdef PRODUCT +#ifndef DBG_UTIL inline xub_StrLen SwIndex::operator++() { diff --git a/sw/inc/istyleaccess.hxx b/sw/inc/istyleaccess.hxx index 8a770d5b012c..52ce6ea2e4ec 100644 --- a/sw/inc/istyleaccess.hxx +++ b/sw/inc/istyleaccess.hxx @@ -31,7 +31,7 @@ #define _ISTYLEACCESS_HXX #include <vector> -#include <svtools/stylepool.hxx> +#include <svl/stylepool.hxx> /*-------------------------------------------------------------------- Management of (automatic) styles diff --git a/sw/inc/makefile.mk b/sw/inc/makefile.mk index 36aa66102618..16adca8192b8 100644 --- a/sw/inc/makefile.mk +++ b/sw/inc/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -44,10 +44,10 @@ TARGET=inc .INCLUDE : target.mk -.IF "$(ENABLE_PCH)"!="" && ( "$(PRJNAME)"!="sw" || "$(BUILD_SPECIAL)"!="TRUE" ) +.IF "$(ENABLE_PCH)"!="" # && ( "$(PRJNAME)"!="sw" || "$(BUILD_SPECIAL)"!="TRUE" ) ALLTAR : \ $(SLO)$/precompiled.pch \ $(SLO)$/precompiled_ex.pch - + .ENDIF # "$(ENABLE_PCH)"!="" diff --git a/sw/inc/modcfg.hxx b/sw/inc/modcfg.hxx index d17311027111..b800cb3dfc8e 100644 --- a/sw/inc/modcfg.hxx +++ b/sw/inc/modcfg.hxx @@ -33,7 +33,7 @@ #include <tools/string.hxx> #include <vcl/wintypes.hxx> #include <vcl/field.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <unotools/configitem.hxx> #include "swdllapi.h" #include "authratr.hxx" @@ -78,6 +78,7 @@ class SwRevisionConfig : public utl::ConfigItem ~SwRevisionConfig(); virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; @@ -108,6 +109,7 @@ class SwInsertConfig : public utl::ConfigItem ~SwInsertConfig(); virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; @@ -134,6 +136,7 @@ class SwTableConfig : public utl::ConfigItem ~SwTableConfig(); virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; @@ -163,6 +166,7 @@ class SwMiscConfig : public utl::ConfigItem ~SwMiscConfig(); virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx index 6bbd72778498..9f27b1885fe1 100644 --- a/sw/inc/ndarr.hxx +++ b/sw/inc/ndarr.hxx @@ -32,7 +32,7 @@ #define _NDARR_HXX #include <com/sun/star/embed/XEmbeddedObject.hpp> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #ifndef _BPARR_HXX #include <bparr.hxx> diff --git a/sw/inc/ndhints.hxx b/sw/inc/ndhints.hxx index e5a3ee794e0b..67cb84367515 100644 --- a/sw/inc/ndhints.hxx +++ b/sw/inc/ndhints.hxx @@ -31,7 +31,7 @@ #define _NDHINTS_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <tools/mempool.hxx> #include "swtypes.hxx" @@ -117,7 +117,7 @@ public: { return m_HintStarts[nIdx]; } inline USHORT Count() const { return m_HintStarts.Count(); } -#ifndef PRODUCT +#ifdef DBG_UTIL bool Check() const; #endif }; diff --git a/sw/inc/ndindex.hxx b/sw/inc/ndindex.hxx index 0942621991e8..82153fa5b5e1 100644 --- a/sw/inc/ndindex.hxx +++ b/sw/inc/ndindex.hxx @@ -45,7 +45,7 @@ class SW_DLLPUBLIC SwNodeIndex friend void SwNodes::DeRegisterIndex( SwNodeIndex& ); friend void SwNodes::RemoveNode( ULONG, ULONG, BOOL ); -#ifndef PRODUCT +#ifdef DBG_UTIL static int nSerial; int MySerial; #endif diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx index 5aa259b68c06..4862dafc6aac 100644 --- a/sw/inc/node.hxx +++ b/sw/inc/node.hxx @@ -89,7 +89,7 @@ class SW_DLLPUBLIC SwNode : private /* public*/ BigPtrEntry { friend class SwNodes; -#ifndef PRODUCT +#ifdef DBG_UTIL static long nSerial; long nMySerial; #endif @@ -114,7 +114,7 @@ protected: public: virtual ~SwNode(); -#ifndef PRODUCT +#ifdef DBG_UTIL long int GetSerial() const { return nMySerial; } #endif diff --git a/sw/inc/numrule.hxx b/sw/inc/numrule.hxx index 9b3714c806bf..dfaa5101c01c 100644 --- a/sw/inc/numrule.hxx +++ b/sw/inc/numrule.hxx @@ -116,7 +116,7 @@ public: private: friend void _FinitCore(); -#ifndef PRODUCT +#ifdef DBG_UTIL long int nSerial; static long int nInstances; #endif diff --git a/sw/inc/pam.hxx b/sw/inc/pam.hxx index 18579f1a918b..95e9c0ad42bb 100644 --- a/sw/inc/pam.hxx +++ b/sw/inc/pam.hxx @@ -192,8 +192,8 @@ public: m_pMark = m_pPoint; } } +#ifndef DBG_UTIL -#ifdef PRODUCT void Exchange() { if (m_pPoint != m_pMark) diff --git a/sw/inc/paratr.hxx b/sw/inc/paratr.hxx index 3f65056e1cd5..e1b2ced1b513 100644 --- a/sw/inc/paratr.hxx +++ b/sw/inc/paratr.hxx @@ -29,8 +29,8 @@ ************************************************************************/ #ifndef _PARATR_HXX #define _PARATR_HXX -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <calbck.hxx> diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx index 52988f293d37..f43d09731f2f 100644 --- a/sw/inc/pch/precompiled_sw.hxx +++ b/sw/inc/pch/precompiled_sw.hxx @@ -33,6 +33,7 @@ #ifdef PRECOMPILED_HEADERS //---MARKER--- + #include "sal/config.h" #include "sal/types.h" @@ -511,8 +512,6 @@ #include "cppuhelper/weak.hxx" #include "cppuhelper/weakref.hxx" -#include "cppunit/simpleheader.hxx" - #include "framework/interaction.hxx" #include "goodies/grfmgr.hxx" @@ -613,99 +612,99 @@ #include "sot/storinfo.hxx" #include "svtools/FilterConfigItem.hxx" -#include "svtools/PasswordHelper.hxx" +#include "svl/PasswordHelper.hxx" #include "svtools/accessibilityoptions.hxx" -#include "svtools/aeitem.hxx" -#include "svtools/cjkoptions.hxx" -#include "svtools/cmdoptions.hxx" -#include "svtools/cntnrsrt.hxx" +#include "svl/aeitem.hxx" +#include "svl/cjkoptions.hxx" +#include "unotools/cmdoptions.hxx" +#include "svl/cntnrsrt.hxx" #include "svtools/collatorres.hxx" #include "svtools/colorcfg.hxx" -#include "svtools/compatibility.hxx" +#include "unotools/compatibility.hxx" #include "svtools/controldims.hrc" -#include "svtools/ctloptions.hxx" +#include "svl/ctloptions.hxx" #include "svtools/ctrlbox.hxx" #include "svtools/ctrltool.hxx" #include "svtools/editbrowsebox.hxx" #include "svtools/ehdl.hxx" -#include "svtools/eitem.hxx" +#include "svl/eitem.hxx" #include "svtools/embedhlp.hxx" #include "svtools/embedtransfer.hxx" #include "svtools/filter.hxx" -#include "svtools/flagitem.hxx" -#include "svtools/fltrcfg.hxx" -#include "svtools/fstathelper.hxx" -#include "svtools/globalnameitem.hxx" +#include "svl/flagitem.hxx" +#include "unotools/fltrcfg.hxx" +#include "svl/fstathelper.hxx" +#include "svl/globalnameitem.hxx" #include "svtools/headbar.hxx" #include "svtools/htmlkywd.hxx" #include "svtools/htmltokn.h" -#include "svtools/imageitm.hxx" +#include "svl/imageitm.hxx" #include "svtools/imap.hxx" #include "svtools/indexentryres.hxx" -#include "svtools/inethist.hxx" +#include "svl/inethist.hxx" #include "svtools/inetimg.hxx" #include "svtools/insdlg.hxx" -#include "svtools/intitem.hxx" -#include "svtools/isethint.hxx" -#include "svtools/itemiter.hxx" -#include "svtools/itempool.hxx" -#include "svtools/itemprop.hxx" -#include "svtools/itemset.hxx" -#include "svtools/languageoptions.hxx" -#include "svtools/lckbitem.hxx" -#include "svtools/lingucfg.hxx" -#include "svtools/linguprops.hxx" -#include "svtools/lstner.hxx" -#include "svtools/misccfg.hxx" -#include "svtools/moduleoptions.hxx" -#include "svtools/numuno.hxx" -#include "svtools/ownlist.hxx" +#include "svl/intitem.hxx" +#include "svl/isethint.hxx" +#include "svl/itemiter.hxx" +#include "svl/itempool.hxx" +#include "svl/itemprop.hxx" +#include "svl/itemset.hxx" +#include "svl/languageoptions.hxx" +#include "svl/lckbitem.hxx" +#include "unotools/lingucfg.hxx" +#include "unotools/linguprops.hxx" +#include "svl/lstner.hxx" +#include "unotools/misccfg.hxx" +#include "unotools/moduleoptions.hxx" +#include "svl/numuno.hxx" +#include "svl/ownlist.hxx" #include "svtools/parhtml.hxx" -#include "svtools/pathoptions.hxx" -#include "svtools/poolitem.hxx" +#include "unotools/pathoptions.hxx" +#include "svl/poolitem.hxx" #include "svtools/prgsbar.hxx" #include "svtools/printdlg.hxx" #include "svtools/prnsetup.hxx" -#include "svtools/ptitem.hxx" -#include "svtools/rectitem.hxx" +#include "svl/ptitem.hxx" +#include "svl/rectitem.hxx" #include "svtools/rtfkeywd.hxx" #include "svtools/rtfout.hxx" #include "svtools/rtftoken.h" #include "svtools/ruler.hxx" -#include "svtools/saveopt.hxx" +#include "unotools/saveopt.hxx" #include "svtools/scriptedtext.hxx" #include "svtools/sfxecode.hxx" -#include "svtools/slstitm.hxx" -#include "svtools/smplhint.hxx" +#include "svl/slstitm.hxx" +#include "svl/smplhint.hxx" #include "svtools/soerr.hxx" #include "vcl/solar.hrc" -#include "svtools/sourceviewconfig.hxx" +#include "unotools/sourceviewconfig.hxx" #include "svtools/stdctrl.hxx" -#include "svtools/stritem.hxx" -#include "svtools/style.hrc" -#include "svtools/style.hxx" -#include "svtools/svarray.hxx" +#include "svl/stritem.hxx" +#include "svl/style.hrc" +#include "svl/style.hxx" +#include "svl/svarray.hxx" #include "svtools/svmedit.hxx" #include "svtools/svparser.hxx" -#include "svtools/svstdarr.hxx" +#include "svl/svstdarr.hxx" #include "svtools/svtabbx.hxx" #include "svtools/svtreebx.hxx" -#include "svtools/syslocale.hxx" +#include "unotools/syslocale.hxx" #include "svtools/templdlg.hxx" #include "svtools/textview.hxx" #include "svtools/transfer.hxx" #include "svtools/txtattr.hxx" #include "svtools/txtcmp.hxx" -#include "svtools/undo.hxx" -#include "svtools/undoopt.hxx" +#include "svl/undo.hxx" +#include "unotools/undoopt.hxx" #include "svtools/unoevent.hxx" #include "svtools/unoimap.hxx" -#include "svtools/urihelper.hxx" -#include "svtools/urlbmk.hxx" -#include "svtools/useroptions.hxx" +#include "svl/urihelper.hxx" +#include "svl/urlbmk.hxx" +#include "unotools/useroptions.hxx" #include "svtools/valueset.hxx" -#include "svtools/visitem.hxx" -#include "svtools/whiter.hxx" +#include "svl/visitem.hxx" +#include "svl/whiter.hxx" #include "svtools/xtextedt.hxx" #include "svx/IAccessibleParent.hxx" @@ -731,7 +730,7 @@ #include "svx/editstat.hxx" #include "svx/editview.hxx" #include "svx/eeitem.hxx" -#include "svx/escherex.hxx" +#include "filter/msfilter/escherex.hxx" #include "svx/extrusionbar.hxx" #include "svx/extrusioncontrols.hxx" #include "svx/fillctrl.hxx" @@ -766,11 +765,11 @@ #include "svx/lboxctrl.hxx" #include "svx/linectrl.hxx" #include "svx/linkmgr.hxx" -#include "svx/mscodec.hxx" -#include "svx/msdffimp.hxx" -#include "svx/msfiltertracer.hxx" -#include "svx/msocximex.hxx" -#include "svx/msoleexp.hxx" +#include "filter/msfilter/mscodec.hxx" +#include "filter/msfilter/msdffimp.hxx" +#include "filter/msfilter/msfiltertracer.hxx" +#include "filter/msfilter/msocximex.hxx" +#include "filter/msfilter/msoleexp.hxx" #include "svx/numitem.hxx" #include "svx/numvset.hxx" #include "svx/objfac3d.hxx" @@ -921,7 +920,7 @@ #include "vcl/fixed.hxx" #include "vcl/fldunit.hxx" #include "vcl/font.hxx" -#include "vcl/fontcvt.hxx" +#include "unotools/fontcvt.hxx" #include "vcl/graph.hxx" #include "vcl/group.hxx" #include "vcl/help.hxx" diff --git a/sw/inc/postithelper.hxx b/sw/inc/postithelper.hxx index 3f36c6015f6c..19ec6ed6084f 100644 --- a/sw/inc/postithelper.hxx +++ b/sw/inc/postithelper.hxx @@ -35,7 +35,7 @@ #include <redline.hxx> #include <vector> #include <vcl/window.hxx> -#include <svtools/brdcst.hxx> +#include <svl/brdcst.hxx> class SwTxtFld; class SwRootFrm; diff --git a/sw/inc/redline.hxx b/sw/inc/redline.hxx index ebf6e8cd9325..a35caaaae3f0 100644 --- a/sw/inc/redline.hxx +++ b/sw/inc/redline.hxx @@ -34,12 +34,12 @@ #include <tools/string.hxx> #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <pam.hxx> #include <IDocumentRedlineAccess.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> class SfxItemSet; class SwView; diff --git a/sw/inc/rolbck.hxx b/sw/inc/rolbck.hxx index 3fb23fc2e426..c8f8561138b8 100644 --- a/sw/inc/rolbck.hxx +++ b/sw/inc/rolbck.hxx @@ -34,9 +34,9 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> //Nur die History anziehen, um das docnew.cxx gegen die CLOOK's zu behaupten. @@ -78,8 +78,7 @@ class SwCharFmt; #include <memory> - -#ifndef PRODUCT +#ifdef DBG_UTIL class Writer; #define OUT_HSTR_HINT( name ) \ friend Writer& OutUndo_Hstr_ ## name( Writer&, const SwHistoryHint& ); diff --git a/sw/inc/rubylist.hxx b/sw/inc/rubylist.hxx index a175159fc418..41d1d7f890b1 100644 --- a/sw/inc/rubylist.hxx +++ b/sw/inc/rubylist.hxx @@ -30,7 +30,7 @@ #ifndef _RUBYLIST_HXX #define _RUBYLIST_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <swtypes.hxx> #include <fmtruby.hxx> diff --git a/sw/inc/section.hxx b/sw/inc/section.hxx index c530c8280870..1310325575cd 100644 --- a/sw/inc/section.hxx +++ b/sw/inc/section.hxx @@ -38,7 +38,7 @@ #ifndef _TOOLS_REF_HXX #include <tools/ref.hxx> #endif -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <frmfmt.hxx> // Forward Deklaration diff --git a/sw/inc/shellio.hxx b/sw/inc/shellio.hxx index 3be5406cf62c..45d413ced105 100644 --- a/sw/inc/shellio.hxx +++ b/sw/inc/shellio.hxx @@ -538,7 +538,7 @@ public: inline SvStream& OutULong( ULONG nVal ) { return OutULong( Strm(), nVal ); } void SetStrm( SvStream& rStrm ) { pStrm = &rStrm; } -#ifdef PRODUCT +#ifndef DBG_UTIL SvStream& Strm() { return *pStrm; } #else SvStream& Strm(); @@ -637,6 +637,8 @@ public: typedef Reader* (*FnGetReader)(); typedef void (*FnGetWriter)(const String&, const String& rBaseURL, WriterRef&); +ULONG SaveOrDelMSVBAStorage( SfxObjectShell&, SotStorage&, BOOL, const String& ); +ULONG GetSaveWarningOfMSVBAStorage( SfxObjectShell &rDocS ); struct SwReaderWriterEntry { diff --git a/sw/inc/shellres.hxx b/sw/inc/shellres.hxx index 4c7bb09ebe45..8c677c9ed8db 100644 --- a/sw/inc/shellres.hxx +++ b/sw/inc/shellres.hxx @@ -39,7 +39,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif struct SW_DLLPUBLIC ShellResource : public Resource @@ -72,6 +72,8 @@ struct SW_DLLPUBLIC ShellResource : public Resource String aStrNone; // fuer Felder, die Fixiert sind String aFixedStr; + // custom fields of type css::util::Duration + String sDurationFormat; //names of TOXs String aTOXIndexName; diff --git a/sw/inc/sortopt.hxx b/sw/inc/sortopt.hxx index 103b58ed71b9..5b93f92e298d 100644 --- a/sw/inc/sortopt.hxx +++ b/sw/inc/sortopt.hxx @@ -31,7 +31,7 @@ #define _SORTOPT_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <tools/string.hxx> #include "swdllapi.h" diff --git a/sw/inc/swatrset.hxx b/sw/inc/swatrset.hxx index 3042f1def0c9..eccfc1a5b347 100644 --- a/sw/inc/swatrset.hxx +++ b/sw/inc/swatrset.hxx @@ -31,8 +31,8 @@ #define _SWATRSET_HXX #include <tools/solar.h> #include <tools/mempool.hxx> -#include <svtools/itemset.hxx> -#include <svtools/itempool.hxx> +#include <svl/itemset.hxx> +#include <svl/itempool.hxx> #include <swdllapi.h> class SwModify; diff --git a/sw/inc/swfltopt.hxx b/sw/inc/swfltopt.hxx index 8b7e9c2ea451..d2556a31bccf 100644 --- a/sw/inc/swfltopt.hxx +++ b/sw/inc/swfltopt.hxx @@ -40,6 +40,8 @@ public: void GetValues( sal_uInt16 nCnt, const sal_Char** ppNames, sal_uInt32* pValues ); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); }; #endif diff --git a/sw/inc/swhints.hxx b/sw/inc/swhints.hxx index c4090cbe54f3..6c7b69eff7a6 100644 --- a/sw/inc/swhints.hxx +++ b/sw/inc/swhints.hxx @@ -30,7 +30,7 @@ #ifndef SW_HINTS_HXX #define SW_HINTS_HXX -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> #define SW_BROADCASTID_START SFX_HINT_USER00 #define SW_BROADCAST_DRAWVIEWS_CREATED SW_BROADCASTID_START diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx index 57e8a3a1a31a..553ee20d9bc1 100644 --- a/sw/inc/swmodule.hxx +++ b/sw/inc/swmodule.hxx @@ -32,11 +32,12 @@ #include <tools/link.hxx> #include <tools/string.hxx> #include <vcl/fldunit.hxx> -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> +#include <unotools/options.hxx> #include <sfx2/module.hxx> #include <tools/shl.hxx> -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> #include "swdllapi.h" #include "shellid.hxx" #include <fldupde.hxx> @@ -77,7 +78,7 @@ namespace com{ namespace sun{ namespace star{ namespace scanner{ class XScannerManager; }}}} -class SW_DLLPUBLIC SwModule: public SfxModule, public SfxListener +class SW_DLLPUBLIC SwModule: public SfxModule, public SfxListener, public utl::ConfigurationListener { String sActAuthor; @@ -126,6 +127,8 @@ class SW_DLLPUBLIC SwModule: public SfxModule, public SfxListener // 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&); diff --git a/sw/inc/swrect.hxx b/sw/inc/swrect.hxx index fc6d0238820e..c5ded7255c49 100644 --- a/sw/inc/swrect.hxx +++ b/sw/inc/swrect.hxx @@ -35,10 +35,8 @@ class SvStream; class SwRect { - long nX; - long nY; - long nWidth; - long nHeight; + Point m_Point; + Size m_Size; public: @@ -177,137 +175,133 @@ typedef void (SwRect:: *SwRectSetPos)( const Point& ); //---------------------------------- Set-Methoden inline void SwRect::Chg( const Point& rNP, const Size &rNS ) { - nX = rNP.X(); nY = rNP.Y(); - nWidth = rNS.Width(); nHeight = rNS.Height(); + m_Point = rNP; + m_Size = rNS; } inline void SwRect::Pos( const Point& rNew ) { - nX = rNew.X(); nY = rNew.Y(); + m_Point = rNew; } inline void SwRect::Pos( const long nNewX, const long nNewY ) { - nX = nNewX; nY = nNewY; + m_Point.setX(nNewX); + m_Point.setY(nNewY); } inline void SwRect::SSize( const Size& rNew ) { - nWidth = rNew.Width(); nHeight = rNew.Height(); + m_Size = rNew; } inline void SwRect::SSize( const long nNewHeight, const long nNewWidth ) { - nWidth = nNewWidth; nHeight = nNewHeight; + m_Size.setWidth(nNewWidth); + m_Size.setHeight(nNewHeight); } inline void SwRect::Width( long nNew ) { - nWidth = nNew; + m_Size.setWidth(nNew); } inline void SwRect::Height( long nNew ) { - nHeight = nNew; + m_Size.setHeight(nNew); } inline void SwRect::Left( const long nLeft ) { - nWidth += nX - nLeft; - nX = nLeft; + m_Size.Width() += m_Point.getX() - nLeft; + m_Point.setX(nLeft); } inline void SwRect::Right( const long nRight ) { - nWidth = nRight - nX + 1; + m_Size.setWidth(nRight - m_Point.getX() + 1); } inline void SwRect::Top( const long nTop ) { - nHeight += nY - nTop; - nY = nTop; + m_Size.Height() += m_Point.getY() - nTop; + m_Point.setY(nTop); } inline void SwRect::Bottom( const long nBottom ) { - nHeight = nBottom - nY + 1; + m_Size.setHeight(nBottom - m_Point.getY() + 1); } //----------------------------------- Get-Methoden inline const Point &SwRect::Pos() const { - return *(Point*)(&nX); + return m_Point; } inline Point &SwRect::Pos() { - return *(Point*)(&nX); + return m_Point; } inline const Size &SwRect::SSize() const { - return *(Size*)(&nWidth); + return m_Size; } inline Size &SwRect::SSize() { - return *(Size*)(&nWidth); + return m_Size; } inline long SwRect::Width() const { - return nWidth; + return m_Size.Width(); } inline long SwRect::Height() const { - return nHeight; + return m_Size.Height(); } inline long SwRect::Left() const { - return nX; + return m_Point.X(); } inline long SwRect::Right() const { - return nWidth ? nX + nWidth - 1 : nX; + return m_Size.getWidth() ? m_Point.getX() + m_Size.getWidth() - 1 : m_Point.getX(); } inline long SwRect::Top() const { - return nY; + return m_Point.Y(); } inline long SwRect::Bottom() const { - return nHeight ? nY + nHeight - 1 : nY; + return m_Size.getHeight() ? m_Point.getY() + m_Size.getHeight() - 1 : m_Point.getY(); } //----------------------------------- operatoren inline SwRect &SwRect::operator = ( const SwRect &rRect ) { - nX = rRect.Left(); - nY = rRect.Top(); - nWidth = rRect.Width(); - nHeight = rRect.Height(); + m_Point = rRect.m_Point; + m_Size = rRect.m_Size; return *this; } inline BOOL SwRect::operator == ( const SwRect& rRect ) const { - return (nX == rRect.Left() && - nY == rRect.Top() && - nWidth == rRect.Width() && - nHeight == rRect.Height()); + return (m_Point == rRect.m_Point && m_Size == rRect.m_Size); } inline BOOL SwRect::operator != ( const SwRect& rRect ) const { - return (nX != rRect.Left() || - nY != rRect.Top() || - nWidth != rRect.Width() || - nHeight != rRect.Height()); + return (m_Point != rRect.m_Point || m_Size != rRect.m_Size); } inline SwRect &SwRect::operator+=( const Point &rPt ) { - nX += rPt.X(); nY += rPt.Y(); + m_Point += rPt; return *this; } inline SwRect &SwRect::operator-=( const Point &rPt ) { - nX -= rPt.X(); nY -= rPt.Y(); + m_Point -= rPt; return *this; } inline SwRect &SwRect::operator+=( const Size &rSz ) { - nWidth += rSz.Width(); nHeight += rSz.Height(); + m_Size.Width() += rSz.Width(); + m_Size.Height() += rSz.Height(); return *this; } inline SwRect &SwRect::operator-=( const Size &rSz ) { - nWidth -= rSz.Width(); nHeight -= rSz.Height(); + m_Size.Width() -= rSz.Width(); + m_Size.Height() -= rSz.Height(); return *this; } @@ -315,10 +309,10 @@ inline SwRect &SwRect::operator-=( const Size &rSz ) //--------------------------- Sonstiges inline Rectangle SwRect::SVRect() const { - ASSERT( nWidth && nHeight, "SVRect() ohne Widht oder Height" ); - return Rectangle( nX, nY, - nX + nWidth - 1, //Right() - nY + nHeight - 1 ); //Bottom() + ASSERT( !IsEmpty(), "SVRect() without Width or Height" ); + return Rectangle( m_Point.getX(), m_Point.getY(), + m_Point.getX() + m_Size.getWidth() - 1, //Right() + m_Point.getY() + m_Size.getHeight() - 1 ); //Bottom() } inline SwRect SwRect::GetIntersection( const SwRect& rRect ) const @@ -328,51 +322,44 @@ inline SwRect SwRect::GetIntersection( const SwRect& rRect ) const inline BOOL SwRect::HasArea() const { - return nHeight && nWidth; + return !IsEmpty(); } inline BOOL SwRect::IsEmpty() const { - return !(nHeight && nWidth); + return !(m_Size.getHeight() && m_Size.getWidth()); } inline void SwRect::Clear() { - nX = nY = nWidth = nHeight = 0; + m_Point.setX(0); + m_Point.setY(0); + m_Size.setWidth(0); + m_Size.setHeight(0); } //-------------------------- CToren inline SwRect::SwRect() : - nX( 0 ), - nY( 0 ), - nWidth ( 0 ), - nHeight( 0 ) + m_Point( 0, 0 ), + m_Size( 0, 0 ) { } inline SwRect::SwRect( const SwRect &rRect ) : - nX( rRect.Left() ), - nY( rRect.Top() ), - nWidth ( rRect.Width() ), - nHeight( rRect.Height() ) + m_Point( rRect.m_Point ), + m_Size( rRect.m_Size ) { } inline SwRect::SwRect( const Point& rLT, const Size& rSize ) : - nX( rLT.X() ), - nY( rLT.Y() ), - nWidth ( rSize.Width() ), - nHeight( rSize.Height()) + m_Point( rLT ), + m_Size( rSize ) { } inline SwRect::SwRect( const Point& rLT, const Point& rRB ) : - nX( rLT.X() ), - nY( rLT.Y() ), - nWidth ( rRB.X() - rLT.X() + 1 ), - nHeight( rRB.Y() - rLT.Y() + 1 ) + m_Point( rLT ), + m_Size( rRB.X() - rLT.X() + 1, rRB.Y() - rLT.Y() + 1 ) { } inline SwRect::SwRect( long X, long Y, long W, long H ) : - nX( X ), - nY( Y ), - nWidth ( W ), - nHeight( H ) + m_Point( X, Y ), + m_Size( W, H ) { } diff --git a/sw/inc/swregion.hxx b/sw/inc/swregion.hxx index 0b1e42070101..793746877d9f 100644 --- a/sw/inc/swregion.hxx +++ b/sw/inc/swregion.hxx @@ -30,7 +30,7 @@ #ifndef _SWREGION_HXX #define _SWREGION_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swrect.hxx" diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx index 1a62bb3d4dfd..1699cf439030 100644 --- a/sw/inc/swtable.hxx +++ b/sw/inc/swtable.hxx @@ -33,12 +33,12 @@ #ifndef _TOOLS_REF_HXX #include <tools/ref.hxx> #endif -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <tblenum.hxx> #include <swtypes.hxx> #include <calbck.hxx> #include <swrect.hxx> -#ifdef PRODUCT +#ifndef DBG_UTIL #include <node.hxx> // fuer StartNode->GetMyIndex #else class SwStartNode; @@ -111,7 +111,7 @@ protected: BOOL bModifyLocked :1; BOOL bNewModel :1; // FALSE: old SubTableModel; TRUE: new RowSpanModel -#ifndef PRODUCT +#ifdef DBG_UTIL bool bDontChangeModel; // This is set by functions (like Merge()) to forbid a laet model change #endif @@ -210,7 +210,7 @@ public: BOOL Merge( SwDoc* pDoc, const SwSelBoxes& rBoxes, const SwSelBoxes& rMerged, SwTableBox* pMergeBox, SwUndoTblMerge* pUndo = 0 ) { -#ifndef PRODUCT +#ifdef DBG_UTIL bDontChangeModel = true; #endif return bNewModel ? NewMerge( pDoc, rBoxes, rMerged, pMergeBox, pUndo ) : @@ -219,7 +219,7 @@ public: BOOL SplitRow( SwDoc* pDoc, const SwSelBoxes& rBoxes, USHORT nCnt=1, BOOL bSameHeight = FALSE ) { -#ifndef PRODUCT +#ifdef DBG_UTIL bDontChangeModel = true; #endif return bNewModel ? NewSplitRow( pDoc, rBoxes, nCnt, bSameHeight ) : @@ -323,7 +323,7 @@ public: SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); BOOL SetRowHeight( SwTableBox& rAktBox, USHORT eType, SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); -#ifndef PRODUCT +#ifdef DBG_UTIL void CheckConsistency() const; #endif }; @@ -412,7 +412,7 @@ public: const SwStartNode *GetSttNd() const { return pSttNd; } ULONG GetSttIdx() const -#ifdef PRODUCT +#ifndef DBG_UTIL { return pSttNd ? pSttNd->GetIndex() : 0; } #else ; diff --git a/sw/inc/swundo.hxx b/sw/inc/swundo.hxx index ce997cc3f43d..1ce8f7318131 100644 --- a/sw/inc/swundo.hxx +++ b/sw/inc/swundo.hxx @@ -30,7 +30,7 @@ #ifndef _SWUNDO_HXX #define _SWUNDO_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> // die Ids fuer StdAktionen enum SwUndoId diff --git a/sw/inc/tabcol.hxx b/sw/inc/tabcol.hxx index 092d6b12f22b..10eff5c1f33f 100644 --- a/sw/inc/tabcol.hxx +++ b/sw/inc/tabcol.hxx @@ -33,7 +33,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_LONGS #define _SVSTDARR_BOOLS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #ifndef INCLUDED_VECTOR diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx index 0b26219ab7e1..3ca914531882 100644 --- a/sw/inc/tblafmt.hxx +++ b/sw/inc/tblafmt.hxx @@ -47,7 +47,7 @@ JP 20.07.95: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! **************************************************************************/ -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "hintids.hxx" //_immmer_ vor den solar-items! #include <svx/algitem.hxx> #include <svx/fontitem.hxx> @@ -65,7 +65,7 @@ JP 20.07.95: #include <svx/brshitem.hxx> #include <svx/adjitem.hxx> #include <svx/rotmodit.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svx/bolnitem.hxx> #include "swdllapi.h" diff --git a/sw/inc/tblsel.hxx b/sw/inc/tblsel.hxx index d87768664fe5..9bd5ef390da1 100644 --- a/sw/inc/tblsel.hxx +++ b/sw/inc/tblsel.hxx @@ -30,7 +30,7 @@ #ifndef _TBLSEL_HXX #define _TBLSEL_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <swtable.hxx> #include <swrect.hxx> #include "swdllapi.h" diff --git a/sw/inc/tgrditem.hxx b/sw/inc/tgrditem.hxx index c502454efcea..659b05207aa9 100644 --- a/sw/inc/tgrditem.hxx +++ b/sw/inc/tgrditem.hxx @@ -31,7 +31,7 @@ #define SW_TGRDITEM_HXX #include <tools/color.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <hintids.hxx> #include <format.hxx> diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx index 9223ffa2d9df..65a4879485b7 100644 --- a/sw/inc/tox.hxx +++ b/sw/inc/tox.hxx @@ -34,8 +34,8 @@ #include <tools/string.hxx> #include <svx/svxenum.hxx> -#include <svtools/svarray.hxx> -#include <svtools/poolitem.hxx> +#include <svl/svarray.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <swtypes.hxx> #include <toxe.hxx> diff --git a/sw/inc/txatbase.hxx b/sw/inc/txatbase.hxx index 2a49460a05ca..4ceb64e90f0d 100644 --- a/sw/inc/txatbase.hxx +++ b/sw/inc/txatbase.hxx @@ -31,7 +31,7 @@ #define _TXATBASE_HXX #include <tools/solar.h> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <hintids.hxx> #include <errhdl.hxx> @@ -121,7 +121,6 @@ public: inline const SwTOXMark &GetTOXMark() const; inline const SwFmtRefMark &GetRefMark() const; inline const SwFmtINetFmt &GetINetFmt() const; - inline const SvXMLAttrContainerItem &GetXMLAttrContainer() const; inline const SwFmtRuby &GetRuby() const; inline const SwFmtMeta &GetMeta() const; @@ -230,13 +229,6 @@ inline const SwFmtINetFmt& SwTxtAttr::GetINetFmt() const return (const SwFmtINetFmt&)(*m_pAttr); } -inline const SvXMLAttrContainerItem& SwTxtAttr::GetXMLAttrContainer() const -{ - ASSERT( m_pAttr && m_pAttr->Which() == RES_UNKNOWNATR_CONTAINER, - "Wrong attribute" ); - return (const SvXMLAttrContainerItem&)(*m_pAttr); -} - inline const SwFmtRuby& SwTxtAttr::GetRuby() const { ASSERT( m_pAttr && m_pAttr->Which() == RES_TXTATR_CJK_RUBY, diff --git a/sw/inc/txatritr.hxx b/sw/inc/txatritr.hxx index e50eb2dbda77..a087ebcb087d 100644 --- a/sw/inc/txatritr.hxx +++ b/sw/inc/txatritr.hxx @@ -32,7 +32,7 @@ #include <tools/solar.h> #include <sal/types.h> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <svx/langitem.hxx> #include <hintids.hxx> diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx index 92b51fede495..d9e9463a30a7 100644 --- a/sw/inc/txtatr.hxx +++ b/sw/inc/txtatr.hxx @@ -60,15 +60,6 @@ public: }; -// ATT_XMLCONTAINERITEM ****************************** - -class SwTxtXMLAttrContainer : public SwTxtAttrEnd -{ -public: - SwTxtXMLAttrContainer( SvXMLAttrContainerItem& rAttr, - xub_StrLen nStart, xub_StrLen nEnd ); -}; - // ****************************** class SwTxtAttrNesting : public SwTxtAttrEnd diff --git a/sw/inc/undobj.hxx b/sw/inc/undobj.hxx index aaafa3fca76a..5b08b496a360 100644 --- a/sw/inc/undobj.hxx +++ b/sw/inc/undobj.hxx @@ -36,9 +36,9 @@ #define _SVSTDARR_BOOLS #define _SVSTDARR_BYTES #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <com/sun/star/uno/Sequence.h> #include <numrule.hxx> #include <itabenum.hxx> @@ -115,7 +115,7 @@ namespace utl { class TransliterationWrapper; } -#ifndef PRODUCT +#ifdef DBG_UTIL class Writer; class SwUndo; #define OUT_UNDOBJ( name ) \ @@ -206,6 +206,11 @@ namespace nsDelCntntType const DelCntntType DELCNT_CHKNOCNTNT = 0x80; } +/// will DelCntntIndex destroy a frame anchored at character at rAnchorPos? +bool IsDestroyFrameAnchoredAtChar(SwPosition const & rAnchorPos, + SwPosition const & rStart, SwPosition const & rEnd, + DelCntntType const nDelCntntType = nsDelCntntType::DELCNT_ALL); + // diese Klasse muss in ein Undo-Object vererbt werden, wenn dieses Inhalt // fuers Redo/Undo ... speichert class SwUndoSaveCntnt diff --git a/sw/inc/unoatxt.hxx b/sw/inc/unoatxt.hxx index b115919a5623..87e896d76046 100644 --- a/sw/inc/unoatxt.hxx +++ b/sw/inc/unoatxt.hxx @@ -41,8 +41,8 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/document/XEventsSupplier.hpp> -#include <svtools/itemprop.hxx> -#include <svtools/lstner.hxx> +#include <svl/itemprop.hxx> +#include <svl/lstner.hxx> #include <cppuhelper/implbase3.hxx> // helper for implementations #include <cppuhelper/implbase4.hxx> // helper for implementations #include <cppuhelper/implbase5.hxx> // helper for implementations diff --git a/sw/inc/unocoll.hxx b/sw/inc/unocoll.hxx index 1a7401fd4a33..b630668f8965 100644 --- a/sw/inc/unocoll.hxx +++ b/sw/inc/unocoll.hxx @@ -43,6 +43,7 @@ #include <cppuhelper/implbase4.hxx> // helper for implementations #include <IMark.hxx> #include <unobaseclass.hxx> +#include "swdllapi.h" /*************************************************** *************************************************** * @@ -284,7 +285,7 @@ cppu::WeakImplHelper3 ::com::sun::star::lang::XServiceInfo > SwCollectionBaseClass; -class SwXTextTables : public SwCollectionBaseClass, +class SW_DLLPUBLIC SwXTextTables : public SwCollectionBaseClass, public SwUnoCollection { protected: diff --git a/sw/inc/unodraw.hxx b/sw/inc/unodraw.hxx index 05857bbc6fe1..5b277af11a49 100644 --- a/sw/inc/unodraw.hxx +++ b/sw/inc/unodraw.hxx @@ -48,7 +48,7 @@ #include <com/sun/star/container/XEnumerationAccess.hpp> #include <com/sun/star/drawing/HomogenMatrix3.hpp> // <-- -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> class SdrMarkList; class SdrView; diff --git a/sw/inc/unoevent.hxx b/sw/inc/unoevent.hxx index 40beb04943e5..6cb39ac5c481 100644 --- a/sw/inc/unoevent.hxx +++ b/sw/inc/unoevent.hxx @@ -31,7 +31,7 @@ #define _UNOEVENT_HXX #include <svtools/unoevent.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> class SvxMacroItem; diff --git a/sw/inc/unoevtlstnr.hxx b/sw/inc/unoevtlstnr.hxx index 5b5dceac47e3..38b70b308bd0 100644 --- a/sw/inc/unoevtlstnr.hxx +++ b/sw/inc/unoevtlstnr.hxx @@ -30,7 +30,7 @@ #ifndef _UNOEVTLSTNR_HXX #define _UNOEVTLSTNR_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <com/sun/star/uno/Reference.h> namespace com{namespace sun{namespace star{ diff --git a/sw/inc/unomailmerge.hxx b/sw/inc/unomailmerge.hxx index 3dbe497b2e3c..2e31ed8766de 100644 --- a/sw/inc/unomailmerge.hxx +++ b/sw/inc/unomailmerge.hxx @@ -43,7 +43,7 @@ #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/beans/PropertyChangeEvent.hpp> #include <com/sun/star/text/XMailMergeBroadcaster.hpp> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include <sfx2/objsh.hxx> // SfxObjectShellRef #include <functional> diff --git a/sw/inc/unomap.hxx b/sw/inc/unomap.hxx index e569383a335e..c5fcbfe15489 100644 --- a/sw/inc/unomap.hxx +++ b/sw/inc/unomap.hxx @@ -30,7 +30,7 @@ #ifndef _UNOMAP_HXX #define _UNOMAP_HXX -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #define PROPERTY_NONE 0 @@ -251,6 +251,7 @@ #define WID_DOC_LOCK_UPDATES 1016 #define WID_DOC_HAS_VALID_SIGNATURES 1017 #define WID_DOC_BUILDID 1024 +#define WID_DOC_ISTEMPLATEID 1025 // --> OD 2006-03-21 #b6375613# #define WID_APPLY_WORKAROUND_FOR_B6375613 1070 // <-- @@ -295,6 +296,7 @@ #define WID_LAYOUT_SIZE 1104 #define WID_DOC_DIALOG_LIBRARIES 1105 +#define WID_DOC_VBA_DOCOBJ 1106 //AutoText diff --git a/sw/inc/unoobj.hxx b/sw/inc/unoobj.hxx index b7a6c54d2bd2..0447c39920df 100644 --- a/sw/inc/unoobj.hxx +++ b/sw/inc/unoobj.hxx @@ -34,8 +34,8 @@ #include <unoevtlstnr.hxx> #include <unobaseclass.hxx> #include <unocrsr.hxx> -#include <svtools/itemprop.hxx> -#include <svtools/svarray.hxx> +#include <svl/itemprop.hxx> +#include <svl/svarray.hxx> #include <frmfmt.hxx> #include <flyenum.hxx> #include <fldbas.hxx> diff --git a/sw/inc/unoport.hxx b/sw/inc/unoport.hxx index ef20027994cf..acf21fc501f3 100644 --- a/sw/inc/unoport.hxx +++ b/sw/inc/unoport.hxx @@ -48,7 +48,7 @@ #include <com/sun/star/lang/XUnoTunnel.hpp> #include <cppuhelper/implbase8.hxx> #include <cppuhelper/implbase3.hxx> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include <memory> #include <deque> diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx index 56360281915d..60b77d65061d 100644 --- a/sw/inc/unoprnms.hxx +++ b/sw/inc/unoprnms.hxx @@ -808,7 +808,9 @@ enum SwPropNameIds /* 0737 */ UNO_NAME_DESCRIPTION, // <-- /* 0738 */ UNO_NAME_META, // #i91565# -/* 0739 */ SW_PROPNAME_END +/* 0739 */ UNO_NAME_IS_TEMPLATE, +/* 0740 */ UNO_NAME_VBA_DOCOBJ, +/* 0741 */ SW_PROPNAME_END }; diff --git a/sw/inc/unosett.hxx b/sw/inc/unosett.hxx index bc9cd02a3ac7..81f5710b811b 100644 --- a/sw/inc/unosett.hxx +++ b/sw/inc/unosett.hxx @@ -44,7 +44,7 @@ #include <cppuhelper/implbase4.hxx> #include <cppuhelper/implbase5.hxx> #include <tools/string.hxx> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> class SwDoc; class SwFmtCol; diff --git a/sw/inc/unostyle.hxx b/sw/inc/unostyle.hxx index 7c9e00f6671f..fbadd2da1618 100644 --- a/sw/inc/unostyle.hxx +++ b/sw/inc/unostyle.hxx @@ -31,8 +31,8 @@ #define _UNOSTYLE_HXX #include <boost/shared_ptr.hpp> -#include <svtools/style.hxx> -#include <svtools/lstner.hxx> +#include <svl/style.hxx> +#include <svl/lstner.hxx> #include <unocoll.hxx> #include <unomap.hxx> #include <com/sun/star/style/XStyle.hpp> diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx index 0ad2b3c494c8..a8ca07bb0f34 100644 --- a/sw/inc/unotbl.hxx +++ b/sw/inc/unotbl.hxx @@ -214,14 +214,13 @@ typedef cppu::WeakImplHelper3< ::com::sun::star::lang::XServiceInfo, ::com::sun::star::beans::XPropertySet > SwXTextTableCursor_Base; -class SwXTextTableCursor : public SwXTextTableCursor_Base +class SW_DLLPUBLIC SwXTextTableCursor : public SwXTextTableCursor_Base ,public SwClient ,public OTextCursorHelper { SwDepend aCrsrDepend; const SfxItemPropertySet* m_pPropSet; - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } // SwUnoCrsr* GetCrsr() const { return (SwUnoCrsr*)aCrsrDepend.GetRegisteredIn(); } protected: @@ -271,6 +270,7 @@ public: const SwUnoCrsr* GetCrsr() const; SwUnoCrsr* GetCrsr(); + SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } }; /*-----------------11.12.97 09:38------------------- diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index 39438bbc3add..19f0c625e02f 100755 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -31,7 +31,7 @@ #define _UNOTXDOC_HXX #include "swdllapi.h" -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <sfx2/sfxbasemodel.hxx> #include <com/sun/star/beans/PropertyValues.hpp> @@ -73,7 +73,7 @@ #include <com/sun/star/text/XFlatParagraphIteratorProvider.hpp> #include <com/sun/star/document/XDocumentLanguages.hpp> #include <com/sun/star/util/XCloneable.hpp> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include <svx/fmdmod.hxx> #include <svx/UnoForbiddenCharsTable.hxx> #include <cppuhelper/weak.hxx> diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx index 8b2e4d5aa6fa..5631ba3cdd2e 100755 --- a/sw/inc/viewopt.hxx +++ b/sw/inc/viewopt.hxx @@ -174,7 +174,7 @@ protected: BYTE nTblDest; // Ziel fuer Tabellenhintergrund -#ifndef PRODUCT +#ifdef DBG_UTIL // korrespondieren zu den Angaben in ui/config/cfgvw.src BOOL bTest1 :1; // Test-Flag "Layout not loading" BOOL bTest2 :1; // Test-Flag "WYSIWYG++" @@ -422,7 +422,7 @@ public: USHORT GetViewLayoutColumns() const { return mnViewLayoutColumns; } void SetViewLayoutColumns( USHORT nNew ) { mnViewLayoutColumns = nNew; } -#ifndef PRODUCT +#ifdef DBG_UTIL // korrespondieren zu den Angaben in ui/config/cfgvw.src inline BOOL IsTest1() const { return bTest1; } inline void SetTest1( BOOL b ) { bTest1 = b; } diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index 30624f23c2ef..8de10dfce94d 100755 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -32,7 +32,7 @@ #include <com/sun/star/embed/XClassifiedObject.hpp> #include <com/sun/star/embed/XEmbeddedObject.hpp> #include <tools/rtti.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swdllapi.h" #include <swtypes.hxx> #include <ring.hxx> diff --git a/sw/inc/viscrs.hxx b/sw/inc/viscrs.hxx index a240e166d197..f1fd0abb4ae4 100644 --- a/sw/inc/viscrs.hxx +++ b/sw/inc/viscrs.hxx @@ -169,7 +169,7 @@ public: // TRUE: an die Position kann der Cursor gesetzt werden virtual BOOL IsAtValidPos( BOOL bPoint = TRUE ) const; -#ifndef PRODUCT +#ifdef DBG_UTIL // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung // am sichtbaren Cursor virtual BOOL IsSelOvr( int eFlags = @@ -213,7 +213,7 @@ public: // TRUE: an die Position kann der Cursor gesetzt werden virtual BOOL IsAtValidPos( BOOL bPoint = TRUE ) const; -#ifndef PRODUCT +#ifdef DBG_UTIL // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung // am sichtbaren Cursor virtual BOOL IsSelOvr( int eFlags = diff --git a/sw/prj/build.lst b/sw/prj/build.lst index d8cac64ff9e8..6fd49c1d77b0 100644..100755 --- a/sw/prj/build.lst +++ b/sw/prj/build.lst @@ -1,4 +1,4 @@ -sw sw : l10n connectivity OOo:writerperfect svx stoc uui writerfilter NULL +sw sw : filter l10n connectivity OOo:writerperfect vbahelper svx stoc writerfilter NULL sw sw usr1 - all sw_mkout NULL sw sw\inc nmake - all sw_inc NULL sw sw\uiconfig\layout nmake - all sw_layout NULL @@ -33,6 +33,7 @@ sw sw\source\ui\smartmenu nmake sw sw\source\ui\table nmake - all sw_table sw_inc NULL sw sw\source\ui\uiview nmake - all sw_uivw sw_sdi sw_inc NULL sw sw\source\ui\uno nmake - all sw_uiuno sw_sdi sw_inc NULL +sw sw\source\ui\vba nmake - all sw_vba sw_inc NULL sw sw\source\ui\utlui nmake - all sw_utlui sw_inc NULL sw sw\source\ui\web nmake - all sw_web sw_uinc sw_sdi sw_inc NULL sw sw\source\ui\wrtsh nmake - all sw_wrtsh sw_inc NULL @@ -69,7 +70,7 @@ sw sw\source\filter\writer nmake - all sw_wrtr sw_i sw sw\source\filter\ww1 nmake - all sw_ww1 sw_inc NULL sw sw\source\filter\ww8 nmake - all sw_ww8 sw_inc NULL sw sw\source\filter\xml nmake - all sw_xml sw_inc NULL -sw sw\source\ui nmake - all sw_ui sw_app sw_cctrl sw_chrdl sw_conf sw_dbui sw_dchdl sw_dcvw sw_dlg sw_envlp sw_fldui sw_fmtui sw_frmdl sw_globd sw_index sw_ling sw_misc sw_rbbar sw_shell sw_table sw_uiuno sw_uivw sw_utlui sw_web sw_wrtsh sw_smartmenu NULL +sw sw\source\ui nmake - all sw_ui sw_app sw_cctrl sw_chrdl sw_conf sw_dbui sw_dchdl sw_dcvw sw_dlg sw_envlp sw_fldui sw_fmtui sw_frmdl sw_globd sw_index sw_ling sw_misc sw_rbbar sw_shell sw_table sw_uiuno sw_uivw sw_utlui sw_web sw_wrtsh sw_smartmenu sw_vba NULL sw sw\source\core nmake - all sw_core sw_attr sw_bast sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view sw_acc sw_objpos sw_NumberTree sw_tablecore NULL sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_html sw_rtf sw_wrtr sw_ww1 sw_ww8 sw_xml NULL sw sw\util nmake - all sw_util sw_core sw_flt sw_sdi sw_ui NULL diff --git a/sw/prj/d.lst b/sw/prj/d.lst index 09c417cd6f17..958771dad257 100644 --- a/sw/prj/d.lst +++ b/sw/prj/d.lst @@ -63,6 +63,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar ..\%__SRC%\bin\swd?????.dll %_DEST%\bin%_EXT%\swd?????.dll ..\%__SRC%\bin\swui?????.dll %_DEST%\bin%_EXT%\swui?????.dll ..\%__SRC%\bin\msword?????.dll %_DEST%\bin%_EXT%\msword?????.dll +..\%__SRC%\bin\vbaswobj*.dll %_DEST%\bin%_EXT%\vbaswobj*.dll ..\%__SRC%\bin\sw*.res %_DEST%\bin%_EXT%\sw*.res ..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.* diff --git a/sw/qa/complex/checkColor/makefile.mk b/sw/qa/complex/checkColor/makefile.mk index 0541b44e1d44..d9f7060a83fb 100755 --- a/sw/qa/complex/checkColor/makefile.mk +++ b/sw/qa/complex/checkColor/makefile.mk @@ -40,7 +40,7 @@ PACKAGE = complex$/checkColor #----- compile .java files ----------------------------------------- -JARFILES = mysql.jar sandbox.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar +JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar JAVAFILES = CheckChangeColor.java JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) diff --git a/sw/qa/complex/indeterminateState/makefile.mk b/sw/qa/complex/indeterminateState/makefile.mk index 5261e70667be..731822e03278 100755 --- a/sw/qa/complex/indeterminateState/makefile.mk +++ b/sw/qa/complex/indeterminateState/makefile.mk @@ -40,7 +40,7 @@ PACKAGE = complex$/indeterminateState #----- compile .java files ----------------------------------------- -JARFILES = mysql.jar sandbox.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar +JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar JAVAFILES = CheckIndeterminateState.java JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) diff --git a/sw/qa/complex/writer/TextPortionEnumerationTest.java b/sw/qa/complex/writer/TextPortionEnumerationTest.java index aec77b891a0b..a07b3cccadef 100755..100644 --- a/sw/qa/complex/writer/TextPortionEnumerationTest.java +++ b/sw/qa/complex/writer/TextPortionEnumerationTest.java @@ -2099,6 +2099,19 @@ public class TextPortionEnumerationTest extends ComplexTestCase .appendChild( url4.dup().appendChild( new TextNode("7") ) ) .appendChild( new TextNode("89") ); doTest(root, false); + // empty + TreeNode url6 = new HyperlinkNode( mkName("url") ); + inserter.insertRange( new Range(7, 7, url6) ); + root = new TreeNode() + .appendChild( url2.dup().appendChild( new TextNode("12") ) ) + .appendChild( url1.dup().appendChild( new TextNode("3") ) ) + .appendChild( url4.dup().appendChild( new TextNode("4") ) ) + .appendChild( url5.dup().appendChild( new TextNode("56") ) ) + .appendChild( url4.dup().appendChild( new TextNode("7") ) ) +// this one gets eaten, but we still need to test inserting it (#i106930#) +// .appendChild( url6.dup().appendChild( new TextNode("") ) ) + .appendChild( new TextNode("89") ); + doTest(root, false); } public void testRangeHyperlinkRuby() throws Exception diff --git a/sw/qa/complex/writer/makefile.mk b/sw/qa/complex/writer/makefile.mk index de5200d47142..9aa7e95c9af2 100755 --- a/sw/qa/complex/writer/makefile.mk +++ b/sw/qa/complex/writer/makefile.mk @@ -40,7 +40,7 @@ PACKAGE = complex$/writer #----- compile .java files ----------------------------------------- -JARFILES = mysql.jar sandbox.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar +JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar JAVAFILES = CheckIndexedPropertyValues.java CheckNamedPropertyValues.java CheckCrossReferences.java CheckBookmarks.java CheckFlies.java TextPortionEnumerationTest.java JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) diff --git a/sw/qa/core/Test-BigPtrArray.cxx b/sw/qa/core/Test-BigPtrArray.cxx index ad069407b669..cc10355d75e7 100644 --- a/sw/qa/core/Test-BigPtrArray.cxx +++ b/sw/qa/core/Test-BigPtrArray.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" #define TIMELOG -#include <cppunit/simpleheader.hxx> +#include <testshl/simpleheader.hxx> #include <bparr.hxx> #include <string> #include <stdlib.h> diff --git a/sw/qa/core/makefile.mk b/sw/qa/core/makefile.mk index 66308d1eed33..3982536b28e5 100644 --- a/sw/qa/core/makefile.mk +++ b/sw/qa/core/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -42,7 +42,7 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE : settings.mk # BEGIN ---------------------------------------------------------------- -# auto generated Target:testjob by codegen.pl +# auto generated Target:testjob by codegen.pl .IF "$(GUI)" == "WNT" CFLAGS+=/Ob1 @@ -52,17 +52,7 @@ SHL1OBJS=$(SLO)$/Test-BigPtrArray.obj \ $(SLO)$/bparr.obj SHL1TARGET=$(TARGET) -SHL1STDLIBS=$(SALLIB) $(TOOLSLIB) - -.IF "$(GUI)" == "WNT" -SHL1STDLIBS+= $(SOLARLIBDIR)$/cppunit.lib -.ENDIF -.IF "$(GUI)" == "UNX" -SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a -# .IF "$(OS)" == "SOLARIS" -# SHL1STDLIBS += -lrt -laio -# .ENDIF -.ENDIF +SHL1STDLIBS=$(SALLIB) $(TOOLSLIB) $(CPPUNITLIB) $(TESTSHL2LIB) SHL1IMPLIB= i$(SHL1TARGET) diff --git a/sw/sdi/_docsh.sdi b/sw/sdi/_docsh.sdi index 9154e6ce2578..de0be1f9a5c1 100644 --- a/sw/sdi/_docsh.sdi +++ b/sw/sdi/_docsh.sdi @@ -28,7 +28,7 @@ * ************************************************************************/ -interface BaseTextDocument : OfficeDocument +interface BaseTextDocument [ Automation = FALSE; ] diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi index 7623da2c3ff0..5fa9dab613af 100644 --- a/sw/sdi/_viewsh.sdi +++ b/sw/sdi/_viewsh.sdi @@ -29,7 +29,7 @@ ************************************************************************/ -interface BaseTextEditView : View +interface BaseTextEditView [ Automation = FALSE; ] diff --git a/sw/sdi/docsh.sdi b/sw/sdi/docsh.sdi index 2901795a0c9a..d1619df2f1ff 100644 --- a/sw/sdi/docsh.sdi +++ b/sw/sdi/docsh.sdi @@ -68,7 +68,7 @@ interface TextDocument : BaseTextDocument ] } -shell SwDocShell : SfxObjectShell +shell SwDocShell { import TextDocument[Automation]; } diff --git a/sw/sdi/makefile.mk b/sw/sdi/makefile.mk index 25b75feea040..016b0df6cbb8 100644 --- a/sw/sdi/makefile.mk +++ b/sw/sdi/makefile.mk @@ -53,7 +53,12 @@ SDI1EXPORT=swriter # --- Files -------------------------------------------------------- SVSDI1DEPEND= \ - switems.sdi\ + $(SOLARINCXDIR)$/sfx2/sfx.sdi \ + $(SOLARINCXDIR)$/sfx2/sfxitems.sdi \ + $(SOLARINCXDIR)$/svx/svx.sdi \ + $(SOLARINCXDIR)$/svx/svxitems.sdi \ + $(SOLARINCXDIR)$/svx/xoitems.sdi \ + switems.sdi\ swriter.sdi\ _docsh.sdi\ docsh.sdi\ @@ -97,8 +102,7 @@ SVSDI1DEPEND= \ annotsh.sdi\ swslots.hrc \ $(INC)$/globals.hrc \ - $(INC)$/cmdid.h \ - $(SOLARINCXDIR)$/svxslots.ilb + $(INC)$/cmdid.h .ENDIF # --- Targets ------------------------------------------------------- diff --git a/sw/sdi/swslots.sdi b/sw/sdi/swslots.sdi index 0cfa6bd8277e..8eea2b690396 100644 --- a/sw/sdi/swslots.sdi +++ b/sw/sdi/swslots.sdi @@ -28,8 +28,6 @@ * ************************************************************************/ -import "svxslots.ilb" - module "9F76B581-23DD-101C-80B6-000024021835" "A1810F00-23DE-101C-80B6-000024021835" @@ -37,10 +35,15 @@ StarWriter [ HelpText( "StarWriter Application" ) SlotIdFile( "swslots.hrc" ) -TypeLibFile( "swslots.tlb" ) ModulePrefix( "Sw" ) ] { + include "sfx2/sfxitems.sdi" + include "sfx2/sfx.sdi" + include "svx/svxitems.sdi" + include "svx/xoitems.sdi" + include "svx/svx.sdi" + item String TbxDummyItem; /* item String XFillAttrSetItem; diff --git a/sw/sdi/viewsh.sdi b/sw/sdi/viewsh.sdi index 91831e068035..92c23fe82220 100644 --- a/sw/sdi/viewsh.sdi +++ b/sw/sdi/viewsh.sdi @@ -145,7 +145,7 @@ interface TextEditView : BaseTextEditView } //========================================================================= -shell SwView : SfxViewShell +shell SwView { import TextEditView [Automation]; @@ -155,7 +155,7 @@ shell SwView : SfxViewShell // import ReplaceAttributes; } -interface TextPrintPreview : View +interface TextPrintPreview [ uuid = "1622A480-111A-101D-9757-6E74207A7520" ] { SID_BROWSER_MODE @@ -321,7 +321,7 @@ interface TextPrintPreview : View //========================================================================= -shell SwPagePreView : SfxViewShell +shell SwPagePreView { import TextPrintPreview[Automation]; } diff --git a/sw/sdi/wdocsh.sdi b/sw/sdi/wdocsh.sdi index e2efd025c1df..711bb4620f03 100644 --- a/sw/sdi/wdocsh.sdi +++ b/sw/sdi/wdocsh.sdi @@ -47,7 +47,7 @@ interface WebDocument : BaseTextDocument ] } -shell SwWebDocShell : SfxObjectShell +shell SwWebDocShell { import WebDocument[Automation]; } diff --git a/sw/sdi/wviewsh.sdi b/sw/sdi/wviewsh.sdi index 3eff3db1f4a0..31e5d791aeba 100644 --- a/sw/sdi/wviewsh.sdi +++ b/sw/sdi/wviewsh.sdi @@ -63,7 +63,7 @@ interface WebEditView : BaseTextEditView ] } -shell SwWebView : SfxViewShell +shell SwWebView { import WebEditView [Automation]; // import SearchSettings; @@ -73,7 +73,7 @@ shell SwWebView : SfxViewShell } -interface WebSourceView : View +interface WebSourceView [ uuid = "95069CE0-69D8-101D-9757-C667E8298000"] { SID_TABLE_CELL // status() @@ -195,7 +195,7 @@ interface WebSourceView : View ] } -shell SwSrcView : SfxViewShell +shell SwSrcView { import WebSourceView [Automation]; diff --git a/sw/source/core/SwNumberTree/SwNumberTree.cxx b/sw/source/core/SwNumberTree/SwNumberTree.cxx index 0c6106461f49..8f9caf5f022b 100644 --- a/sw/source/core/SwNumberTree/SwNumberTree.cxx +++ b/sw/source/core/SwNumberTree/SwNumberTree.cxx @@ -39,7 +39,7 @@ using std::vector; using std::find; -#ifndef PRODUCT +#ifdef DBG_UTIL unsigned long SwNumberTreeNode::nInstances = 0; #endif @@ -55,7 +55,7 @@ SwNumberTreeNode::SwNumberTreeNode() { mItLastValid = mChildren.end(); -#ifndef PRODUCT +#ifdef DBG_UTIL mnSerial = nInstances; nInstances++; #endif @@ -80,7 +80,7 @@ SwNumberTreeNode::~SwNumberTreeNode() ASSERT( IsPhantom() || mpParent == NULL, ": I'm not supposed to have a parent."); -#ifndef PRODUCT +#ifdef DBG_UTIL nInstances--; #endif @@ -1108,7 +1108,7 @@ SwNumberTreeNode::GetIterator(const SwNumberTreeNode * pChild) const // return aStr; //} -#ifndef PRODUCT +#ifdef DBG_UTIL unsigned long SwNumberTreeNode::GetInstances() { return nInstances; diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index a9ec7b047da8..a0d8053574ae 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -100,12 +100,12 @@ class SwAccessibleContextMap_Impl: public _SwAccessibleContextMap_Impl { public: -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool mbLocked; #endif SwAccessibleContextMap_Impl() -#ifndef PRODUCT +#ifdef DBG_UTIL : mbLocked( sal_False ) #endif {} @@ -227,11 +227,11 @@ class SwAccessibleShapeMap_Impl: public _SwAccessibleShapeMap_Impl public: -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool mbLocked; #endif SwAccessibleShapeMap_Impl( SwAccessibleMap *pMap ) -#ifndef PRODUCT +#ifdef DBG_UTIL : mbLocked( sal_False ) #endif { @@ -1009,7 +1009,7 @@ SwAccessibleMap::~SwAccessibleMap() { vos::OGuard aGuard( maMutex ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !mpFrmMap || mpFrmMap->empty(), "Frame map should be empty after disposing the root frame" ); if( mpFrmMap ) @@ -1062,7 +1062,7 @@ SwAccessibleMap::~SwAccessibleMap() { vos::OGuard aGuard( maEventMutex ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !(mpEvents || mpEventMap), "pending events" ); if( mpEvents ) { @@ -1101,12 +1101,12 @@ uno::Reference< XAccessible > SwAccessibleMap::_GetDocumentView( if( !mpFrmMap ) { mpFrmMap = new SwAccessibleContextMap_Impl; -#ifndef PRODUCT +#ifdef DBG_UTIL mpFrmMap->mbLocked = sal_False; #endif } -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !mpFrmMap->mbLocked, "Map is locked" ); mpFrmMap->mbLocked = sal_True; #endif @@ -1138,7 +1138,7 @@ uno::Reference< XAccessible > SwAccessibleMap::_GetDocumentView( } } -#ifndef PRODUCT +#ifdef DBG_UTIL mpFrmMap->mbLocked = sal_False; #endif } diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx index e4410c26e8bb..5827fb55c29e 100644 --- a/sw/source/core/attr/calbck.cxx +++ b/sw/source/core/attr/calbck.cxx @@ -38,7 +38,7 @@ #include <swcache.hxx> #include <swfntcch.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL #include <unotextmarkup.hxx> #endif @@ -211,7 +211,7 @@ void SwModify::Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue ) LockModify(); -#ifdef PRODUCT +#ifndef DBG_UTIL bInModify = TRUE; #else if( !pOldValue ) @@ -287,7 +287,7 @@ void SwModify::Add(SwClient *pDepend) // nur wenn das hier noch nicht eingetragen ist einfuegen if(pDepend->pRegisteredIn != this ) { -#ifndef PRODUCT +#ifdef DBG_UTIL SwClientIter* pTmp = pClientIters; while( pTmp ) { diff --git a/sw/source/core/attr/hints.cxx b/sw/source/core/attr/hints.cxx index 6fce2c4a59f5..8d71c70cf58f 100644 --- a/sw/source/core/attr/hints.cxx +++ b/sw/source/core/attr/hints.cxx @@ -47,12 +47,6 @@ SwFmtChg::SwFmtChg( SwFmt *pFmt ) {} -SwInsChr::SwInsChr( xub_StrLen nP ) - : SwMsgPoolItem( RES_INS_CHR ), - nPos( nP ) -{} - - SwInsTxt::SwInsTxt( xub_StrLen nP, xub_StrLen nL ) : SwMsgPoolItem( RES_INS_TXT ), @@ -147,7 +141,7 @@ SwAttrSetChg::~SwAttrSetChg() } -#ifndef PRODUCT +#ifdef DBG_UTIL void SwAttrSetChg::ClearItem( USHORT nWhch ) { @@ -183,7 +177,7 @@ SfxPoolItem* SwMsgPoolItem::Clone( SfxItemPool* ) const * Ist keines vorhanden, returnt ein 0-Pointer !!! * Used to be inlined (hintids.hxx) in PRODUCT. ******************************************************************************/ -#ifdef PRODUCT +#ifndef DBG_UTIL const SfxPoolItem* GetDfltAttr( USHORT nWhich ) { return aAttrTab[ nWhich - POOLATTR_BEGIN ]; @@ -227,12 +221,6 @@ SwVirtPageNumInfo::SwVirtPageNumInfo( const SwPageFrm *pPg ) : // aList.Insert(rNd.GetIndex(), &rNd); //} -SwNRuleLowerLevel::SwNRuleLowerLevel( const String& rRuleName, BYTE nSrchLvl ) - : SwMsgPoolItem( RES_GETLOWERNUMLEVEL ), rName( rRuleName ), - nLvl(nSrchLvl) -{ -} - SwFindNearestNode::SwFindNearestNode( const SwNode& rNd ) : SwMsgPoolItem( RES_FINDNEARESTNODE ), pNd( &rNd ), pFnd( 0 ) diff --git a/sw/source/core/attr/swatrset.cxx b/sw/source/core/attr/swatrset.cxx index 4f9d3c3b77cc..9a4b14a53866 100644 --- a/sw/source/core/attr/swatrset.cxx +++ b/sw/source/core/attr/swatrset.cxx @@ -33,7 +33,7 @@ #include <hintids.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/colritem.hxx> #include <svx/brshitem.hxx> #include <svx/bolnitem.hxx> @@ -387,7 +387,7 @@ void SwAttrSet::CopyToModify( SwModify& rMod ) const // <-- } } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !this, "weder Format noch ContentNode - keine Attribute kopiert"); #endif diff --git a/sw/source/core/bastyp/bparr.cxx b/sw/source/core/bastyp/bparr.cxx index fd91c3529f52..9158dffe96dd 100644 --- a/sw/source/core/bastyp/bparr.cxx +++ b/sw/source/core/bastyp/bparr.cxx @@ -41,7 +41,7 @@ // immer ~ 20 * MAXENTRY == 20000 Eintraege const USHORT nBlockGrowSize = 20; -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECKIDX( p, n, i, c ) diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx index aba5dbc74283..7193bb31eb9c 100644 --- a/sw/source/core/bastyp/calc.cxx +++ b/sw/source/core/bastyp/calc.cxx @@ -49,9 +49,9 @@ #include <unotools/charclass.hxx> #include <svx/unolingu.hxx> #include <svx/scripttypeitem.hxx> -#include <svtools/useroptions.hxx> +#include <unotools/useroptions.hxx> #include <tools/datetime.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <swmodule.hxx> #include <doc.hxx> #include <viewsh.hxx> diff --git a/sw/source/core/bastyp/index.cxx b/sw/source/core/bastyp/index.cxx index cecbb7308f49..93939b9b7940 100644 --- a/sw/source/core/bastyp/index.cxx +++ b/sw/source/core/bastyp/index.cxx @@ -39,7 +39,7 @@ #include "index.hxx" #include "error.h" // fuers ASSERT -#ifndef PRODUCT +#ifdef DBG_UTIL int SwIndex::nSerial = 0; #endif @@ -103,7 +103,7 @@ SwIndex::SwIndex( SwIndexReg* pArr, xub_StrLen nIdx ) else ChgValue( *pArray->pFirst, nIdx ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif IDX_CHK_ARRAY @@ -115,7 +115,7 @@ SwIndex::SwIndex( const SwIndex& rIdx, short nIdx ) { ChgValue( rIdx, rIdx.nIndex + nIdx ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif IDX_CHK_ARRAY @@ -126,7 +126,7 @@ SwIndex::SwIndex( const SwIndex& rIdx ) : nIndex( rIdx.nIndex ), pArray( rIdx.pArray ), pNext( 0 ), pPrev( 0 ) { ChgValue( rIdx, rIdx.nIndex ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif IDX_CHK_ARRAY @@ -371,7 +371,7 @@ void SwIndexReg::Update( SwIndex const & rIdx, const xub_StrLen nDiff, ARR_CHK_ARRAY } -#ifndef PRODUCT +#ifdef DBG_UTIL #ifndef CFRONT /************************************************************************* diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx index 9f275aa09ed3..9e2b5efced77 100644 --- a/sw/source/core/bastyp/init.cxx +++ b/sw/source/core/bastyp/init.cxx @@ -34,7 +34,7 @@ #include <tools/globname.hxx> #include <vcl/mapmod.hxx> #include <svx/xmlcnitm.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <svx/pbinitem.hxx> #include <svx/keepitem.hxx> #include <svx/nlbkitem.hxx> @@ -83,7 +83,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <comphelper/processfactory.hxx> #include <unotools/collatorwrapper.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include <com/sun/star/i18n/CollatorOptions.hpp> #include <unotools/transliterationwrapper.hxx> #include <svx/acorrcfg.hxx> @@ -780,7 +780,7 @@ void _FinitCore() delete SwEditShell::pAutoFmtFlags; -#ifndef PRODUCT +#ifdef DBG_UTIL //Defaultattribut freigeben lassen um asserts zu vermeiden. if ( aAttrTab[0]->GetRefCount() ) SfxItemPool::ReleaseDefaults( aAttrTab, POOLATTR_END-POOLATTR_BEGIN, FALSE); diff --git a/sw/source/core/bastyp/swcache.cxx b/sw/source/core/bastyp/swcache.cxx index 0e9ed9fd3720..ea2513d6237e 100644 --- a/sw/source/core/bastyp/swcache.cxx +++ b/sw/source/core/bastyp/swcache.cxx @@ -38,7 +38,7 @@ SV_IMPL_PTRARR(SwCacheObjArr,SwCacheObj*); -#ifdef PRODUCT +#ifndef DBG_UTIL #define INCREMENT( nVar ) #else #define INCREMENT( nVar ) ++nVar @@ -53,7 +53,7 @@ SV_IMPL_PTRARR(SwCacheObjArr,SwCacheObj*); |* |*************************************************************************/ -#ifndef PRODUCT +#ifdef DBG_UTIL void SwCache::Check() { @@ -90,7 +90,7 @@ void SwCache::Check() } #endif -#if !defined(PRODUCT) && defined(MADEBUG) +#if defined(DBG_UTIL) && defined(MADEBUG) #define CHECK Check(); #else #define CHECK @@ -107,7 +107,7 @@ void SwCache::Check() SwCache::SwCache( const USHORT nInitSize, const USHORT nGrowSize -#ifndef PRODUCT +#ifdef DBG_UTIL , const ByteString &rNm #endif ) : @@ -118,7 +118,7 @@ SwCache::SwCache( const USHORT nInitSize, const USHORT nGrowSize pLast( 0 ), nMax( nInitSize ), nCurMax( nInitSize ) -#ifndef PRODUCT +#ifdef DBG_UTIL , aName( rNm ), nAppend( 0 ), nInsertFree( 0 ), @@ -137,7 +137,7 @@ SwCache::SwCache( const USHORT nInitSize, const USHORT nGrowSize { } -#ifndef PRODUCT +#ifdef DBG_UTIL SwCache::~SwCache() @@ -197,7 +197,7 @@ void SwCache::Flush( const BYTE ) SwCacheObj *pTmp; while ( pObj ) { -#ifndef PRODUCT +#ifdef DBG_UTIL if ( pObj->IsLocked() ) { ASSERT( TRUE, "Flushing locked objects." ); @@ -322,7 +322,7 @@ SwCacheObj *SwCache::Get( const void *pOwner, const USHORT nIndex, ToTop( pRet ); } -#ifndef PRODUCT +#ifdef DBG_UTIL if ( pRet ) ++nGetSuccess; else @@ -346,7 +346,7 @@ SwCacheObj *SwCache::Get( const void *pOwner, const BOOL bToTop ) if ( bToTop && pRet && pRet != pFirst ) ToTop( pRet ); -#ifndef PRODUCT +#ifdef DBG_UTIL if ( pRet ) ++nGetSuccess; else @@ -588,7 +588,7 @@ SwCacheObj::~SwCacheObj() |* |*************************************************************************/ -#ifndef PRODUCT +#ifdef DBG_UTIL diff --git a/sw/source/core/bastyp/swrect.cxx b/sw/source/core/bastyp/swrect.cxx index 21fd4c7a2970..e156c71aa5fb 100644 --- a/sw/source/core/bastyp/swrect.cxx +++ b/sw/source/core/bastyp/swrect.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#ifndef PRODUCT +#ifdef DBG_UTIL #ifndef _STREAM_HXX //autogen #include <tools/stream.hxx> #endif @@ -53,13 +53,12 @@ SwRect::SwRect( const Rectangle &rRect ) : - nX( rRect.Left() ), - nY( rRect.Top() ) + m_Point( rRect.Left(), rRect.Top() ) { - nWidth = rRect.Right() == RECT_EMPTY ? 0 : - rRect.Right() - rRect.Left() +1; - nHeight = rRect.Bottom() == RECT_EMPTY ? 0 : - rRect.Bottom() - rRect.Top() + 1; + m_Size.setWidth(rRect.Right() == RECT_EMPTY ? 0 : + rRect.Right() - rRect.Left() +1); + m_Size.setHeight(rRect.Bottom() == RECT_EMPTY ? 0 : + rRect.Bottom() - rRect.Top() + 1); } /************************************************************************* @@ -139,7 +138,7 @@ SwRect& SwRect::Intersection( const SwRect& rRect ) } else //Def.: Bei einer leeren Intersection wird nur die SSize genullt. - nHeight = nWidth = 0; + SSize(0, 0); return *this; } @@ -239,78 +238,90 @@ BOOL SwRect::IsOver( const SwRect& rRect ) const void SwRect::Justify() { - if ( nHeight < 0 ) + if ( m_Size.getHeight() < 0 ) { - nY = nY + nHeight + 1; - nHeight = -nHeight; + m_Point.Y() += m_Size.getHeight() + 1; + m_Size.setHeight(-m_Size.getHeight()); } - if ( nWidth < 0 ) + if ( m_Size.getWidth() < 0 ) { - nX = nX + nWidth + 1; - nWidth = -nWidth; + m_Point.Y() += m_Size.getWidth() + 1; + m_Size.setWidth(-m_Size.getWidth()); } } // Similiar to the inline methods, but we need the function pointers -void SwRect::_Width( const long nNew ) { nWidth = nNew; } -void SwRect::_Height( const long nNew ) { nHeight = nNew; } -void SwRect::_Left( const long nLeft ){ nWidth += nX - nLeft; nX = nLeft; } -void SwRect::_Right( const long nRight ){ nWidth = nRight - nX; } -void SwRect::_Top( const long nTop ){ nHeight += nY - nTop; nY = nTop; } -void SwRect::_Bottom( const long nBottom ){ nHeight = nBottom - nY; } - -long SwRect::_Width() const{ return nWidth; } -long SwRect::_Height() const{ return nHeight; } -long SwRect::_Left() const{ return nX; } -long SwRect::_Right() const{ return nX + nWidth; } -long SwRect::_Top() const{ return nY; } -long SwRect::_Bottom() const{ return nY + nHeight; } - -void SwRect::AddWidth( const long nAdd ) { nWidth += nAdd; } -void SwRect::AddHeight( const long nAdd ) { nHeight += nAdd; } -void SwRect::SubLeft( const long nSub ){ nWidth += nSub; nX -= nSub; } -void SwRect::AddRight( const long nAdd ){ nWidth += nAdd; } -void SwRect::SubTop( const long nSub ){ nHeight += nSub; nY -= nSub; } -void SwRect::AddBottom( const long nAdd ){ nHeight += nAdd; } -void SwRect::SetPosX( const long nNew ){ nX = nNew; } -void SwRect::SetPosY( const long nNew ){ nY = nNew; } +void SwRect::_Width( const long nNew ) { m_Size.setWidth(nNew); } +void SwRect::_Height( const long nNew ) { m_Size.setHeight(nNew); } +void SwRect::_Left( const long nLeft ){ m_Size.Width() += m_Point.getX() - nLeft; m_Point.setX(nLeft); } +void SwRect::_Right( const long nRight ){ m_Size.setWidth(nRight - m_Point.getX()); } +void SwRect::_Top( const long nTop ){ m_Size.Height() += m_Point.getY() - nTop; m_Point.setY(nTop); } +void SwRect::_Bottom( const long nBottom ){ m_Size.setHeight(nBottom - m_Point.getY()); } + +long SwRect::_Width() const{ return m_Size.getWidth(); } +long SwRect::_Height() const{ return m_Size.getHeight(); } +long SwRect::_Left() const{ return m_Point.getX(); } +long SwRect::_Right() const{ return m_Point.getX() + m_Size.getWidth(); } +long SwRect::_Top() const{ return m_Point.getY(); } +long SwRect::_Bottom() const{ return m_Point.getY() + m_Size.getHeight(); } + +void SwRect::AddWidth( const long nAdd ) { m_Size.Width() += nAdd; } +void SwRect::AddHeight( const long nAdd ) { m_Size.Height() += nAdd; } +void SwRect::SubLeft( const long nSub ){ m_Size.Width() += nSub; m_Point.X() -= nSub; } +void SwRect::AddRight( const long nAdd ){ m_Size.Width() += nAdd; } +void SwRect::SubTop( const long nSub ){ m_Size.Height() += nSub; m_Point.Y() -= nSub; } +void SwRect::AddBottom( const long nAdd ){ m_Size.Height() += nAdd; } +void SwRect::SetPosX( const long nNew ){ m_Point.setX(nNew); } +void SwRect::SetPosY( const long nNew ){ m_Point.setY(nNew); } const Size SwRect::_Size() const { return SSize(); } -const Size SwRect::SwappedSize() const { return Size( nHeight, nWidth ); } +const Size SwRect::SwappedSize() const { return Size( m_Size.getHeight(), m_Size.getWidth() ); } const Point SwRect::TopLeft() const { return Pos(); } -const Point SwRect::TopRight() const { return Point( nX + nWidth, nY ); } -const Point SwRect::BottomLeft() const { return Point( nX, nY + nHeight ); } +const Point SwRect::TopRight() const { return Point( m_Point.getX() + m_Size.getWidth(), m_Point.getY() ); } +const Point SwRect::BottomLeft() const { return Point( m_Point.getX(), m_Point.getY() + m_Size.getHeight() ); } const Point SwRect::BottomRight() const - { return Point( nX + nWidth, nY + nHeight ); } -long SwRect::GetLeftDistance( long nLimit ) const { return nX - nLimit; } -long SwRect::GetBottomDistance( long nLim ) const { return nLim - nY - nHeight;} -long SwRect::GetTopDistance( long nLimit ) const { return nY - nLimit; } -long SwRect::GetRightDistance( long nLim ) const { return nLim - nX - nWidth; } + { return Point( m_Point.getX() + m_Size.getWidth(), m_Point.getY() + m_Size.getHeight() ); } +long SwRect::GetLeftDistance( long nLimit ) const { return m_Point.getX() - nLimit; } +long SwRect::GetBottomDistance( long nLim ) const { return nLim - m_Point.getY() - m_Size.getHeight();} +long SwRect::GetTopDistance( long nLimit ) const { return m_Point.getY() - nLimit; } +long SwRect::GetRightDistance( long nLim ) const { return nLim - m_Point.getX() - m_Size.getWidth(); } BOOL SwRect::OverStepLeft( long nLimit ) const - { return nLimit > nX && nX + nWidth > nLimit; } + { return nLimit > m_Point.getX() && m_Point.getX() + m_Size.getWidth() > nLimit; } BOOL SwRect::OverStepBottom( long nLimit ) const - { return nLimit > nY && nY + nHeight > nLimit; } + { return nLimit > m_Point.getY() && m_Point.getY() + m_Size.getHeight() > nLimit; } BOOL SwRect::OverStepTop( long nLimit ) const - { return nLimit > nY && nY + nHeight > nLimit; } + { return nLimit > m_Point.getY() && m_Point.getY() + m_Size.getHeight() > nLimit; } BOOL SwRect::OverStepRight( long nLimit ) const - { return nLimit > nX && nX + nWidth > nLimit; } + { return nLimit > m_Point.getX() && m_Point.getX() + m_Size.getWidth() > nLimit; } void SwRect::SetLeftAndWidth( long nLeft, long nNew ) - { nX = nLeft; nWidth = nNew; } +{ + m_Point.setX(nLeft); + m_Size.setWidth(nNew); +} void SwRect::SetTopAndHeight( long nTop, long nNew ) - { nY = nTop; nHeight = nNew; } +{ + m_Point.setY(nTop); + m_Size.setHeight(nNew); +} void SwRect::SetRightAndWidth( long nRight, long nNew ) - { nX = nRight - nNew; nWidth = nNew; } +{ + m_Point.setX(nRight - nNew); + m_Size.setWidth(nNew); +} void SwRect::SetBottomAndHeight( long nBottom, long nNew ) - { nY = nBottom - nNew; nHeight = nNew; } +{ + m_Point.setY(nBottom - nNew); + m_Size.setHeight(nNew); +} void SwRect::SetUpperLeftCorner( const Point& rNew ) - { nX = rNew.nA; nY = rNew.nB; } + { m_Point = rNew; } void SwRect::SetUpperRightCorner( const Point& rNew ) - { nX = rNew.nA - nWidth; nY = rNew.nB; } + { m_Point = Point(rNew.nA - m_Size.getWidth(), rNew.nB); } void SwRect::SetLowerLeftCorner( const Point& rNew ) - { nX = rNew.nA; nY = rNew.nB - nHeight; } + { m_Point = Point(rNew.nA, rNew.nB - m_Size.getHeight()); } -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * operator<<( ostream&, SwRect&) *************************************************************************/ diff --git a/sw/source/core/bastyp/swregion.cxx b/sw/source/core/bastyp/swregion.cxx index ba8ee121a362..2bab385f0b5a 100644 --- a/sw/source/core/bastyp/swregion.cxx +++ b/sw/source/core/bastyp/swregion.cxx @@ -117,7 +117,7 @@ void SwRegionRects::operator-=( const SwRect &rRect ) if ( 0 < (nTmp = aInter.Top() - aTmp.Top()) ) { const long nOldVal = aTmp.Height(); - aTmp.SSize().Height() = nTmp; + aTmp.Height(nTmp); InsertRect( aTmp, i, bDel ); aTmp.Height( nOldVal ); } diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 8a82e66c4c7b..3637cc19354d 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -332,7 +332,7 @@ if( GetWin() ) } -#if !defined( PRODUCT ) +#if defined(DBG_UTIL) void SwCrsrShell::SttCrsrMove() { @@ -1459,7 +1459,7 @@ void SwCrsrShell::UpdateCrsr( USHORT eFlags, BOOL bIdleEnd ) Point aCentrPt( aCharRect.Center() ); aTmpState.bSetInReadOnly = IsReadOnlyAvailable(); pTblFrm->GetCrsrOfst( pTblCrsr->GetPoint(), aCentrPt, &aTmpState ); -#ifdef PRODUCT +#ifndef DBG_UTIL pTblFrm->GetCharRect( aCharRect, *pTblCrsr->GetPoint() ); #else if ( !pTblFrm->GetCharRect( aCharRect, *pTblCrsr->GetPoint() ) ) @@ -2014,7 +2014,7 @@ void SwCrsrShell::Combine() SwCrsrSaveState aSaveState( *pCurCrsr ); if( pCrsrStk->HasMark() ) // nur wenn GetMark gesetzt wurde { -#ifdef PRODUCT +#ifndef DBG_UTIL CheckNodesRange( pCrsrStk->GetMark()->nNode, pCurCrsr->GetPoint()->nNode, TRUE ); #else if( !CheckNodesRange( pCrsrStk->GetMark()->nNode, pCurCrsr->GetPoint()->nNode, TRUE )) diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index 23a9bf139ef1..b315e31bae48 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -33,7 +33,7 @@ #include <hintids.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/lrspitem.hxx> #include <svx/adjitem.hxx> #include <svx/brkitem.hxx> @@ -1337,7 +1337,7 @@ BOOL SwCrsrShell::GetContentAtPos( const Point& rPt, if( !bRet && ( SwContentAtPos::SW_TABLEBOXFML & rCntntAtPos.eCntntAtPos -#ifndef PRODUCT +#ifdef DBG_UTIL || SwContentAtPos::SW_TABLEBOXVALUE & rCntntAtPos.eCntntAtPos #endif )) @@ -1349,7 +1349,7 @@ BOOL SwCrsrShell::GetContentAtPos( const Point& rPt, if( pSttNd && 0 != ( pTblNd = pTxtNd->FindTableNode()) && 0 != ( pBox = pTblNd->GetTable().GetTblBox( pSttNd->GetIndex() )) && -#ifndef PRODUCT +#ifdef DBG_UTIL ( SFX_ITEM_SET == pBox->GetFrmFmt()->GetItemState( RES_BOXATR_FORMULA, FALSE, &pItem ) || SFX_ITEM_SET == pBox->GetFrmFmt()->GetItemState( @@ -1383,7 +1383,7 @@ BOOL SwCrsrShell::GetContentAtPos( const Point& rPt, // erzeuge aus der internen (fuer CORE) // die externe (fuer UI) Formel rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_TABLEBOXFML; -#ifndef PRODUCT +#ifdef DBG_UTIL if( RES_BOXATR_VALUE == pItem->Which() ) rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_TABLEBOXVALUE; else @@ -1417,7 +1417,7 @@ BOOL SwCrsrShell::GetContentAtPos( const Point& rPt, } } -#ifndef PRODUCT +#ifdef DBG_UTIL if( !bRet && SwContentAtPos::SW_CURR_ATTRS & rCntntAtPos.eCntntAtPos ) { xub_StrLen n = aPos.nContent.GetIndex(); diff --git a/sw/source/core/crsr/findattr.cxx b/sw/source/core/crsr/findattr.cxx index 5697912b21fe..28a79a3471de 100644 --- a/sw/source/core/crsr/findattr.cxx +++ b/sw/source/core/crsr/findattr.cxx @@ -38,8 +38,8 @@ #include <i18npool/mslangid.hxx> #include <hintids.hxx> #include <vcl/svapp.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/whiter.hxx> +#include <svl/itemiter.hxx> +#include <svl/whiter.hxx> #include <svx/brkitem.hxx> #include <svx/colritem.hxx> #include <svx/fontitem.hxx> diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index e5e87a33bc5d..996f377fda43 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -37,7 +37,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <vcl/svapp.hxx> #include <txatritr.hxx> #include <fldbas.hxx> diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx index 4b2f9332fb78..36bff61e57bf 100644 --- a/sw/source/core/crsr/pam.cxx +++ b/sw/source/core/crsr/pam.cxx @@ -550,7 +550,7 @@ void SwPaM::SetMark() (*m_pMark) = (*m_pPoint); } -#ifndef PRODUCT +#ifdef DBG_UTIL void SwPaM::Exchange() { diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx index ea5853916b8c..45e72963eb0f 100644 --- a/sw/source/core/crsr/swcrsr.cxx +++ b/sw/source/core/crsr/swcrsr.cxx @@ -39,7 +39,7 @@ #include <com/sun/star/i18n/CharType.hdl> #include <unotools/charclass.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <swmodule.hxx> #include <fmtcntnt.hxx> #include <swtblfmt.hxx> diff --git a/sw/source/core/crsr/trvltbl.cxx b/sw/source/core/crsr/trvltbl.cxx index 4546a108b2ec..108da63d9b17 100644 --- a/sw/source/core/crsr/trvltbl.cxx +++ b/sw/source/core/crsr/trvltbl.cxx @@ -307,7 +307,7 @@ BOOL SwCrsrShell::SelTblBox() const SwStartNode* pStartNode = pCurCrsr->GetPoint()->nNode.GetNode().FindTableBoxStartNode(); -#ifndef PRODUCT +#ifdef DBG_UTIL // the old code checks whether we're in a table by asking the // frame. This should yield the same result as searching for the // table box start node, right? diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx index a6019057df5e..8a9dc3c0a458 100644 --- a/sw/source/core/crsr/viscrs.cxx +++ b/sw/source/core/crsr/viscrs.cxx @@ -34,7 +34,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <vcl/dialog.hxx> @@ -862,7 +862,7 @@ BOOL SwShellCrsr::UpDown( BOOL bUp, USHORT nCnt ) &GetPtPos(), GetShell()->GetUpDownX() ); } -#ifndef PRODUCT +#ifdef DBG_UTIL // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung // am sichtbaren Cursor @@ -1001,7 +1001,7 @@ BOOL SwShellTableCrsr::IsInside( const Point& rPt ) const return FALSE; } -#ifndef PRODUCT +#ifdef DBG_UTIL // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung // am sichtbaren Cursor diff --git a/sw/source/core/doc/SwStyleNameMapper.cxx b/sw/source/core/doc/SwStyleNameMapper.cxx index 6084b53abc5b..2cfb515bff59 100644 --- a/sw/source/core/doc/SwStyleNameMapper.cxx +++ b/sw/source/core/doc/SwStyleNameMapper.cxx @@ -34,7 +34,7 @@ #include <SwStyleNameMapper.hxx> #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <tools/resmgr.hxx> #include <poolfmt.hxx> #ifndef _RDIC_HRC diff --git a/sw/source/core/doc/dbgoutsw.cxx b/sw/source/core/doc/dbgoutsw.cxx index 9fda3564a400..d35c340975cb 100644 --- a/sw/source/core/doc/dbgoutsw.cxx +++ b/sw/source/core/doc/dbgoutsw.cxx @@ -33,8 +33,8 @@ #ifdef DEBUG #include <tools/string.hxx> -#include <svtools/poolitem.hxx> -#include <svtools/itemiter.hxx> +#include <svl/poolitem.hxx> +#include <svl/itemiter.hxx> #include <string> #include <map> #include <node.hxx> @@ -551,7 +551,7 @@ String lcl_dbg_out(const SwNode & rNode) aTmpStr += String::CreateFromInt32(rNode.GetIndex()); aTmpStr += String("\"", RTL_TEXTENCODING_ASCII_US); -#ifndef PRODUCT +#ifdef DBG_UTIL aTmpStr += String(" serial=\"", RTL_TEXTENCODING_ASCII_US); aTmpStr += String::CreateFromInt32(rNode.GetSerial()); aTmpStr += String("\"", RTL_TEXTENCODING_ASCII_US); diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 89323951c7e2..868c636987d9 100755 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -49,8 +49,8 @@ #include <tools/multisel.hxx> #include <rtl/ustring.hxx> #include <vcl/virdev.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/syslocale.hxx> +#include <svl/itemiter.hxx> +#include <unotools/syslocale.hxx> #include <sfx2/printer.hxx> #include <svx/keepitem.hxx> #include <svx/cscoitem.hxx> @@ -476,6 +476,9 @@ void SwDoc::setPrinter(/*[in]*/ SfxPrinter *pP,/*[in]*/ bool bDeleteOld,/*[in]*/ if ( bDeleteOld ) delete pPrt; pPrt = pP; + + if ( pDrawModel && !get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) ) + pDrawModel->SetRefDevice( pPrt ); } if ( bCallPrtDataChanged && @@ -504,6 +507,9 @@ void SwDoc::setVirtualDevice(/*[in]*/ VirtualDevice* pVd,/*[in]*/ bool bDeleteOl if ( bDeleteOld ) delete pVirDev; pVirDev = pVd; + + if ( pDrawModel && get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) ) + pDrawModel->SetRefDevice( pVirDev ); } } @@ -539,6 +545,9 @@ void SwDoc::setReferenceDeviceType(/*[in]*/ bool bNewVirtual,/*[in]*/ bool bNewH pMyVirDev->SetReferenceDevice( VirtualDevice::REFDEV_MODE06 ); else pMyVirDev->SetReferenceDevice( VirtualDevice::REFDEV_MODE_MSO1 ); + + if( pDrawModel ) + pDrawModel->SetRefDevice( pMyVirDev ); } else { @@ -548,8 +557,10 @@ void SwDoc::setReferenceDeviceType(/*[in]*/ bool bNewVirtual,/*[in]*/ bool bNewH // triggers this funny situation: // getReferenceDevice()->getPrinter()->CreatePrinter_() // ->setPrinter()-> PrtDataChanged() - getPrinter( true ); + SfxPrinter* pPrinter = getPrinter( true ); // <-- + if( pDrawModel ) + pDrawModel->SetRefDevice( pPrinter ); } set(IDocumentSettingAccess::USE_VIRTUAL_DEVICE, bNewVirtual ); @@ -1696,6 +1707,24 @@ void SwDoc::UpdateDocStat( SwDocStat& rStat ) } } + // #i93174#: notes contain paragraphs that are not nodes + { + SwFieldType * const pPostits( GetSysFldType(RES_POSTITFLD) ); + SwClientIter aIter(*pPostits); + SwFmtFld const * pFmtFld = + static_cast<SwFmtFld const*>(aIter.First( TYPE(SwFmtFld) )); + while (pFmtFld) + { + if (pFmtFld->IsFldInDoc()) + { + SwPostItField const * const pField( + static_cast<SwPostItField const*>(pFmtFld->GetFld())); + rStat.nAllPara += pField->GetNumberOfParagraphs(); + } + pFmtFld = static_cast<SwFmtFld const*>(aIter.Next()); + } + } + rStat.nPage = GetRootFrm() ? GetRootFrm()->GetPageNum() : 0; rStat.bModified = FALSE; SetDocStat( rStat ); @@ -1721,12 +1750,21 @@ void SwDoc::UpdateDocStat( SwDocStat& rStat ) aStat[n++].Value <<= (sal_Int32)rStat.nChar; // For e.g. autotext documents there is no pSwgInfo (#i79945) - if (GetDocShell()) { - uno::Reference<document::XDocumentPropertiesSupplier> xDPS( - GetDocShell()->GetModel(), uno::UNO_QUERY_THROW); - uno::Reference<document::XDocumentProperties> xDocProps( + SfxObjectShell * const pObjShell( GetDocShell() ); + if (pObjShell) + { + const uno::Reference<document::XDocumentPropertiesSupplier> xDPS( + pObjShell->GetModel(), uno::UNO_QUERY_THROW); + const uno::Reference<document::XDocumentProperties> xDocProps( xDPS->getDocumentProperties()); + // #i96786#: do not set modified flag when updating statistics + const bool bDocWasModified( IsModified() ); + const ModifyBlocker_Impl b(pObjShell); xDocProps->setDocumentStatistics(aStat); + if (!bDocWasModified) + { + ResetModified(); + } } // event. Stat. Felder Updaten diff --git a/sw/source/core/doc/doccomp.cxx b/sw/source/core/doc/doccomp.cxx index 68c84dd3b644..047b5b2dc582 100644 --- a/sw/source/core/doc/doccomp.cxx +++ b/sw/source/core/doc/doccomp.cxx @@ -428,7 +428,7 @@ Compare::Compare( ULONG nDiff, CompareData& rData1, CompareData& rData2 ) SetDiscard( rData2, pDiscard2, pCount1 ); // die Arrays koennen wir wieder vergessen - delete pCount1; delete pCount2; + delete [] pCount1; delete [] pCount2; CheckDiscard( rData1.GetLineCount(), pDiscard1 ); CheckDiscard( rData2.GetLineCount(), pDiscard2 ); @@ -437,7 +437,7 @@ Compare::Compare( ULONG nDiff, CompareData& rData1, CompareData& rData2 ) pMD2 = new MovedData( rData2, pDiscard2 ); // die Arrays koennen wir wieder vergessen - delete pDiscard1; delete pDiscard2; + delete [] pDiscard1; delete [] pDiscard2; } { diff --git a/sw/source/core/doc/docdde.cxx b/sw/source/core/doc/docdde.cxx index 36c23b14b8a0..468ab59146de 100644 --- a/sw/source/core/doc/docdde.cxx +++ b/sw/source/core/doc/docdde.cxx @@ -41,7 +41,7 @@ #include <tools/urlobj.hxx> #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/linkmgr.hxx> // LinkManager #include <unotools/charclass.hxx> #include <fmtcntnt.hxx> diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx index 69c3c0e2809c..70b39376b857 100644 --- a/sw/source/core/doc/docdesc.cxx +++ b/sw/source/core/doc/docdesc.cxx @@ -71,7 +71,7 @@ #include <fldbas.hxx> #include <swwait.hxx> #include <GetMetricVal.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #ifndef _STATSTR_HRC #include <statstr.hrc> #endif diff --git a/sw/source/core/doc/docdraw.cxx b/sw/source/core/doc/docdraw.cxx index 95e18a7e78af..364c664d0bea 100644 --- a/sw/source/core/doc/docdraw.cxx +++ b/sw/source/core/doc/docdraw.cxx @@ -258,7 +258,7 @@ SwDrawContact* SwDoc::GroupSelection( SdrView& rDrawView ) SwDrawContact *pContact = (SwDrawContact*)GetUserCall(pObj); // --> OD 2005-08-16 #i53320# -#ifndef PRODUCT +#ifdef DBG_UTIL SwAnchoredDrawObject* pAnchoredDrawObj = static_cast<SwAnchoredDrawObject*>(pContact->GetAnchoredObj( pObj )); ASSERT( bGroupMembersNotPositioned == pAnchoredDrawObj->NotYetPositioned(), diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx index fba401974a5b..551fcc41c2ee 100644 --- a/sw/source/core/doc/docfld.cxx +++ b/sw/source/core/doc/docfld.cxx @@ -39,7 +39,7 @@ #include <tools/datetime.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_ULONGS -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #endif #ifndef _APP_HXX //autogen #include <vcl/svapp.hxx> @@ -601,7 +601,7 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) { if( aPara.CalcWithStackOverflow() ) pFld->CalcField( aPara ); -#ifndef PRODUCT +#ifdef DBG_UTIL else { // mind. ein ASSERT @@ -669,7 +669,7 @@ void SwDoc::UpdateTblFlds( SfxPoolItem* pHt ) { if( aPara.CalcWithStackOverflow() ) pFml->Calc( aPara, nValue ); -#ifndef PRODUCT +#ifdef DBG_UTIL else { // mind. ein ASSERT @@ -907,7 +907,7 @@ void _SetGetExpFld::SetBodyPos( const SwCntntFrm& rFrm ) SwNodeIndex aIdx( *rFrm.GetNode() ); SwDoc& rDoc = *aIdx.GetNodes().GetDoc(); SwPosition aPos( aIdx ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( ::GetBodyTxtNode( rDoc, aPos, rFrm ), "wo steht das Feld" ); #else ::GetBodyTxtNode( rDoc, aPos, rFrm ); @@ -2551,7 +2551,7 @@ void SwDocUpdtFld::GetBodyNode( const SwTxtFld& rTFld, USHORT nFldWhich ) { // einen Index fuers bestimmen vom TextNode anlegen SwPosition aPos( rDoc.GetNodes().GetEndOfPostIts() ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( GetBodyTxtNode( rDoc, aPos, *pFrm ), "wo steht das Feld" ); #else GetBodyTxtNode( rDoc, aPos, *pFrm ); @@ -2599,7 +2599,7 @@ void SwDocUpdtFld::GetBodyNode( const SwSectionNode& rSectNd ) if( !pFrm ) break; -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( GetBodyTxtNode( rDoc, aPos, *pFrm ), "wo steht das Feld" ); #else GetBodyTxtNode( rDoc, aPos, *pFrm ); diff --git a/sw/source/core/doc/docfly.cxx b/sw/source/core/doc/docfly.cxx index 507e63ba7a47..9935842e6800 100644 --- a/sw/source/core/doc/docfly.cxx +++ b/sw/source/core/doc/docfly.cxx @@ -33,7 +33,7 @@ #include <hintids.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/svdobj.hxx> #include <svx/svdpage.hxx> #include <svx/svdmodel.hxx> @@ -677,7 +677,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList, // Continue with next selected object and assert, if this isn't excepted. if ( !pContact ) { -#ifndef PRODUCT +#ifdef DBG_UTIL bool bNoUserCallExcepted = pObj->ISA(SwDrawVirtObj) && !static_cast<SwDrawVirtObj*>(pObj)->IsConnected(); diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx index c054b7ee5579..312f8fb7b00f 100644 --- a/sw/source/core/doc/docfmt.cxx +++ b/sw/source/core/doc/docfmt.cxx @@ -37,20 +37,20 @@ #define _SVSTDARR_USHORTS #include <hintids.hxx> #include <rtl/logfile.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <sfx2/app.hxx> -#include <svtools/misccfg.hxx> #include <svx/tstpitem.hxx> #include <svx/eeitem.hxx> #include <svx/langitem.hxx> #include <svx/lrspitem.hxx> #include <svx/brkitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #ifndef _ZFORLIST_HXX //autogen #define _ZFORLIST_DECLARE_TABLE -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #endif #include <comphelper/processfactory.hxx> +#include <unotools/misccfg.hxx> #include <com/sun/star/i18n/WordType.hdl> #include <fmtpdsc.hxx> #include <fmthdft.hxx> @@ -625,7 +625,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet, (RES_TXTATR_CHARFMT == nWhich) || (RES_TXTATR_INETFMT == nWhich) || (RES_TXTATR_AUTOFMT == nWhich) || - isUNKNOWNATR(nWhich) ) + (RES_TXTATR_UNKNOWN_CONTAINER == nWhich) ) { pCharSet = &rChgSet; bCharAttr = true; @@ -636,7 +636,8 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet, || isPARATR_LIST(nWhich) // <-- || isFRMATR(nWhich) - || isGRFATR(nWhich) ) + || isGRFATR(nWhich) + || isUNKNOWNATR(nWhich) ) { pOtherSet = &rChgSet; bOtherAttr = true; @@ -653,7 +654,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet, RES_TXTATR_AUTOFMT, RES_TXTATR_AUTOFMT, RES_TXTATR_INETFMT, RES_TXTATR_INETFMT, RES_TXTATR_CHARFMT, RES_TXTATR_CHARFMT, - RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1, + RES_TXTATR_UNKNOWN_CONTAINER, RES_TXTATR_UNKNOWN_CONTAINER, 0 ); SfxItemSet* pTmpOtherItemSet = new SfxItemSet( pDoc->GetAttrPool(), @@ -663,6 +664,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet, // <-- RES_FRMATR_BEGIN, RES_FRMATR_END-1, RES_GRFATR_BEGIN, RES_GRFATR_END-1, + RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1, 0 ); pTmpCharItemSet->Put( rChgSet ); @@ -755,7 +757,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet, SfxItemSet aTxtSet( pDoc->GetAttrPool(), RES_TXTATR_REFMARK, RES_TXTATR_TOXMARK, RES_TXTATR_META, RES_TXTATR_METAFIELD, - RES_TXTATR_CJK_RUBY, RES_TXTATR_WITHEND_END-1, + RES_TXTATR_CJK_RUBY, RES_TXTATR_CJK_RUBY, 0 ); aTxtSet.Put( rChgSet ); @@ -1744,36 +1746,45 @@ BOOL lcl_SetTxtFmtColl( const SwNodePtr& rpNode, void* pArgs ) pFmt != pCNd->GetFmtColl() && pFmt->GetItemState( RES_PARATR_NUMRULE ) == SFX_ITEM_SET ) { - // --> OD 2008-04-08 #refactorlists# -// if ( pPara->pHistory ) -// { -// SwTxtNode* pTNd( dynamic_cast<SwTxtNode*>(pCNd) ); -// ASSERT( pTNd, -// "<lcl_SetTxtFmtColl(..)> - text node expected -> crash" ); -// SwRegHistory aRegH( pTNd, *pTNd, pPara->pHistory ); -// pCNd->ResetAttr( RES_PARATR_NUMRULE ); -// } -// else -// { -// pCNd->ResetAttr( RES_PARATR_NUMRULE ); -// } - std::auto_ptr< SwRegHistory > pRegH; - if ( pPara->pHistory ) + // --> OD 2009-09-07 #b6876367# + // Check, if the list style of the paragraph will change. + bool bChangeOfListStyleAtParagraph( true ); + SwTxtNode* pTNd( dynamic_cast<SwTxtNode*>(pCNd) ); + ASSERT( pTNd, + "<lcl_SetTxtFmtColl(..)> - text node expected -> crash" ); { - SwTxtNode* pTNd( dynamic_cast<SwTxtNode*>(pCNd) ); - ASSERT( pTNd, - "<lcl_SetTxtFmtColl(..)> - text node expected -> crash" ); - pRegH.reset( new SwRegHistory( pTNd, *pTNd, pPara->pHistory ) ); + SwNumRule* pNumRuleAtParagraph( pTNd->GetNumRule() ); + if ( pNumRuleAtParagraph ) + { + const SwNumRuleItem& rNumRuleItemAtParagraphStyle = + pFmt->GetNumRule(); + if ( rNumRuleItemAtParagraphStyle.GetValue() == + pNumRuleAtParagraph->GetName() ) + { + bChangeOfListStyleAtParagraph = false; + } + } } - pCNd->ResetAttr( RES_PARATR_NUMRULE ); + if ( bChangeOfListStyleAtParagraph ) + { + // --> OD 2008-04-08 #refactorlists# + std::auto_ptr< SwRegHistory > pRegH; + if ( pPara->pHistory ) + { + pRegH.reset( new SwRegHistory( pTNd, *pTNd, pPara->pHistory ) ); + } - // reset all list attributes - pCNd->ResetAttr( RES_PARATR_LIST_LEVEL ); - pCNd->ResetAttr( RES_PARATR_LIST_ISRESTART ); - pCNd->ResetAttr( RES_PARATR_LIST_RESTARTVALUE ); - pCNd->ResetAttr( RES_PARATR_LIST_ISCOUNTED ); - pCNd->ResetAttr( RES_PARATR_LIST_ID ); + pCNd->ResetAttr( RES_PARATR_NUMRULE ); + + // reset all list attributes + pCNd->ResetAttr( RES_PARATR_LIST_LEVEL ); + pCNd->ResetAttr( RES_PARATR_LIST_ISRESTART ); + pCNd->ResetAttr( RES_PARATR_LIST_RESTARTVALUE ); + pCNd->ResetAttr( RES_PARATR_LIST_ISCOUNTED ); + pCNd->ResetAttr( RES_PARATR_LIST_ID ); + } + // <-- } // <-- } @@ -2442,7 +2453,7 @@ void SwDoc::_CreateNumberFormatter() Reference< XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); pNumberFormatter = new SvNumberFormatter( xMSF, eLang ); pNumberFormatter->SetEvalDateFormat( NF_EVALDATEFORMAT_FORMAT_INTL ); - pNumberFormatter->SetYear2000(static_cast<USHORT>(SFX_APP()->GetMiscConfig()->GetYear2000())); + pNumberFormatter->SetYear2000(static_cast<USHORT>(::utl::MiscCfg().GetYear2000())); } @@ -2658,18 +2669,18 @@ namespace docfunc if ( !pParentTxtFmtColl ) continue; - // --> OD 2007-12-07 #i77708# - // consider that explicitly no list style is set - empty string - // at numrule item. -// const SwNumRuleItem& rDirectItem = pParentTxtFmtColl->GetNumRule(); -// if ( rDirectItem.GetValue().Len() != 0 ) if ( SFX_ITEM_SET == pParentTxtFmtColl->GetItemState( RES_PARATR_NUMRULE ) ) { - bRet = true; - break; + // --> OD 2009-11-12 #i106218# + // consider that the outline style is set + const SwNumRuleItem& rDirectItem = pParentTxtFmtColl->GetNumRule(); + if ( rDirectItem.GetValue() != rDoc.GetOutlineNumRule()->GetName() ) + { + bRet = true; + break; + } + // <-- } - // <-- - } } diff --git a/sw/source/core/doc/docglbl.cxx b/sw/source/core/doc/docglbl.cxx index 113319494e03..df5efb6521c8 100644 --- a/sw/source/core/doc/docglbl.cxx +++ b/sw/source/core/doc/docglbl.cxx @@ -34,9 +34,9 @@ #include <hintids.hxx> #include <unotools/tempfile.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/urihelper.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <sfx2/app.hxx> #include <sfx2/docfile.hxx> #include <sfx2/docfilt.hxx> diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx index 1af12a64bf2f..b97d1fbcd642 100644 --- a/sw/source/core/doc/doclay.cxx +++ b/sw/source/core/doc/doclay.cxx @@ -31,8 +31,8 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" -#include <svtools/linguprops.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/linguprops.hxx> +#include <unotools/lingucfg.hxx> #include <com/sun/star/embed/EmbedStates.hpp> #include <hintids.hxx> #include <com/sun/star/util/XCloseable.hpp> @@ -212,7 +212,7 @@ SwFrmFmt *SwDoc::MakeLayoutFmt( RndStdIds eRequest, const SfxItemSet* pSet ) } break; -#ifndef PRODUCT +#ifdef DBG_UTIL case FLY_PAGE: case FLY_AUTO_CNTNT: case FLY_AT_FLY: @@ -1693,7 +1693,7 @@ SwFlyFrmFmt* SwDoc::InsertDrawLabel( const String &rTxt, SwTxtAttr * const pHnt = pTxtNode->GetTxtAttrForCharAt( nIdx, RES_TXTATR_FLYCNT ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT, "Missing FlyInCnt-Hint." ); ASSERT( pHnt && ((SwFmtFlyCnt&)pHnt->GetFlyCnt()). diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx index a121727da8f3..c4eb79d5a31a 100644 --- a/sw/source/core/doc/docnew.cxx +++ b/sw/source/core/doc/docnew.cxx @@ -48,14 +48,14 @@ #include <sfx2/frame.hxx> #include <sfx2/viewfrm.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <svx/svxids.hrc> #include <svx/svdogrp.hxx> #include <svx/linkmgr.hxx> #include <svx/forbiddencharacterstable.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/compatibility.hxx> -#include <svtools/lingucfg.hxx> +#include <svl/zforlist.hxx> +#include <unotools/compatibility.hxx> +#include <unotools/lingucfg.hxx> #include <svx/svdpage.hxx> #include <paratr.hxx> #include <fchrfmt.hxx> @@ -338,7 +338,7 @@ SwDoc::SwDoc() : mbInsOnlyTxtGlssry = mbContains_MSVBasic = mbKernAsianPunctuation = -#ifndef PRODUCT +#ifdef DBG_UTIL mbXMLExport = #endif // --> OD 2006-03-21 #b6375613# @@ -1372,6 +1372,7 @@ SwDoc* SwDoc::CreateCopy() const ResetModified(); */ + pRet->ReplaceStyles( *(SwDoc*)this ); //copy content pRet->Paste( *this ); return pRet; @@ -1436,7 +1437,7 @@ void SwDoc::Paste( const SwDoc& rSource ) SwFmtAnchor aAnchor( rCpyFmt.GetAnchor() ); if( FLY_PAGE == aAnchor.GetAnchorId() ) { - aAnchor.SetPageNum( aAnchor.GetPageNum() + /*nStartPageNumber - */1 ); + aAnchor.SetPageNum( aAnchor.GetPageNum() /*+ nStartPageNumber - */); } else continue; diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index daeda48ccae3..dddf027647c1 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -35,7 +35,7 @@ #include <hintids.hxx> #include <tools/shl.hxx> #ifndef _SFX_ITEMITER_HXX //autogen -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #endif #include <sfx2/app.hxx> #include <svx/colritem.hxx> @@ -59,7 +59,7 @@ using namespace com::sun::star; TYPEINIT1(SwRedlineHint, SfxHint); -#ifdef PRODUCT +#ifndef DBG_UTIL #define _CHECK_REDLINE( pDoc ) #define _DEBUG_REDLINE( pDoc ) @@ -309,9 +309,11 @@ Verhalten von Delete-Redline: bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete ) { -#ifndef PRODUCT +#if 0 +// #i93179# disabled: ASSERT in ~SwIndexReg #ifdef DBG_UTIL SwRedline aCopy( *pNewRedl ); #endif + bool bError = true; _CHECK_REDLINE( this ) if( IsRedlineOn() && !IsShowOriginal( eRedlineMode ) && @@ -431,6 +433,7 @@ bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete ) pRedlineTbl->Insert( pRedl ); } + bError = false; bDelete = true; } else if( (( POS_BEFORE == eCmpPos && @@ -446,6 +449,7 @@ bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete ) pRedlineTbl->Remove( n ); pRedlineTbl->Insert( pRedl ); + bError = false; bDelete = true; } else if ( POS_OUTSIDE == eCmpPos ) @@ -1108,7 +1112,8 @@ bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete ) case POS_EQUAL: case POS_INSIDE: - delete pNewRedl, pNewRedl = 0; + // TODO Check if there is any side effect + //delete pNewRedl, pNewRedl = 0; break; case POS_OUTSIDE: @@ -1271,7 +1276,7 @@ bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete ) } _CHECK_REDLINE( this ) - return 0 != pNewRedl; + return ( 0 != pNewRedl ) || !bError; } void SwDoc::CompressRedlines() @@ -3693,7 +3698,7 @@ void SwRedline::SetContentIdx( const SwNodeIndex* pIdx ) delete pCntntSect, pCntntSect = 0; bIsVisible = FALSE; } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !this, "das ist keine gueltige Operation" ); #endif diff --git a/sw/source/core/doc/docsort.cxx b/sw/source/core/doc/docsort.cxx index 67fec1f7d33d..3f1a6babac56 100644 --- a/sw/source/core/doc/docsort.cxx +++ b/sw/source/core/doc/docsort.cxx @@ -386,7 +386,7 @@ BOOL SwDoc::SortText(const SwPaM& rPaM, const SwSortOptions& rOpt) { if( bUndo ) { - pRedlUndo = new SwUndoRedlineSort( rPaM, rOpt ); + pRedlUndo = new SwUndoRedlineSort( *pRedlPam,rOpt ); DoUndo( FALSE ); } // erst den Bereich kopieren, dann @@ -471,20 +471,36 @@ BOOL SwDoc::SortText(const SwPaM& rPaM, const SwSortOptions& rOpt) AppendUndo( pRedlUndo ); } - // nBeg ist der Start vom sortierten Bereich + // nBeg is start of sorted range SwNodeIndex aSttIdx( GetNodes(), nBeg ); - // der Kopierte Bereich ist das Geloeschte - AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_DELETE, *pRedlPam ), true); + // the copied range is deleted + SwRedline *const pDeleteRedline( + new SwRedline( nsRedlineType_t::REDLINE_DELETE, *pRedlPam )); - // das sortierte ist das Eingefuegte + // pRedlPam points to nodes that may be deleted (hidden) by + // AppendRedline, so adjust it beforehand to prevent ASSERT pRedlPam->GetPoint()->nNode = aSttIdx; SwCntntNode* pCNd = aSttIdx.GetNode().GetCntntNode(); pRedlPam->GetPoint()->nContent.Assign( pCNd, 0 ); + AppendRedline(pDeleteRedline, true); + + // the sorted range is inserted AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_INSERT, *pRedlPam ), true); if( pRedlUndo ) + { + SwNodeIndex aInsEndIdx( pRedlPam->GetMark()->nNode, -1 ); + pRedlPam->GetMark()->nNode = aInsEndIdx; + SwCntntNode *const pPrevNode = + pRedlPam->GetMark()->nNode.GetNode().GetCntntNode(); + pRedlPam->GetMark()->nContent.Assign( pPrevNode, pPrevNode->Len() ); + + pRedlUndo->SetValues( *pRedlPam ); + } + + if( pRedlUndo ) pRedlUndo->SetOffset( aSttIdx ); delete pRedlPam, pRedlPam = 0; diff --git a/sw/source/core/doc/docstat.cxx b/sw/source/core/doc/docstat.cxx index 23e6fe5b055d..04c85a3a8d2a 100644 --- a/sw/source/core/doc/docstat.cxx +++ b/sw/source/core/doc/docstat.cxx @@ -45,10 +45,10 @@ SwDocStat::SwDocStat() : nOLE(0), nPage(1), nPara(1), + nAllPara(1), nWord(0), nChar(0), - bModified(TRUE), - pInternStat(0) + bModified(TRUE) {} /************************************************************************ @@ -62,9 +62,9 @@ void SwDocStat::Reset() nOLE = 0; nPage = 1; nPara = 1; + nAllPara= 1; nWord = 0; nChar = 0; bModified = TRUE; - pInternStat = 0; } diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx index 0119274f7b5e..4433d3b5e7e2 100644 --- a/sw/source/core/doc/doctxm.cxx +++ b/sw/source/core/doc/doctxm.cxx @@ -36,7 +36,7 @@ #include <hintids.hxx> #define _SVSTDARR_STRINGSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/langitem.hxx> #include <svx/brkitem.hxx> #include <svx/tstpitem.hxx> @@ -2220,7 +2220,9 @@ void SwTOXBaseSection::_UpdatePageNum( SwTxtNode* pNd, } } pNd->InsertText( aNumStr, aPos, - IDocumentContentOperations::INS_EMPTYEXPAND ); + static_cast<IDocumentContentOperations::InsertFlags>( + IDocumentContentOperations::INS_EMPTYEXPAND | + IDocumentContentOperations::INS_FORCEHINTEXPAND) ); if(pPageNoCharFmt) { SwFmtCharFmt aCharFmt( pPageNoCharFmt ); diff --git a/sw/source/core/doc/fmtcol.cxx b/sw/source/core/doc/fmtcol.cxx index 6ee49a81b4b7..86a4edf2aa87 100644 --- a/sw/source/core/doc/fmtcol.cxx +++ b/sw/source/core/doc/fmtcol.cxx @@ -48,7 +48,7 @@ //--> #outlinelevel added by zhaojianwei #ifndef _SFXINTITEM_HXX -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #endif //<--end diff --git a/sw/source/core/doc/htmltbl.cxx b/sw/source/core/doc/htmltbl.cxx index e4b7b9e87a88..e3effed7250c 100644 --- a/sw/source/core/doc/htmltbl.cxx +++ b/sw/source/core/doc/htmltbl.cxx @@ -397,7 +397,7 @@ USHORT SwHTMLTableLayout::GetBrowseWidth( const SwDoc& rDoc ) */ ASSERT( nWidth, "No browse width available" ); } -#ifndef PRODUCT +#ifdef DBG_UTIL else { // und wenn das auch nicht klappt, gibt es zur Zeit keine Breite @@ -1660,13 +1660,13 @@ static BOOL lcl_ResizeBox( const SwTableBox*& rpBox, void* pPara ) static BOOL lcl_ResizeLine( const SwTableLine*& rpLine, void* pPara ) { USHORT *pWidth = (USHORT *)pPara; -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nOldWidth = *pWidth; #endif *pWidth = 0; ((SwTableLine *)rpLine)->GetTabBoxes().ForEach( &lcl_ResizeBox, pWidth ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !nOldWidth || Abs(*pWidth-nOldWidth) < COLFUZZY, "Zeilen einer Box sind unterschiedlich lang" ); #endif @@ -1777,7 +1777,7 @@ void SwHTMLTableLayout::SetWidths( BOOL bCallPass2, USHORT nAbsAvail, } } -#ifndef PRODUCT +#ifdef DBG_UTIL { // steht im tblrwcl.cxx extern void _CheckBoxWidth( const SwTableLine&, SwTwips ); diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 4a8ecf7ff09a..460374578cf0 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -39,7 +39,7 @@ #include <vcl/svapp.hxx> #include <svtools/imapobj.hxx> #include <svtools/imap.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svtools/soerr.hxx> #include <sfx2/progress.hxx> #include <sfx2/docfile.hxx> @@ -804,27 +804,27 @@ void lcl_correctlyAlignRect( SwRect& rAlignedGrfArea, const SwRect& rInArea, Out { if(!pOut) return; - Rectangle aPxRect = pOut->LogicToPixel( rInArea.SVRect() );
- Rectangle aNewPxRect( aPxRect );
- while( aNewPxRect.Left() < aPxRect.Left() )
- {
- rAlignedGrfArea.Left( rAlignedGrfArea.Left()+1 );
- aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
- }
- while( aNewPxRect.Top() < aPxRect.Top() )
- {
- rAlignedGrfArea.Top( rAlignedGrfArea.Top()+1 );
- aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
- }
- while( aNewPxRect.Bottom() > aPxRect.Bottom() )
- {
- rAlignedGrfArea.Bottom( rAlignedGrfArea.Bottom()-1 );
- aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
- }
- while( aNewPxRect.Right() > aPxRect.Right() )
- {
- rAlignedGrfArea.Right( rAlignedGrfArea.Right()-1 );
- aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
+ Rectangle aPxRect = pOut->LogicToPixel( rInArea.SVRect() ); + Rectangle aNewPxRect( aPxRect ); + while( aNewPxRect.Left() < aPxRect.Left() ) + { + rAlignedGrfArea.Left( rAlignedGrfArea.Left()+1 ); + aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() ); + } + while( aNewPxRect.Top() < aPxRect.Top() ) + { + rAlignedGrfArea.Top( rAlignedGrfArea.Top()+1 ); + aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() ); + } + while( aNewPxRect.Bottom() > aPxRect.Bottom() ) + { + rAlignedGrfArea.Bottom( rAlignedGrfArea.Bottom()-1 ); + aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() ); + } + while( aNewPxRect.Right() > aPxRect.Right() ) + { + rAlignedGrfArea.Right( rAlignedGrfArea.Right()-1 ); + aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() ); } } @@ -861,13 +861,13 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons ::SwAlignGrfRect( &aAlignedGrfArea, *pOut ); } else //if( bIsChart ) - {
- //#i78025# charts own borders are not completely visible
- //the above pixel correction is not correct - at least not for charts
- //so a different pixel correction is choosen here
- //this might be a good idea for all other OLE objects also,
- //but as I cannot oversee the consequences I fix it only for charts for now
- lcl_correctlyAlignRect( aAlignedGrfArea, rGrfArea, pOut );
+ { + //#i78025# charts own borders are not completely visible + //the above pixel correction is not correct - at least not for charts + //so a different pixel correction is choosen here + //this might be a good idea for all other OLE objects also, + //but as I cannot oversee the consequences I fix it only for charts for now + lcl_correctlyAlignRect( aAlignedGrfArea, rGrfArea, pOut ); } if( pGrfNd ) diff --git a/sw/source/core/doc/number.cxx b/sw/source/core/doc/number.cxx index 94925f5ffc5e..2fe9b11808ec 100644 --- a/sw/source/core/doc/number.cxx +++ b/sw/source/core/doc/number.cxx @@ -64,7 +64,7 @@ #include <algorithm> // <-- // --> OD 2008-06-06 #i89178# -#include <svtools/saveopt.hxx> +#include <unotools/saveopt.hxx> // <-- // --> OD 2008-07-08 #i91400# #include <IDocumentListsAccess.hxx> @@ -478,7 +478,7 @@ const SwFmtVertOrient* SwNumFmt::GetGraphicOrientation() const } } -#ifndef PRODUCT +#ifdef DBG_UTIL long int SwNumRule::nInstances = 0; #endif @@ -512,7 +512,7 @@ SwNumRule::SwNumRule( const String& rNm, msDefaultListId() // <-- { -#ifndef PRODUCT +#ifdef DBG_UTIL nSerial = nInstances++; #endif @@ -632,7 +632,7 @@ SwNumRule::SwNumRule( const SwNumRule& rNumRule ) msDefaultListId( rNumRule.msDefaultListId ) // <-- { -#ifndef PRODUCT +#ifdef DBG_UTIL nSerial = nInstances++; #endif @@ -1317,6 +1317,7 @@ namespace numfunc @author OD */ virtual void Notify( const uno::Sequence<rtl::OUString>& aPropertyNames ); + virtual void Commit(); static SwDefBulletConfig* mpInstance; @@ -1487,6 +1488,10 @@ namespace numfunc InitFont(); } + void SwDefBulletConfig::Commit() + { + } + const String& GetDefBulletFontname() { return SwDefBulletConfig::getInstance()->GetFontname(); @@ -1562,6 +1567,7 @@ namespace numfunc @author OD */ virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames ); + virtual void Commit(); static SwNumberingUIBehaviorConfig* mpInstance; @@ -1596,6 +1602,8 @@ namespace numfunc return aPropNames; } + void SwNumberingUIBehaviorConfig::Commit() {} + void SwNumberingUIBehaviorConfig::LoadConfig() { com::sun::star::uno::Sequence<rtl::OUString> aPropNames = GetPropNames(); diff --git a/sw/source/core/doc/swstylemanager.cxx b/sw/source/core/doc/swstylemanager.cxx index bda693e8d6ae..e5394ef11f3f 100644 --- a/sw/source/core/doc/swstylemanager.cxx +++ b/sw/source/core/doc/swstylemanager.cxx @@ -34,7 +34,7 @@ #include "swstylemanager.hxx" #include <hash_map> -#include <svtools/stylepool.hxx> +#include <svl/stylepool.hxx> #include <doc.hxx> #include <charfmt.hxx> #include <docary.hxx> diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index 630979ff72ed..cb968231d575 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -37,10 +37,10 @@ #include <tools/shl.hxx> #include <vcl/svapp.hxx> #include <sfx2/docfile.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/urihelper.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> +#include <unotools/pathoptions.hxx> #include <sfx2/app.hxx> #include <svx/dialmgr.hxx> #ifndef _SVX_DIALOGS_HRC diff --git a/sw/source/core/doc/tblcpy.cxx b/sw/source/core/doc/tblcpy.cxx index 5eea4c33247c..2ef5bf28268e 100644 --- a/sw/source/core/doc/tblcpy.cxx +++ b/sw/source/core/doc/tblcpy.cxx @@ -35,7 +35,7 @@ #include <hintids.hxx> #define _ZFORLIST_DECLARE_TABLE -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <frmfmt.hxx> #include <doc.hxx> #include <cntfrm.hxx> diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx index 14a3ed87a8d1..a8cf3f819444 100644 --- a/sw/source/core/doc/tblrwcl.cxx +++ b/sw/source/core/doc/tblrwcl.cxx @@ -74,7 +74,7 @@ using namespace com::sun::star::uno; using namespace ::com::sun::star; -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -197,7 +197,7 @@ BOOL lcl_DelOtherBox( SwTableLine* pLine, CR_SetBoxWidth& rParam, typedef BOOL (*FN_lcl_SetBoxWidth)(SwTableLine*, CR_SetBoxWidth&, SwTwips, BOOL ); -#if !defined( PRODUCT ) || defined( JP_DEBUG ) +#if defined(DBG_UTIL) || defined( JP_DEBUG ) void _CheckBoxWidth( const SwTableLine& rLine, SwTwips nSize ); @@ -3506,7 +3506,7 @@ void lcl_AjustLines( SwTableLine* pLine, CR_SetBoxWidth& rParam ) } } -#if !defined( PRODUCT ) || defined( JP_DEBUG ) +#if defined(DBG_UTIL) || defined( JP_DEBUG ) void _CheckBoxWidth( const SwTableLine& rLine, SwTwips nSize ) { diff --git a/sw/source/core/doc/visiturl.cxx b/sw/source/core/doc/visiturl.cxx index d5d0832c0a20..6f256bacce2c 100644 --- a/sw/source/core/doc/visiturl.cxx +++ b/sw/source/core/doc/visiturl.cxx @@ -33,7 +33,7 @@ #include <sfx2/docfile.hxx> -#include <svtools/inethist.hxx> +#include <svl/inethist.hxx> #include <fmtinfmt.hxx> #include <txtinet.hxx> #include <doc.hxx> diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx index a2263bc3f442..a185fe0299e8 100644 --- a/sw/source/core/docnode/ndcopy.cxx +++ b/sw/source/core/docnode/ndcopy.cxx @@ -59,7 +59,7 @@ #include <pagedesc.hxx> #include <poolfmt.hxx> #include <SwNodeNum.hxx> -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -1329,7 +1329,7 @@ void SwDoc::CopyWithFlyInFly( const SwNodeRange& rRg, const xub_StrLen nEndConte aRedlRest.Restore(); -#ifndef PRODUCT +#ifdef DBG_UTIL { //JP 17.06.99: Bug 66973 - check count only if the selection is in // the same (or no) section. Becaus not full selected diff --git a/sw/source/core/docnode/ndindex.cxx b/sw/source/core/docnode/ndindex.cxx index 54936230228d..d4611aad60d7 100644 --- a/sw/source/core/docnode/ndindex.cxx +++ b/sw/source/core/docnode/ndindex.cxx @@ -37,7 +37,7 @@ #include "error.h" // fuers ASSERT #include "ndindex.hxx" -#ifndef PRODUCT +#ifdef DBG_UTIL int SwNodeIndex::nSerial = 0; #endif @@ -71,7 +71,7 @@ SwNodeIndex::SwNodeIndex( SwNodes& rNds, ULONG nIdx ) { rNds.RegisterIndex( *this ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif } @@ -86,7 +86,7 @@ SwNodeIndex::SwNodeIndex( const SwNodeIndex& rIdx, long nDiff ) pNd = rIdx.pNd; pNd->GetNodes().RegisterIndex( *this ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif } @@ -101,7 +101,7 @@ SwNodeIndex::SwNodeIndex( const SwNode& rNd, long nDiff ) pNd = (SwNode*)&rNd; pNd->GetNodes().RegisterIndex( *this ); -#ifndef PRODUCT +#ifdef DBG_UTIL MySerial = ++nSerial; // nur in der nicht PRODUCT-Version #endif } diff --git a/sw/source/core/docnode/ndnotxt.cxx b/sw/source/core/docnode/ndnotxt.cxx index 817fa3c257aa..f1cd2abe6e58 100644 --- a/sw/source/core/docnode/ndnotxt.cxx +++ b/sw/source/core/docnode/ndnotxt.cxx @@ -34,7 +34,7 @@ #include <hintids.hxx> #include <tools/poly.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/contdlg.hxx> #include <vcl/svapp.hxx> #include <docary.hxx> diff --git a/sw/source/core/docnode/ndnum.cxx b/sw/source/core/docnode/ndnum.cxx index ae70599de061..aaf4814b3577 100644 --- a/sw/source/core/docnode/ndnum.cxx +++ b/sw/source/core/docnode/ndnum.cxx @@ -50,7 +50,7 @@ BOOL SwOutlineNodes::Seek_Entry( const SwNodePtr rSrch, USHORT* pFndPos ) const //JP 17.03.98: aufgrund des Bug 48592 - wo unter anderem nach Undo/Redo // Nodes aus dem falschen NodesArray im OutlineArray standen, // jetzt mal einen Check eingebaut. -#ifndef PRODUCT +#ifdef DBG_UTIL { for( USHORT n = 1; n < nO; ++n ) if( &(*this)[ n-1 ]->GetNodes() != diff --git a/sw/source/core/docnode/ndsect.cxx b/sw/source/core/docnode/ndsect.cxx index 0f44f1f3898a..1ab54e18dbec 100644 --- a/sw/source/core/docnode/ndsect.cxx +++ b/sw/source/core/docnode/ndsect.cxx @@ -34,7 +34,7 @@ #include <hintids.hxx> #include <svx/linkmgr.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <tools/resid.hxx> #include <fmtcntnt.hxx> #include <fmtanchr.hxx> diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index a7e7675966c3..08174467da1f 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -104,7 +104,7 @@ // --> OD 2005-12-05 #i27138# #include <rootfrm.hxx> // <-- -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -1322,7 +1322,8 @@ SwTableNode* SwNodes::TextToTable( const std::vector< std::vector<SwNodeRange> > SwTxtNode& rTxtNode = static_cast<SwTxtNode&>(rNode); // setze den bei allen TextNode in der Tabelle den TableNode // als StartNode - rTxtNode.pStartOfSection = pTblNd; +// FIXME: this is setting wrong node StartOfSections in nested tables. +// rTxtNode.pStartOfSection = pTblNd; // remove PageBreaks/PageDesc/ColBreak const SwAttrSet* pSet = rTxtNode.GetpSwAttrSet(); if( pSet ) @@ -1401,7 +1402,6 @@ SwTableNode* SwNodes::TextToTable( const std::vector< std::vector<SwNodeRange> > aCellNodeIdx = SwNodeIndex( *aCellNodeIdx.GetNode().EndOfSectionNode() ); } - // Section der Box zuweisen pBox = new SwTableBox( pBoxFmt, *pSttNd, pLine ); pLine->GetTabBoxes().C40_INSERT( SwTableBox, pBox, nBoxes++ ); diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx index 61dd90bc509c..3318b2575230 100644 --- a/sw/source/core/docnode/node.cxx +++ b/sw/source/core/docnode/node.cxx @@ -341,7 +341,7 @@ USHORT SwNode::GetSectionLevel() const |* *******************************************************************/ -#ifndef PRODUCT +#ifdef DBG_UTIL long SwNode::nSerial = 0; #endif @@ -373,7 +373,7 @@ SwNode::SwNode( const SwNodeIndex &rWhere, const BYTE nNdType ) pStartOfSection = (SwStartNode*)this; } -#ifndef PRODUCT +#ifdef DBG_UTIL nMySerial = nSerial; nSerial++; #endif @@ -406,7 +406,7 @@ SwNode::SwNode( SwNodes& rNodes, ULONG nPos, const BYTE nNdType ) pStartOfSection = (SwStartNode*)this; } -#ifndef PRODUCT +#ifdef DBG_UTIL nMySerial = nSerial; nSerial++; #endif @@ -1479,7 +1479,6 @@ SwCntntNode *SwCntntNode::JoinPrev() // erfrage vom Modify Informationen BOOL SwCntntNode::GetInfo( SfxPoolItem& rInfo ) const { - const SwNumRuleItem* pItem; switch( rInfo.Which() ) { case RES_AUTOFMT_DOCNODE: @@ -1509,18 +1508,6 @@ BOOL SwCntntNode::GetInfo( SfxPoolItem& rInfo ) const // return TRUE; // <-- - case RES_GETLOWERNUMLEVEL: - if( IsTxtNode() && - 0 != ( pItem = (SwNumRuleItem*)GetNoCondAttr( - RES_PARATR_NUMRULE, TRUE )) && pItem->GetValue().Len() && - pItem->GetValue() == ((SwNRuleLowerLevel&)rInfo).GetName() && - ((SwTxtNode*)this)->GetActualListLevel() - > ((SwNRuleLowerLevel&)rInfo).GetLevel() ) - { - return FALSE; - } - break; - case RES_FINDNEARESTNODE: if( ((SwFmtPageDesc&)GetAttr( RES_PAGEDESC )).GetPageDesc() ) ((SwFindNearestNode&)rInfo).CheckNode( *this ); @@ -1572,7 +1559,7 @@ BOOL SwCntntNode::SetAttr(const SfxPoolItem& rAttr ) } return bRet; } -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> BOOL SwCntntNode::SetAttr( const SfxItemSet& rSet ) { diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx index ce24e4ba06b5..e005326b6732 100644 --- a/sw/source/core/docnode/nodes.cxx +++ b/sw/source/core/docnode/nodes.cxx @@ -50,7 +50,7 @@ #include <fmtmeta.hxx> #include <docsh.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> extern BOOL CheckNodesRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd, BOOL bChkSection ); @@ -408,7 +408,7 @@ void SwNodes::ChgNode( SwNodeIndex& rDelPos, ULONG nSz, if( pFrmNd && !((SwCntntNode*)pFrmNd)->GetDepends() ) pFrmNd = 0; -#ifndef PRODUCT +#ifdef DBG_UTIL if( !pFrmNd ) ASSERT( !this, "ChgNode() - kein FrameNode gefunden" ); #endif diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx index 1a174d9d54de..f73d22cbd74a 100644 --- a/sw/source/core/docnode/section.cxx +++ b/sw/source/core/docnode/section.cxx @@ -34,8 +34,8 @@ #include <stdlib.h> #include <hintids.hxx> -#include <svtools/intitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/intitem.hxx> +#include <svl/stritem.hxx> #include <sfx2/docfile.hxx> #include <sfx2/docfilt.hxx> #include <svx/protitem.hxx> diff --git a/sw/source/core/docnode/swthreadmanager.cxx b/sw/source/core/docnode/swthreadmanager.cxx index 61ffa301f708..3f06c26de608 100644 --- a/sw/source/core/docnode/swthreadmanager.cxx +++ b/sw/source/core/docnode/swthreadmanager.cxx @@ -39,35 +39,29 @@ @author OD */ -SwThreadManager* SwThreadManager::mpThreadManager = 0; -osl::Mutex* SwThreadManager::mpGetManagerMutex = new osl::Mutex(); +bool SwThreadManager::mbThreadManagerInstantiated = false; SwThreadManager::SwThreadManager() : mpThreadManagerImpl( new ThreadManager( SwThreadJoiner::GetThreadJoiner() ) ) { mpThreadManagerImpl->Init(); + mbThreadManagerInstantiated = true; } SwThreadManager::~SwThreadManager() { - delete mpThreadManagerImpl; } +struct InitInstance : public rtl::Static<SwThreadManager, InitInstance> {}; + SwThreadManager& SwThreadManager::GetThreadManager() { - osl::MutexGuard aGuard(*mpGetManagerMutex); - - if ( mpThreadManager == 0 ) - { - mpThreadManager = new SwThreadManager(); - } - - return *mpThreadManager; + return InitInstance::get(); } bool SwThreadManager::ExistsThreadManager() { - return (mpThreadManager != 0); + return mbThreadManagerInstantiated; } oslInterlockedCount SwThreadManager::AddThread( const rtl::Reference< ObservableThread >& rThread ) diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index aa20281038da..5d9b90a2f9e0 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -44,7 +44,6 @@ #include <svx/svdviter.hxx> #include <svx/svdview.hxx> #include <svx/shapepropertynotifier.hxx> -// AW, OD 2004-04-30 #i28501# #include <svx/sdr/contact/objectcontactofobjlistpainter.hxx> #include <svx/sdr/contact/displayinfo.hxx> #include <fmtornt.hxx> @@ -69,31 +68,17 @@ #include <txtfrm.hxx> #include <editsh.hxx> #include <docary.hxx> - -// OD 2004-02-11 #110582#-2 #include <flyfrms.hxx> - -// OD 18.06.2003 #108784# -#include <algorithm> -// OD 2004-05-24 #i28701# #include <sortedobjs.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> - -// AW: For VCOfDrawVirtObj and stuff -#ifndef _SDR_CONTACT_VIEWCONTACTOFVIRTOBJ_HXX +#include <basegfx/matrix/b2dhommatrixtools.hxx> #include <svx/sdr/contact/viewcontactofvirtobj.hxx> -#endif - -#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE2D_TRANSFORMPRIMITIVE2D_HXX #include <drawinglayer/primitive2d/transformprimitive2d.hxx> -#endif - -#ifndef _SDR_CONTACT_VIEWOBJECTCONTACTOFSDROBJ_HXX #include <svx/sdr/contact/viewobjectcontactofsdrobj.hxx> -#endif - #include <com/sun/star/text/WritingMode2.hpp> +#include <algorithm> + using namespace ::com::sun::star; @@ -2605,9 +2590,7 @@ void SwDrawVirtObj::RecalcBoundRect() basegfx::B2DPolyPolygon SwDrawVirtObj::TakeXorPoly() const { basegfx::B2DPolyPolygon aRetval(rRefObj.TakeXorPoly()); - basegfx::B2DHomMatrix aMatrix; - aMatrix.translate(GetOffset().X(), GetOffset().Y()); - aRetval.transform(aMatrix); + aRetval.transform(basegfx::tools::createTranslateB2DHomMatrix(GetOffset().X(), GetOffset().Y())); return aRetval; } @@ -2615,9 +2598,7 @@ basegfx::B2DPolyPolygon SwDrawVirtObj::TakeXorPoly() const basegfx::B2DPolyPolygon SwDrawVirtObj::TakeContour() const { basegfx::B2DPolyPolygon aRetval(rRefObj.TakeContour()); - basegfx::B2DHomMatrix aMatrix; - aMatrix.translate(GetOffset().X(), GetOffset().Y()); - aRetval.transform(aMatrix); + aRetval.transform(basegfx::tools::createTranslateB2DHomMatrix(GetOffset().X(), GetOffset().Y())); return aRetval; } diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx index 15ca46ca2456..cda428f124eb 100644 --- a/sw/source/core/draw/dflyobj.cxx +++ b/sw/source/core/draw/dflyobj.cxx @@ -196,7 +196,7 @@ namespace drawinglayer { namespace primitive2d { - class SwVirtFlyDrawObjPrimitive : public BasePrimitive2D + class SwVirtFlyDrawObjPrimitive : public BufferedDecompositionPrimitive2D { private: const SwVirtFlyDrawObj& mrSwVirtFlyDrawObj; @@ -204,13 +204,13 @@ namespace drawinglayer protected: // method which is to be used to implement the local decomposition of a 2D primitive - virtual Primitive2DSequence createLocalDecomposition(const geometry::ViewInformation2D& rViewInformation) const; + virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const; public: SwVirtFlyDrawObjPrimitive( const SwVirtFlyDrawObj& rSwVirtFlyDrawObj, const basegfx::B2DRange &rOuterRange) - : BasePrimitive2D(), + : BufferedDecompositionPrimitive2D(), mrSwVirtFlyDrawObj(rSwVirtFlyDrawObj), maOuterRange(rOuterRange) { @@ -239,7 +239,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DSequence SwVirtFlyDrawObjPrimitive::createLocalDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + Primitive2DSequence SwVirtFlyDrawObjPrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DSequence aRetval; @@ -269,7 +269,7 @@ namespace drawinglayer bool SwVirtFlyDrawObjPrimitive::operator==(const BasePrimitive2D& rPrimitive) const { - if(BasePrimitive2D::operator==(rPrimitive)) + if(BufferedDecompositionPrimitive2D::operator==(rPrimitive)) { const SwVirtFlyDrawObjPrimitive& rCompare = (SwVirtFlyDrawObjPrimitive&)rPrimitive; @@ -295,7 +295,7 @@ namespace drawinglayer getSwVirtFlyDrawObj().wrap_DoPaintObject(); // call parent - return BasePrimitive2D::get2DDecomposition(rViewInformation); + return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); } // provide unique ID diff --git a/sw/source/core/draw/dpage.cxx b/sw/source/core/draw/dpage.cxx index a5d8ccd24e61..e7b3ebd80245 100644 --- a/sw/source/core/draw/dpage.cxx +++ b/sw/source/core/draw/dpage.cxx @@ -32,8 +32,8 @@ #include "precompiled_sw.hxx" #include <basic/basmgr.hxx> #include <svtools/imapobj.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/securityoptions.hxx> +#include <svl/urihelper.hxx> +#include <unotools/securityoptions.hxx> #include <vcl/help.hxx> #include <svx/svdview.hxx> #include <fmturl.hxx> diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx index 78ede2495f78..ddafb796473e 100644 --- a/sw/source/core/draw/drawdoc.cxx +++ b/sw/source/core/draw/drawdoc.cxx @@ -35,9 +35,9 @@ #include <svx/svxids.hrc> #endif #include <tools/stream.hxx> -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <sot/storage.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svx/forbiddencharacterstable.hxx> #include <unotools/ucbstreamhelper.hxx> diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx index 7bacee8fbde4..dd42123a7bc2 100644 --- a/sw/source/core/edit/autofmt.cxx +++ b/sw/source/core/edit/autofmt.cxx @@ -38,7 +38,7 @@ #include <ctype.h> #include <hintids.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <unotools/charclass.hxx> #include <svx/boxitem.hxx> #include <svx/lrspitem.hxx> diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx index 5ca8e4f2c3cb..36f4010d0df5 100644 --- a/sw/source/core/edit/edattr.cxx +++ b/sw/source/core/edit/edattr.cxx @@ -60,7 +60,7 @@ #include <crsskip.hxx> #include <txtfrm.hxx> // SwTxtFrm #include <scriptinfo.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <charfmt.hxx> // #i27615# #include <numrule.hxx> diff --git a/sw/source/core/edit/edglss.cxx b/sw/source/core/edit/edglss.cxx index 64ed3068d79c..b58ad492aaed 100644 --- a/sw/source/core/edit/edglss.cxx +++ b/sw/source/core/edit/edglss.cxx @@ -34,7 +34,7 @@ #include <osl/endian.h> #include <hintids.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <tools/cachestr.hxx> #include <doc.hxx> #include <pam.hxx> diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx index 4d7cbc07e4ad..3b70c1aa4bd6 100644 --- a/sw/source/core/edit/editsh.cxx +++ b/sw/source/core/edit/editsh.cxx @@ -283,7 +283,7 @@ const Graphic* SwEditShell::GetGraphic( BOOL bWait ) const if( pGrf->IsSwapOut() || ( pGrfNode->IsLinkedFile() && GRAPHIC_DEFAULT == pGrf->GetType() ) ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pGrfNode->SwapIn( bWait ) || !bWait, "Grafik konnte nicht geladen werden" ); #else pGrfNode->SwapIn( bWait ); @@ -294,7 +294,7 @@ const Graphic* SwEditShell::GetGraphic( BOOL bWait ) const { if ( pGrf->IsSwapOut() && !pGrfNode->IsLinkedFile() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pGrfNode->SwapIn( bWait ) || !bWait, "Grafik konnte nicht geladen werden" ); #else pGrfNode->SwapIn( bWait ); @@ -726,7 +726,7 @@ Graphic SwEditShell::GetIMapGraphic() const if( rGrf.IsSwapOut() || ( ((SwGrfNode*)pNd)->IsLinkedFile() && GRAPHIC_DEFAULT == rGrf.GetType() ) ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( ((SwGrfNode*)pNd)->SwapIn( TRUE ) || !TRUE, "Grafik konnte nicht geladen werden" ); #else ((SwGrfNode*)pNd)->SwapIn( TRUE ); diff --git a/sw/source/core/edit/ednumber.cxx b/sw/source/core/edit/ednumber.cxx index 7dd2000ce9a6..b28764d3e55d 100644 --- a/sw/source/core/edit/ednumber.cxx +++ b/sw/source/core/edit/ednumber.cxx @@ -585,7 +585,7 @@ BOOL SwEditShell::IsProtectedOutlinePara() const } } } -#ifndef PRODUCT +#ifdef DBG_UTIL else { ASSERT(!this, "Cursor not on an outline node" ); diff --git a/sw/source/core/edit/edtab.cxx b/sw/source/core/edit/edtab.cxx index 3bdb011a3d6b..ce6916c7cfca 100644 --- a/sw/source/core/edit/edtab.cxx +++ b/sw/source/core/edit/edtab.cxx @@ -36,7 +36,7 @@ #include <hints.hxx> #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #ifndef _APP_HXX //autogen #include <vcl/svapp.hxx> diff --git a/sw/source/core/edit/edtox.cxx b/sw/source/core/edit/edtox.cxx index 0888693eaedc..f86565b6990b 100644 --- a/sw/source/core/edit/edtox.cxx +++ b/sw/source/core/edit/edtox.cxx @@ -38,7 +38,7 @@ #include <tools/urlobj.hxx> #include <svtools/txtcmp.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif #include <sfx2/docfile.hxx> #include "svx/unolingu.hxx" diff --git a/sw/source/core/except/dbgloop.cxx b/sw/source/core/except/dbgloop.cxx index 2f551d4f7826..a492831df2bf 100644 --- a/sw/source/core/except/dbgloop.cxx +++ b/sw/source/core/except/dbgloop.cxx @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" -#ifdef PRODUCT +#ifndef DBG_UTIL #error Wer fummelt denn an den makefiles rum? #endif #include <tools/stream.hxx> diff --git a/sw/source/core/except/makefile.mk b/sw/source/core/except/makefile.mk index 1000bcaab883..660eb8faf596 100644 --- a/sw/source/core/except/makefile.mk +++ b/sw/source/core/except/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -49,8 +49,7 @@ PRJPCH= CXXFILES = -.IF "$(product)"=="" -.IF "$(cap)"=="" +.IF "$(dbgutil)"!="" CXXFILES += \ errhdl.cxx \ dbgloop.cxx @@ -59,7 +58,6 @@ SLOFILES += \ $(SLO)$/errhdl.obj \ $(SLO)$/dbgloop.obj .ENDIF -.ENDIF # --- Tagets ------------------------------------------------------- .INCLUDE : target.mk diff --git a/sw/source/core/fields/authfld.cxx b/sw/source/core/fields/authfld.cxx index 5b6bda70ed4e..bec8e9c2d7cf 100644 --- a/sw/source/core/fields/authfld.cxx +++ b/sw/source/core/fields/authfld.cxx @@ -38,7 +38,7 @@ #define _SVSTDARR_ULONGS #include <hintids.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/unolingu.hxx> #include <svx/langitem.hxx> #include <swtypes.hxx> diff --git a/sw/source/core/fields/dbfld.cxx b/sw/source/core/fields/dbfld.cxx index b59eb29a8192..642ca2ed2fdc 100644 --- a/sw/source/core/fields/dbfld.cxx +++ b/sw/source/core/fields/dbfld.cxx @@ -34,7 +34,7 @@ #include <float.h> #include <sfx2/app.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <svx/pageitem.hxx> #include <svx/dataaccessdescriptor.hxx> #include <com/sun/star/sdbc/DataType.hpp> diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index 6d451ed01f41..e1542a2d7141 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -47,31 +47,32 @@ #include <com/sun/star/text/UserFieldFormat.hpp> #include <com/sun/star/text/PageNumberType.hpp> #include <com/sun/star/text/ReferenceFieldPart.hpp> -#ifndef _COM_SUN_STAR_TEXT_FilenameDisplayFormat_HPP_ #include <com/sun/star/text/FilenameDisplayFormat.hpp> -#endif #include <com/sun/star/text/XDependentTextField.hpp> #include <com/sun/star/text/DocumentStatistic.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/document/XDocumentProperties.hpp> #include <com/sun/star/util/Date.hpp> +#include <com/sun/star/util/Duration.hpp> #include <unotools/localedatawrapper.hxx> #include <svx/unolingu.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/types.hxx> #include <comphelper/string.hxx> #include <tools/urlobj.hxx> -#ifndef _APP_HXX //autogen #include <vcl/svapp.hxx> -#endif -#include <svtools/urihelper.hxx> -#include <svtools/useroptions.hxx> -#include <svtools/syslocale.hxx> +#include <svl/urihelper.hxx> +#include <unotools/useroptions.hxx> +#include <unotools/syslocale.hxx> +#include <svl/zforlist.hxx> #include <tools/time.hxx> #include <tools/datetime.hxx> #include <com/sun/star/beans/PropertyAttribute.hpp> +#include <com/sun/star/util/Date.hpp> +#include <com/sun/star/util/DateTime.hpp> +#include <com/sun/star/util/Time.hpp> #include <tools/shl.hxx> #include <swmodule.hxx> @@ -90,9 +91,7 @@ #include <cntfrm.hxx> // #include <pam.hxx> #include <viewsh.hxx> -#ifndef _DBMGR_HXX #include <dbmgr.hxx> -#endif #include <shellres.hxx> #include <docufld.hxx> #include <flddat.hxx> @@ -100,16 +99,10 @@ #include <ndtxt.hxx> #include <expfld.hxx> #include <poolfmt.hxx> -#ifndef _DOCSH_HXX #include <docsh.hxx> -#endif -#ifndef _UNOFLDMID_H #include <unofldmid.h> -#endif #include <swunohelper.hxx> -#ifndef _COMCORE_HRC #include <comcore.hrc> -#endif #include <svx/outliner.hxx> #include <svx/outlobj.hxx> @@ -1114,6 +1107,21 @@ SwDocInfoField::SwDocInfoField(SwDocInfoFieldType* pTyp, sal_uInt16 nSub, const /* --------------------------------------------------------------------------- ---------------------------------------------------------------------------*/ +template<class T> +double lcl_TimeToDouble( const T& rTime ) +{ + const double fMilliSecondsPerDay = 86400000.0; + return ((rTime.Hours*3600000)+(rTime.Minutes*60000)+(rTime.Seconds*1000)+(rTime.HundredthSeconds*10)) / fMilliSecondsPerDay; +} + +template<class D> +double lcl_DateToDouble( const D& rDate, const Date& rNullDate ) +{ + long nDate = Date::DateToDays( rDate.Day, rDate.Month, rDate.Year ); + long nNullDate = Date::DateToDays( rNullDate.GetDay(), rNullDate.GetMonth(), rNullDate.GetYear() ); + return double( nDate - nNullDate ); +} + String SwDocInfoField::Expand() const { if ( ( nSubType & 0xFF ) == DI_CUSTOM ) @@ -1145,18 +1153,43 @@ String SwDocInfoField::Expand() const ::rtl::OUString sVal; uno::Reference < script::XTypeConverter > xConverter( comphelper::getProcessServiceFactory() ->createInstance(::rtl::OUString::createFromAscii("com.sun.star.script.Converter")), uno::UNO_QUERY ); - uno::Any aNew = xConverter->convertToSimpleType( aAny, uno::TypeClass_STRING ); - aNew >>= sVal; + util::Date aDate; + util::DateTime aDateTime; + util::Duration aDuration; + if( aAny >>= aDate) + { + SvNumberFormatter* pFormatter = pDocShell->GetDoc()->GetNumberFormatter(); + Date* pNullDate = pFormatter->GetNullDate(); + sVal = ExpandValue( lcl_DateToDouble<util::Date>( aDate, *pNullDate ), GetFormat(), GetLanguage()); + } + else if( aAny >>= aDateTime ) + { + double fDateTime = lcl_TimeToDouble<util::DateTime>( aDateTime ); + SvNumberFormatter* pFormatter = pDocShell->GetDoc()->GetNumberFormatter(); + Date* pNullDate = pFormatter->GetNullDate(); + fDateTime += lcl_DateToDouble<util::DateTime>( aDateTime, *pNullDate ); + sVal = ExpandValue( fDateTime, GetFormat(), GetLanguage()); + } + else if( aAny >>= aDuration ) + { + String sText(aDuration.Negative ? '-' : '+'); + sText += ViewShell::GetShellRes()->sDurationFormat; + sText.SearchAndReplace(String::CreateFromAscii( "%1"), String::CreateFromInt32( aDuration.Years ) ); + sText.SearchAndReplace(String::CreateFromAscii( "%2"), String::CreateFromInt32( aDuration.Months ) ); + sText.SearchAndReplace(String::CreateFromAscii( "%3"), String::CreateFromInt32( aDuration.Days ) ); + sText.SearchAndReplace(String::CreateFromAscii( "%4"), String::CreateFromInt32( aDuration.Hours ) ); + sText.SearchAndReplace(String::CreateFromAscii( "%5"), String::CreateFromInt32( aDuration.Minutes) ); + sText.SearchAndReplace(String::CreateFromAscii( "%6"), String::CreateFromInt32( aDuration.Seconds) ); + sVal = sText; + } + else + { + uno::Any aNew = xConverter->convertToSimpleType( aAny, uno::TypeClass_STRING ); + aNew >>= sVal; + } ((SwDocInfoField*)this)->aContent = sVal; } } - else - { - // property is "void" - means it has not been added until now - do it! - aAny <<= ::rtl::OUString(aContent); - uno::Reference < beans::XPropertyContainer > xCont( xSet, uno::UNO_QUERY ); - xCont->addProperty( aName, ::com::sun::star::beans::PropertyAttribute::REMOVEABLE, aAny ); - } } catch (uno::Exception&) {} } @@ -1878,6 +1911,11 @@ void SwPostItField::SetTextObject( OutlinerParaObject* pText ) mpText = pText; } +sal_uInt32 SwPostItField::GetNumberOfParagraphs() const +{ + return (mpText) ? mpText->Count() : 1; +} + /*-----------------05.03.98 13:42------------------- --------------------------------------------------*/ @@ -2321,7 +2359,7 @@ sal_uInt16 SwRefPageGetFieldType::MakeSetList( _SetGetExpFlds& rTmpLst ) { // einen sdbcx::Index fuers bestimmen vom TextNode anlegen SwPosition aPos( pDoc->GetNodes().GetEndOfPostIts() ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( GetBodyTxtNode( *pDoc, aPos, *pFrm ), "wo steht das Feld" ); #else diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx index a06f595293aa..07b3d89692c6 100644 --- a/sw/source/core/fields/fldbas.cxx +++ b/sw/source/core/fields/fldbas.cxx @@ -35,8 +35,8 @@ // #include <math.h> #include <float.h> #include <rtl/math.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> #include <svx/unolingu.hxx> #ifndef _UNOFLDMID_H #include <unofldmid.h> @@ -167,7 +167,7 @@ SwFieldType::SwFieldType( USHORT nWhichId ) DBG_CTOR( SwFieldType, 0 ); } -#ifndef PRODUCT +#ifdef DBG_UTIL SwFieldType::~SwFieldType() { @@ -213,7 +213,7 @@ SwField::~SwField() Beschreibung: Statt Umweg ueber den Typ --------------------------------------------------------------------*/ -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT SwField::Which() const { ASSERT(pType, "Kein Typ vorhanden"); diff --git a/sw/source/core/fields/flddat.cxx b/sw/source/core/fields/flddat.cxx index 0e86e0307f1c..495d53dba382 100644 --- a/sw/source/core/fields/flddat.cxx +++ b/sw/source/core/fields/flddat.cxx @@ -33,7 +33,7 @@ // #include <math.h> #include <tools/datetime.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <com/sun/star/util/DateTime.hpp> #include <doc.hxx> #include <fldbas.hxx> diff --git a/sw/source/core/fields/flddropdown.cxx b/sw/source/core/fields/flddropdown.cxx index a8cd34834eac..258f78359f91 100644 --- a/sw/source/core/fields/flddropdown.cxx +++ b/sw/source/core/fields/flddropdown.cxx @@ -37,7 +37,7 @@ #include <algorithm> #define INCLUDED_ALGORITHM #endif -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #ifndef _UNOFLDMID_H #include <unofldmid.h> diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx index 372cf878f842..5952d0aba4ea 100644 --- a/sw/source/core/fields/reffld.cxx +++ b/sw/source/core/fields/reffld.cxx @@ -34,7 +34,7 @@ #define _SVSTDARR_USHORTSSORT #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <com/sun/star/text/ReferenceFieldPart.hpp> #include <com/sun/star/text/ReferenceFieldSource.hpp> #include <unotools/localedatawrapper.hxx> diff --git a/sw/source/core/fields/usrfld.cxx b/sw/source/core/fields/usrfld.cxx index 6a0b0e518147..9b9d888adb8b 100644 --- a/sw/source/core/fields/usrfld.cxx +++ b/sw/source/core/fields/usrfld.cxx @@ -32,8 +32,8 @@ #include "precompiled_sw.hxx" -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> #include <svx/svdmodel.hxx> diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx index ccd2d86e4531..c0986ef9185b 100644 --- a/sw/source/core/frmedt/fecopy.cxx +++ b/sw/source/core/frmedt/fecopy.cxx @@ -37,7 +37,7 @@ #include <vcl/graph.hxx> #include <sot/formats.hxx> #include <sot/storage.hxx> -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/viewsh.hxx> #include <svx/xexch.hxx> diff --git a/sw/source/core/frmedt/fedesc.cxx b/sw/source/core/frmedt/fedesc.cxx index e8e91ae37621..500fe108dc4b 100644 --- a/sw/source/core/frmedt/fedesc.cxx +++ b/sw/source/core/frmedt/fedesc.cxx @@ -70,7 +70,7 @@ USHORT SwFEShell::GetPageDescCnt() const void SwFEShell::ChgCurPageDesc( const SwPageDesc& rDesc ) { -#ifndef PRODUCT +#ifdef DBG_UTIL //Die SS veraendert keinen PageDesc, sondern setzt nur das Attribut. //Der Pagedesc muss im Dokument vorhanden sein! BOOL bFound = FALSE; diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx index 1b18dc178dae..a8a19c95f5ab 100644 --- a/sw/source/core/frmedt/fefly1.cxx +++ b/sw/source/core/frmedt/fefly1.cxx @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" #include <hintids.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svtools/imapobj.hxx> #include <svtools/soerr.hxx> #include <svx/protitem.hxx> @@ -218,7 +218,7 @@ sal_Bool lcl_ChkAndSetNewAnchor( const SwFlyFrm& rFly, SfxItemSet& rSet ) SwDoc* pDoc = (SwDoc*)rFmt.GetDoc(); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !(nNew == FLY_PAGE && (FLY_AT_CNTNT==nOld || FLY_AUTO_CNTNT==nOld || FLY_IN_CNTNT==nOld ) && pDoc->IsInHeaderFooter( rOldAnch.GetCntntAnchor()->nNode )), @@ -602,7 +602,7 @@ Point SwFEShell::FindAnchorPos( const Point& rAbsPos, sal_Bool bMoveIt ) SwRect aTmpRect( aRet, rAbsPos ); if( aTmpRect.HasArea() ) MakeVisible( aTmpRect ); -#ifndef PRODUCT +#ifdef DBG_UTIL //TODO: That doesn't seem to be intended if( Color(COL_TRANSPARENT) != GetOut()->GetLineColor() ) { diff --git a/sw/source/core/frmedt/feflyole.cxx b/sw/source/core/frmedt/feflyole.cxx index 71148c5dc018..69e0edf34b98 100644 --- a/sw/source/core/frmedt/feflyole.cxx +++ b/sw/source/core/frmedt/feflyole.cxx @@ -37,7 +37,7 @@ #endif #include <sfx2/viewsh.hxx> #include <sfx2/app.hxx> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <sfx2/viewfrm.hxx> #include <sot/exchange.hxx> diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 55fbb54bd718..ca89ce8665bc 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -33,9 +33,9 @@ #include <hintids.hxx> #include <vcl/salbtype.hxx> // FRound #include <tools/urlobj.hxx> -#include <svtools/undo.hxx> +#include <svl/undo.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif #include <svtools/imap.hxx> #include <svtools/filter.hxx> diff --git a/sw/source/core/inc/SwXTextDefaults.hxx b/sw/source/core/inc/SwXTextDefaults.hxx index 6fb301c40ab8..7fa3f3b934ed 100644 --- a/sw/source/core/inc/SwXTextDefaults.hxx +++ b/sw/source/core/inc/SwXTextDefaults.hxx @@ -36,7 +36,7 @@ #ifndef _COM_SUN_STAR_BEANS_XSERVICEINFO_HPP_ #include <com/sun/star/lang/XServiceInfo.hpp> #endif -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> class SwDoc; diff --git a/sw/source/core/inc/blink.hxx b/sw/source/core/inc/blink.hxx index 15c6b2d20099..59ce97ae34cf 100644 --- a/sw/source/core/inc/blink.hxx +++ b/sw/source/core/inc/blink.hxx @@ -37,7 +37,7 @@ class SwTxtFrm; #include <vcl/timer.hxx> #include <tools/gen.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SwBlinkPortion { diff --git a/sw/source/core/inc/dbg_lay.hxx b/sw/source/core/inc/dbg_lay.hxx index aa9d17b2ef1d..3cc41ef12a4c 100644 --- a/sw/source/core/inc/dbg_lay.hxx +++ b/sw/source/core/inc/dbg_lay.hxx @@ -66,7 +66,7 @@ #define SNAP_FLYFRAMES 0x00000002 #define SNAP_TABLECONT 0x00000004 -#ifndef PRODUCT +#ifdef DBG_UTIL #include "swtypes.hxx" diff --git a/sw/source/core/inc/dbgloop.hxx b/sw/source/core/inc/dbgloop.hxx index b45014d088e5..a655bbf26194 100644 --- a/sw/source/core/inc/dbgloop.hxx +++ b/sw/source/core/inc/dbgloop.hxx @@ -31,7 +31,7 @@ #ifndef _DBGLOOP_HXX #define _DBGLOOP_HXX -#ifndef PRODUCT +#ifdef DBG_UTIL #include <tools/solar.h> diff --git a/sw/source/core/inc/docsort.hxx b/sw/source/core/inc/docsort.hxx index 19ee562e0ed3..0f2cdc02c1e1 100644 --- a/sw/source/core/inc/docsort.hxx +++ b/sw/source/core/inc/docsort.hxx @@ -30,7 +30,7 @@ #ifndef _SORT_HXX #define _SORT_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <ndindex.hxx> diff --git a/sw/source/core/inc/doctxm.hxx b/sw/source/core/inc/doctxm.hxx index adaa950fcd9a..f8a0c3ff2402 100644 --- a/sw/source/core/inc/doctxm.hxx +++ b/sw/source/core/inc/doctxm.hxx @@ -31,7 +31,7 @@ #define _DOCTXM_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <tools/gen.hxx> #include <tox.hxx> #include <section.hxx> diff --git a/sw/source/core/inc/drawfont.hxx b/sw/source/core/inc/drawfont.hxx index 0c624b41f939..63b829c8fb85 100644 --- a/sw/source/core/inc/drawfont.hxx +++ b/sw/source/core/inc/drawfont.hxx @@ -97,7 +97,7 @@ class SwDrawTextInfo SwDrawTextInfo(); // nicht zulaessig public: -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bPos : 1; // These flags should control, that the appropriate BOOL bWrong : 1; // Set-function has been called before calling BOOL bGrammarCheck : 1; // the Get-function of a member @@ -160,7 +160,7 @@ public: bUpper = FALSE; bDrawSpace = FALSE; -#ifndef PRODUCT +#ifdef DBG_UTIL // these flags control, whether the matching member variables have // been set by using the Set-function before they may be accessed // by their Get-function: @@ -383,7 +383,7 @@ public: void SetPos( const Point &rNew ) { pPos = &rNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bPos = TRUE; #endif } @@ -391,7 +391,7 @@ public: void SetHyphPos( xub_StrLen *pNew ) { pHyphPos = pNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bHyph = TRUE; #endif } @@ -404,7 +404,7 @@ public: void SetWrong( const SwWrongList* pNew ) { pWrong = pNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bWrong = TRUE; #endif } @@ -412,7 +412,7 @@ public: void SetGrammarCheck( const SwWrongList* pNew ) { pGrammarCheck = pNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bGrammarCheck = TRUE; #endif } @@ -425,7 +425,7 @@ public: void SetSize( const Size &rNew ) { pSize = &rNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bSize = TRUE; #endif } @@ -433,7 +433,7 @@ public: void SetFont( SwFont* pNew ) { pFnt = pNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bFnt = TRUE; #endif } @@ -451,7 +451,7 @@ public: void SetOfst( xub_StrLen nNew ) { nOfst = nNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bOfst = TRUE; #endif } @@ -459,7 +459,7 @@ public: void SetLeft( long nNew ) { nLeft = nNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bLeft = TRUE; #endif } @@ -467,7 +467,7 @@ public: void SetRight( long nNew ) { nRight = nNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bRight = TRUE; #endif } @@ -475,7 +475,7 @@ public: void SetKanaDiff( long nNew ) { nKanaDiff = nNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bKana = TRUE; #endif } @@ -488,7 +488,7 @@ public: void SetAscent( USHORT nNew ) { nAscent = nNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bAscent = TRUE; #endif } @@ -510,7 +510,7 @@ public: nSpace = nNew; nSperren = 0; } -#ifndef PRODUCT +#ifdef DBG_UTIL bSpace = TRUE; bSperr = TRUE; #endif @@ -518,7 +518,7 @@ public: void SetNumberOfBlanks( xub_StrLen nNew ) { -#ifndef PRODUCT +#ifdef DBG_UTIL bNumberOfBlanks = TRUE; #endif nNumberOfBlanks = nNew; @@ -547,7 +547,7 @@ public: void SetUpper( BOOL bNew ) { bUpper = bNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bUppr = TRUE; #endif } @@ -555,7 +555,7 @@ public: void SetDrawSpace( BOOL bNew ) { bDrawSpace = bNew; -#ifndef PRODUCT +#ifdef DBG_UTIL bDrawSp = TRUE; #endif } diff --git a/sw/source/core/inc/flyfrm.hxx b/sw/source/core/inc/flyfrm.hxx index 031b93e7ce21..65dc532f4667 100644 --- a/sw/source/core/inc/flyfrm.hxx +++ b/sw/source/core/inc/flyfrm.hxx @@ -168,7 +168,7 @@ public: virtual void CheckDirection( BOOL bVert ); virtual void Cut(); -#ifndef PRODUCT +#ifdef DBG_UTIL virtual void Paste( SwFrm* pParent, SwFrm* pSibling = 0 ); #endif diff --git a/sw/source/core/inc/fntcache.hxx b/sw/source/core/inc/fntcache.hxx index 5b1dff0a52cb..de68dc28f6c5 100644 --- a/sw/source/core/inc/fntcache.hxx +++ b/sw/source/core/inc/fntcache.hxx @@ -54,7 +54,7 @@ class SwFntCache : public SwCache public: inline SwFntCache() : SwCache(50,50 -#ifndef PRODUCT +#ifdef DBG_UTIL , ByteString( RTL_CONSTASCII_STRINGPARAM( "Globaler Font-Cache pFntCache" )) #endif diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx index 1fe6e00af3e5..aa56e2db55d9 100644 --- a/sw/source/core/inc/frame.hxx +++ b/sw/source/core/inc/frame.hxx @@ -29,7 +29,7 @@ ************************************************************************/ #ifndef _FRAME_HXX #define _FRAME_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swtypes.hxx" // fuer SwTwips #include "swrect.hxx" #include "calbck.hxx" // fuer SwClient diff --git a/sw/source/core/inc/ftnfrm.hxx b/sw/source/core/inc/ftnfrm.hxx index ee8d2a56d0d1..d135786ee683 100644 --- a/sw/source/core/inc/ftnfrm.hxx +++ b/sw/source/core/inc/ftnfrm.hxx @@ -74,7 +74,7 @@ class SwFtnFrm: public SwLayoutFrm // --> OD 2005-05-18 #i49383# - control unlock of position of lower anchored objects. bool mbUnlockPosOfLowerObjs : 1; // <-- -#ifndef PRODUCT +#ifdef DBG_UTIL protected: virtual SwTwips ShrinkFrm( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); virtual SwTwips GrowFrm ( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); @@ -89,7 +89,7 @@ public: BOOL operator<( const SwTxtFtn* pTxtFtn ) const; -#ifdef PRODUCT +#ifndef DBG_UTIL const SwCntntFrm *GetRef() const { return pRef; } SwCntntFrm *GetRef() { return pRef; } #else diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx index 49edc1d28d53..ad4c7730d07c 100644 --- a/sw/source/core/inc/layact.hxx +++ b/sw/source/core/inc/layact.hxx @@ -218,13 +218,13 @@ class SwLayIdle BOOL bPageValid; // Konnte die Seite alles validiert werden? BOOL bAllValid; // Konnte alles validiert werden? -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bIndicator; #endif #ifdef _LAYACT_CXX -#ifndef PRODUCT +#ifdef DBG_UTIL void ShowIdle( ColorData eName ); #endif diff --git a/sw/source/core/inc/laycache.hxx b/sw/source/core/inc/laycache.hxx index 339b0cd5bdfc..336d68083566 100644 --- a/sw/source/core/inc/laycache.hxx +++ b/sw/source/core/inc/laycache.hxx @@ -72,7 +72,7 @@ public: return pImpl; } void UnlockImpl() { --nLockCount; } -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool CompareLayout( const SwDoc& rDoc ) const; #endif }; diff --git a/sw/source/core/inc/mvsave.hxx b/sw/source/core/inc/mvsave.hxx index 6cbdd743761d..bdeb9ca256c5 100644 --- a/sw/source/core/inc/mvsave.hxx +++ b/sw/source/core/inc/mvsave.hxx @@ -35,7 +35,7 @@ #ifndef _KEYCOD_HXX //autogen #include <vcl/keycod.hxx> #endif -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <IDocumentMarkAccess.hxx> #include <vector> diff --git a/sw/source/core/inc/noteurl.hxx b/sw/source/core/inc/noteurl.hxx index bc98e5f8c37d..3dd87375b7f8 100644 --- a/sw/source/core/inc/noteurl.hxx +++ b/sw/source/core/inc/noteurl.hxx @@ -32,7 +32,7 @@ #define _NOTEURL_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <tools/string.hxx> #include "swrect.hxx" diff --git a/sw/source/core/inc/pagefrm.hxx b/sw/source/core/inc/pagefrm.hxx index 09c19c7d69fd..a16dbb365b0f 100644 --- a/sw/source/core/inc/pagefrm.hxx +++ b/sw/source/core/inc/pagefrm.hxx @@ -31,7 +31,7 @@ #define _PAGEFRM_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "ftnboss.hxx" #include <tools/mempool.hxx> diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx index 7e9b0eeb61d9..fd7f97dcb5b3 100644 --- a/sw/source/core/inc/rootfrm.hxx +++ b/sw/source/core/inc/rootfrm.hxx @@ -203,7 +203,7 @@ public: virtual void Paint( const SwRect&, const SwPrtOptions *pPrintData = NULL ) const; virtual SwTwips ShrinkFrm( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); virtual SwTwips GrowFrm ( SwTwips, BOOL bTst = FALSE, BOOL bInfo = FALSE ); -#ifndef PRODUCT +#ifdef DBG_UTIL virtual void Cut(); virtual void Paste( SwFrm* pParent, SwFrm* pSibling = 0 ); #endif @@ -313,7 +313,7 @@ public: void InsertEmptySct( SwSectionFrm* pDel ); void DeleteEmptySct() { if( pDestroy ) _DeleteEmptySct(); } void RemoveFromList( SwSectionFrm* pSct ) { if( pDestroy ) _RemoveFromList( pSct ); } -#ifndef PRODUCT +#ifdef DBG_UTIL // Wird zur Zeit nur fuer ASSERTs benutzt: BOOL IsInDelList( SwSectionFrm* pSct ) const; // Ist der SectionFrm in der Liste enthalten? #endif diff --git a/sw/source/core/inc/scriptinfo.hxx b/sw/source/core/inc/scriptinfo.hxx index 39dded3d3257..7564b5fba15a 100644 --- a/sw/source/core/inc/scriptinfo.hxx +++ b/sw/source/core/inc/scriptinfo.hxx @@ -34,7 +34,7 @@ #define _SVSTDARR_BYTES #define _SVSTDARR_USHORTS #define _SVSTDARR_XUB_STRLEN -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <i18npool/lang.h> #include <list> diff --git a/sw/source/core/inc/scrrect.hxx b/sw/source/core/inc/scrrect.hxx index 433ca1f180a2..f5e987617c0b 100644 --- a/sw/source/core/inc/scrrect.hxx +++ b/sw/source/core/inc/scrrect.hxx @@ -30,7 +30,7 @@ #ifndef _SCRRECT_HXX #define _SCRRECT_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swrect.hxx" #include <swtypes.hxx> diff --git a/sw/source/core/inc/swblocks.hxx b/sw/source/core/inc/swblocks.hxx index 6fcf0a9a625d..5ebc2e7e128f 100644 --- a/sw/source/core/inc/swblocks.hxx +++ b/sw/source/core/inc/swblocks.hxx @@ -35,7 +35,7 @@ #ifndef _DATE_HXX //autogen #include <tools/datetime.hxx> #endif -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SfxMedium; diff --git a/sw/source/core/inc/swcache.hxx b/sw/source/core/inc/swcache.hxx index c2348483a49a..c225e1d47d83 100644 --- a/sw/source/core/inc/swcache.hxx +++ b/sw/source/core/inc/swcache.hxx @@ -60,7 +60,7 @@ * */ -#ifndef PRODUCT +#ifdef DBG_UTIL #ifndef _STRING_HXX //autogen #include <tools/string.hxx> #endif @@ -68,7 +68,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif class SwCacheObj; @@ -94,7 +94,7 @@ class SwCache : public SwCacheObjArr void DeleteObj( SwCacheObj *pObj ); -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aName; long nAppend; //Anzahl der Eintragungen durch Erweiterung. long nInsertFree; //Anzahl der Eintragungen auf freie Plaetze. @@ -116,7 +116,7 @@ class SwCache : public SwCacheObjArr public: //nur BYTE hineinstecken!!! -#ifndef PRODUCT +#ifdef DBG_UTIL SwCache( const USHORT nInitSize, const USHORT nGrowSize, const ByteString &rNm ); ~SwCache(); @@ -197,7 +197,7 @@ public: inline BOOL IsLocked() const { return 0 != nLock; } -#ifdef PRODUCT +#ifndef DBG_UTIL inline void Lock() { ++nLock; } inline void Unlock() { --nLock; } #else @@ -249,7 +249,7 @@ public: inline void SwCache::IncreaseMax( const USHORT nAdd ) { nCurMax = nCurMax + sal::static_int_cast< USHORT >(nAdd); -#ifndef PRODUCT +#ifdef DBG_UTIL ++nIncreaseMax; #endif } @@ -257,7 +257,7 @@ inline void SwCache::DecreaseMax( const USHORT nSub ) { if ( nCurMax > nSub ) nCurMax = nCurMax - sal::static_int_cast< USHORT >(nSub); -#ifndef PRODUCT +#ifdef DBG_UTIL ++nDecreaseMax; #endif } diff --git a/sw/source/core/inc/swfntcch.hxx b/sw/source/core/inc/swfntcch.hxx index bad28cd2a6a0..1b1fd47db7b3 100644 --- a/sw/source/core/inc/swfntcch.hxx +++ b/sw/source/core/inc/swfntcch.hxx @@ -49,7 +49,7 @@ class SwFontCache : public SwCache public: inline SwFontCache() : SwCache(50,50 -#ifndef PRODUCT +#ifdef DBG_UTIL , "Globaler AttributSet/Font-Cache pSwFontCache" #endif ) {} diff --git a/sw/source/core/inc/swfont.hxx b/sw/source/core/inc/swfont.hxx index 7cb8c80b305d..110ed4e4db2c 100644 --- a/sw/source/core/inc/swfont.hxx +++ b/sw/source/core/inc/swfont.hxx @@ -848,7 +848,7 @@ public: * class SvStatistics *************************************************************************/ -#ifdef PRODUCT +#ifndef DBG_UTIL #define SV_STAT(nWhich) #else diff --git a/sw/source/core/inc/swthreadmanager.hxx b/sw/source/core/inc/swthreadmanager.hxx index a8a0de5d0d4e..e3d08955433b 100644 --- a/sw/source/core/inc/swthreadmanager.hxx +++ b/sw/source/core/inc/swthreadmanager.hxx @@ -34,6 +34,10 @@ #include <osl/mutex.hxx> #include <rtl/ref.hxx> +#include <boost/utility.hpp> +#include <memory> + + class ObservableThread; class ThreadManager; @@ -45,6 +49,7 @@ class ThreadManager; @author OD */ class SwThreadManager + : private ::boost::noncopyable { public: @@ -52,6 +57,9 @@ class SwThreadManager static bool ExistsThreadManager(); + // private: don't call! + SwThreadManager(); + // private: don't call! ~SwThreadManager(); oslInterlockedCount AddThread( const rtl::Reference< ObservableThread >& rThread ); @@ -76,12 +84,9 @@ class SwThreadManager bool StartingOfThreadsSuspended(); private: - static SwThreadManager* mpThreadManager; - static osl::Mutex* mpGetManagerMutex; + static bool mbThreadManagerInstantiated; - ThreadManager* mpThreadManagerImpl; - - SwThreadManager(); + ::std::auto_ptr<ThreadManager> mpThreadManagerImpl; }; #endif diff --git a/sw/source/core/inc/tblrwcl.hxx b/sw/source/core/inc/tblrwcl.hxx index b9a614455edf..529bfbdb575f 100644 --- a/sw/source/core/inc/tblrwcl.hxx +++ b/sw/source/core/inc/tblrwcl.hxx @@ -31,7 +31,7 @@ #define _TBLRWCL_HXX #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <vector> #include <swtypes.hxx> @@ -69,7 +69,7 @@ BOOL lcl_BoxSetHeadCondColl( const SwTableBox*& rpBox, void* pPara ); BOOL lcl_LineSetHeadCondColl( const SwTableLine*& rpLine, void* pPara ); -#ifndef PRODUCT +#ifdef DBG_UTIL void _CheckBoxWidth( const SwTableLine& rLine, SwTwips nSize ); #endif diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx index bdfdf3efde74..dc91b188e439 100644 --- a/sw/source/core/inc/txtfrm.hxx +++ b/sw/source/core/inc/txtfrm.hxx @@ -405,7 +405,7 @@ public: inline sal_Bool IsSwapped() const { return bIsSwapped; } // Hat der Frm eine lokale Fussnote (in diesem Frm bzw. Follow)? -#ifdef PRODUCT +#ifndef DBG_UTIL void CalcFtnFlag(); #else void CalcFtnFlag( xub_StrLen nStop = STRING_LEN );//Fuer den Test von SplitFrm diff --git a/sw/source/core/inc/visiturl.hxx b/sw/source/core/inc/visiturl.hxx index e2a1ef147c7b..f63b537fd81b 100644 --- a/sw/source/core/inc/visiturl.hxx +++ b/sw/source/core/inc/visiturl.hxx @@ -33,7 +33,7 @@ -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> class SwDoc; class SwURLStateChanged : public SfxListener diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx index 7601f4ae370d..5560a5c07309 100644 --- a/sw/source/core/layout/atrfrm.cxx +++ b/sw/source/core/layout/atrfrm.cxx @@ -127,7 +127,7 @@ // --> OD 2006-03-06 #125892# #include <HandleAnchorNodeChg.hxx> // <-- -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> using namespace ::com::sun::star; using ::rtl::OUString; @@ -691,7 +691,7 @@ void SwFmtPageDesc::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ) //mich also bei meinem Format aus. //Dabei werden ich Deletet!!! if( IS_TYPE( SwFmt, pDefinedIn )) -#ifndef PRODUCT +#ifdef DBG_UTIL { sal_Bool bDel = ((SwFmt*)pDefinedIn)->ResetFmtAttr( RES_PAGEDESC ); ASSERT( bDel, ";-) FmtPageDesc nicht zerstoert." ); @@ -700,7 +700,7 @@ void SwFmtPageDesc::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ) ((SwFmt*)pDefinedIn)->ResetFmtAttr( RES_PAGEDESC ); #endif else if( IS_TYPE( SwCntntNode, pDefinedIn )) -#ifndef PRODUCT +#ifdef DBG_UTIL { sal_Bool bDel = ((SwCntntNode*)pDefinedIn)->ResetAttr( RES_PAGEDESC ); ASSERT( bDel, ";-) FmtPageDesc nicht zerstoert." ); diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx index b24ee7fd78b1..9648eb12dabf 100644 --- a/sw/source/core/layout/calcmove.cxx +++ b/sw/source/core/layout/calcmove.cxx @@ -851,7 +851,7 @@ void SwPageFrm::MakeAll() if ( Frm() != aOldRect && GetUpper() ) static_cast<SwRootFrm*>(GetUpper())->CheckViewLayout( 0, 0 ); -#ifndef PRODUCT +#ifdef DBG_UTIL //Der Upper (Root) muss mindestens so breit //sein, dass er die breiteste Seite aufnehmen kann. if ( GetUpper() ) @@ -1139,7 +1139,7 @@ void SwCntntFrm::MakeAll() // <-- PROTOCOL_ENTER( this, PROT_MAKEALL, 0, 0 ) -#ifndef PRODUCT +#ifdef DBG_UTIL const SwDoc *pDoc = GetAttrSet()->GetDoc(); if( pDoc ) { @@ -1695,7 +1695,7 @@ void SwCntntFrm::MakeAll() ( !bSct || !FindSctFrm()->IsColLocked() ) ) bMoveOrFit = TRUE; } -#ifndef PRODUCT +#ifdef DBG_UTIL else { ASSERT( FALSE, "+TxtFrm hat WouldFit-Versprechen nicht eingehalten." ); diff --git a/sw/source/core/layout/dbg_lay.cxx b/sw/source/core/layout/dbg_lay.cxx index 5eeaef485d29..0dabddec6b5f 100644 --- a/sw/source/core/layout/dbg_lay.cxx +++ b/sw/source/core/layout/dbg_lay.cxx @@ -106,7 +106,7 @@ * * --------------------------------------------------*/ -#ifdef PRODUCT +#ifndef DBG_UTIL #error Wer fummelt denn an den makefiles rum? #endif @@ -119,7 +119,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT #define _SVSTDARR_LONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <stdio.h> @@ -139,7 +139,7 @@ SwImplProtocol* SwProtocol::pImpl = NULL; ULONG lcl_GetFrameId( const SwFrm* pFrm ) { -#ifndef PRODUCT +#ifdef DBG_UTIL static BOOL bFrameId = FALSE; if( bFrameId ) return pFrm->GetFrmId(); diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 9ce3bc237db4..a528f252ecb2 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" #include "hintids.hxx" -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svtools/imap.hxx> #ifndef _GRAPH_HXX //autogen #include <vcl/graph.hxx> diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx index 252ea3298531..aff881499c3b 100644 --- a/sw/source/core/layout/flylay.cxx +++ b/sw/source/core/layout/flylay.cxx @@ -277,7 +277,7 @@ void SwFlyFreeFrm::MakeAll() } Unlock(); -#ifndef PRODUCT +#ifdef DBG_UTIL SWRECTFN( this ) ASSERT( bHeightClipped || ( (Frm().*fnRect->fnGetHeight)() > 0 && (Prt().*fnRect->fnGetHeight)() > 0), @@ -966,7 +966,7 @@ void SwPageFrm::AppendDrawObjToPage( SwAnchoredObject& _rNewObj ) } if ( !pSortedObjs->Insert( _rNewObj ) ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pSortedObjs->Contains( _rNewObj ), "Drawing object not appended into list <pSortedObjs>." ); #endif diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index f7fa2a0a8e80..648ec971c7a0 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1690,7 +1690,7 @@ void MA_FASTCALL _InsertCnt( SwLayoutFrm *pLay, SwDoc *pDoc, delete pPageMaker; if( pDoc->GetLayoutCache() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL #if OSL_DEBUG_LEVEL > 1 pDoc->GetLayoutCache()->CompareLayout( *pDoc ); #endif diff --git a/sw/source/core/layout/ftnfrm.cxx b/sw/source/core/layout/ftnfrm.cxx index 73fdfaabe570..f73457ae5565 100644 --- a/sw/source/core/layout/ftnfrm.cxx +++ b/sw/source/core/layout/ftnfrm.cxx @@ -356,7 +356,7 @@ SwTwips SwFtnContFrm::GrowFrm( SwTwips nDist, BOOL bTst, BOOL ) //moeglich. //Wenn die Seite eine spezielle Fussnotenseite ist, so nehmen wir uns auch //soviel Platz wie eben moeglich. -#ifndef PRODUCT +#ifdef DBG_UTIL if ( !GetUpper() || !GetUpper()->IsFtnBossFrm() ) { ASSERT( !this, "Keine FtnBoss." ); return 0; @@ -562,7 +562,7 @@ void SwFtnFrm::InvalidateNxtFtnCnts( SwPageFrm *pPage ) } } -#ifndef PRODUCT +#ifdef DBG_UTIL SwTwips SwFtnFrm::GrowFrm( SwTwips nDist, BOOL bTst, BOOL bInfo ) { @@ -711,7 +711,7 @@ void SwFtnFrm::Paste( SwFrm* pParent, SwFrm* pSibling ) pDel->Cut(); delete pDel; } -#ifndef PRODUCT +#ifdef DBG_UTIL SwDoc *pDoc = GetFmt()->GetDoc(); if ( GetPrev() ) { @@ -1142,7 +1142,7 @@ SwFtnContFrm *SwFtnBossFrm::MakeFtnCont() //immer direkt hinter dem Bodytext. //Sein FrmFmt ist immer das DefaultFrmFmt. -#ifndef PRODUCT +#ifdef DBG_UTIL if ( FindFtnCont() ) { ASSERT( !this, "Fussnotencontainer bereits vorhanden." ); return 0; @@ -1171,7 +1171,7 @@ SwFtnContFrm *SwFtnBossFrm::FindFtnCont() while( pFrm && !pFrm->IsFtnContFrm() ) pFrm = pFrm->GetNext(); -#ifndef PRODUCT +#ifdef DBG_UTIL if ( pFrm ) { SwFrm *pFtn = pFrm->GetLower(); @@ -1416,7 +1416,7 @@ void SwFtnBossFrm::ResetFtn( const SwFtnFrm *pCheck ) void SwFtnBossFrm::InsertFtn( SwFtnFrm* pNew ) { -#if (OSL_DEBUG_LEVEL > 1) && !defined(PRODUCT) +#if (OSL_DEBUG_LEVEL > 1) && defined(DBG_UTIL) static USHORT nStop = 0; if ( nStop == pNew->GetFrmId() ) { @@ -3278,7 +3278,7 @@ SwSaveFtnHeight::~SwSaveFtnHeight() } -#ifndef PRODUCT +#ifdef DBG_UTIL //JP 15.10.2001: in a non pro version test if the attribute has the same // meaning which his reference is diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index fb365e4a5116..18d03bb167d0 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -69,7 +69,7 @@ #include <SwSmartTagMgr.hxx> #define _SVSTDARR_BOOLS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #define _LAYACT_CXX #include "layact.hxx" @@ -116,7 +116,7 @@ //Sparen von Schreibarbeit um den Zugriff auf zerstoerte Seiten zu vermeiden. -#ifndef PRODUCT +#ifdef DBG_UTIL static void BreakPoint() { @@ -2808,7 +2808,7 @@ BOOL SwLayIdle::DoIdleJob( IdleJobType eJob, BOOL bVisAreaOnly ) } -#ifndef PRODUCT +#ifdef DBG_UTIL #if OSL_DEBUG_LEVEL > 1 /************************************************************************* @@ -2857,7 +2857,7 @@ void SwLayIdle::ShowIdle( ColorData eColorData ) SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewImp *pI ) : pRoot( pRt ), pImp( pI ) -#ifndef PRODUCT +#ifdef DBG_UTIL #if OSL_DEBUG_LEVEL > 1 , bIndicator( FALSE ) #endif @@ -3041,7 +3041,7 @@ SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewImp *pI ) : if( pImp->IsAccessible() ) pImp->FireAccessibleEvents(); -#ifndef PRODUCT +#ifdef DBG_UTIL #if OSL_DEBUG_LEVEL > 1 if ( bIndicator && pImp->GetShell()->GetWin() ) { diff --git a/sw/source/core/layout/laycache.cxx b/sw/source/core/layout/laycache.cxx index 56995fcfcb26..32c7ea0f54a4 100644 --- a/sw/source/core/layout/laycache.cxx +++ b/sw/source/core/layout/laycache.cxx @@ -348,7 +348,7 @@ void SwLayoutCache::Write( SvStream &rStream, const SwDoc& rDoc ) } } -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool SwLayoutCache::CompareLayout( const SwDoc& rDoc ) const { sal_Bool bRet = sal_True; diff --git a/sw/source/core/layout/layhelp.hxx b/sw/source/core/layout/layhelp.hxx index 91e5379228d8..8d53429e395b 100644 --- a/sw/source/core/layout/layhelp.hxx +++ b/sw/source/core/layout/layhelp.hxx @@ -34,7 +34,7 @@ #define _SVSTDARR_ULONGS #define _SVSTDARR_BYTES #define _SVSTDARR_XUB_STRLEN -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <swrect.hxx> diff --git a/sw/source/core/layout/layouter.cxx b/sw/source/core/layout/layouter.cxx index 1afbe6632d4b..f9a75f01f008 100644 --- a/sw/source/core/layout/layouter.cxx +++ b/sw/source/core/layout/layouter.cxx @@ -201,7 +201,7 @@ void SwLooping::Control( SwPageFrm* pPage ) } else if( ++nCount > LOOP_DETECT ) { -#ifndef PRODUCT +#ifdef DBG_UTIL #if OSL_DEBUG_LEVEL > 1 static BOOL bNoLouie = FALSE; if( bNoLouie ) diff --git a/sw/source/core/layout/makefile.mk b/sw/source/core/layout/makefile.mk index e2e8a2c282e8..234ee77c5586 100644 --- a/sw/source/core/layout/makefile.mk +++ b/sw/source/core/layout/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -105,12 +105,10 @@ SLOFILES = \ $(SLO)$/virtoutp.obj \ $(SLO)$/wsfrm.obj -.IF "$(product)"=="" -.IF "$(cap)"=="" +.IF "$(dbgutil)"!="" SLOFILES += \ $(SLO)$/dbg_lay.obj .ENDIF -.ENDIF # --- Targets ------------------------------------------------------- diff --git a/sw/source/core/layout/newfrm.cxx b/sw/source/core/layout/newfrm.cxx index 82a1ad0690ac..a3e94a8e0f15 100644 --- a/sw/source/core/layout/newfrm.cxx +++ b/sw/source/core/layout/newfrm.cxx @@ -311,7 +311,7 @@ void _FrmInit() { SwRootFrm::pVout = new SwLayVout(); SwCache *pNew = new SwCache( 100, 100 -#ifndef PRODUCT +#ifdef DBG_UTIL , "static SwBorderAttrs::pCache" #endif ); @@ -322,7 +322,7 @@ void _FrmInit() void _FrmFinit() { -#ifndef PRODUCT +#ifdef DBG_UTIL // im Chache duerfen nur noch 0-Pointer stehen for( USHORT n = SwFrm::GetCachePtr()->Count(); n; ) if( (*SwFrm::GetCachePtr())[ --n ] ) diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx index b73f8b4d1eeb..927308ed3c28 100644 --- a/sw/source/core/layout/pagechg.cxx +++ b/sw/source/core/layout/pagechg.cxx @@ -34,7 +34,7 @@ #include <com/sun/star/embed/EmbedStates.hpp> #include <ndole.hxx> #include <docary.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <fmtfsize.hxx> #include <fmthdft.hxx> #include <fmtclds.hxx> @@ -1196,7 +1196,7 @@ void SwFrm::CheckPageDescs( SwPageFrm *pStart, BOOL bNotifyFields ) if ( pPage->GetFmt() != pFmtWish ) pPage->SetFrmFmt( pFmtWish ); } -#ifndef PRODUCT +#ifdef DBG_UTIL else { ASSERT( FALSE, "CheckPageDescs, missing solution" ); @@ -1239,7 +1239,7 @@ void SwFrm::CheckPageDescs( SwPageFrm *pStart, BOOL bNotifyFields ) pDoc->UpdatePageFlds( &aMsgHnt ); } -#ifndef PRODUCT +#ifdef DBG_UTIL //Ein paar Pruefungen muessen schon erlaubt sein. //1. Keine zwei EmptyPages hintereinander. @@ -1670,7 +1670,7 @@ void SwRootFrm::AssertPageFlys( SwPageFrm *pPage ) { //Umhaengen kann er sich selbst, indem wir ihm //einfach ein Modify mit seinem AnkerAttr schicken. -#ifdef PRODUCT +#ifndef DBG_UTIL rFmt.SwModify::Modify( 0, (SwFmtAnchor*)&rAnch ); #else const sal_uInt32 nCnt = pPage->GetSortedObjs()->Count(); diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 94bafc442117..96e775b93d7c 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -41,7 +41,7 @@ #endif #include <tools/poly.hxx> #define _SVSTDARR_LONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/xoutbmp.hxx> #include <sfx2/progress.hxx> #include <svx/brshitem.hxx> @@ -1366,7 +1366,7 @@ void MA_FASTCALL lcl_SubtractFlys( const SwFrm *pFrm, const SwPageFrm *pPage, continue; -#ifndef PRODUCT +#ifdef DBG_UTIL //Flys, die innerhalb des eigenen verankert sind, muessen eine //groessere OrdNum haben oder Zeichengebunden sein. if ( pSelfFly && bLowerOfSelf ) @@ -2052,7 +2052,7 @@ void lcl_AdjustRectToPixelSize( SwRect& io_aSwRect, const OutputDevice &aOut ) io_aSwRect = SwRect( aSizedRect ); -#ifndef PRODUCT +#ifdef DBG_UTIL Rectangle aTestOrgPxRect = aOut.LogicToPixel( io_aSwRect.SVRect() ); Rectangle aTestNewPxRect = aOut.LogicToPixel( aSizedRect ); ASSERT( aTestOrgPxRect == aTestNewPxRect, diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx index e6275cb5481a..96294b27d1ca 100644 --- a/sw/source/core/layout/sectfrm.cxx +++ b/sw/source/core/layout/sectfrm.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <hints.hxx> #include <txtftn.hxx> #include <fmtftn.hxx> @@ -1160,6 +1160,10 @@ void SwSectionFrm::SimpleFormat() SWRECTFN( this ) if( GetPrev() || GetUpper() ) { + // --> OD 2009-09-28 #b6882166# + // assure notifications on position changes. + const SwLayNotify aNotify( this ); + // <-- (this->*fnRect->fnMakePos)( GetUpper(), GetPrev(), FALSE ); bValidPos = TRUE; } @@ -2777,7 +2781,7 @@ void SwRootFrm::_RemoveFromList( SwSectionFrm* pSct ) pDestroy->Remove( nPos ); } -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL SwRootFrm::IsInDelList( SwSectionFrm* pSct ) const { diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx index 1efe4c723e7b..4d854cd80273 100644 --- a/sw/source/core/layout/ssfrm.cxx +++ b/sw/source/core/layout/ssfrm.cxx @@ -411,7 +411,7 @@ SwFrm::~SwFrm() delete pDrawObjs; } -#ifndef PRODUCT +#ifdef DBG_UTIL // JP 15.10.2001: for detection of access to deleted frames pDrawObjs = (SwSortedObjs*)0x33333333; #endif diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index f2a507bbd764..61f08281e5f9 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -48,7 +48,7 @@ #include "dbg_lay.hxx" #include <ftnidx.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <docary.hxx> #include <svx/keepitem.hxx> #include <svx/ulspitem.hxx> @@ -3650,7 +3650,7 @@ SwCntntFrm *SwTabFrm::FindLastCntnt() // Spalten abklappern, dies erledigt SwSectionFrm::FindLastCntnt if( pRet->IsColBodyFrm() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL SwSectionFrm* pSect = pRet->FindSctFrm(); ASSERT( pSect, "Wo kommt denn die Spalte her?") ASSERT( IsAnLower( pSect ), "Gespaltene Zelle?" ); @@ -4617,7 +4617,7 @@ void SwRowFrm::Format( const SwBorderAttrs *pAttrs ) { bValidSize = TRUE; -#ifndef PRODUCT +#ifdef DBG_UTIL if ( HasFixSize() ) { const SwFmtFrmSize &rFrmSize = GetFmt()->GetFrmSize(); diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx index 4cbb6ffaa7b8..73f2b4d7fc42 100644 --- a/sw/source/core/layout/trvlfrm.cxx +++ b/sw/source/core/layout/trvlfrm.cxx @@ -1286,7 +1286,7 @@ const SwCntntFrm *SwLayoutFrm::GetCntntPos( Point& rPoint, break; } -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pActual, "Keinen Cntnt gefunden." ); if ( bBodyOnly ) ASSERT( pActual->IsInDocBody(), "Cnt nicht im Body." ); diff --git a/sw/source/core/layout/unusedf.cxx b/sw/source/core/layout/unusedf.cxx index 5eb230f0b3ba..bbbf10a0901f 100644 --- a/sw/source/core/layout/unusedf.cxx +++ b/sw/source/core/layout/unusedf.cxx @@ -67,7 +67,7 @@ BOOL SwFrm::GetCrsrOfst( SwPosition *, Point&, SwCrsrMoveState* ) const return FALSE; } -#ifndef PRODUCT +#ifdef DBG_UTIL void SwRootFrm::Cut() { diff --git a/sw/source/core/layout/virtoutp.cxx b/sw/source/core/layout/virtoutp.cxx index b27b505acf8f..a8b6b2aedad1 100644 --- a/sw/source/core/layout/virtoutp.cxx +++ b/sw/source/core/layout/virtoutp.cxx @@ -42,7 +42,7 @@ // OD 12.11.2002 #96272# - include declaration for <SetMappingForVirtDev> #include "setmapvirtdev.hxx" -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * class DbgRect @@ -186,7 +186,7 @@ void SwLayVout::Enter( ViewShell *pShell, SwRect &rRect, BOOL bOn ) { Flush(); -#ifndef PRODUCT +#ifdef DBG_UTIL if( pShell->GetViewOptions()->IsTest3() ) { ++nCount; diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx index af97063da6e3..4bf0ba0860a5 100644 --- a/sw/source/core/layout/wsfrm.cxx +++ b/sw/source/core/layout/wsfrm.cxx @@ -38,7 +38,7 @@ #ifndef _OUTDEV_HXX #include <vcl/outdev.hxx> #endif -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/brshitem.hxx> #include <svx/keepitem.hxx> #include <svx/brkitem.hxx> @@ -102,7 +102,7 @@ SwFrm::SwFrm( SwModify *pMod ) : pPrev( 0 ), pDrawObjs( 0 ) { -#ifndef PRODUCT +#ifdef DBG_UTIL bFlag01 = bFlag02 = bFlag03 = bFlag04 = bFlag05 = 0; #endif @@ -3866,7 +3866,7 @@ void lcl_InvalidateCntnt( SwCntntFrm *pCnt, BYTE nInv ) if( pLastSctCnt == pCnt ) pLastSctCnt = NULL; } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !pLastSctCnt, "Where's the last SctCntnt?" ); #endif @@ -3894,7 +3894,7 @@ void lcl_InvalidateCntnt( SwCntntFrm *pCnt, BYTE nInv ) pLastSctCnt = NULL; } } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !pLastTabCnt, "Where's the last TabCntnt?" ); #endif diff --git a/sw/source/core/makefile.mk b/sw/source/core/makefile.mk index d9ea1102e375..d87e67b21863 100644 --- a/sw/source/core/makefile.mk +++ b/sw/source/core/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -73,7 +73,7 @@ SUBLIBS3= \ $(SLB)$/SwNumberTree.lib \ $(SLB)$/tablecore.lib -.IF "$(PRODUCT)" == "" +.IF "$(dbgutil)"!="" SUBLIBS3+= \ $(SLB)$/except.lib .ENDIF diff --git a/sw/source/core/sw3io/sw3convert.cxx b/sw/source/core/sw3io/sw3convert.cxx index 5dea22089355..e22f66175aa6 100644 --- a/sw/source/core/sw3io/sw3convert.cxx +++ b/sw/source/core/sw3io/sw3convert.cxx @@ -38,15 +38,15 @@ #include <stdio.h> #include "hintids.hxx" #include <tools/resid.hxx> -#include <svtools/macitem.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> -#include <svtools/urihelper.hxx> +#include <svl/macitem.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> +#include <svl/urihelper.hxx> #include <sfx2/linkmgr.hxx> #ifndef _SVSTDARR_USHORTS_DECL #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <svx/lrspitem.hxx> #include <svx/tstpitem.hxx> diff --git a/sw/source/core/swg/SwXMLSectionList.cxx b/sw/source/core/swg/SwXMLSectionList.cxx index 33acd99f8760..36a501c482a7 100644 --- a/sw/source/core/swg/SwXMLSectionList.cxx +++ b/sw/source/core/swg/SwXMLSectionList.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" #define _SVSTDARR_STRINGSDTOR #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <SwXMLSectionList.hxx> #include <xmloff/nmspmap.hxx> #include <xmloff/xmlnmspe.hxx> diff --git a/sw/source/core/swg/SwXMLTextBlocks1.cxx b/sw/source/core/swg/SwXMLTextBlocks1.cxx index f5a5690bbfd0..861867799aee 100644 --- a/sw/source/core/swg/SwXMLTextBlocks1.cxx +++ b/sw/source/core/swg/SwXMLTextBlocks1.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" #include <com/sun/star/embed/ElementModes.hpp> #include <com/sun/star/embed/XTransactedObject.hpp> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <svtools/unoevent.hxx> #include <sfx2/docfile.hxx> #include <unotools/streamwrap.hxx> diff --git a/sw/source/core/swg/swblocks.cxx b/sw/source/core/swg/swblocks.cxx index 5bbe5ecde7b0..c0ebddd3885b 100644 --- a/sw/source/core/swg/swblocks.cxx +++ b/sw/source/core/swg/swblocks.cxx @@ -36,9 +36,9 @@ #include <sot/storage.hxx> #include <tools/urlobj.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <unotools/charclass.hxx> #include <frmfmt.hxx> #include <doc.hxx> diff --git a/sw/source/core/table/swnewtable.cxx b/sw/source/core/table/swnewtable.cxx index 62634d31d744..3b6cc4fbac36 100644 --- a/sw/source/core/table/swnewtable.cxx +++ b/sw/source/core/table/swnewtable.cxx @@ -50,7 +50,7 @@ #include <svx/protitem.hxx> #include <swtblfmt.hxx> -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -779,7 +779,7 @@ BOOL SwTable::NewInsertCol( SwDoc* pDoc, const SwSelBoxes& rBoxes, aFndBox.MakeFrms( *this ); // aFndBox.RestoreChartData( *this ); -#ifndef PRODUCT +#ifdef DBG_UTIL { const SwTableBoxes &rTabBoxes = aLines[0]->GetTabBoxes(); long nNewWidth = 0; @@ -2147,7 +2147,7 @@ void SwTable::CleanUpBottomRowSpan( USHORT nDelLines ) } } -#ifndef PRODUCT +#ifdef DBG_UTIL struct RowSpanCheck { @@ -2181,7 +2181,7 @@ void SwTable::CheckConsistency() const if( nRowSp < 0 ) { ASSERT( aIter != aRowSpanCells.end(), "Missing master box" ) -#ifndef PRODUCT +#ifdef DBG_UTIL //RowSpanCheck &rCheck = *aIter; #endif ASSERT( aIter->nLeft == nWidth && aIter->nRight == nNewWidth, diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx index 070e8eb625f9..4683c866e6a7 100644 --- a/sw/source/core/table/swtable.cxx +++ b/sw/source/core/table/swtable.cxx @@ -74,7 +74,7 @@ #include <redline.hxx> #include <list> -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -1090,7 +1090,7 @@ void SwTable::SetTabCols( const SwTabCols &rNew, const SwTabCols &rOld, } } -#ifndef PRODUCT +#ifdef DBG_UTIL { // steht im tblrwcl.cxx extern void _CheckBoxWidth( const SwTableLine&, SwTwips ); @@ -1197,7 +1197,7 @@ static void lcl_CalcNewWidths( std::list<USHORT> &rSpanPos, ChangeList& rChanges USHORT nPos = (USHORT)nSum; while( pCurr != rChanges.end() && pCurr->first < nPos ) { -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nTemp = pCurr->first; nTemp = pCurr->second; #endif @@ -1297,7 +1297,7 @@ static void lcl_CalcNewWidths( std::list<USHORT> &rSpanPos, ChangeList& rChanges void SwTable::NewSetTabCols( Parm &rParm, const SwTabCols &rNew, const SwTabCols &rOld, const SwTableBox *pStart, BOOL bCurRowOnly ) { -#ifndef PRODUCT +#ifdef DBG_UTIL static int nCallCount = 0; ++nCallCount; #endif @@ -2013,7 +2013,7 @@ BOOL SwTableBox::IsInHeadline( const SwTable* pTbl ) const return pTbl->GetTabLines()[ 0 ] == pLine; } -#ifndef PRODUCT +#ifdef DBG_UTIL ULONG SwTableBox::GetSttIdx() const { diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx index 1784ad946e41..84698050f12a 100644 --- a/sw/source/core/text/EnhancedPDFExportHelper.cxx +++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx @@ -46,7 +46,7 @@ #include <svx/langitem.hxx> #include <svx/scripttypeitem.hxx> #include <tools/urlobj.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <swatrset.hxx> #include <frmatr.hxx> #include <paratr.hxx> @@ -106,7 +106,7 @@ FrmTagIdMap SwEnhancedPDFExportHelper::aFrmTagIdMap; LanguageType SwEnhancedPDFExportHelper::eLanguageDefault = 0; -#ifndef PRODUCT +#ifdef DBG_UTIL static std::vector< USHORT > aStructStack; @@ -295,7 +295,7 @@ SwTaggedPDFHelper::SwTaggedPDFHelper( const Num_Info* pNumInfo, if ( mpPDFExtOutDevData && mpPDFExtOutDevData->GetIsExportTaggedPDF() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Int32 nCurrentStruct = mpPDFExtOutDevData->GetCurrentStructureElement(); lcl_DBGCheckStack(); #endif @@ -308,7 +308,7 @@ SwTaggedPDFHelper::SwTaggedPDFHelper( const Num_Info* pNumInfo, else BeginTag( vcl::PDFWriter::NonStructElement, aEmptyString ); -#ifndef PRODUCT +#ifdef DBG_UTIL nCurrentStruct = mpPDFExtOutDevData->GetCurrentStructureElement(); lcl_DBGCheckStack(); #endif @@ -323,13 +323,13 @@ SwTaggedPDFHelper::~SwTaggedPDFHelper() { if ( mpPDFExtOutDevData && mpPDFExtOutDevData->GetIsExportTaggedPDF() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Int32 nCurrentStruct = mpPDFExtOutDevData->GetCurrentStructureElement(); lcl_DBGCheckStack(); #endif EndStructureElements(); -#ifndef PRODUCT +#ifdef DBG_UTIL nCurrentStruct = mpPDFExtOutDevData->GetCurrentStructureElement(); lcl_DBGCheckStack(); #endif @@ -398,7 +398,7 @@ bool SwTaggedPDFHelper::CheckReopenTag() const bool bSuccess = mpPDFExtOutDevData->SetCurrentStructureElement( nReopenTag ); ASSERT( bSuccess, "Failed to reopen tag" ) -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.push_back( 99 ); #endif @@ -421,7 +421,7 @@ bool SwTaggedPDFHelper::CheckRestoreTag() const (void)bSuccess; ASSERT( bSuccess, "Failed to restore reopened tag" ) -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.pop_back(); #endif @@ -441,7 +441,7 @@ void SwTaggedPDFHelper::BeginTag( vcl::PDFWriter::StructElement eType, const Str const sal_Int32 nId = mpPDFExtOutDevData->BeginStructureElement( eType, rtl::OUString( rString ) ); ++nEndStructureElement; -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.push_back( static_cast<USHORT>(eType) ); #endif @@ -501,7 +501,7 @@ void SwTaggedPDFHelper::EndTag() { mpPDFExtOutDevData->EndStructureElement(); -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.pop_back(); #endif } @@ -977,7 +977,7 @@ void SwTaggedPDFHelper::BeginNumberedListStructureElements() nRestoreCurrentTag = mpPDFExtOutDevData->GetCurrentStructureElement(); mpPDFExtOutDevData->SetCurrentStructureElement( nReopenTag ); -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.push_back( 99 ); #endif } @@ -1529,7 +1529,7 @@ SwEnhancedPDFExportHelper::SwEnhancedPDFExportHelper( SwEditShell& rSh, aNumListBodyIdMap.clear(); aFrmTagIdMap.clear(); -#ifndef PRODUCT +#ifdef DBG_UTIL aStructStack.clear(); #endif diff --git a/sw/source/core/text/atrstck.cxx b/sw/source/core/text/atrstck.cxx index a6ed9f42255b..31040d9665c5 100644 --- a/sw/source/core/text/atrstck.cxx +++ b/sw/source/core/text/atrstck.cxx @@ -34,7 +34,7 @@ #include <errhdl.hxx> // ASSERT #include <atrhndl.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <vcl/outdev.hxx> #include <svx/cmapitem.hxx> #include <svx/colritem.hxx> @@ -523,13 +523,11 @@ void SwAttrHandler::PushAndChg( const SwTxtAttr& rAttr, SwFont& rFnt ) sal_Bool SwAttrHandler::Push( const SwTxtAttr& rAttr, const SfxPoolItem& rItem ) { - ASSERT( rItem.Which() < RES_TXTATR_WITHEND_END || - RES_UNKNOWNATR_CONTAINER == rItem.Which() , + ASSERT( rItem.Which() < RES_TXTATR_WITHEND_END, "I do not want this attribute, nWhich >= RES_TXTATR_WITHEND_END" ); // robust - if ( RES_TXTATR_WITHEND_END <= rItem.Which() || - RES_UNKNOWNATR_CONTAINER == rItem.Which() ) + if ( RES_TXTATR_WITHEND_END <= rItem.Which() ) return sal_False; USHORT nStack = StackPos[ rItem.Which() ]; @@ -557,6 +555,9 @@ sal_Bool SwAttrHandler::Push( const SwTxtAttr& rAttr, const SfxPoolItem& rItem ) void SwAttrHandler::PopAndChg( const SwTxtAttr& rAttr, SwFont& rFnt ) { + if ( RES_TXTATR_WITHEND_END <= rAttr.Which() ) + return; // robust + // these special attributes in fact represent a collection of attributes // they have to be removed from each stack they belong to if ( RES_TXTATR_INETFMT == rAttr.Which() || @@ -583,7 +584,7 @@ void SwAttrHandler::PopAndChg( const SwTxtAttr& rAttr, SwFont& rFnt ) } // this is the usual case, we have a basic attribute, remove it from the // stack and reset the font - else if ( RES_UNKNOWNATR_CONTAINER != rAttr.Which() ) + else { aAttrStack[ StackPos[ rAttr.Which() ] ].Remove( rAttr ); // reset font according to attribute on top of stack @@ -600,13 +601,13 @@ void SwAttrHandler::PopAndChg( const SwTxtAttr& rAttr, SwFont& rFnt ) void SwAttrHandler::Pop( const SwTxtAttr& rAttr ) { - ASSERT( rAttr.Which() < RES_TXTATR_WITHEND_END || - RES_UNKNOWNATR_CONTAINER == rAttr.Which() , + ASSERT( rAttr.Which() < RES_TXTATR_WITHEND_END, "I do not have this attribute, nWhich >= RES_TXTATR_WITHEND_END" ); - if ( RES_UNKNOWNATR_CONTAINER != rAttr.Which() && - rAttr.Which() < RES_TXTATR_WITHEND_END ) + if ( rAttr.Which() < RES_TXTATR_WITHEND_END ) + { aAttrStack[ StackPos[ rAttr.Which() ] ].Remove( rAttr ); + } } /************************************************************************* diff --git a/sw/source/core/text/frmcrsr.cxx b/sw/source/core/text/frmcrsr.cxx index 8e5bf1bfc25c..5fc45ef66953 100644 --- a/sw/source/core/text/frmcrsr.cxx +++ b/sw/source/core/text/frmcrsr.cxx @@ -887,7 +887,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips nOffset, aCharBox.Pos().X() = aCharBox.Pos().X() - 150; // siehe Kommentar in SwTxtFrm::GetCrsrOfst() -#ifndef PRODUCT +#ifdef DBG_UTIL const ULONG nOldNode = pPam->GetPoint()->nNode.GetIndex(); #endif // Der Node soll nicht gewechselt werden @@ -1253,7 +1253,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips nOffset, if( pNextLine || bFirstOfDouble ) { aCharBox.SSize().Width() /= 2; -#ifndef PRODUCT +#ifdef DBG_UTIL // siehe Kommentar in SwTxtFrm::GetCrsrOfst() const ULONG nOldNode = pPam->GetPoint()->nNode.GetIndex(); #endif diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index b5a3dff475ae..f86a767dcec2 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -248,7 +248,7 @@ sal_Bool SwTxtFrm::CalcFollow( const xub_StrLen nTxtOfst ) ( pMyFollow->IsVertical() && !pMyFollow->Prt().Width() ) || ( ! pMyFollow->IsVertical() && !pMyFollow->Prt().Height() ) ) { -#ifndef PRODUCT +#ifdef DBG_UTIL const SwFrm *pOldUp = GetUpper(); #endif @@ -377,7 +377,7 @@ sal_Bool SwTxtFrm::CalcFollow( const xub_StrLen nTxtOfst ) pPage->ValidateCntnt(); } -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pOldUp == GetUpper(), "SwTxtFrm::CalcFollow: heavy follow" ); #endif @@ -667,7 +667,7 @@ SwCntntFrm *SwTxtFrm::JoinFrm() } } -#ifndef PRODUCT +#ifdef DBG_UTIL else if ( pFoll->GetValidPrtAreaFlag() || pFoll->GetValidSizeFlag() ) { @@ -767,7 +767,7 @@ SwCntntFrm *SwTxtFrm::SplitFrm( const xub_StrLen nTxtPos ) } } -#ifndef PRODUCT +#ifdef DBG_UTIL else { CalcFtnFlag( nTxtPos-1 ); @@ -1843,7 +1843,7 @@ void SwTxtFrm::Format( const SwBorderAttrs * ) const SwFrm *pDbgFtnCont = (const SwFrm*)(FindPageFrm()->FindFtnCont()); (void)pDbgFtnCont; -#ifndef PRODUCT +#ifdef DBG_UTIL // nStopAt laesst sich vom CV bearbeiten. static MSHORT nStopAt = 0; if( nStopAt == GetFrmId() ) @@ -2089,7 +2089,7 @@ sal_Bool SwTxtFrm::FormatQuick( bool bForceQuickFormat ) const XubString aXXX = GetTxtNode()->GetTxt(); const SwTwips nDbgY = Frm().Top(); (void)nDbgY; -#ifndef PRODUCT +#ifdef DBG_UTIL // nStopAt laesst sich vom CV bearbeiten. static MSHORT nStopAt = 0; if( nStopAt == GetFrmId() ) @@ -2135,7 +2135,7 @@ sal_Bool SwTxtFrm::FormatQuick( bool bForceQuickFormat ) //DBG_LOOP; shadows declaration above. //resolved into: #if OSL_DEBUG_LEVEL > 1 -#ifndef PRODUCT +#ifdef DBG_UTIL DbgLoop aDbgLoop2( (const void*) this ); #endif #endif diff --git a/sw/source/core/text/frmpaint.cxx b/sw/source/core/text/frmpaint.cxx index 1492f1167f38..684db7afe4aa 100644 --- a/sw/source/core/text/frmpaint.cxx +++ b/sw/source/core/text/frmpaint.cxx @@ -728,7 +728,7 @@ void SwTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/ ) //DBG_LOOP; shadows declaration above. //resolved into: #if OSL_DEBUG_LEVEL > 1 -#ifndef PRODUCT +#ifdef DBG_UTIL DbgLoop aDbgLoop2( (const void*) this ); #endif #endif diff --git a/sw/source/core/text/guess.cxx b/sw/source/core/text/guess.cxx index a5eba7301052..2413133dc378 100644 --- a/sw/source/core/text/guess.cxx +++ b/sw/source/core/text/guess.cxx @@ -176,7 +176,7 @@ sal_Bool SwTxtGuess::Guess( const SwTxtPortion& rPor, SwTxtFormatInfo &rInf, { nCutPos = rInf.GetTxtBreak( nLineWidth, nMaxLen, nMaxComp ); -#ifndef PRODUCT +#ifdef DBG_UTIL if ( STRING_LEN != nCutPos ) { rInf.GetTxtSize( &rSI, rInf.GetIdx(), nCutPos - rInf.GetIdx(), diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index fea63bf2dca0..2448b061bc1d 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -33,8 +33,8 @@ #include <com/sun/star/uno/Sequence.h> -#include <svtools/linguprops.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/linguprops.hxx> +#include <unotools/lingucfg.hxx> #include <hintids.hxx> #include <sfx2/printer.hxx> #include <svx/hyznitem.hxx> @@ -114,13 +114,13 @@ namespace numfunc } // <-- -#ifndef PRODUCT +#ifdef DBG_UTIL // Test2: WYSIWYG++ // Test4: WYSIWYG debug static sal_Bool bDbgLow = sal_False; #endif -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool SwTxtSizeInfo::IsOptCalm() const { return !GetOpt().IsTest3(); } @@ -236,7 +236,7 @@ SwTxtInfo::SwTxtInfo( const SwTxtInfo &rInf ) { } -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * ChkOutDev() *************************************************************************/ @@ -288,7 +288,7 @@ SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew ) bSnapToGrid( rNew.SnapToGrid() ), nDirection( rNew.GetDirection() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ChkOutDev( *this ); #endif } @@ -325,7 +325,7 @@ void SwTxtSizeInfo::CtorInitTxtSizeInfo( SwTxtFrm *pFrame, SwFont *pNewFnt, pRef = pOut; } -#ifndef PRODUCT +#ifdef DBG_UTIL ChkOutDev( *this ); #endif @@ -412,7 +412,7 @@ SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew, const XubString &rTxt, bSnapToGrid( rNew.SnapToGrid() ), nDirection( rNew.GetDirection() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ChkOutDev( *this ); #endif SetLen( GetMinLen( *this ) ); @@ -570,7 +570,7 @@ void SwTxtPaintInfo::CtorInitTxtPaintInfo( SwTxtFrm *pFrame, const SwRect &rPain pGrammarCheckList = NULL; pSmartTags = NULL; // SMARTTAGS -#ifdef PRODUCT +#ifndef DBG_UTIL pBrushItem = 0; #else pBrushItem = ((SvxBrushItem*)-1); diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index 42873bf67ff2..77b6e03d4f26 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -79,7 +79,7 @@ class SwWrongList; #define DIR_RIGHT2LEFT 2 #define DIR_TOP2BOTTOM 3 -#ifndef PRODUCT +#ifdef DBG_UTIL #define OPTCALM( rInf ) (rInf).IsOptCalm() #define OPTLOW( rInf ) (rInf).IsOptLow() #define OPTDBG( rInf ) (rInf).IsOptDbg() @@ -380,7 +380,7 @@ public: { return ( pKanaComp && nKanaIdx < pKanaComp->Count() ) ? (*pKanaComp)[nKanaIdx] : 0; } -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool IsOptCalm() const; sal_Bool IsOptLow() const; sal_Bool IsOptDbg() const; @@ -423,7 +423,7 @@ class SwTxtPaintInfo : public SwTxtSizeInfo void _DrawBackBrush( const SwLinePortion &rPor ) const; protected: -#ifdef PRODUCT +#ifndef DBG_UTIL SwTxtPaintInfo() { pFrm = 0; pWrongList = 0; pGrammarCheckList = 0; pWrongList = 0; pSmartTags = 0; pSpaceAdd = 0; pBrushItem = 0;} #else SwTxtPaintInfo() { pFrm = 0; pWrongList = 0; pGrammarCheckList = 0; pSmartTags = 0; pSpaceAdd = 0; diff --git a/sw/source/core/text/itratr.hxx b/sw/source/core/text/itratr.hxx index 18b2fec04609..3966057ced80 100644 --- a/sw/source/core/text/itratr.hxx +++ b/sw/source/core/text/itratr.hxx @@ -37,7 +37,7 @@ #define _SVSTDARR_XUB_STRLEN #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> class OutputDevice; class SwFont; diff --git a/sw/source/core/text/itrcrsr.cxx b/sw/source/core/text/itrcrsr.cxx index cf6603d8a4d7..c42ba1c25df0 100644 --- a/sw/source/core/text/itrcrsr.cxx +++ b/sw/source/core/text/itrcrsr.cxx @@ -158,7 +158,7 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) const SwTxtNode *pNode = pFrm->GetTxtNode(); const SvxLRSpaceItem &rSpace = pFrm->GetTxtNode()->GetSwAttrSet().GetLRSpace(); - // --> OD 2009-09-02 #i95907# + // --> OD 2009-09-08 #i95907#, #b6879723# const bool bListLevelIndentsApplicable = pFrm->GetTxtNode()->AreListLevelIndentsApplicable(); // <-- @@ -183,7 +183,7 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) pFrm->Prt().Left() + nLMWithNum - pNode->GetLeftMarginWithNum( sal_False ) - - // --> OD 2009-09-02 #i95907# + // --> OD 2009-09-08 #i95907#, #b6879723# // rSpace.GetLeft() + // rSpace.GetTxtLeft(); ( bListLevelIndentsApplicable @@ -193,14 +193,18 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) } else { - if ( !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) + // --> OD 2009-09-08 #i95907#, #b6879723# +// if ( !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) + if ( bListLevelIndentsApplicable || + !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) + // <-- { // this calculation is identical this the calculation for R2L layout - see above nLeft = pFrm->Frm().Left() + pFrm->Prt().Left() + nLMWithNum - pNode->GetLeftMarginWithNum( sal_False ) - - // --> OD 2009-09-02 #i95907# + // --> OD 2009-09-08 #i95907#, #b6879723# // rSpace.GetLeft() + // rSpace.GetTxtLeft(); ( bListLevelIndentsApplicable @@ -223,7 +227,7 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) // paras inside cells inside new documents: ( pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) || !pFrm->IsInTab() || - !nLMWithNum) ) + !nLMWithNum ) ) // <-- { nLeft = pFrm->Prt().Left() + pFrm->Frm().Left(); @@ -235,8 +239,8 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) nFirst = nLeft; else { - short nFLOfst; - long nFirstLineOfs; + short nFLOfst = 0; + long nFirstLineOfs = 0; if( !pNode->GetFirstLineOfsWithNum( nFLOfst ) && rSpace.IsAutoFirst() ) { @@ -290,8 +294,13 @@ void SwTxtMargin::CtorInitTxtMargin( SwTxtFrm *pNewFrm, SwTxtSizeInfo *pNewInf ) else nFirstLineOfs = nFLOfst; + // --> OD 2009-09-08 #i95907#, #b6879723# +// if ( pFrm->IsRightToLeft() || +// !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) if ( pFrm->IsRightToLeft() || - !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) + bListLevelIndentsApplicable || + !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) ) + // <-- { nFirst = nLeft + nFirstLineOfs; } diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx index ab15998f86aa..a2011879590b 100644 --- a/sw/source/core/text/itrform2.cxx +++ b/sw/source/core/text/itrform2.cxx @@ -66,7 +66,7 @@ #include <doc.hxx> // SwDoc #include <pormulti.hxx> // SwMultiPortion #define _SVSTDARR_LONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <unotools/charclass.hxx> #if OSL_DEBUG_LEVEL > 1 diff --git a/sw/source/core/text/itrpaint.cxx b/sw/source/core/text/itrpaint.cxx index 7cfb941545a8..852b5661e3f8 100644 --- a/sw/source/core/text/itrpaint.cxx +++ b/sw/source/core/text/itrpaint.cxx @@ -103,7 +103,7 @@ void SwTxtPainter::CtorInitTxtPainter( SwTxtFrm *pNewFrm, SwTxtPaintInfo *pNewIn pInf = pNewInf; SwFont *pMyFnt = GetFnt(); GetInfo().SetFont( pMyFnt ); -#ifndef PRODUCT +#ifdef DBG_UTIL if( ALIGN_BASELINE != pMyFnt->GetAlign() ) { ASSERT( ALIGN_BASELINE == pMyFnt->GetAlign(), diff --git a/sw/source/core/text/makefile.mk b/sw/source/core/text/makefile.mk index fbc000002ee1..d710c9797997 100644 --- a/sw/source/core/text/makefile.mk +++ b/sw/source/core/text/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # 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 @@ -50,13 +50,6 @@ CFLAGS+=-DENABLE_GRAPHITE .ENDIF # --- Files -------------------------------------------------------- -.IF "$(product)$(cap)" == "" -CXXFILES += \ - txtio.cxx -.ENDIF - - - SLOFILES = \ $(SLO)$/atrstck.obj \ $(SLO)$/EnhancedPDFExportHelper.obj \ @@ -100,7 +93,7 @@ SLOFILES = \ $(SLO)$/SwGrammarMarkUp.obj \ $(SLO)$/wrong.obj -.IF "$(product)$(cap)" == "" +.IF "$(dbgutil)"!="" SLOFILES += \ $(SLO)$/txtio.obj .ENDIF diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx index 932eb1c72b6f..162c0fddd07b 100644 --- a/sw/source/core/text/porfld.cxx +++ b/sw/source/core/text/porfld.cxx @@ -82,8 +82,13 @@ SwFldPortion *SwFldPortion::Clone( const XubString &rExpand ) const { SwFont *pNewFnt; if( 0 != ( pNewFnt = pFnt ) ) + { pNewFnt = new SwFont( *pFnt ); - SwFldPortion* pClone = new SwFldPortion( rExpand, pNewFnt ); + } + // --> OD 2009-11-25 #i107143# + // pass placeholder property to created <SwFldPortion> instance. + SwFldPortion* pClone = new SwFldPortion( rExpand, pNewFnt, bPlaceHolder ); + // <-- pClone->SetNextOffset( nNextOffset ); pClone->m_bNoLength = this->m_bNoLength; return pClone; diff --git a/sw/source/core/text/porfld.hxx b/sw/source/core/text/porfld.hxx index 331ee8d401c7..b2ece8ffe8c6 100644 --- a/sw/source/core/text/porfld.hxx +++ b/sw/source/core/text/porfld.hxx @@ -60,7 +60,7 @@ protected: sal_Bool bAnimated : 1; // wird von SwGrfNumPortion benutzt sal_Bool bNoPaint : 1; // wird von SwGrfNumPortion benutzt sal_Bool bReplace : 1; // wird von SwGrfNumPortion benutzt - sal_Bool bPlaceHolder : 1; + const sal_Bool bPlaceHolder : 1; sal_Bool m_bNoLength : 1; // HACK for meta suffix (no CH_TXTATR) inline void SetFont( SwFont *pNew ) { pFnt = pNew; } diff --git a/sw/source/core/text/porglue.cxx b/sw/source/core/text/porglue.cxx index 6dec3c790283..6a656bef5451 100644 --- a/sw/source/core/text/porglue.cxx +++ b/sw/source/core/text/porglue.cxx @@ -114,7 +114,7 @@ void SwGluePortion::Paint( const SwTxtPaintInfo &rInf ) const if( rInf.OnWin() && rInf.GetOpt().IsBlank() && rInf.IsNoSymbol() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL const xub_Unicode cChar = rInf.GetChar( rInf.GetIdx() ); ASSERT( CH_BLANK == cChar || CH_BULLET == cChar, "SwGluePortion::Paint: blank expected" ); diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx index 76eba6b1e77b..7b3d381929e2 100644 --- a/sw/source/core/text/porlay.cxx +++ b/sw/source/core/text/porlay.cxx @@ -1293,7 +1293,7 @@ void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL ) nLastKashida = nChg; }; -#ifndef PRODUCT +#ifdef DBG_UTIL // check kashida data long nTmpKashidaPos = -1; sal_Bool bWrongKash = sal_False; diff --git a/sw/source/core/text/porlay.hxx b/sw/source/core/text/porlay.hxx index db21e72d04ec..540c7bad3a4d 100644 --- a/sw/source/core/text/porlay.hxx +++ b/sw/source/core/text/porlay.hxx @@ -258,7 +258,7 @@ public: const SwLinePortion* _pDontConsiderPortion = NULL, const bool _bNoFlyCntPorAndLinePor = false ) const; -#ifndef PRODUCT +#ifdef DBG_UTIL void DebugPortions( SvStream &rOs, const XubString &rTxt, const xub_StrLen nStart ); //$ ostream #endif diff --git a/sw/source/core/text/porlin.cxx b/sw/source/core/text/porlin.cxx index 08561df3f3b6..f05a4677a592 100644 --- a/sw/source/core/text/porlin.cxx +++ b/sw/source/core/text/porlin.cxx @@ -47,7 +47,7 @@ #include "porglue.hxx" #include "inftxt.hxx" #include "blink.hxx" -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool ChkChain( SwLinePortion *pStart ) { @@ -216,7 +216,7 @@ SwLinePortion *SwLinePortion::Insert( SwLinePortion *pIns ) { pIns->FindLastPortion()->SetPortion( pPortion ); SetPortion( pIns ); -#ifndef PRODUCT +#ifdef DBG_UTIL ChkChain( this ); #endif return pIns; @@ -247,7 +247,7 @@ SwLinePortion *SwLinePortion::Append( SwLinePortion *pIns ) SwLinePortion *pPos = FindLastPortion(); pPos->SetPortion( pIns ); pIns->SetPortion( 0 ); -#ifndef PRODUCT +#ifdef DBG_UTIL ChkChain( this ); #endif return pIns; @@ -307,7 +307,7 @@ SwPosSize SwLinePortion::GetTxtSize( const SwTxtSizeInfo & ) const return SwPosSize(); } -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * virtual SwLinePortion::Check() diff --git a/sw/source/core/text/porlin.hxx b/sw/source/core/text/porlin.hxx index 7777e5968969..89887d2b4955 100644 --- a/sw/source/core/text/porlin.hxx +++ b/sw/source/core/text/porlin.hxx @@ -42,7 +42,7 @@ class SwPortionHandler; // Das CLASSIO-Makro implementiert die 'freischwebende' Funktion. // Auf diese Weise erhaelt man beide Vorteile: virtuelle Ausgabeoperatoren // und allgemeine Verwendbarkeit. -#ifndef PRODUCT +#ifdef DBG_UTIL #define OUTPUT_OPERATOR virtual SvStream &operator<<( SvStream & aOs ) const; #else #define OUTPUT_OPERATOR @@ -177,7 +177,7 @@ public: virtual void Paint( const SwTxtPaintInfo &rInf ) const = 0; void PrePaint( const SwTxtPaintInfo &rInf, const SwLinePortion *pLast ) const; -#ifndef PRODUCT +#ifdef DBG_UTIL virtual sal_Bool Check( SvStream &rOs, SwTxtSizeInfo &rInfo ); //$ ostream #endif diff --git a/sw/source/core/text/redlnitr.cxx b/sw/source/core/text/redlnitr.cxx index 3ecc266865ed..a2ad2083b9b4 100644 --- a/sw/source/core/text/redlnitr.cxx +++ b/sw/source/core/text/redlnitr.cxx @@ -33,7 +33,7 @@ #include "hintids.hxx" -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <tools/shl.hxx> #ifndef _COM_SUN_STAR_I18N_SCRIPTTYPE_HDL_ #include <com/sun/star/i18n/ScriptType.hdl> diff --git a/sw/source/core/text/redlnitr.hxx b/sw/source/core/text/redlnitr.hxx index 67588e976ee3..08b630b133d0 100644 --- a/sw/source/core/text/redlnitr.hxx +++ b/sw/source/core/text/redlnitr.hxx @@ -39,7 +39,7 @@ #include "swfont.hxx" #ifndef _SVSTDARR_USHORTS #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif class SwTxtNode; diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx index 706eca2ec52e..561c1abf2923 100644 --- a/sw/source/core/text/txtfly.cxx +++ b/sw/source/core/text/txtfly.cxx @@ -98,7 +98,7 @@ #include <svx/svdoedge.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL #include "viewopt.hxx" // SwViewOptions, nur zum Testen (Test2) #endif #include "doc.hxx" @@ -1817,7 +1817,7 @@ const SwRect SwContourCache::ContourRect( const SwFmt* pFmt, delete pPolyPolygon; // UPPER_LOWER_TEST -#ifndef PRODUCT +#ifdef DBG_UTIL const SwRootFrm* pTmpRootFrm = pFmt->getIDocumentLayoutAccess()->GetRootFrm(); if( pTmpRootFrm->GetCurrShell() ) { @@ -1890,7 +1890,7 @@ const SwRect SwContourCache::ContourRect( const SwFmt* pFmt, * SwContourCache::ShowContour() * zeichnet die PolyPolygone des Caches zu Debugzwecken. *************************************************************************/ -#ifndef PRODUCT +#ifdef DBG_UTIL void SwContourCache::ShowContour( OutputDevice* pOut, const SdrObject* pObj, const Color& rClosedColor, const Color& rOpenColor ) @@ -1941,7 +1941,7 @@ void SwContourCache::ShowContour( OutputDevice* pOut, const SdrObject* pObj, * SwTxtFly::ShowContour() * zeichnet die PolyPolygone des Caches zu Debugzwecken. *************************************************************************/ -#ifndef PRODUCT +#ifdef DBG_UTIL void SwTxtFly::ShowContour( OutputDevice* pOut ) { diff --git a/sw/source/core/text/txtfly.hxx b/sw/source/core/text/txtfly.hxx index f7dd3e1c592e..611e628eb8e4 100644 --- a/sw/source/core/text/txtfly.hxx +++ b/sw/source/core/text/txtfly.hxx @@ -29,7 +29,7 @@ ************************************************************************/ #ifndef _TXTFLY_HXX #define _TXTFLY_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include "swtypes.hxx" #include "swrect.hxx" @@ -102,7 +102,7 @@ public: const long nXPos, const sal_Bool bRight ); // <-- -#ifndef PRODUCT +#ifdef DBG_UTIL void ShowContour( OutputDevice* pOut, const SdrObject* pObj, const Color& rClosedColor, const Color& rOpenColor ); #endif @@ -235,7 +235,7 @@ public: } // <-- -#ifndef PRODUCT +#ifdef DBG_UTIL void ShowContour( OutputDevice* pOut ); #endif }; diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx index 14944264d39e..7df571159c38 100644 --- a/sw/source/core/text/txtfrm.cxx +++ b/sw/source/core/text/txtfrm.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" #include <hintids.hxx> #include <hints.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <sfx2/printer.hxx> #include <sfx2/sfxuno.hxx> #include <svx/langitem.hxx> @@ -940,17 +940,6 @@ void SwTxtFrm::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ) InvalidateLineNum(); } break; - case RES_INS_CHR: - { - nPos = ((SwInsChr*)pNew)->nPos; - InvalidateRange( SwCharRange( nPos, 1 ), 1 ); - SET_WRONG( nPos, 1, true ) - SET_SCRIPT_INVAL( nPos ) - bSetFldsDirty = sal_True; - if( HasFollow() ) - lcl_ModifyOfst( this, nPos, 1 ); - } - break; case RES_INS_TXT: { nPos = ((SwInsTxt*)pNew)->nPos; diff --git a/sw/source/core/text/txtftn.cxx b/sw/source/core/text/txtftn.cxx index 6981ca472419..61c4110a6761 100644 --- a/sw/source/core/text/txtftn.cxx +++ b/sw/source/core/text/txtftn.cxx @@ -106,7 +106,7 @@ SwTxtFrm *SwTxtFrm::FindFtnRef( const SwTxtFtn *pFtn ) * CalcFtnFlag() *************************************************************************/ -#ifdef PRODUCT +#ifndef DBG_UTIL void SwTxtFrm::CalcFtnFlag() #else void SwTxtFrm::CalcFtnFlag( xub_StrLen nStop )//Fuer den Test von SplitFrm @@ -120,7 +120,7 @@ void SwTxtFrm::CalcFtnFlag( xub_StrLen nStop )//Fuer den Test von SplitFrm const USHORT nSize = pHints->Count(); -#ifdef PRODUCT +#ifndef DBG_UTIL const xub_StrLen nEnd = GetFollow() ? GetFollow()->GetOfst() : STRING_LEN; #else const xub_StrLen nEnd = nStop != STRING_LEN ? nStop @@ -364,7 +364,7 @@ SwTwips SwTxtFrm::_GetFtnFrmHeight() const SwTwips nTmp = (*fnRect->fnYDiff)( (pCont->*fnRect->fnGetPrtBottom)(), (Frm().*fnRect->fnGetTop)() ); -#ifndef PRODUCT +#ifdef DBG_UTIL if( nTmp < 0 ) { sal_Bool bInvalidPos = sal_False; diff --git a/sw/source/core/text/txthyph.cxx b/sw/source/core/text/txthyph.cxx index 81a5c98e1913..87b3e2b01a07 100644 --- a/sw/source/core/text/txthyph.cxx +++ b/sw/source/core/text/txthyph.cxx @@ -47,7 +47,7 @@ #include <guess.hxx> // #include <splargs.hxx> // SwInterHyphInfo -#ifndef PRODUCT +#ifdef DBG_UTIL extern const sal_Char *GetLangName( const MSHORT nLang ); #endif diff --git a/sw/source/core/text/txtinit.cxx b/sw/source/core/text/txtinit.cxx index 5bfad43be0b9..03dda0aad402 100644 --- a/sw/source/core/text/txtinit.cxx +++ b/sw/source/core/text/txtinit.cxx @@ -79,7 +79,7 @@ void _TextInit() pFntCache = new SwFntCache; // Cache for SwSubFont -> SwFntObj = { Font aFont, Font* pScrFont, Font* pPrtFont, OutputDevice* pPrinter, ... } pSwFontCache = new SwFontCache; // Cache for SwTxtFmtColl -> SwFontObj = { SwFont aSwFont, SfxPoolItem* pDefaultArray } SwCache *pTxtCache = new SwCache( 250, 100 // Cache for SwTxtFrm -> SwTxtLine = { SwParaPortion* pLine } -#ifndef PRODUCT +#ifdef DBG_UTIL , "static SwTxtFrm::pTxtCache" #endif ); diff --git a/sw/source/core/text/txtio.cxx b/sw/source/core/text/txtio.cxx index 854d252afed8..1d77783bfdc6 100644 --- a/sw/source/core/text/txtio.cxx +++ b/sw/source/core/text/txtio.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#ifdef PRODUCT +#ifndef DBG_UTIL #error Wer fummelt denn an den makefiles? #endif diff --git a/sw/source/core/text/txtpaint.cxx b/sw/source/core/text/txtpaint.cxx index b756567d8106..fab41e155639 100644 --- a/sw/source/core/text/txtpaint.cxx +++ b/sw/source/core/text/txtpaint.cxx @@ -122,7 +122,7 @@ void SwSaveClip::_ChgClip( const SwRect &rRect, const SwTxtFrm* pFrm, #endif } #if OSL_DEBUG_LEVEL > 1 -#ifndef PRODUCT +#ifdef DBG_UTIL static sal_Bool bDbg = sal_False; if( bDbg ) { diff --git a/sw/source/core/text/txtpaint.hxx b/sw/source/core/text/txtpaint.hxx index da1c14121b4a..73ab5d16f788 100644 --- a/sw/source/core/text/txtpaint.hxx +++ b/sw/source/core/text/txtpaint.hxx @@ -71,7 +71,7 @@ inline SwSaveClip::~SwSaveClip() Reset(); } -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * class SwDbgOut diff --git a/sw/source/core/text/txttab.cxx b/sw/source/core/text/txttab.cxx index 64bb8be5fc12..434239c12b30 100644 --- a/sw/source/core/text/txttab.cxx +++ b/sw/source/core/text/txttab.cxx @@ -328,7 +328,7 @@ SwTabPortion::SwTabPortion( const KSHORT nTabPosition, const xub_Unicode cFillCh : SwFixPortion( 0, 0 ), nTabPos(nTabPosition), cFill(cFillChar) { nLineLength = 1; -#ifndef PRODUCT +#ifdef DBG_UTIL if( IsFilled() ) { ASSERT( ' ' != cFill, "SwTabPortion::CTOR: blanks ?!" ); @@ -563,7 +563,7 @@ sal_Bool SwTabPortion::PostFormat( SwTxtFormatInfo &rInf ) void SwTabPortion::Paint( const SwTxtPaintInfo &rInf ) const { -#ifndef PRODUCT +#ifdef DBG_UTIL // Wir wollen uns die Fixbreite anzeigen if( rInf.OnWin() && OPTDBG( rInf ) && !rInf.GetOpt().IsPagePreview() && \ diff --git a/sw/source/core/tox/toxhlp.cxx b/sw/source/core/tox/toxhlp.cxx index 95805c8203c1..daa2ed84d386 100644 --- a/sw/source/core/tox/toxhlp.cxx +++ b/sw/source/core/tox/toxhlp.cxx @@ -62,12 +62,12 @@ IndexEntrySupplierWrapper::IndexEntrySupplierWrapper() } } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "IndexEntrySupplierWrapper: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); @@ -88,12 +88,12 @@ String IndexEntrySupplierWrapper::GetIndexKey( const String& rTxt, sRet = xIES->getIndexKey( rTxt, rTxtReading, rLocale ); } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "getIndexKey: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); @@ -109,12 +109,12 @@ String IndexEntrySupplierWrapper::GetFollowingText( BOOL bMorePages ) const sRet = xIES->getIndexFollowPageWord( bMorePages, aLcl ); } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "getIndexFollowPageWord: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); @@ -132,12 +132,12 @@ IndexEntrySupplierWrapper::GetAlgorithmList( const STAR_NMSPC::lang::Locale& rLc sRet = xIES->getAlgorithmList( rLcl ); } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "getAlgorithmList: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); @@ -155,12 +155,12 @@ sal_Bool IndexEntrySupplierWrapper::LoadAlgorithm( bRet = xIES->loadAlgorithm( rLcl, sSortAlgorithm, nOptions ); } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "loadAlgorithm: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); @@ -181,12 +181,12 @@ sal_Int16 IndexEntrySupplierWrapper::CompareIndexEntry( rTxt2, rTxtReading2, rLocale2 ); } catch ( UNO_NMSPC::Exception& -#ifndef PRODUCT +#ifdef DBG_UTIL e #endif ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ByteString aMsg( "compareIndexEntry: Exception caught\n" ); aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); DBG_ERRORFILE( aMsg.GetBuffer() ); diff --git a/sw/source/core/tox/txmsrt.cxx b/sw/source/core/tox/txmsrt.cxx index b51ffb862f3c..94aed72e90ae 100644 --- a/sw/source/core/tox/txmsrt.cxx +++ b/sw/source/core/tox/txmsrt.cxx @@ -191,7 +191,7 @@ SwTOXSortTabBase::SwTOXSortTabBase( TOXSortType nTyp, const SwCntntNode* pNd, { SwPosition aPos( *pNd ); const SwDoc& rDoc = *pNd->GetDoc(); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( GetBodyTxtNode( rDoc, aPos, *pFrm ), "wo steht der Absatz" ); #else diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index 9c54bc60e239..68c779f9914b 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -46,7 +46,7 @@ #include "hints.hxx" #include <IDocumentFieldsAccess.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> TYPEINIT3( SwFmtFld, SfxPoolItem, SwClient,SfxBroadcaster) TYPEINIT1(SwFmtFldHint, SfxHint); diff --git a/sw/source/core/txtnode/atrftn.cxx b/sw/source/core/txtnode/atrftn.cxx index fd35ccd1477c..906d6ff8cebb 100644 --- a/sw/source/core/txtnode/atrftn.cxx +++ b/sw/source/core/txtnode/atrftn.cxx @@ -35,7 +35,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <doc.hxx> #include <cntfrm.hxx> // ASSERT in ~SwTxtFtn() #include <pagefrm.hxx> // RemoveFtn() diff --git a/sw/source/core/txtnode/fmtatr2.cxx b/sw/source/core/txtnode/fmtatr2.cxx index 8093a84dbbd9..14f31f277078 100644 --- a/sw/source/core/txtnode/fmtatr2.cxx +++ b/sw/source/core/txtnode/fmtatr2.cxx @@ -35,9 +35,9 @@ #include "unomid.h" #include <basic/sbxvar.hxx> -#include <svtools/macitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/stylepool.hxx> +#include <svl/macitem.hxx> +#include <svl/stritem.hxx> +#include <svl/stylepool.hxx> #include <fmtautofmt.hxx> #include <fchrfmt.hxx> #include <fmtinfmt.hxx> @@ -59,7 +59,7 @@ #include <unometa.hxx> #include <unoobj.hxx> // SwXTextRange #include <docsh.hxx> -#include <svtools/zforlist.hxx> // GetNumberFormat +#include <svl/zforlist.hxx> // GetNumberFormat #include <boost/bind.hpp> #include <algorithm> diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx index 826398ec2ce6..7aec6d4e9884 100644 --- a/sw/source/core/txtnode/fntcache.cxx +++ b/sw/source/core/txtnode/fntcache.cxx @@ -386,7 +386,9 @@ USHORT SwFntObj::GetFontHeight( const ViewShell* pSh, const OutputDevice& rOut ) const FontMetric aOutMet( rRefDev.GetFontMetric() ); long nTmpPrtHeight = (USHORT)aOutMet.GetAscent() + aOutMet.GetDescent(); (void) nTmpPrtHeight; - ASSERT( nTmpPrtHeight == nPrtHeight, "GetTextHeight != Ascent + Descent" ) + // #i106098#: do not compare with == here due to rounding error + ASSERT( abs(nTmpPrtHeight - nPrtHeight) < 3, + "GetTextHeight != Ascent + Descent" ); #endif ((OutputDevice&)rRefDev).SetFont( aOldFnt ); @@ -1042,7 +1044,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) // a window. Therefore bUseSrcFont is always 0 in this case. // -#ifndef PRODUCT +#ifdef DBG_UTIL const BOOL bNoAdjust = bPrt || ( pWin && diff --git a/sw/source/core/txtnode/fntcap.cxx b/sw/source/core/txtnode/fntcap.cxx index 160758d861b2..4b7dc35a6484 100644 --- a/sw/source/core/txtnode/fntcap.cxx +++ b/sw/source/core/txtnode/fntcap.cxx @@ -707,7 +707,7 @@ void SwSubFont::DoOnCapitals( SwDoCapitals &rDo ) if( nPos == STRING_LEN || nPos > nMaxPos ) nPos = nMaxPos; ASSERT( nPos, "nextCharBlock not implemented?" ); -#ifndef PRODUCT +#ifdef DBG_UTIL if( !nPos ) nPos = nMaxPos; #endif @@ -821,7 +821,7 @@ void SwSubFont::DoOnCapitals( SwDoCapitals &rDo ) if( nPos == STRING_LEN || nPos > nMaxPos ) nPos = nMaxPos; ASSERT( nPos, "endOfCharBlock not implemented?" ); -#ifndef PRODUCT +#ifdef DBG_UTIL if( !nPos ) nPos = nMaxPos; #endif diff --git a/sw/source/core/txtnode/ndhints.cxx b/sw/source/core/txtnode/ndhints.cxx index 54be1b261655..ef165b010aea 100644 --- a/sw/source/core/txtnode/ndhints.cxx +++ b/sw/source/core/txtnode/ndhints.cxx @@ -2,6 +2,8 @@ * * 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 @@ -50,7 +52,7 @@ _SV_IMPL_SORTAR_ALG( SwpHtEnd, SwTxtAttr* ) void DumpHints( const SwpHtStart &rHtStart, const SwpHtEnd &rHtEnd ) { -#ifndef PRODUCT +#ifdef DBG_UTIL aDbstream << "DumpHints:" << endl; (aDbstream << "\tStarts:" ).WriteNumber(rHtStart.Count()) << endl; for( USHORT i = 0; i < rHtStart.Count(); ++i ) @@ -247,7 +249,7 @@ BOOL SwpHtEnd::Seek_Entry( const SwTxtAttr *pElement, USHORT *pPos ) const void SwpHintsArray::Insert( const SwTxtAttr *pHt ) { Resort(); -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nPos; ASSERT(!m_HintStarts.Seek_Entry( pHt, &nPos ), "Insert: hint already in HtStart"); @@ -256,7 +258,7 @@ void SwpHintsArray::Insert( const SwTxtAttr *pHt ) #endif m_HintStarts.Insert( pHt ); m_HintEnds.Insert( pHt ); -#ifndef PRODUCT +#ifdef DBG_UTIL #ifdef NIE (aDbstream << "Insert: " ).WriteNumber( long( pHt ) ) << endl; DumpHints( m_HintStarts, m_HintEnds ); @@ -275,7 +277,7 @@ void SwpHintsArray::DeleteAtPos( const USHORT nPos ) USHORT nEndPos; m_HintEnds.Seek_Entry( pHt, &nEndPos ); m_HintEnds.Remove( nEndPos ); -#ifndef PRODUCT +#ifdef DBG_UTIL #ifdef NIE (aDbstream << "DeleteAtPos: " ).WriteNumber( long( pHt ) ) << endl; DumpHints( m_HintStarts, m_HintEnds ); @@ -283,7 +285,7 @@ void SwpHintsArray::DeleteAtPos( const USHORT nPos ) #endif } -#ifndef PRODUCT +#ifdef DBG_UTIL /************************************************************************* * SwpHintsArray::Check() @@ -441,7 +443,7 @@ bool SwpHintsArray::Resort() if( pLast && !lcl_IsLessStart( *pLast, *pHt ) ) { #ifdef NIE -#ifndef PRODUCT +#ifdef DBG_UTIL // ASSERT( bResort, "!Resort/Start: correcting hints-array" ); aDbstream << "Resort: Starts" << endl; DumpHints( m_HintStarts, m_HintEnds ); @@ -464,7 +466,7 @@ bool SwpHintsArray::Resort() if( pLast && !lcl_IsLessEnd( *pLast, *pHt ) ) { #ifdef NIE -#ifndef PRODUCT +#ifdef DBG_UTIL aDbstream << "Resort: Ends" << endl; DumpHints( m_HintStarts, m_HintEnds ); #endif @@ -480,7 +482,7 @@ bool SwpHintsArray::Resort() } pLast = pHt; } -#ifndef PRODUCT +#ifdef DBG_UTIL #ifdef NIE aDbstream << "Resorted:" << endl; DumpHints( m_HintStarts, m_HintEnds ); diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx index f5ebacaac8cd..a779898d4aaa 100644 --- a/sw/source/core/txtnode/ndtxt.cxx +++ b/sw/source/core/txtnode/ndtxt.cxx @@ -40,12 +40,12 @@ // --> OD 2008-01-17 #newlistlevelattrs# #include <svx/tstpitem.hxx> // <-- -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <swmodule.hxx> #include <txtfld.hxx> #include <txtinet.hxx> @@ -92,13 +92,13 @@ #include <numrule.hxx> //--> #outlinelevel added by zhaojianwei -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> //<--end #include <swtable.hxx> #include <docsh.hxx> #include <SwNodeNum.hxx> // --> OD 2008-02-25 #refactorlists# -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <list.hxx> // <-- @@ -111,7 +111,7 @@ SV_DECL_PTRARR(SwpHts,SwTxtAttr*,1,1) // Leider ist das SwpHints nicht ganz wasserdicht: // Jeder darf an den Hints rumfummeln, ohne die Sortierreihenfolge // und Verkettung sicherstellen zu muessen. -#ifndef PRODUCT +#ifdef DBG_UTIL #define CHECK_SWPHINTS(pNd) { if( pNd->GetpSwpHints() && \ !pNd->GetDoc()->IsInReading() ) \ pNd->GetpSwpHints()->Check(); } @@ -372,7 +372,7 @@ void lcl_ChangeFtnRef( SwTxtNode &rNode ) ((SwTxtFrm*)pFrm)->SetFtn( TRUE ); } } -#ifndef PRODUCT +#ifdef DBG_UTIL while( 0 != (pCntnt = (SwCntntFrm*)aIter.Next()) ) { SwFtnFrm *pDbgFtn = pCntnt->FindFtnFrm(); @@ -943,9 +943,7 @@ void SwTxtNode::Update( SwIndex const & rPos, const xub_StrLen nChangeLen, bool bNoExp = false; bool bResort = false; const USHORT coArrSz = static_cast<USHORT>(RES_TXTATR_WITHEND_END) - - static_cast<USHORT>(RES_CHRATR_BEGIN) + - static_cast<USHORT>(RES_UNKNOWNATR_END) - - static_cast<USHORT>(RES_UNKNOWNATR_BEGIN); + static_cast<USHORT>(RES_CHRATR_BEGIN); BOOL aDontExp[ coArrSz ]; memset( &aDontExp, 0, coArrSz * sizeof(BOOL) ); @@ -980,14 +978,6 @@ void SwTxtNode::Update( SwIndex const & rPos, const xub_StrLen nChangeLen, nWhPos = static_cast<USHORT>(nWhich - RES_CHRATR_BEGIN); } - else if (isUNKNOWNATR(nWhich)) - { - nWhPos = static_cast<USHORT>( - nWhich - - static_cast<USHORT>(RES_UNKNOWNATR_BEGIN) + - static_cast<USHORT>(RES_TXTATR_WITHEND_END) - - static_cast<USHORT>(RES_CHRATR_BEGIN) ); - } else continue; @@ -2852,6 +2842,9 @@ long SwTxtNode::GetLeftMarginWithNum( BOOL bTxtLeft ) const BOOL SwTxtNode::GetFirstLineOfsWithNum( short& rFLOffset ) const { BOOL bRet( FALSE ); + // --> OD 2009-09-08 #i95907#, #b6879723# + rFLOffset = 0; + // <-- // --> OD 2005-11-02 #i51089 - TUNING# const SwNumRule* pRule = GetNum() ? GetNum()->GetNumRule() : 0L; @@ -2885,8 +2878,6 @@ BOOL SwTxtNode::GetFirstLineOfsWithNum( short& rFLOffset ) const } // <-- } - else - rFLOffset = 0; bRet = TRUE; } diff --git a/sw/source/core/txtnode/swfont.cxx b/sw/source/core/txtnode/swfont.cxx index 3c2a643099cb..7213c1e60efd 100644 --- a/sw/source/core/txtnode/swfont.cxx +++ b/sw/source/core/txtnode/swfont.cxx @@ -88,7 +88,7 @@ #define FNT_ATM_HACK #endif -#ifndef PRODUCT +#ifdef DBG_UTIL // globale Variable SvStatistics aSvStat; #endif diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx index 12f8e210e7c5..b0d23e7ca4ee 100644 --- a/sw/source/core/txtnode/thints.cxx +++ b/sw/source/core/txtnode/thints.cxx @@ -35,9 +35,9 @@ #include <hintids.hxx> #include <sot/factory.hxx> #include <svx/xmlcnitm.hxx> -#include <svtools/whiter.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/stylepool.hxx> +#include <svl/whiter.hxx> +#include <svl/itemiter.hxx> +#include <svl/stylepool.hxx> #include <svx/fontitem.hxx> #include <svx/langitem.hxx> #include <svx/emphitem.hxx> @@ -84,11 +84,11 @@ // OD 26.06.2003 #108784# #include <dcontact.hxx> #include <docsh.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> #include <algorithm> #include <map> -#ifndef PRODUCT +#ifdef DBG_UTIL #define CHECK Check(); #else #define CHECK @@ -153,12 +153,14 @@ bool isOverlap(const xub_StrLen nStart1, const xub_StrLen nEnd1, || ((nStart1 < nStart2) && (nStart2 < nEnd1) && (nEnd1 < nEnd2)); // (2) } +/// #i106930#: now asymmetric: empty hint1 is _not_ nested, but empty hint2 is static bool isNestedAny(const xub_StrLen nStart1, const xub_StrLen nEnd1, const xub_StrLen nStart2, const xub_StrLen nEnd2) { - return (nStart1 == nStart2) // in this case ends do not matter - || ((nStart1 < nStart2) ? (nEnd1 >= nEnd2) : (nEnd1 <= nEnd2)); + return ((nStart1 == nStart2) || (nEnd1 == nEnd2)) + ? (nStart1 != nEnd1) // same start/end: nested except if hint1 empty + : ((nStart1 < nStart2) ? (nEnd1 >= nEnd2) : (nEnd1 <= nEnd2)); } static @@ -658,7 +660,7 @@ void SwpHints::BuildPortions( SwTxtNode& rNode, SwTxtAttr& rNewHint, } } -#ifndef PRODUCT +#ifdef DBG_UTIL if( !rNode.GetDoc()->IsInReading() ) CHECK; #endif @@ -1065,11 +1067,6 @@ SwTxtAttr* MakeTxtAttr( SwDoc & rDoc, SfxPoolItem& rAttr, case RES_TXTATR_TOXMARK: pNew = new SwTxtTOXMark( (SwTOXMark&)rNew, nStt, &nEnd ); break; - case RES_UNKNOWNATR_CONTAINER: - case RES_TXTATR_UNKNOWN_CONTAINER: - pNew = new SwTxtXMLAttrContainer( (SvXMLAttrContainerItem&)rNew, - nStt, nEnd ); - break; case RES_TXTATR_CJK_RUBY: pNew = new SwTxtRuby( (SwFmtRuby&)rNew, nStt, nEnd ); break; @@ -1415,11 +1412,11 @@ bool SwTxtNode::InsertHint( SwTxtAttr * const pAttr, const SetAttrMode nMode ) // FussNote im Redline-Bereich NICHT ins FtnArray einfuegen! if( StartOfSectionIndex() > rNodes.GetEndOfRedlines().GetIndex() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL const BOOL bSuccess = #endif pDoc->GetFtnIdxs().Insert( pTxtFtn ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( bSuccess, "FtnIdx nicht eingetragen." ); #endif } @@ -1669,8 +1666,7 @@ BOOL SwTxtNode::SetAttr( const SfxItemSet& rSet, xub_StrLen nStt, SfxItemSet aCharSet( *rSet.GetPool(), aCharAutoFmtSetRange ); - USHORT nWhich, nCount = 0; - SwTxtAttr* pNew; + USHORT nCount = 0; SfxItemIter aIter( *pSet ); const SfxPoolItem* pItem = aIter.GetCurItem(); @@ -1678,8 +1674,10 @@ BOOL SwTxtNode::SetAttr( const SfxItemSet& rSet, xub_StrLen nStt, { if ( pItem && (reinterpret_cast<SfxPoolItem*>(-1) != pItem)) { - nWhich = pItem->Which(); - if ( isCHRATR(nWhich) || isTXTATR(nWhich) || isUNKNOWNATR(nWhich) ) + const USHORT nWhich = pItem->Which(); + ASSERT( isCHRATR(nWhich) || isTXTATR(nWhich), + "SwTxtNode::SetAttr(): unknown attribute" ); + if ( isCHRATR(nWhich) || isTXTATR(nWhich) ) { if ((RES_TXTATR_CHARFMT == nWhich) && (GetDoc()->GetDfltCharFmt() == @@ -1698,7 +1696,8 @@ BOOL SwTxtNode::SetAttr( const SfxItemSet& rSet, xub_StrLen nStt, } else { - pNew = MakeTxtAttr( *GetDoc(), + + SwTxtAttr *const pNew = MakeTxtAttr( *GetDoc(), const_cast<SfxPoolItem&>(*pItem), nStt, nEnd ); if ( pNew ) { @@ -1862,20 +1861,18 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, } const USHORT nSize = m_pSwpHints->Count(); - USHORT n; - xub_StrLen nAttrStart; - const xub_StrLen* pAttrEnd; if( nStt == nEnd ) // kein Bereich: { - for( n = 0; n < nSize; ++n ) // + for (USHORT n = 0; n < nSize; ++n) { const SwTxtAttr* pHt = (*m_pSwpHints)[n]; - nAttrStart = *pHt->GetStart(); + const xub_StrLen nAttrStart = *pHt->GetStart(); if( nAttrStart > nEnd ) // ueber den Bereich hinaus break; - if( 0 == ( pAttrEnd = pHt->GetEnd() )) // nie Attribute ohne Ende + const xub_StrLen* pAttrEnd = pHt->GetEnd(); + if ( ! pAttrEnd ) // no attributes without end continue; if( ( nAttrStart < nStt && @@ -1889,22 +1886,21 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, else // es ist ein Bereich definiert { // --> FME 2007-03-13 #i75299# - std::vector< SwPoolItemEndPair >* pAttrArr = 0; + ::std::auto_ptr< std::vector< SwPoolItemEndPair > > pAttrArr; // <-- const USHORT coArrSz = static_cast<USHORT>(RES_TXTATR_WITHEND_END) - - static_cast<USHORT>(RES_CHRATR_BEGIN) + - static_cast<USHORT>(RES_UNKNOWNATR_END) - - static_cast<USHORT>(RES_UNKNOWNATR_BEGIN); + static_cast<USHORT>(RES_CHRATR_BEGIN); - for( n = 0; n < nSize; ++n ) + for (USHORT n = 0; n < nSize; ++n) { const SwTxtAttr* pHt = (*m_pSwpHints)[n]; - nAttrStart = *pHt->GetStart(); + const xub_StrLen nAttrStart = *pHt->GetStart(); if( nAttrStart > nEnd ) // ueber den Bereich hinaus break; - if( 0 == ( pAttrEnd = pHt->GetEnd() )) // nie Attribute ohne Ende + const xub_StrLen* pAttrEnd = pHt->GetEnd(); + if ( ! pAttrEnd ) // no attributes without end continue; BOOL bChkInvalid = FALSE; @@ -1927,7 +1923,7 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, if( bChkInvalid ) { // uneindeutig ? - SfxItemIter* pItemIter = 0; + ::std::auto_ptr< SfxItemIter > pItemIter; const SfxPoolItem* pItem = 0; if ( RES_TXTATR_AUTOFMT == pHt->Which() ) @@ -1935,7 +1931,7 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, const SfxItemSet* pAutoSet = CharFmt::GetItemSet( pHt->GetAttr() ); if ( pAutoSet ) { - pItemIter = new SfxItemIter( *pAutoSet ); + pItemIter.reset( new SfxItemIter( *pAutoSet ) ); pItem = pItemIter->GetCurItem(); } } @@ -1947,9 +1943,14 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, while ( pItem ) { const USHORT nHintWhich = pItem->Which(); + ASSERT(!isUNKNOWNATR(nHintWhich), + "SwTxtNode::GetAttr(): unkonwn attribute?"); - if( !pAttrArr ) - pAttrArr = new std::vector< SwPoolItemEndPair >( coArrSz ); + if ( !pAttrArr.get() ) + { + pAttrArr.reset( + new std::vector< SwPoolItemEndPair >(coArrSz)); + } std::vector< SwPoolItemEndPair >::iterator pPrev = pAttrArr->begin(); if (isCHRATR(nHintWhich) || @@ -1957,12 +1958,6 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, { pPrev += nHintWhich - RES_CHRATR_BEGIN; } - else if (isUNKNOWNATR(nHintWhich)) - { - pPrev += nHintWhich - RES_UNKNOWNATR_BEGIN + ( - static_cast< USHORT >(RES_TXTATR_WITHEND_END) - - static_cast< USHORT >(RES_CHRATR_BEGIN) ); - } else { pPrev = pAttrArr->end(); @@ -2006,28 +2001,21 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, } } - pItem = ( pItemIter && !pItemIter->IsAtEnd() ) ? pItemIter->NextItem() : 0; + pItem = ( pItemIter.get() && !pItemIter->IsAtEnd() ) + ? pItemIter->NextItem() : 0; } // end while - - delete pItemIter; } } - if( pAttrArr ) + if ( pAttrArr.get() ) { - for( n = 0; n < coArrSz; ++n ) + for (USHORT n = 0; n < coArrSz; ++n) { const SwPoolItemEndPair& rItemPair = (*pAttrArr)[ n ]; if( (0 != rItemPair.mpItem) && ((SfxPoolItem*)-1 != rItemPair.mpItem) ) { - USHORT nWh; - if( n < static_cast<USHORT>( static_cast<USHORT>(RES_TXTATR_WITHEND_END) - - static_cast<USHORT>(RES_CHRATR_BEGIN) ) ) - nWh = static_cast<USHORT>(n + RES_CHRATR_BEGIN); - else - nWh = n - static_cast<USHORT>( static_cast<USHORT>(RES_TXTATR_WITHEND_END) - - static_cast<USHORT>(RES_CHRATR_BEGIN) + - static_cast<USHORT>(RES_UNKNOWNATR_BEGIN) ); + const USHORT nWh = + static_cast<USHORT>(n + RES_CHRATR_BEGIN); if( nEnd <= rItemPair.mnEndPos ) // hinter oder genau Ende { @@ -2039,8 +2027,6 @@ BOOL SwTxtNode::GetAttr( SfxItemSet& rSet, xub_StrLen nStt, xub_StrLen nEnd, rSet.InvalidateItem( nWh ); } } - - delete pAttrArr; } } if( aFmtSet.Count() ) @@ -2630,7 +2616,7 @@ bool SwpHints::TryInsertHint( SwTxtAttr* const pHint, SwTxtNode &rNode, { SwpHintsArray::Insert( pHint ); CalcFlags(); -#ifndef PRODUCT +#ifdef DBG_UTIL if( !rNode.GetDoc()->IsInReading() ) CHECK; #endif @@ -2723,7 +2709,7 @@ bool SwpHints::TryInsertHint( SwTxtAttr* const pHint, SwTxtNode &rNode, rNode.Modify( 0, &aHint ); } -#ifndef PRODUCT +#ifdef DBG_UTIL if( !bNoHintAdjustMode && !rNode.GetDoc()->IsInReading() ) CHECK; #endif diff --git a/sw/source/core/txtnode/txatbase.cxx b/sw/source/core/txtnode/txatbase.cxx index 0ce234483f40..0269b9697892 100644 --- a/sw/source/core/txtnode/txatbase.cxx +++ b/sw/source/core/txtnode/txatbase.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#include <svtools/itempool.hxx> +#include <svl/itempool.hxx> #include <txatbase.hxx> #include <fmtfld.hxx> #include <docufld.hxx> diff --git a/sw/source/core/txtnode/txtatr2.cxx b/sw/source/core/txtnode/txtatr2.cxx index 18db65d13dc8..afed4e1af732 100644 --- a/sw/source/core/txtnode/txtatr2.cxx +++ b/sw/source/core/txtnode/txtatr2.cxx @@ -31,7 +31,6 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" - #include <hintids.hxx> #include <hints.hxx> #include <sfx2/objsh.hxx> @@ -52,13 +51,6 @@ TYPEINIT1(SwTxtINetFmt,SwClient); TYPEINIT1(SwTxtRuby,SwClient); -// ATT_XMLCONTAINERITEM ****************************** - -SwTxtXMLAttrContainer::SwTxtXMLAttrContainer( - SvXMLAttrContainerItem& rAttr, - xub_StrLen nStt, xub_StrLen nEnde ) - : SwTxtAttrEnd( rAttr, nStt, nEnde ) -{} /************************************************************************* * class SwTxtCharFmt diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index b34d013f3264..1b931ad68fd5 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -41,7 +41,7 @@ #endif #include <hintids.hxx> #include <vcl/svapp.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/splwrap.hxx> #include <svx/langitem.hxx> #include <svx/fontitem.hxx> @@ -368,7 +368,6 @@ static bool lcl_HaveCommonAttributes( IStyleAccess& rStyleAccess, return bRet; } - inline BOOL InRange(xub_StrLen nIdx, xub_StrLen nStart, xub_StrLen nEnd) { return ((nIdx >=nStart) && (nIdx <= nEnd)); } @@ -1676,6 +1675,7 @@ void SwTxtNode::ReplaceTextOnly( xub_StrLen nPos, xub_StrLen nLen, void SwTxtNode::CountWords( SwDocStat& rStat, xub_StrLen nStt, xub_StrLen nEnd ) const { + ++rStat.nAllPara; // #i93174#: count _all_ paragraphs if( nStt < nEnd ) { if ( !IsHidden() ) diff --git a/sw/source/core/undo/docundo.cxx b/sw/source/core/undo/docundo.cxx index 1eeb9246dffe..b0d8a486b1ae 100644 --- a/sw/source/core/undo/docundo.cxx +++ b/sw/source/core/undo/docundo.cxx @@ -203,7 +203,7 @@ void SwDoc::AppendUndo( SwUndo* pUndo ) USHORT nEnde = UNDO_ACTION_LIMIT; // nur zum Testen der neuen DOC-Member -#ifndef PRODUCT +#ifdef DBG_UTIL { SwUndoId nId = UNDO_EMPTY; USHORT nUndosCnt = 0, nSttEndCnt = 0; @@ -551,7 +551,7 @@ SwUndoId SwDoc::EndUndo(SwUndoId eUndoId, const SwRewriter * pRewriter) pUndoEnd->SetSttOffset( nSize ); // nur zum Testen der Start/End-Verpointerung vom Start/End Undo -#ifndef PRODUCT +#ifdef DBG_UTIL { USHORT nEndCnt = 1, nCnt = pUndos->Count(); SwUndoId nTmpId = UNDO_EMPTY; diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx index ffc831fe16e5..7f868d770100 100644 --- a/sw/source/core/undo/rolbck.cxx +++ b/sw/source/core/undo/rolbck.cxx @@ -33,7 +33,7 @@ #include <hintids.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <fmtftn.hxx> #include <fchrfmt.hxx> #include <fmtflcnt.hxx> @@ -833,7 +833,7 @@ SwHistoryResetAttrSet::SwHistoryResetAttrSet( const SfxItemSet& rSet, , m_Array( (BYTE)rSet.Count() ) { SfxItemIter aIter( rSet ); - bool bAutoStyle = true; + bool bAutoStyle = false; while( TRUE ) { diff --git a/sw/source/core/undo/unattr.cxx b/sw/source/core/undo/unattr.cxx index e5312b3cefdd..87e0531dd893 100644 --- a/sw/source/core/undo/unattr.cxx +++ b/sw/source/core/undo/unattr.cxx @@ -39,7 +39,7 @@ #include <svx/svdmodel.hxx> #include <svx/tstpitem.hxx> #include <svx/svdpage.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <fmtflcnt.hxx> diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx index 87522d4d59f8..6a9b61c7aeb8 100644 --- a/sw/source/core/undo/undobj.cxx +++ b/sw/source/core/undo/undobj.cxx @@ -68,7 +68,7 @@ public: SwNodeIndex* GetMvSttIdx() const { return SwUndoSaveSection::GetMvSttIdx(); } -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nRedlineCount; #endif }; @@ -666,14 +666,9 @@ void SwUndoSaveCntnt::DelCntntIndex( const SwPosition& rMark, { if( !pHistory ) pHistory = new SwHistory; - if( pAPos->nNode < pEnd->nNode && - ( ( nsDelCntntType::DELCNT_CHKNOCNTNT & nDelCntntType ) || - ( pStt->nNode < pAPos->nNode || !pStt->nContent.GetIndex() ) ) ) + if (IsDestroyFrameAnchoredAtChar( + *pAPos, *pStt, *pEnd, nDelCntntType)) { - // Here we identified the objects to destroy: - // - anchored between start and end of the selection - // - anchored in start of the selection with "CheckNoContent" - // - anchored in start of sel. and the selection start at pos 0 pHistory->Add( *pFmt, nChainInsPos ); n = n >= rSpzArr.Count() ? rSpzArr.Count() : n+1; } @@ -1094,7 +1089,7 @@ SwRedlineSaveData::SwRedlineSaveData( SwComparePosition eCmpPos, ASSERT( !this, "keine gueltigen Daten!" ) } -#ifndef PRODUCT +#ifdef DBG_UTIL nRedlineCount = rSttPos.nNode.GetNode().GetDoc()->GetRedlineTbl().Count(); #endif } @@ -1388,3 +1383,20 @@ String DenoteSpecialCharacters(const String & rStr) return aResult; } + +bool IsDestroyFrameAnchoredAtChar(SwPosition const & rAnchorPos, + SwPosition const & rStart, SwPosition const & rEnd, + DelCntntType const nDelCntntType) +{ + + // Here we identified the objects to destroy: + // - anchored between start and end of the selection + // - anchored in start of the selection with "CheckNoContent" + // - anchored in start of sel. and the selection start at pos 0 + return (rAnchorPos.nNode < rEnd.nNode) + && ( (nsDelCntntType::DELCNT_CHKNOCNTNT & nDelCntntType) + || (rStart.nNode < rAnchorPos.nNode) + || !rStart.nContent.GetIndex() + ); +} + diff --git a/sw/source/core/undo/undobj1.cxx b/sw/source/core/undo/undobj1.cxx index dd261282e5c7..10bcae715f28 100644 --- a/sw/source/core/undo/undobj1.cxx +++ b/sw/source/core/undo/undobj1.cxx @@ -33,7 +33,7 @@ #include <hintids.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <fmtflcnt.hxx> #include <fmtanchr.hxx> #include <fmtcntnt.hxx> diff --git a/sw/source/core/undo/unredln.cxx b/sw/source/core/undo/unredln.cxx index e2cb9fb37428..21103ebb224d 100644 --- a/sw/source/core/undo/unredln.cxx +++ b/sw/source/core/undo/unredln.cxx @@ -247,6 +247,12 @@ void SwUndoRedlineSort::_Undo( SwUndoIter& rIter ) // im aSaveRange steht der kopierte, sprich der originale. SwDoc& rDoc = rIter.GetDoc(); + SwPosition* pStart = rIter.pAktPam->Start(); + SwPosition* pEnd = rIter.pAktPam->End(); + + SwNodeIndex aPrevIdx( pStart->nNode, -1 ); + ULONG nOffsetTemp = pEnd->nNode.GetIndex() - pStart->nNode.GetIndex(); + if( 0 == ( nsRedlineMode_t::REDLINE_SHOW_DELETE & rDoc.GetRedlineMode()) ) { // die beiden Redline Objecte suchen und diese dann anzeigen lassen, @@ -254,17 +260,17 @@ void SwUndoRedlineSort::_Undo( SwUndoIter& rIter ) // das Geloeschte ist versteckt, also suche das INSERT // Redline Object. Dahinter steht das Geloeschte USHORT nFnd = rDoc.GetRedlinePos( - *rDoc.GetNodes()[ nSttNode + nOffset + 1 ], + *rDoc.GetNodes()[ nSttNode + 1 ], nsRedlineType_t::REDLINE_INSERT ); ASSERT( USHRT_MAX != nFnd && nFnd+1 < rDoc.GetRedlineTbl().Count(), "kein Insert Object gefunden" ); ++nFnd; - rDoc.GetRedlineTbl()[nFnd]->Show(); - SetPaM( *rIter.pAktPam ); + rDoc.GetRedlineTbl()[nFnd]->Show( 1 ); } { SwPaM aTmp( *rIter.pAktPam->GetMark() ); + aTmp.GetMark()->nContent = 0; aTmp.SetMark(); aTmp.GetPoint()->nNode = nSaveEndNode; aTmp.GetPoint()->nContent.Assign( aTmp.GetCntntNode(), nSaveEndCntnt ); @@ -272,13 +278,52 @@ void SwUndoRedlineSort::_Undo( SwUndoIter& rIter ) } rDoc.DelFullPara( *rIter.pAktPam ); + + SwPaM* pPam = rIter.pAktPam; + pPam->DeleteMark(); + pPam->GetPoint()->nNode.Assign( aPrevIdx.GetNode(), +1 ); + SwCntntNode* pCNd = pPam->GetCntntNode(); + pPam->GetPoint()->nContent.Assign(pCNd, 0 ); + pPam->SetMark(); + + pPam->GetPoint()->nNode += nOffsetTemp; + pCNd = pPam->GetCntntNode(); + pPam->GetPoint()->nContent.Assign( pCNd, pCNd->Len() ); + + SetValues( *pPam ); + SetPaM( *rIter.pAktPam ); } void SwUndoRedlineSort::_Redo( SwUndoIter& rIter ) { SwPaM& rPam = *rIter.pAktPam; + + SwPaM* pPam = &rPam; + SwPosition* pStart = pPam->Start(); + SwPosition* pEnd = pPam->End(); + + SwNodeIndex aPrevIdx( pStart->nNode, -1 ); + ULONG nOffsetTemp = pEnd->nNode.GetIndex() - pStart->nNode.GetIndex(); + xub_StrLen nCntStt = pStart->nContent.GetIndex(); + rIter.GetDoc().SortText( rPam, *pOpt ); + + pPam->DeleteMark(); + pPam->GetPoint()->nNode.Assign( aPrevIdx.GetNode(), +1 ); + SwCntntNode* pCNd = pPam->GetCntntNode(); + xub_StrLen nLen = pCNd->Len(); + if( nLen > nCntStt ) + nLen = nCntStt; + pPam->GetPoint()->nContent.Assign(pCNd, nLen ); + pPam->SetMark(); + + pPam->GetPoint()->nNode += nOffsetTemp; + pCNd = pPam->GetCntntNode(); + pPam->GetPoint()->nContent.Assign( pCNd, pCNd->Len() ); + + SetValues( rPam ); + SetPaM( rPam ); rPam.GetPoint()->nNode = nSaveEndNode; rPam.GetPoint()->nContent.Assign( rPam.GetCntntNode(), nSaveEndCntnt ); diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index 3d5dbd429e49..a90807e53877 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -66,8 +66,7 @@ #include <comcore.hrc> #include <unochart.hxx> - -#ifdef PRODUCT +#ifndef DBG_UTIL #define CHECK_TABLE(t) #else #ifdef DEBUG @@ -77,7 +76,7 @@ #endif #endif -#ifdef PRODUCT +#ifndef DBG_UTIL #define _DEBUG_REDLINE( pDoc ) #else void lcl_DebugRedline( const SwDoc* pDoc ); @@ -195,7 +194,7 @@ public: void InsertSort( SvUShorts& rArr, USHORT nIdx, USHORT* pInsPos = 0 ); void InsertSort( SvULongs& rArr, ULONG nIdx, USHORT* pInsPos = 0 ); -#if defined( JP_DEBUG ) && !defined( PRODUCT ) +#if defined( JP_DEBUG ) && defined(DBG_UTIL) #include "shellio.hxx" void DumpDoc( SwDoc* pDoc, const String& rFileNm ); void CheckTable( const SwTable& ); @@ -3253,7 +3252,7 @@ void InsertSort( SvULongs& rArr, ULONG nIdx, USHORT* pInsPos ) *pInsPos = nU; } -#if defined( JP_DEBUG ) && !defined( PRODUCT ) +#if defined( JP_DEBUG ) && defined(DBG_UTIL) void DumpDoc( SwDoc* pDoc, const String& rFileNm ) diff --git a/sw/source/core/unocore/swunohelper.cxx b/sw/source/core/unocore/swunohelper.cxx index a3a044295e0d..ae275ea50e92 100644 --- a/sw/source/core/unocore/swunohelper.cxx +++ b/sw/source/core/unocore/swunohelper.cxx @@ -52,7 +52,7 @@ #include <ucbhelper/contentidentifier.hxx> #include <ucbhelper/contentbroker.hxx> #include <ucbhelper/content.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <swunohelper.hxx> #include <swunodef.hxx> #include <errhdl.hxx> diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx index 8103b924ae98..411bc33a82ce 100644 --- a/sw/source/core/unocore/unochart.cxx +++ b/sw/source/core/unocore/unochart.cxx @@ -41,7 +41,7 @@ #include <vos/mutex.hxx> #include <osl/mutex.hxx> #include <vcl/svapp.hxx> -#include <svtools/zforlist.hxx> // SvNumberFormatter +#include <svl/zforlist.hxx> // SvNumberFormatter #include <svtools/chartprettypainter.hxx> #include <tools/link.hxx> diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx index 0a95eee00bcd..78afe3987d61 100644 --- a/sw/source/core/unocore/unocoll.cxx +++ b/sw/source/core/unocore/unocoll.cxx @@ -59,7 +59,7 @@ #include <com/sun/star/text/XTextTablesSupplier.hpp> #include <com/sun/star/text/TableColumnSeparator.hpp> #include <com/sun/star/text/XTextTable.hpp> -#include <svtools/PasswordHelper.hxx> +#include <svl/PasswordHelper.hxx> #include <svtools/unoimap.hxx> #include <svtools/unoevent.hxx> #include <unotbl.hxx> diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx index 8c84dce7948a..4f4c7c2658b5 100644 --- a/sw/source/core/unocore/unocrsrhelper.cxx +++ b/sw/source/core/unocore/unocrsrhelper.cxx @@ -59,7 +59,7 @@ #include <swundo.hxx> #include <cntfrm.hxx> #include <pagefrm.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <tools/urlobj.hxx> #include <docary.hxx> #include <swtable.hxx> @@ -70,11 +70,11 @@ #include <svtools/ctrltool.hxx> #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <sfx2/docfilt.hxx> #include <sfx2/docfile.hxx> #include <sfx2/fcontnr.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <com/sun/star/beans/PropertyState.hpp> #include <SwStyleNameMapper.hxx> #include <redline.hxx> @@ -1032,9 +1032,11 @@ void makeRedline( SwPaM& rPaM, } SwRedline* pRedline = new SwRedline( aRedlineData, rPaM ); + RedlineMode_t nPrevMode = pRedlineAccess->GetRedlineMode( ); + pRedlineAccess->SetRedlineMode_intern(nsRedlineMode_t::REDLINE_ON); bool bRet = pRedlineAccess->AppendRedline( pRedline, false ); - pRedlineAccess->SetRedlineMode_intern(nsRedlineMode_t::REDLINE_NONE); + pRedlineAccess->SetRedlineMode_intern( nPrevMode ); if( !bRet ) throw lang::IllegalArgumentException(); } diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx index 11b3eae5a16a..4f1b2c1770e3 100644 --- a/sw/source/core/unocore/unodraw.cxx +++ b/sw/source/core/unocore/unodraw.cxx @@ -75,19 +75,12 @@ #include <com/sun/star/text/HoriOrientation.hpp> #include <com/sun/star/text/VertOrientation.hpp> #include <basegfx/numeric/ftools.hxx> -// OD 2004-05-05 #i28701# +#include <algorithm> #include <fmtwrapinfluenceonobjpos.hxx> -// --> OD 2004-11-10 #i35007# #include <com/sun/star/text/TextContentAnchorType.hpp> -// <-- -// --> OD 2005-03-10 #i44334#, #i44681# -// --> OD 2007-01-03 #i73079# - use correct matrix type #include <basegfx/matrix/b2dhommatrix.hxx> -// <-- -// --> OD 2009-01-16 #i59051 +#include <basegfx/matrix/b2dhommatrixtools.hxx> #include <com/sun/star/drawing/PointSequence.hpp> -// <-- - #include <vcl/svapp.hxx> #include <slist> #include <iterator> @@ -2117,6 +2110,7 @@ void SwXShape::attach(const uno::Reference< text::XTextRange > & xTextRange) OTextCursorHelper* pCursor = 0; SwXTextPortion* pPortion = 0; SwXText* pText = 0; + SwXParagraph* pParagraph = 0; pRange = reinterpret_cast< SwXTextRange * >( sal::static_int_cast< sal_IntPtr >( xRangeTunnel->getSomething( SwXTextRange::getUnoTunnelId()) )); @@ -2126,6 +2120,8 @@ void SwXShape::attach(const uno::Reference< text::XTextRange > & xTextRange) sal::static_int_cast< sal_IntPtr >( xRangeTunnel->getSomething( OTextCursorHelper::getUnoTunnelId()) )); pPortion = reinterpret_cast< SwXTextPortion * >( sal::static_int_cast< sal_IntPtr >( xRangeTunnel->getSomething( SwXTextPortion::getUnoTunnelId()) )); + pParagraph = reinterpret_cast< SwXParagraph * >( + sal::static_int_cast< sal_IntPtr >( xRangeTunnel->getSomething( SwXParagraph::getUnoTunnelId( ) ) ) ); if (pRange) pDoc = pRange->GetDoc(); @@ -2137,6 +2133,8 @@ void SwXShape::attach(const uno::Reference< text::XTextRange > & xTextRange) { pDoc = pPortion->GetCursor()->GetDoc(); } + else if ( !pDoc && pParagraph && pParagraph->GetTxtNode( ) ) + pDoc = pParagraph->GetTxtNode( )->GetDoc( ); } @@ -2855,8 +2853,8 @@ void SwXShape::_AdjustPositionProperties( const awt::Point _aPosition ) // apply translation difference to PolyPolygonBezier. if ( aTranslateDiff.X != 0 || aTranslateDiff.Y != 0 ) { - basegfx::B2DHomMatrix aMatrix; - aMatrix.translate( aTranslateDiff.X, aTranslateDiff.Y ); + const basegfx::B2DHomMatrix aMatrix(basegfx::tools::createTranslateB2DHomMatrix( + aTranslateDiff.X, aTranslateDiff.Y)); const sal_Int32 nOuterSequenceCount(aConvertedPath.Coordinates.getLength()); drawing::PointSequence* pInnerSequence = aConvertedPath.Coordinates.getArray(); diff --git a/sw/source/core/unocore/unoevent.cxx b/sw/source/core/unocore/unoevent.cxx index 26486cb255dc..c721f6f0cad5 100644 --- a/sw/source/core/unocore/unoevent.cxx +++ b/sw/source/core/unocore/unoevent.cxx @@ -43,7 +43,7 @@ #include <svx/svxids.hrc> #endif #include "fmtinfmt.hxx" -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <rtl/ustrbuf.hxx> #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP #include <com/sun/star/beans/PropertyValue.hpp> diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx index f8de0eb39691..b010b329287d 100644 --- a/sw/source/core/unocore/unofield.cxx +++ b/sw/source/core/unocore/unofield.cxx @@ -88,7 +88,7 @@ #include <tools/urlobj.hxx> #include <svx/dataaccessdescriptor.hxx> #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <vos/mutex.hxx> #include <vcl/svapp.hxx> #include <textapi.hxx> diff --git a/sw/source/core/unocore/unomap.cxx b/sw/source/core/unocore/unomap.cxx index f2f48e382508..1ce2d6bc3792 100644 --- a/sw/source/core/unocore/unomap.cxx +++ b/sw/source/core/unocore/unomap.cxx @@ -2250,6 +2250,8 @@ const SfxItemPropertyMapEntry* SwUnoPropertyMapProvider::GetPropertyMapEntries(s {SW_PROP_NMID(UNO_NAME_NAME), FIELD_PROP_PAR4, CPPU_E2T(CPPUTYPE_OUSTRING), PROPERTY_NONE, 0}, {SW_PROP_NMID(UNO_NAME_CURRENT_PRESENTATION), FIELD_PROP_PAR3, CPPU_E2T(CPPUTYPE_OUSTRING), PROPERTY_NONE, 0}, {SW_PROP_NMID(UNO_NAME_IS_FIXED), FIELD_PROP_BOOL1, CPPU_E2T(CPPUTYPE_BOOLEAN) , PROPERTY_NONE,0}, + {SW_PROP_NMID(UNO_NAME_NUMBER_FORMAT), FIELD_PROP_FORMAT, CPPU_E2T(CPPUTYPE_INT32), PROPERTY_NONE, 0}, + {SW_PROP_NMID(UNO_NAME_IS_FIXED_LANGUAGE), FIELD_PROP_BOOL4, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, 0}, COMMON_FLDTYP_PROPERTIES {0,0,0,0,0,0} }; diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx index 3f07ccf66b62..72d5b02c769a 100644 --- a/sw/source/core/unocore/unoobj.cxx +++ b/sw/source/core/unocore/unoobj.cxx @@ -112,7 +112,7 @@ #include <fmtflcnt.hxx> #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/brshitem.hxx> #include <fmtclds.hxx> #include <dcontact.hxx> diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx index b7764778d31c..23e868ee5065 100644 --- a/sw/source/core/unocore/unoobj2.cxx +++ b/sw/source/core/unocore/unoobj2.cxx @@ -112,7 +112,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT #define _SVSTDARR_XUB_STRLEN -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/brshitem.hxx> #include <fmtclds.hxx> #include <dcontact.hxx> @@ -1192,6 +1192,12 @@ SwXTextRange::SwXTextRange(SwFrmFmt& rTblFmt) : m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_CURSOR)), pMark(NULL) { + SwTable* pTable = SwTable::FindTable( &rTblFmt ); + SwTableNode* pTblNode = pTable->GetTableNode( ); + SwPosition aPosition( *pTblNode ); + SwPaM aPam( aPosition ); + + _CreateNewBookmark( aPam ); } SwXTextRange::~SwXTextRange() diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx index 227b8cf58e42..6fc184e2a50f 100644 --- a/sw/source/core/unocore/unoparagraph.cxx +++ b/sw/source/core/unocore/unoparagraph.cxx @@ -48,7 +48,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_USHORTSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <com/sun/star/beans/SetPropertyTolerantFailed.hpp> #include <com/sun/star/beans/GetPropertyTolerantResult.hpp> @@ -293,7 +293,6 @@ void SAL_CALL SwXParagraph::SetPropertyValues_Impl( const OUString* pPropertyNames = rPropertyNames.getConstArray(); const uno::Any* pValues = rValues.getConstArray(); const SfxItemPropertyMap* pMap = m_pPropSet->getPropertyMap(); - OUString sTmp; SwParaSelection aParaSel( & aCursor ); for(sal_Int32 nProp = 0; nProp < rPropertyNames.getLength(); nProp++) { @@ -306,7 +305,7 @@ void SAL_CALL SwXParagraph::SetPropertyValues_Impl( throw beans::PropertyVetoException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + pPropertyNames[nProp], static_cast < cppu::OWeakObject * > ( this ) ); SwXTextCursor::SetPropertyValue(aCursor, *m_pPropSet, - sTmp, pValues[nProp]); + pPropertyNames[nProp], pValues[nProp]); } } } diff --git a/sw/source/core/unocore/unoport.cxx b/sw/source/core/unocore/unoport.cxx index 04d073a09df3..808884e207a8 100644 --- a/sw/source/core/unocore/unoport.cxx +++ b/sw/source/core/unocore/unoport.cxx @@ -35,7 +35,7 @@ #include <cmdid.h> #include <vos/mutex.hxx> #include <vcl/svapp.hxx> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include <unocrsrhelper.hxx> #include <unoport.hxx> #include <unoobj.hxx> @@ -719,10 +719,6 @@ uno::Sequence< beans::GetDirectPropertyTolerantResult > SAL_CALL SwXTextPortion: aResult.Result = beans::TolerantPropertySetResultType::SUCCESS; aResultVector.push_back( aResult ); } - // this assertion should never occur! - DBG_ASSERT( !aResultVector.size() || aResult.Result != beans::TolerantPropertySetResultType::UNKNOWN_FAILURE, - "unknown failure while retrieving property" ); - } } catch (beans::UnknownPropertyException &) diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx index b49816d9c9e3..a8426cf8b438 100644 --- a/sw/source/core/unocore/unoportenum.cxx +++ b/sw/source/core/unocore/unoportenum.cxx @@ -831,7 +831,6 @@ lcl_ExportHints( case RES_TXTATR_AUTOFMT: case RES_TXTATR_INETFMT: case RES_TXTATR_CHARFMT: - case RES_TXTATR_UNKNOWN_CONTAINER: break; // these are handled as properties of a "Text" portion default: DBG_ERROR("unknown attribute"); diff --git a/sw/source/core/unocore/unoprnms.cxx b/sw/source/core/unocore/unoprnms.cxx index edd0721d5b63..bafe4be0598d 100644 --- a/sw/source/core/unocore/unoprnms.cxx +++ b/sw/source/core/unocore/unoprnms.cxx @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" #include <tools/debug.hxx> -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include <unoprnms.hxx> diff --git a/sw/source/core/unocore/unosect.cxx b/sw/source/core/unocore/unosect.cxx index 1308c6ad7d3e..690118cb81b3 100644 --- a/sw/source/core/unocore/unosect.cxx +++ b/sw/source/core/unocore/unosect.cxx @@ -36,7 +36,7 @@ #include <cmdid.h> #include <hintids.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/brshitem.hxx> #ifndef _SVX_XMLCNITEM_HXX #include <svx/xmlcnitm.hxx> diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx index 722235e3c391..4f40e12c2326 100644 --- a/sw/source/core/unocore/unostyle.cxx +++ b/sw/source/core/unocore/unostyle.cxx @@ -35,10 +35,10 @@ #include <hintids.hxx> #include <vos/mutex.hxx> #include <vcl/svapp.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/style.hxx> -#include <svtools/itemiter.hxx> +#include <svl/style.hxx> +#include <svl/itemiter.hxx> #include <svx/pageitem.hxx> #include <svx/sizeitem.hxx> #include <svx/ulspitem.hxx> diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx index 20dde56ead7d..36a8808fd351 100644 --- a/sw/source/core/unocore/unotbl.cxx +++ b/sw/source/core/unocore/unotbl.cxx @@ -63,7 +63,7 @@ #include <fmtpdsc.hxx> #include <pagedesc.hxx> #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <viewsh.hxx> #include <tabfrm.hxx> #include <redline.hxx> @@ -87,7 +87,7 @@ #include <com/sun/star/table/CellContentType.hpp> #include <unotbl.hxx> #include <unoobj.hxx> -#include <svtools/zforlist.hxx> // SvNumberFormatter +#include <svl/zforlist.hxx> // SvNumberFormatter #include <svx/brkitem.hxx> #include <svx/shaditem.hxx> #include <svx/lrspitem.hxx> diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 56e3cbacd822..ee1055b276c9 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -66,6 +66,8 @@ #include <memory> #include <stdlib.h> +#include <iostream> + using namespace ::com::sun::star; using ::rtl::OUString; @@ -268,8 +270,8 @@ void SwXText::insertString(const uno::Reference< text::XTextRange >& xTextRange, sal::static_int_cast< sal_IntPtr >( xRangeTunnel->getSomething( OTextCursorHelper::getUnoTunnelId()) )); } - if(pRange && pRange->GetDoc() == GetDoc() || - pCursor && pCursor->GetDoc() == GetDoc()) + if( (pRange && pRange->GetDoc() == GetDoc()) || + (pCursor && pCursor->GetDoc() == GetDoc()) ) { const SwStartNode* pOwnStartNode = GetStartNode(); if(pCursor) @@ -1827,19 +1829,11 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( */ if(aStartCellPam.Start()->nNode < aEndCellPam.End()->nNode) { - const SwNode& rStartNode = aStartCellPam.Start()->nNode.GetNode(); - if(!rStartNode.IsTxtNode() || - !aEndCellPam.End()->nNode.GetNode().IsTxtNode()) - { - //start and end of the cell must be on a SwTxtNode - bExcept = true; - break; - } // increment on each StartNode and decrement on each EndNode // we must reach zero at the end and must not go below zero long nOpenNodeBlock = 0; SwNodeIndex aCellIndex = aStartCellPam.Start()->nNode; - while( ++aCellIndex < aEndCellPam.End()->nNode.GetIndex()) + while( aCellIndex < aEndCellPam.End()->nNode.GetIndex()) { if( aCellIndex.GetNode().IsStartNode() ) ++nOpenNodeBlock; @@ -1850,6 +1844,7 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( bExcept = true; break; } + ++aCellIndex; } if( nOpenNodeBlock != 0) { @@ -1895,7 +1890,9 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( //node border anyway } else + { bExcept = true; + } } //now check if there's a need to insert another paragraph break if( aEndCellPam.End()->nContent.GetIndex() < aEndCellPam.End()->nNode.GetNode().GetTxtNode()->Len()) @@ -1952,7 +1949,22 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( const beans::PropertyValue* pTableProperties = rTableProperties.getConstArray(); sal_Int32 nProperty = 0; for( ; nProperty < rTableProperties.getLength(); ++nProperty) - xPrSet->setPropertyValue( pTableProperties[nProperty].Name, pTableProperties[nProperty].Value ); + { + try + { + xPrSet->setPropertyValue( pTableProperties[nProperty].Name, pTableProperties[nProperty].Value ); + } + catch ( const uno::Exception e ) + { +#if DEBUG + std::clog << "Exception when setting property: "; + std::clog << rtl::OUStringToOString( pTableProperties[nProperty].Name, RTL_TEXTENCODING_UTF8 ).getStr( ); + std::clog << ". Message: "; + std::clog << rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr( ); + std::clog << std::endl; +#endif + } + } //apply row properties uno::Reference< table::XTableRows > xRows = xRet->getRows(); @@ -2009,6 +2021,7 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( //--< #endif + //apply cell properties for( nRow = 0; nRow < rCellProperties.getLength(); ++nRow) { @@ -2021,7 +2034,8 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( uno::Reference< beans::XPropertySet > xCell( pTextTable->getCellByPosition(nCell, nRow), uno::UNO_QUERY ); for( nProperty = 0; nProperty < nCellProperties; ++nProperty) { - if(aCellProperties[nProperty].Name.equalsAsciiL( + const OUString& rName = aCellProperties[nProperty].Name; + if( rName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( "VerticalMerge"))) { //determine left border position @@ -2085,7 +2099,23 @@ uno::Reference< text::XTextTable > SwXText::convertToTable( } } else - xCell->setPropertyValue(aCellProperties[nProperty].Name, aCellProperties[nProperty].Value); + { + try + { + xCell->setPropertyValue(rName, aCellProperties[nProperty].Value); + } + catch ( const uno::Exception e ) + { + // Apply the paragraph and char properties to the cell's content + uno::Reference< text::XText > xCellText( xCell, uno::UNO_QUERY ); + uno::Reference< text::XTextCursor > xCellCurs = xCellText->createTextCursor( ); + xCellCurs->gotoStart( false ); + xCellCurs->gotoEnd( true ); + + uno::Reference< beans::XPropertySet > xCellTextProps( xCellCurs, uno::UNO_QUERY ); + xCellTextProps->setPropertyValue( rName, aCellProperties[nProperty].Value ); + } + } } } } diff --git a/sw/source/core/view/vdraw.cxx b/sw/source/core/view/vdraw.cxx index b58026e33a72..1b692f36ad8d 100644 --- a/sw/source/core/view/vdraw.cxx +++ b/sw/source/core/view/vdraw.cxx @@ -45,7 +45,7 @@ /// include <svx/svdoutl.hxx> #include <svx/svdoutl.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL #ifndef _SVX_FMGLOB_HXX #include <svx/fmglob.hxx> #endif diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 2c25ffbad82a..cd80439877f6 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -376,6 +376,37 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd ) // #i75172# end DrawingLayer paint DLPostPaint2(true); } + + // --> OD 2009-12-03 #i107365# + // Direct paint has been performed. Thus, take care of + // transparent child windows. + if ( GetWin() ) + { + Window& rWindow = *(GetWin()); + if(rWindow.IsChildTransparentModeEnabled() && rWindow.GetChildCount()) + { + const Rectangle aRectanglePixel(rWindow.LogicToPixel(aRect.SVRect())); + + for ( sal_uInt16 a(0); a < rWindow.GetChildCount(); a++ ) + { + Window* pCandidate = rWindow.GetChild(a); + + if ( pCandidate && pCandidate->IsPaintTransparent() ) + { + const Rectangle aCandidatePosSizePixel( + pCandidate->GetPosPixel(), + pCandidate->GetSizePixel()); + + if ( aCandidatePosSizePixel.IsOver(aRectanglePixel) ) + { + pCandidate->Invalidate( INVALIDATE_NOTRANSPARENT|INVALIDATE_CHILDREN ); + pCandidate->Update(); + } + } + } + } + } + // <-- } delete pVout; @@ -407,7 +438,7 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd ) UISizeNotify(); ++nStartAction; -#ifndef PRODUCT +#ifdef DBG_UTIL // test option 'No Scroll' suppresses the automatic repair of the scrolled area if ( !GetViewOptions()->IsTest8() ) #endif @@ -589,7 +620,7 @@ void ViewShell::MakeVisible( const SwRect &rRect ) EndAction(); } while( nOldH != pRoot->Frm().Height() && nLoopCnt-- ); } -#ifndef PRODUCT +#ifdef DBG_UTIL else { //MA: 04. Nov. 94, braucht doch keiner oder?? @@ -746,7 +777,7 @@ void ViewShell::LayoutIdle() SET_CURR_SHELL( this ); -#ifndef PRODUCT +#ifdef DBG_UTIL // Wenn Test5 gedrueckt ist, wird der IdleFormatierer abgeknipst. if( pOpt->IsTest5() ) return; @@ -1146,7 +1177,7 @@ void ViewShell::VisPortChgd( const SwRect &rRect) if ( rRect == VisArea() ) return; -#ifndef PRODUCT +#ifdef DBG_UTIL if ( bInEndAction ) { //Da Rescheduled doch schon wieder irgendwo einer? @@ -2685,7 +2716,7 @@ const BitmapEx& ViewShell::GetReplacementBitmap( bool bIsErrorState ) if( !*ppRet ) { USHORT nBmpResId = - Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark() + Application::GetSettings().GetStyleSettings().GetHighContrastMode() ? nHCResId : nResId; *ppRet = new BitmapEx( SW_RES( nBmpResId ) ); } diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx index 864948046b75..94169b0db2ab 100755 --- a/sw/source/core/view/vprint.cxx +++ b/sw/source/core/view/vprint.cxx @@ -63,7 +63,7 @@ #include <unotxdoc.hxx> #include <docsh.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include <txtfld.hxx> #include <fmtfld.hxx> #include <fmtfsize.hxx> @@ -938,16 +938,32 @@ SwDoc * ViewShell::CreatePrtDoc( SfxObjectShellRef &rDocShellRef) pActCrsr = dynamic_cast<SwShellCrsr*>(pActCrsr->GetPrev()); } - // Die Y-Position der ersten Selektion - const Point aSelPoint = pFESh->IsTableMode() ? - pFESh->GetTableCrsr()->GetSttPos() : - pFirstCrsr->GetSttPos(); + Point aSelPoint; + if( pFESh->IsTableMode() ) + { + SwShellTableCrsr* pShellTblCrsr = pFESh->GetTableCrsr(); + + const SwCntntNode* pCntntNode = pShellTblCrsr->GetNode()->GetCntntNode(); + const SwCntntFrm *pCntntFrm = pCntntNode ? pCntntNode->GetFrm( 0, pShellTblCrsr->Start() ) : 0; + if( pCntntFrm ) + { + SwRect aCharRect; + SwCrsrMoveState aTmpState( MV_NONE ); + pCntntFrm->GetCharRect( aCharRect, *pShellTblCrsr->Start(), &aTmpState ); + aSelPoint = Point( aCharRect.Left(), aCharRect.Top() ); + } + } + else + { + aSelPoint = pFirstCrsr->GetSttPos(); + } const SwPageFrm* pPage = GetLayout()->GetPageAtPos( aSelPoint ); + ASSERT( pPage, "no page found!" ); - // und ihren Seitendescribtor - const SwPageDesc* pPageDesc = pPrtDoc->FindPageDescByName( - pPage->GetPageDesc()->GetName() ); + // get page descriptor - fall back to the first one if pPage could not be found + const SwPageDesc* pPageDesc = pPage ? pPrtDoc->FindPageDescByName( + pPage->GetPageDesc()->GetName() ) : &pPrtDoc->_GetPageDesc( (sal_uInt16)0 ); if( !pFESh->IsTableMode() && pActCrsr->HasMark() ) { // Am letzten Absatz die Absatzattribute richten: @@ -1031,15 +1047,32 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt) // Die Y-Position der ersten Selektion // Die Y-Position der ersten Selektion - const Point aSelPoint = pFESh->IsTableMode() ? - pFESh->GetTableCrsr()->GetSttPos() : - pFirstCrsr->GetSttPos(); + Point aSelPoint; + if( pFESh->IsTableMode() ) + { + SwShellTableCrsr* pShellTblCrsr = pFESh->GetTableCrsr(); + + const SwCntntNode* pCntntNode = pShellTblCrsr->GetNode()->GetCntntNode(); + const SwCntntFrm *pCntntFrm = pCntntNode ? pCntntNode->GetFrm( 0, pShellTblCrsr->Start() ) : 0; + if( pCntntFrm ) + { + SwRect aCharRect; + SwCrsrMoveState aTmpState( MV_NONE ); + pCntntFrm->GetCharRect( aCharRect, *pShellTblCrsr->Start(), &aTmpState ); + aSelPoint = Point( aCharRect.Left(), aCharRect.Top() ); + } + } + else + { + aSelPoint = pFirstCrsr->GetSttPos(); + } const SwPageFrm* pPage = GetLayout()->GetPageAtPos( aSelPoint ); + ASSERT( pPage, "no page found!" ); - // und ihren Seitendescribtor - const SwPageDesc* pPageDesc = pPrtDoc->FindPageDescByName( - pPage->GetPageDesc()->GetName() ); + // get page descriptor - fall back to the first one if pPage could not be found + const SwPageDesc* pPageDesc = pPage ? pPrtDoc->FindPageDescByName( + pPage->GetPageDesc()->GetName() ) : &pPrtDoc->_GetPageDesc( (sal_uInt16)0 ); if( !pFESh->IsTableMode() && pActCrsr->HasMark() ) { // Am letzten Absatz die Absatzattribute richten: diff --git a/sw/source/filter/ascii/ascatr.cxx b/sw/source/filter/ascii/ascatr.cxx index 22957c9434af..02408f971140 100644 --- a/sw/source/filter/ascii/ascatr.cxx +++ b/sw/source/filter/ascii/ascatr.cxx @@ -34,7 +34,7 @@ #include <tools/stream.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <svx/fontitem.hxx> #include <pam.hxx> diff --git a/sw/source/filter/basflt/fltini.cxx b/sw/source/filter/basflt/fltini.cxx index cb31050b02d3..edac439d05e6 100644 --- a/sw/source/filter/basflt/fltini.cxx +++ b/sw/source/filter/basflt/fltini.cxx @@ -39,7 +39,7 @@ #include <i18npool/mslangid.hxx> #include <vcl/msgbox.hxx> #include <svtools/parhtml.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <sot/storage.hxx> #include <sot/clsids.hxx> #include <sfx2/app.hxx> @@ -418,6 +418,9 @@ void SwFilterOptions::GetValues( sal_uInt16 nCnt, const sal_Char** ppNames, pValues[ n ] = 0; } +void SwFilterOptions::Commit() {} +void SwFilterOptions::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /* */ @@ -1008,3 +1011,24 @@ void GetWW8Writer( const String& rFltName, const String& rBaseURL, WriterRef& xR else xRet = WriterRef(0); } + +typedef ULONG ( __LOADONCALLAPI *SaveOrDel )( SfxObjectShell&, SotStorage&, BOOL, const String& ); +typedef ULONG ( __LOADONCALLAPI *GetSaveWarning )( SfxObjectShell& ); + +ULONG SaveOrDelMSVBAStorage( SfxObjectShell& rDoc, SotStorage& rStor, BOOL bSaveInto, const String& rStorageName ) +{ + SaveOrDel pFunction = reinterpret_cast<SaveOrDel>( GetMswordLibSymbol( "SaveOrDelMSVBAStorage_ww8" ) ); + if( pFunction ) + return pFunction( rDoc, rStor, bSaveInto, rStorageName ); + return ERRCODE_NONE; +} + +ULONG GetSaveWarningOfMSVBAStorage( SfxObjectShell &rDocS ) +{ + GetSaveWarning pFunction = reinterpret_cast<GetSaveWarning>( GetMswordLibSymbol( "GetSaveWarningOfMSVBAStorage_ww8" ) ); + if( pFunction ) + return pFunction( rDocS ); + return ERRCODE_NONE; +} + + diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx index aaa640de0ef4..7a8b35470da2 100644 --- a/sw/source/filter/basflt/shellio.cxx +++ b/sw/source/filter/basflt/shellio.cxx @@ -33,11 +33,11 @@ #include <hintids.hxx> #include <tools/date.hxx> #include <tools/time.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <sfx2/docfile.hxx> #include <svx/lrspitem.hxx> #include <svx/ulspitem.hxx> @@ -158,7 +158,7 @@ ULONG SwReader::Read( const Reader& rOptions ) SwNodeIndex aSplitIdx( pDoc->GetNodes() ); RedlineMode_t eOld = pDoc->GetRedlineMode(); - pDoc->SetRedlineMode_intern( nsRedlineMode_t::REDLINE_IGNORE ); + RedlineMode_t ePostReadRedlineMode( nsRedlineMode_t::REDLINE_IGNORE ); // Array von FlyFormaten SwSpzFrmFmts aFlyFrmArr; @@ -170,6 +170,8 @@ ULONG SwReader::Read( const Reader& rOptions ) if( bSaveUndo ) pUndo = new SwUndoInsDoc( *pPam ); + pDoc->SetRedlineMode_intern( nsRedlineMode_t::REDLINE_IGNORE ); + SwPaM* pUndoPam = 0; if( bDocUndo || pCrsr ) { @@ -190,8 +192,15 @@ ULONG SwReader::Read( const Reader& rOptions ) xub_StrLen nEndCntnt = pCNd ? pCNd->Len() - nSttCntnt : 0; SwNodeIndex aEndPos( pPam->GetPoint()->nNode, 1 ); + pDoc->SetRedlineMode_intern( eOld ); + nError = po->Read( *pDoc, GetBaseURL(), *pPam, aFileName ); + // an ODF document may contain redline mode in settings.xml; save it! + ePostReadRedlineMode = pDoc->GetRedlineMode(); + + pDoc->SetRedlineMode_intern( nsRedlineMode_t::REDLINE_IGNORE ); + if( !IsError( nError )) // dann setzen wir das Ende mal richtig { aEndPos--; @@ -230,13 +239,27 @@ ULONG SwReader::Read( const Reader& rOptions ) const SwFmtAnchor& rAnchor = pFrmFmt->GetAnchor(); if( USHRT_MAX == aFlyFrmArr.GetPos( pFrmFmt) ) { - if( FLY_PAGE == rAnchor.GetAnchorId() || - ( FLY_AT_CNTNT == rAnchor.GetAnchorId() && - rAnchor.GetCntntAnchor() && - ( pUndoPam->GetPoint()->nNode == - rAnchor.GetCntntAnchor()->nNode || - pUndoPam->GetMark()->nNode == - rAnchor.GetCntntAnchor()->nNode ) ) ) + SwPosition const*const pFrameAnchor( + rAnchor.GetCntntAnchor()); + if ( (FLY_PAGE == rAnchor.GetAnchorId()) + || ( pFrameAnchor + && ( ( (FLY_AT_CNTNT == rAnchor.GetAnchorId()) + && ( (pUndoPam->GetPoint()->nNode == + pFrameAnchor->nNode) + || (pUndoPam->GetMark()->nNode == + pFrameAnchor->nNode) + ) + ) + // #i97570# also check frames anchored AT char + || ( (FLY_AUTO_CNTNT == rAnchor.GetAnchorId()) + && !IsDestroyFrameAnchoredAtChar( + *pFrameAnchor, + *pUndoPam->GetPoint(), + *pUndoPam->GetMark()) + ) + ) + ) + ) { if( bChkHeaderFooter && FLY_AT_CNTNT == rAnchor.GetAnchorId() && @@ -351,7 +374,9 @@ ULONG SwReader::Read( const Reader& rOptions ) pDoc->UpdateLinks( TRUE ); // <-- - eOld = (RedlineMode_t)(pDoc->GetRedlineMode() & ~nsRedlineMode_t::REDLINE_IGNORE); + // not insert: set the redline mode read from settings.xml + eOld = static_cast<RedlineMode_t>( + ePostReadRedlineMode & ~nsRedlineMode_t::REDLINE_IGNORE); pDoc->SetFieldsDirty(false, NULL, 0); } diff --git a/sw/source/filter/html/SwAppletImpl.cxx b/sw/source/filter/html/SwAppletImpl.cxx index 2e8d395d72ca..35d38ce9f1f2 100644 --- a/sw/source/filter/html/SwAppletImpl.cxx +++ b/sw/source/filter/html/SwAppletImpl.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" #include <SwAppletImpl.hxx> #include <svtools/htmlkywd.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/embed/EmbedStates.hpp> diff --git a/sw/source/filter/html/css1atr.cxx b/sw/source/filter/html/css1atr.cxx index 01108a0d2567..6945cf677f51 100644 --- a/sw/source/filter/html/css1atr.cxx +++ b/sw/source/filter/html/css1atr.cxx @@ -38,7 +38,7 @@ #ifndef _WRKWIN_HXX //autogen #include <vcl/wrkwin.hxx> #endif -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/boxitem.hxx> #include <svx/ulspitem.hxx> #include <svx/udlnitem.hxx> @@ -67,7 +67,7 @@ #include <svtools/htmlout.hxx> #include <svtools/htmlkywd.hxx> #include <svx/htmlmode.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <tools/urlobj.hxx> #include <tools/bigint.hxx> #include <unotools/charclass.hxx> diff --git a/sw/source/filter/html/htmlatr.cxx b/sw/source/filter/html/htmlatr.cxx index e788dc5da275..acf8a17b4e15 100644 --- a/sw/source/filter/html/htmlatr.cxx +++ b/sw/source/filter/html/htmlatr.cxx @@ -43,12 +43,12 @@ #if !defined _SVSTDARR_XUB_STRLEN_DECL || !defined _SVSTDARR_USHORTS_DECL #define _SVSTDARR_XUB_STRLEN #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <svtools/htmlout.hxx> #include <svtools/htmlkywd.hxx> #include <svtools/htmltokn.h> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/htmlmode.hxx> #include <svx/escpitem.hxx> #include <svx/brkitem.hxx> diff --git a/sw/source/filter/html/htmlbas.cxx b/sw/source/filter/html/htmlbas.cxx index e591d2d5e90b..a4c29e078182 100644 --- a/sw/source/filter/html/htmlbas.cxx +++ b/sw/source/filter/html/htmlbas.cxx @@ -37,7 +37,7 @@ #include <sfx2/sfx.hrc> #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <basic/sbx.hxx> #include <basic/basmgr.hxx> #include <basic/sbmod.hxx> diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx index 7fb4fd8502af..1c270e8c243b 100644 --- a/sw/source/filter/html/htmlcss1.cxx +++ b/sw/source/filter/html/htmlcss1.cxx @@ -34,9 +34,9 @@ #include "hintids.hxx" -#include <svtools/itemiter.hxx> -#include <svtools/whiter.hxx> -#include <svtools/urihelper.hxx> +#include <svl/itemiter.hxx> +#include <svl/whiter.hxx> +#include <svl/urihelper.hxx> #include <i18npool/mslangid.hxx> #include <sfx2/docfile.hxx> #ifndef _APP_HXX //autogen diff --git a/sw/source/filter/html/htmlctxt.cxx b/sw/source/filter/html/htmlctxt.cxx index 474bfe707847..12a5033ad142 100644 --- a/sw/source/filter/html/htmlctxt.cxx +++ b/sw/source/filter/html/htmlctxt.cxx @@ -33,7 +33,7 @@ #include "hintids.hxx" -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/lrspitem.hxx> #include <svx/ulspitem.hxx> #include <svx/brshitem.hxx> diff --git a/sw/source/filter/html/htmldraw.cxx b/sw/source/filter/html/htmldraw.cxx index 328eb21be526..7debe0e40eec 100644 --- a/sw/source/filter/html/htmldraw.cxx +++ b/sw/source/filter/html/htmldraw.cxx @@ -52,8 +52,8 @@ #include <svx/brshitem.hxx> #include <svx/lrspitem.hxx> #include <svx/ulspitem.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/whiter.hxx> +#include <svl/itemiter.hxx> +#include <svl/whiter.hxx> #include <svtools/htmlout.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> diff --git a/sw/source/filter/html/htmlfld.cxx b/sw/source/filter/html/htmlfld.cxx index c9930c3ca8ef..718776c07042 100644 --- a/sw/source/filter/html/htmlfld.cxx +++ b/sw/source/filter/html/htmlfld.cxx @@ -38,8 +38,8 @@ #include "docsh.hxx" #include <svtools/htmltokn.h> -#include <svtools/zformat.hxx> -#include <svtools/useroptions.hxx> +#include <svl/zformat.hxx> +#include <unotools/useroptions.hxx> #include <fmtfld.hxx> #include <ndtxt.hxx> #include <doc.hxx> diff --git a/sw/source/filter/html/htmlfly.cxx b/sw/source/filter/html/htmlfly.cxx index 92f9e1adb3d5..597d851722d8 100644 --- a/sw/source/filter/html/htmlfly.cxx +++ b/sw/source/filter/html/htmlfly.cxx @@ -38,7 +38,7 @@ #include "hintids.hxx" #include <tools/string.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef _APP_HXX #include <vcl/svapp.hxx> #endif diff --git a/sw/source/filter/html/htmlfly.hxx b/sw/source/filter/html/htmlfly.hxx index a36e09025ba2..ef3b3140e1c2 100644 --- a/sw/source/filter/html/htmlfly.hxx +++ b/sw/source/filter/html/htmlfly.hxx @@ -35,7 +35,7 @@ #include <tools/string.hxx> #ifndef _SVARRAY_H -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #endif class SdrObject; diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx index dd93a4e60b92..68d3a1a85e2b 100644 --- a/sw/source/filter/html/htmlform.cxx +++ b/sw/source/filter/html/htmlform.cxx @@ -44,7 +44,7 @@ #endif #include <svtools/htmlkywd.hxx> #include <svtools/htmltokn.h> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <sfx2/request.hxx> #include <sfx2/docfile.hxx> #ifndef _SFXAPP_HXX diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx index 147e736a4353..71a56084c642 100644 --- a/sw/source/filter/html/htmlforw.cxx +++ b/sw/source/filter/html/htmlforw.cxx @@ -48,12 +48,12 @@ #ifndef _WRKWIN_HXX //autogen #include <vcl/wrkwin.hxx> #endif -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <tools/urlobj.hxx> #include <svtools/htmlout.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> -#include "svtools/urihelper.hxx" +#include "svl/urihelper.hxx" #ifndef _TOOLKIT_UNOHLP_HXX #include <toolkit/helper/vclunohelper.hxx> #endif diff --git a/sw/source/filter/html/htmlftn.cxx b/sw/source/filter/html/htmlftn.cxx index 343939bd38d1..f5c62bb612c2 100644 --- a/sw/source/filter/html/htmlftn.cxx +++ b/sw/source/filter/html/htmlftn.cxx @@ -354,7 +354,7 @@ void SwHTMLWriter::OutFootEndNotes() if( !pFootEndNotes ) return; -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nFtn = nFootNote, nEn = nEndNote; #endif nFootNote = 0, nEndNote = 0; @@ -419,7 +419,7 @@ void SwHTMLWriter::OutFootEndNotes() } } -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( nFtn == nFootNote, "SwHTMLWriter::OutFootEndNotes: Anzahl Fussnoten stimmt nicht" ); ASSERT( nEn == nEndNote, diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx index d18a2b762aa0..d172b8894c55 100644 --- a/sw/source/filter/html/htmlgrin.cxx +++ b/sw/source/filter/html/htmlgrin.cxx @@ -37,8 +37,8 @@ #include <vcl/wrkwin.hxx> #endif #include <i18npool/mslangid.hxx> -#include <svtools/stritem.hxx> -#include <svtools/urihelper.hxx> +#include <svl/stritem.hxx> +#include <svl/urihelper.hxx> #include <svx/fhgtitem.hxx> #include <svx/lrspitem.hxx> #include <svx/adjitem.hxx> @@ -53,7 +53,7 @@ #include <svtools/imap.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> -#include <svtools/eventcfg.hxx> +#include <unotools/eventcfg.hxx> #include <fmtornt.hxx> #include <fmturl.hxx> diff --git a/sw/source/filter/html/htmlnum.cxx b/sw/source/filter/html/htmlnum.cxx index 24045bdef1e2..4a438fd43bb6 100644 --- a/sw/source/filter/html/htmlnum.cxx +++ b/sw/source/filter/html/htmlnum.cxx @@ -37,7 +37,7 @@ #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> #include <svtools/htmlout.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/brshitem.hxx> #include <svx/lrspitem.hxx> #include <vcl/svapp.hxx> diff --git a/sw/source/filter/html/htmlplug.cxx b/sw/source/filter/html/htmlplug.cxx index 21e409c48530..dc08bad8d6dc 100644 --- a/sw/source/filter/html/htmlplug.cxx +++ b/sw/source/filter/html/htmlplug.cxx @@ -36,9 +36,9 @@ #include "hintids.hxx" -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <vcl/svapp.hxx> #include <sfx2/frmhtml.hxx> #include <sfx2/frmhtmlw.hxx> @@ -59,7 +59,7 @@ #include <fmtcntnt.hxx> #include <frmfmt.hxx> -#include <svtools/ownlist.hxx> +#include <svl/ownlist.hxx> #include "pam.hxx" #include "doc.hxx" #include "ndtxt.hxx" diff --git a/sw/source/filter/html/htmlsect.cxx b/sw/source/filter/html/htmlsect.cxx index a4fb7f70ff66..8e1c7d3fa8cf 100644 --- a/sw/source/filter/html/htmlsect.cxx +++ b/sw/source/filter/html/htmlsect.cxx @@ -72,7 +72,7 @@ #include "viewsh.hxx" #include "swcss1.hxx" #include "swhtml.hxx" -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #define CONTEXT_FLAGS_MULTICOL (HTML_CNTXT_STRIP_PARA | \ HTML_CNTXT_KEEP_NUMRULE | \ diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx index 3b02546494f8..4715b760163d 100644 --- a/sw/source/filter/html/htmltab.cxx +++ b/sw/source/filter/html/htmltab.cxx @@ -48,7 +48,7 @@ #include <svx/spltitem.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <fmtornt.hxx> @@ -912,7 +912,7 @@ void HTMLTableRow::Shrink( sal_uInt16 nCells ) { ASSERT( nCells < pCells->Count(), "Anzahl Zellen falsch" ); -#ifndef PRODUCT +#ifdef DBG_UTIL sal_uInt16 nEnd = pCells->Count(); #endif // The colspan of empty cells at the end has to be fixed to the new @@ -930,7 +930,7 @@ void HTMLTableRow::Shrink( sal_uInt16 nCells ) else break; } -#ifndef PRODUCT +#ifdef DBG_UTIL for( i=nCells; i<nEnd; i++ ) { HTMLTableCell *pCell = (*pCells)[i]; @@ -1790,7 +1790,7 @@ SwTableLine *HTMLTable::MakeTableLine( SwTableBox *pUpper, HTMLTableCell *pCell = GetCell(nTopRow,nCol); const sal_Bool bSplit = 1 == pCell->GetColSpan(); -#ifndef PRODUCT +#ifdef DBG_UTIL if( nCol == nRightCol-1 ) { ASSERT( bSplit, "Split-Flag falsch" ); @@ -3394,7 +3394,7 @@ void _CellSaveStruct::AddContents( HTMLTableCnts *pNewCnts ) void _CellSaveStruct::InsertCell( SwHTMLParser& rParser, HTMLTable *pCurTable ) { -#ifndef PRODUCT +#ifdef DBG_UTIL // Die Attribute muessen schon beim Auefrauemen des Kontext-Stacks // entfernt worden sein, sonst ist etwas schiefgelaufen. Das // Checken wir mal eben ... diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx index 1150b044db5b..c4f625920fd7 100644 --- a/sw/source/filter/html/htmltabw.cxx +++ b/sw/source/filter/html/htmltabw.cxx @@ -67,7 +67,7 @@ #include <htmlnum.hxx> #include <wrthtml.hxx> #include <wrtswtbl.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL #ifndef _VIEWSH_HXX #include <viewsh.hxx> #endif @@ -1200,7 +1200,7 @@ Writer& OutHTML_SwTblNode( Writer& rWrt, SwTableNode & rNode, const SwHTMLTableLayout *pLayout = rTbl.GetHTMLTableLayout(); -#ifndef PRODUCT +#ifdef DBG_UTIL ViewShell *pSh; rWrt.pDoc->GetEditShell( &pSh ); if ( pSh && pSh->GetViewOptions()->IsTest1() ) diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx index 50a55d16b6a2..011d1e3dfbd3 100644 --- a/sw/source/filter/html/svxcss1.cxx +++ b/sw/source/filter/html/svxcss1.cxx @@ -39,7 +39,7 @@ #endif #include <i18npool/mslangid.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/udlnitem.hxx> #include <svx/adjitem.hxx> #include <svx/blnkitem.hxx> @@ -57,7 +57,7 @@ #include <svx/ulspitem.hxx> #include <svx/lrspitem.hxx> #include <svx/langitem.hxx> -#include <svtools/itempool.hxx> +#include <svl/itempool.hxx> #include <svx/spltitem.hxx> #include <svx/widwitem.hxx> #include <svx/frmdiritem.hxx> diff --git a/sw/source/filter/html/svxcss1.hxx b/sw/source/filter/html/svxcss1.hxx index c7e811e6d456..613626bcf675 100644 --- a/sw/source/filter/html/svxcss1.hxx +++ b/sw/source/filter/html/svxcss1.hxx @@ -31,12 +31,12 @@ #define _SVXCSS1_HXX #include <tools/string.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/svxenum.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <rtl/textenc.h> #include "parcss1.hxx" diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index 551ebf937be2..c47739b8925f 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -36,19 +36,19 @@ #include <com/sun/star/document/XDocumentProperties.hpp> #include <com/sun/star/i18n/ScriptType.hpp> -#ifndef PRODUCT +#ifdef DBG_UTIL #include <stdlib.h> #endif #include <hintids.hxx> #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> -#include <svtools/stritem.hxx> +#include <svl/svstdarr.hxx> +#include <svl/stritem.hxx> #include <svtools/imap.hxx> #include <svtools/htmltokn.h> #include <svtools/htmlkywd.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <vcl/svapp.hxx> #include <vcl/wrkwin.hxx> #include <sfx2/fcontnr.hxx> @@ -307,7 +307,7 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, SvStream& rIn, // <-- nOpenParaToken( 0 ), eJumpTo( JUMPTO_NONE ), -#ifndef PRODUCT +#ifdef DBG_UTIL nContinue( 0 ), #endif eParaAdjust( SVX_ADJUST_END ), @@ -437,7 +437,7 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, SvStream& rIn, __EXPORT SwHTMLParser::~SwHTMLParser() { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !nContinue, "DTOR im Continue - Das geht schief!!!" ); #endif BOOL bAsync = pDoc->IsInLoadAsynchron(); @@ -588,7 +588,7 @@ SvParserState __EXPORT SwHTMLParser::CallParser() void __EXPORT SwHTMLParser::Continue( int nToken ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( !nContinue, "Continue im Continue - Das sollte doch nicht sein, oder?" ); nContinue++; #endif @@ -614,7 +614,7 @@ void __EXPORT SwHTMLParser::Continue( int nToken ) bViewCreated = TRUE; pDoc->SetInLoadAsynchron( TRUE ); -#ifndef PRODUCT +#ifdef DBG_UTIL nContinue--; #endif @@ -724,7 +724,7 @@ void __EXPORT SwHTMLParser::Continue( int nToken ) pPam->GetPoint()->nContent.Assign( pTxtNode, nStt ); } -#ifndef PRODUCT +#ifdef DBG_UTIL // !!! sollte nicht moeglich sein, oder ?? ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( TRUE ).nNode.GetIndex(), "Pam.Bound1 steht noch im Node" ); @@ -922,7 +922,7 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( FALSE ).nNode.GetIndex() ) // wieder rekonstruieren. CallEndAction( TRUE ); -#ifndef PRODUCT +#ifdef DBG_UTIL nContinue--; #endif } @@ -977,7 +977,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken ) return ; } -#ifndef PRODUCT +#ifdef DBG_UTIL if( pPendStack ) { switch( nToken ) @@ -2471,12 +2471,12 @@ ViewShell *SwHTMLParser::CallStartAction( ViewShell *pVSh, BOOL bChkPtr ) if( !pVSh || bChkPtr ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ViewShell *pOldVSh = pVSh; #endif pDoc->GetEditShell( &pVSh ); ASSERT( !pVSh || !pOldVSh || pOldVSh == pVSh, "CallStartAction: Wer hat die ViewShell ausgetauscht?" ); -#ifndef PRODUCT +#ifdef DBG_UTIL if( pOldVSh && !pVSh ) pVSh = 0; #endif @@ -3882,7 +3882,7 @@ void SwHTMLParser::EndPara( BOOL bReal ) { if( HTML_LI_ON==nOpenParaToken && pTable ) { -#ifndef PRODUCT +#ifdef DBG_UTIL const SwNumRule *pNumRule = pPam->GetNode()->GetTxtNode()->GetNumRule(); #endif ASSERT( pNumRule, "Wo ist die Numrule geblieben" ); diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx index 61dfb82fc040..8160f5fe7ec5 100644 --- a/sw/source/filter/html/swhtml.hxx +++ b/sw/source/filter/html/swhtml.hxx @@ -44,11 +44,11 @@ #ifndef _SVSTDARR_STRINGSDTOR_DECL #define _SVSTDARR_STRINGSDTOR #endif -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <tools/urlobj.hxx> #include <sfx2/sfxhtml.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <svx/svxenum.hxx> #include <fmtornt.hxx> #include <com/sun/star/drawing/XShape.hpp> @@ -453,7 +453,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient enum JumpToMarks { JUMPTO_NONE, JUMPTO_MARK, JUMPTO_TABLE, JUMPTO_FRAME, JUMPTO_REGION, JUMPTO_GRAPHIC } eJumpTo; -#ifndef PRODUCT +#ifdef DBG_UTIL sal_uInt16 nContinue; // Tiefe der Continue-Aufrufe #endif diff --git a/sw/source/filter/html/wrthtml.cxx b/sw/source/filter/html/wrthtml.cxx index 29a5860e0b2f..d2f3261ee074 100644 --- a/sw/source/filter/html/wrthtml.cxx +++ b/sw/source/filter/html/wrthtml.cxx @@ -34,7 +34,7 @@ #include <stdlib.h> #include <hintids.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <rtl/tencinfo.h> #include <vcl/wrkwin.hxx> #include <sfx2/linkmgr.hxx> @@ -51,7 +51,7 @@ #include <svx/fontitem.hxx> #include <svx/scripttypeitem.hxx> #include <svx/langitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/frmdiritem.hxx> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx index 6118430d28f6..833183d87a50 100644 --- a/sw/source/filter/html/wrthtml.hxx +++ b/sw/source/filter/html/wrthtml.hxx @@ -37,7 +37,7 @@ #define _SVSTDARR_STRINGSDTOR #define _SVSTDARR_STRINGSSORTDTOR #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <i18npool/lang.h> #include <tools/stream.hxx> diff --git a/sw/source/filter/inc/fltglbls.hxx b/sw/source/filter/inc/fltglbls.hxx index 48b72e123500..f23f3841e380 100644 --- a/sw/source/filter/inc/fltglbls.hxx +++ b/sw/source/filter/inc/fltglbls.hxx @@ -32,7 +32,7 @@ #include <tools/string.hxx> #include <i18npool/lang.h> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SfxPoolItem; diff --git a/sw/source/filter/inc/msfilter.hxx b/sw/source/filter/inc/msfilter.hxx index cb2c5dda9635..cb5a5880ee5a 100644 --- a/sw/source/filter/inc/msfilter.hxx +++ b/sw/source/filter/inc/msfilter.hxx @@ -45,7 +45,7 @@ #include <fltshell.hxx> // fuer den Attribut Stack #include <redline.hxx> #include <shellio.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #define CREATE_CONST_ASC(s) String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM(s)) diff --git a/sw/source/filter/inc/wrtswtbl.hxx b/sw/source/filter/inc/wrtswtbl.hxx index fa747d9872e5..a1279f89e3a5 100644 --- a/sw/source/filter/inc/wrtswtbl.hxx +++ b/sw/source/filter/inc/wrtswtbl.hxx @@ -32,7 +32,7 @@ #include <tools/solar.h> #include <tools/color.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <swdllapi.h> @@ -262,7 +262,7 @@ protected: BOOL bRelWidths : 1; // Breiten relativ ausgeben? BOOL bUseLayoutHeights : 1; // Layout zur Hoehenbestimmung nehmen? -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bGetLineHeightCalled : 1; #endif diff --git a/sw/source/filter/rtf/rtfatr.cxx b/sw/source/filter/rtf/rtfatr.cxx index fc60c857aedb..50cec6322339 100644 --- a/sw/source/filter/rtf/rtfatr.cxx +++ b/sw/source/filter/rtf/rtfatr.cxx @@ -42,12 +42,12 @@ #include <com/sun/star/i18n/ScriptType.hdl> #endif #include <vcl/cvtgrf.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/stritem.hxx> +#include <svl/urihelper.hxx> +#include <svl/stritem.hxx> #include <svtools/rtfkeywd.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svtools/rtfout.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/fontitem.hxx> #include <svx/hyznitem.hxx> #ifndef _SVX_TSTPITEM_HXX //autogen diff --git a/sw/source/filter/rtf/rtffld.cxx b/sw/source/filter/rtf/rtffld.cxx index 8985d58429c3..b23b9f5e1338 100644 --- a/sw/source/filter/rtf/rtffld.cxx +++ b/sw/source/filter/rtf/rtffld.cxx @@ -41,9 +41,9 @@ #ifndef _GRAPH_HXX //autogen #include <vcl/graph.hxx> #endif -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svtools/rtftoken.h> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <svx/fontitem.hxx> #include <svx/fhgtitem.hxx> #include <svx/langitem.hxx> diff --git a/sw/source/filter/rtf/rtffly.cxx b/sw/source/filter/rtf/rtffly.cxx index e4043f2e8529..329ff8fedb41 100644 --- a/sw/source/filter/rtf/rtffly.cxx +++ b/sw/source/filter/rtf/rtffly.cxx @@ -35,7 +35,7 @@ #include <tools/list.hxx> #include <tools/cachestr.hxx> #include <svtools/rtftoken.h> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/prntitem.hxx> #include <svx/opaqitem.hxx> #include <svx/protitem.hxx> diff --git a/sw/source/filter/rtf/rtfnum.cxx b/sw/source/filter/rtf/rtfnum.cxx index 2cab705fa8e0..249b6bd0f09e 100644 --- a/sw/source/filter/rtf/rtfnum.cxx +++ b/sw/source/filter/rtf/rtfnum.cxx @@ -34,7 +34,7 @@ #include <tools/stream.hxx> #include <svtools/rtftoken.h> #include <svtools/rtfkeywd.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svtools/rtfout.hxx> #include <svx/lrspitem.hxx> #include <svx/fontitem.hxx> @@ -734,7 +734,7 @@ void SwRTFParser::RemoveUnusedNumRule( SwNumRule* pRule ) } pDoc->DelNumRule( pRule->GetName() ); } -#ifndef PRODUCT +#ifdef DBG_UTIL else { ASSERT( pRule, "NumRulePointer 0 kann nicht geloescht werden" ); diff --git a/sw/source/filter/rtf/swparrtf.cxx b/sw/source/filter/rtf/swparrtf.cxx index 9b5b90a01641..0b2bd344ccc4 100644 --- a/sw/source/filter/rtf/swparrtf.cxx +++ b/sw/source/filter/rtf/swparrtf.cxx @@ -39,9 +39,9 @@ #include <tools/errinf.hxx> #endif #include <tools/stream.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svtools/rtftoken.h> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svx/fhgtitem.hxx> #include <svx/ulspitem.hxx> #ifndef _SVX_TSTPITEM_HXX //autogen @@ -387,7 +387,7 @@ void SwRTFParser::Continue( int nToken ) pPam->GetPoint()->nContent.Assign( pTxtNode, nStt ); } -#ifndef PRODUCT +#ifdef DBG_UTIL // !!! sollte nicht moeglich sein, oder ?? ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( TRUE ).nNode.GetIndex(), "Pam.Bound1 steht noch im Node" ); @@ -2214,7 +2214,7 @@ void SwRTFParser::SetAttrInDoc( SvxRTFItemStackType &rSet ) SwPaM aPam( *pPam->GetPoint() ); -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( nSNd <= nENd, "Start groesser als Ende" ); SwNode* pDebugNd = pDoc->GetNodes()[ nSNd ]; ASSERT( pDebugNd->IsCntntNode(), "Start kein ContentNode" ); diff --git a/sw/source/filter/rtf/swparrtf.hxx b/sw/source/filter/rtf/swparrtf.hxx index f693acdb1433..0769f7623ae8 100644 --- a/sw/source/filter/rtf/swparrtf.hxx +++ b/sw/source/filter/rtf/swparrtf.hxx @@ -44,7 +44,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_BOOLS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <svx/svxrtf.hxx> #include <svx/numitem.hxx> diff --git a/sw/source/filter/rtf/wrtrtf.cxx b/sw/source/filter/rtf/wrtrtf.cxx index d0129f29380f..9975ee3abf23 100644 --- a/sw/source/filter/rtf/wrtrtf.cxx +++ b/sw/source/filter/rtf/wrtrtf.cxx @@ -36,7 +36,7 @@ #include <comphelper/string.hxx> #include <tools/stream.hxx> #include <tools/datetime.hxx> -#include <vcl/fontcvt.hxx> +#include <unotools/fontcvt.hxx> #include <rtl/tencinfo.h> #include <svtools/rtfkeywd.hxx> #include <svtools/rtfout.hxx> diff --git a/sw/source/filter/writer/writer.cxx b/sw/source/filter/writer/writer.cxx index 4b2ab6e086a2..2ed742255173 100644 --- a/sw/source/filter/writer/writer.cxx +++ b/sw/source/filter/writer/writer.cxx @@ -33,11 +33,11 @@ #include <hintids.hxx> #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <sot/storage.hxx> #include <sfx2/docfile.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svtools/filter.hxx> #include <svx/impgrf.hxx> #include <svx/fontitem.hxx> @@ -250,7 +250,7 @@ SwPaM* Writer::NewSwPaM( SwDoc & rDoc, ULONG nStartIdx, ULONG nEndIdx, ///////////////////////////////////////////////////////////////////////////// // Stream-spezifisches -#ifndef PRODUCT +#ifdef DBG_UTIL SvStream& Writer::Strm() { ASSERT( pStrm, "Oh-oh. Dies ist ein Storage-Writer. Gleich knallts!" ); diff --git a/sw/source/filter/writer/wrt_fn.cxx b/sw/source/filter/writer/wrt_fn.cxx index 5dbf81b4484a..40136a45f645 100644 --- a/sw/source/filter/writer/wrt_fn.cxx +++ b/sw/source/filter/writer/wrt_fn.cxx @@ -30,8 +30,8 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" -#include <svtools/itemiter.hxx> -#include <svtools/whiter.hxx> +#include <svl/itemiter.hxx> +#include <svl/whiter.hxx> #include "shellio.hxx" diff --git a/sw/source/filter/writer/wrtswtbl.cxx b/sw/source/filter/writer/wrtswtbl.cxx index 4c019f0bfdcc..89beab1f0c3a 100644 --- a/sw/source/filter/writer/wrtswtbl.cxx +++ b/sw/source/filter/writer/wrtswtbl.cxx @@ -114,7 +114,7 @@ long SwWriteTable::GetBoxWidth( const SwTableBox *pBox ) long SwWriteTable::GetLineHeight( const SwTableLine *pLine ) { -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bOldGetLineHeightCalled = bGetLineHeightCalled; bGetLineHeightCalled = TRUE; #endif @@ -135,7 +135,7 @@ long SwWriteTable::GetLineHeight( const SwTableLine *pLine ) // <-- bUseLayoutHeights = bLayoutAvailable; /*FALSE;*/ -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( bLayoutAvailable || !bOldGetLineHeightCalled, "Layout ungueltig?" ); #endif } @@ -431,7 +431,7 @@ void SwWriteTable::CollectTableRowsCols( long nStartRPos, BOOL bSubExpanded = FALSE; USHORT nLines = rLines.Count(); -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nEndCPos = 0; #endif @@ -467,11 +467,11 @@ void SwWriteTable::CollectTableRowsCols( long nStartRPos, } else { -#ifndef PRODUCT +#ifdef DBG_UTIL long nCheckPos = nRPos + GetLineHeight( pLine ); #endif nRPos = nStartRPos + nParentLineHeight; -#ifndef PRODUCT +#ifdef DBG_UTIL SwWriteTableRow aRow( nStartRPos + nParentLineHeight, bUseLayoutHeights ); ASSERT( aRows.Seek_Entry(&aRow), "Parent-Zeile nicht gefunden" ); @@ -514,7 +514,7 @@ void SwWriteTable::CollectTableRowsCols( long nStartRPos, } else { -#ifndef PRODUCT +#ifdef DBG_UTIL USHORT nCheckPos = nCPos + (USHORT)GetBoxWidth( pBox ); if( !nEndCPos ) { @@ -528,7 +528,7 @@ void SwWriteTable::CollectTableRowsCols( long nStartRPos, } #endif nCPos = nStartCPos + nParentLineWidth; -#ifndef PRODUCT +#ifdef DBG_UTIL SwWriteTableCol aCol( nStartCPos + nParentLineWidth ); ASSERT( aCols.Seek_Entry(&aCol), "Parent-Zelle nicht gefunden" ); @@ -594,7 +594,7 @@ void SwWriteTable::FillTableRowsCols( long nStartRPos, USHORT nStartRow, // Und ihren Index USHORT nOldRow = nRow; SwWriteTableRow aRow( nRPos,bUseLayoutHeights ); -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bFound = #endif aRows.Seek_Entry( &aRow, &nRow ); @@ -679,7 +679,7 @@ void SwWriteTable::FillTableRowsCols( long nStartRPos, USHORT nStartRow, // Und ihren Index USHORT nOldCol = nCol; SwWriteTableCol aCol( nCPos ); -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL bFound2 = #endif aCols.Seek_Entry( &aCol, &nCol ); @@ -776,7 +776,7 @@ SwWriteTable::SwWriteTable(const SwTableLines& rLines, long nWidth, nInnerBorder(0), nBaseWidth(nBWidth), nHeadEndRow(USHRT_MAX), nLeftSub(nLSub), nRightSub(nRSub), nTabWidth(nWidth), bRelWidths(bRel), bUseLayoutHeights(true), -#ifndef PRODUCT +#ifdef DBG_UTIL bGetLineHeightCalled(false), #endif bColsOption(false), bColTags(true), bLayoutExport(false), @@ -803,7 +803,7 @@ SwWriteTable::SwWriteTable( const SwHTMLTableLayout *pLayoutInfo ) nInnerBorder(0), nBaseWidth(pLayoutInfo->GetWidthOption()), nHeadEndRow(0), nLeftSub(0), nRightSub(0), nTabWidth(pLayoutInfo->GetWidthOption()), bRelWidths(pLayoutInfo->HasPrcWidthOption()), bUseLayoutHeights(false), -#ifndef PRODUCT +#ifdef DBG_UTIL bGetLineHeightCalled(false), #endif bColsOption(pLayoutInfo->HasColsOption()), diff --git a/sw/source/filter/ww1/fltshell.cxx b/sw/source/filter/ww1/fltshell.cxx index 822091cec765..6086d7f9230e 100644 --- a/sw/source/filter/ww1/fltshell.cxx +++ b/sw/source/filter/ww1/fltshell.cxx @@ -38,7 +38,7 @@ #ifndef _GRAPH_HXX //autogen #include <vcl/graph.hxx> #endif -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/impgrf.hxx> #include <svx/boxitem.hxx> #include <svx/boxitem.hxx> @@ -47,7 +47,7 @@ #include <svx/cntritem.hxx> #include <svx/postitem.hxx> #include <svx/crsditem.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <unotools/charclass.hxx> #include <txtftn.hxx> #include <fmtpdsc.hxx> @@ -1685,7 +1685,7 @@ SfxItemSet* SwFltOutBase::NewFlyDefaults() BOOL SwFltOutBase::BeginFly( RndStdIds eAnchor /*= FLY_AT_CNTNT*/, BOOL bAbsolutePos /*= FALSE*/, const SfxItemSet* -#ifndef PRODUCT +#ifdef DBG_UTIL pMoreAttrs /*= 0*/ #endif ) diff --git a/sw/source/filter/ww1/w1class.cxx b/sw/source/filter/ww1/w1class.cxx index 374ca58b6799..eb5618bcf967 100644 --- a/sw/source/filter/ww1/w1class.cxx +++ b/sw/source/filter/ww1/w1class.cxx @@ -257,7 +257,7 @@ Ww1StyleSheet::Ww1StyleSheet(Ww1Fib& _rFib) DBG_ASSERT(cbStshf==0, "Ww1StyleSheet"); bOK = cbStshf == 0; } - delete del; + delete [] del; } USHORT Ww1StyleSheet::ReadNames( BYTE*& p, USHORT& rnCountBytes ) diff --git a/sw/source/filter/ww1/w1filter.cxx b/sw/source/filter/ww1/w1filter.cxx index 4021d449c286..1b069f44a0e9 100644 --- a/sw/source/filter/ww1/w1filter.cxx +++ b/sw/source/filter/ww1/w1filter.cxx @@ -58,7 +58,7 @@ #ifndef _SVX_TSTPITEM_HXX //autogen #include <svx/tstpitem.hxx> #endif -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <fmtfsize.hxx> #include <doc.hxx> #include <pam.hxx> @@ -1899,11 +1899,11 @@ void Ww1Picture::WriteBmp(SvStream& rOut) nSize -= sizeof(BYTE); } if(rOut.Write(pBuf, padx) != padx){ - delete pBuf; + delete [] pBuf; goto error; } } - delete pBuf; + delete [] pBuf; } #else for (j=0;nSize>0&&j<maxy;j++) diff --git a/sw/source/filter/ww1/w1sprm.cxx b/sw/source/filter/ww1/w1sprm.cxx index 6aac7b226289..316f31a8d5d5 100644 --- a/sw/source/filter/ww1/w1sprm.cxx +++ b/sw/source/filter/ww1/w1sprm.cxx @@ -267,7 +267,7 @@ void Ww1SingleSprmPBrc::Start( Ww1Shell& rOut, BYTE, W1_BRC10* pBrc, USHORT -#ifndef PRODUCT +#ifdef DBG_UTIL nSize #endif , @@ -467,7 +467,7 @@ void Ww1SingleSprmPFInTable::Start( void Ww1SingleSprmPFInTable::Stop( Ww1Shell& -#ifndef PRODUCT +#ifdef DBG_UTIL rOut #endif , diff --git a/sw/source/filter/ww8/WW8TableInfo.cxx b/sw/source/filter/ww8/WW8TableInfo.cxx index 79cb9b714187..021bbea5f380 100644 --- a/sw/source/filter/ww8/WW8TableInfo.cxx +++ b/sw/source/filter/ww8/WW8TableInfo.cxx @@ -161,7 +161,8 @@ WW8TableNodeInfo::WW8TableNodeInfo(const SwNode * pNode) : mnDepth(0), mpNode(pNode), - mpNext(NULL) + mpNext(NULL), + mpNextNode(NULL) { } @@ -190,9 +191,7 @@ WW8TableNodeInfo::~WW8TableNodeInfo() } #ifdef DEBUG -//!! does not compile with debug=t -> unresolved external (dbg_out), -//!! sommeone who knows what he wants to get should fix this -// sResult += dbg_out(*mpNode); + sResult += dbg_out(*mpNode); #endif sResult +="</tableNodeInfo>"; @@ -247,6 +246,17 @@ void WW8TableNodeInfo::setTable(const SwTable * pTable) void WW8TableNodeInfo::setNext(WW8TableNodeInfo * pNext) { mpNext = pNext; + +#ifdef DEBUG + ::std::clog << "<setnext><from>" << toString() << "</from><to>" + << pNext->toString() << "</to></setnext>" + << ::std::endl; +#endif +} + +void WW8TableNodeInfo::setNextNode(SwNode * pNode) +{ + mpNode = pNode; } void WW8TableNodeInfo::setCell(sal_uInt32 nCell) @@ -287,6 +297,11 @@ WW8TableNodeInfo * WW8TableNodeInfo::getNext() const return mpNext; } +SwNode * WW8TableNodeInfo::getNextNode() const +{ + return mpNextNode; +} + bool WW8TableNodeInfo::isEndOfLine() const { return getInnerForDepth(mnDepth)->isEndOfLine(); @@ -362,6 +377,14 @@ void WW8TableInfo::processSwTable(const SwTable * pTable) pPrev = processTableLine(pTable, pLine, n, 1, pPrev); } + if (pPrev != NULL) + { + SwTableNode * pTableNode = pTable->GetTableNode(); + SwEndNode * pEndNode = pTableNode->EndOfSectionNode(); + + pPrev->setNextNode(pEndNode); + } + #ifdef DEBUG ::std::clog << "</processSwTable>" << ::std::endl; #endif @@ -602,6 +625,13 @@ const SwNode * WW8TableInfo::getNextNode(const SwNode * pNode) if (pNextInfo != NULL) pResult = pNextInfo->getNode(); + else + { + SwNode * pNextNode = pNodeInfo->getNextNode(); + + if (pNextNode != NULL) + pResult = pNextNode; + } } return pResult; diff --git a/sw/source/filter/ww8/WW8TableInfo.hxx b/sw/source/filter/ww8/WW8TableInfo.hxx index a2d03337fb29..035464fb751b 100644 --- a/sw/source/filter/ww8/WW8TableInfo.hxx +++ b/sw/source/filter/ww8/WW8TableInfo.hxx @@ -97,6 +97,7 @@ private: const SwNode * mpNode; Inners_t mInners; WW8TableNodeInfo * mpNext; + SwNode * mpNextNode; public: typedef boost::shared_ptr<WW8TableNodeInfo> Pointer_t; @@ -112,6 +113,7 @@ public: void setCell(sal_uInt32 nCell); void setRow(sal_uInt32 nRow); void setNext(WW8TableNodeInfo * pNext); + void setNextNode(SwNode * pNode); sal_uInt32 getDepth() const; bool isEndOfLine() const; @@ -120,6 +122,7 @@ public: const SwTableBox * getTableBox() const; const SwTable * getTable() const; WW8TableNodeInfo * getNext() const; + SwNode * getNextNode() const; const Inners_t & getInners() const; const WW8TableNodeInfoInner::Pointer_t getFirstInner() const; diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 0eb0284a701e..747f8eb67752 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -44,7 +44,7 @@ #include <hintids.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <svx/fontitem.hxx> #include <svx/tstpitem.hxx> diff --git a/sw/source/filter/ww8/dump/ww8scan.hxx b/sw/source/filter/ww8/dump/ww8scan.hxx index 6df865fbfced..e4ecb410e7c1 100644 --- a/sw/source/filter/ww8/dump/ww8scan.hxx +++ b/sw/source/filter/ww8/dump/ww8scan.hxx @@ -48,7 +48,7 @@ #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #ifndef WW8STRUC_HXX #include <ww8struc.hxx> // FIB, STSHI, STD diff --git a/sw/source/filter/ww8/escher.hxx b/sw/source/filter/ww8/escher.hxx index 0fb39dcc7a02..880a70903206 100644 --- a/sw/source/filter/ww8/escher.hxx +++ b/sw/source/filter/ww8/escher.hxx @@ -34,7 +34,7 @@ #define _ESCHER_HXX #ifndef _ESCHEREX_HXX -#include <svx/escherex.hxx> +#include <filter/msfilter/escherex.hxx> #endif const sal_uInt32 nInlineHack = 0x00010001; diff --git a/sw/source/filter/ww8/tracer.cxx b/sw/source/filter/ww8/tracer.cxx index 522d8194633d..374eee8f1af7 100644 --- a/sw/source/filter/ww8/tracer.cxx +++ b/sw/source/filter/ww8/tracer.cxx @@ -34,7 +34,7 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ #include <tools/urlobj.hxx> //INetURLObject #include <sfx2/docfile.hxx> //SfxMedium -#include <svx/msfiltertracer.hxx> //MSFilterTracer +#include <filter/msfilter/msfiltertracer.hxx> //MSFilterTracer #include "tracer.hxx" //sw::log::Tracer using rtl::OUString; diff --git a/sw/source/filter/ww8/writerhelper.cxx b/sw/source/filter/ww8/writerhelper.cxx index 2ad32c7be689..b68f321d35b6 100644 --- a/sw/source/filter/ww8/writerhelper.cxx +++ b/sw/source/filter/ww8/writerhelper.cxx @@ -42,7 +42,7 @@ #include <algorithm> //std::swap #include <functional> //std::binary_function -# include <svtools/itemiter.hxx> //SfxItemIter +# include <svl/itemiter.hxx> //SfxItemIter # include <svx/svdobj.hxx> //SdrObject # include <svx/svdoole2.hxx> //SdrOle2Obj # include <svx/fmglob.hxx> //FmFormInventor diff --git a/sw/source/filter/ww8/writerhelper.hxx b/sw/source/filter/ww8/writerhelper.hxx index 18e73b1e2d56..68a474b227d5 100644 --- a/sw/source/filter/ww8/writerhelper.hxx +++ b/sw/source/filter/ww8/writerhelper.hxx @@ -40,8 +40,8 @@ #include <sfx2/objsh.hxx> #include "types.hxx" -#include <svtools/itempool.hxx> //SfxItemPool -#include <svtools/itemset.hxx> //SfxItemSet +#include <svl/itempool.hxx> //SfxItemPool +#include <svl/itemset.hxx> //SfxItemSet #include <format.hxx> //SwFmt #include <node.hxx> //SwCntntNode #include <pam.hxx> //SwPaM diff --git a/sw/source/filter/ww8/writerwordglue.cxx b/sw/source/filter/ww8/writerwordglue.cxx index fb197163e226..9213547dbe6e 100644 --- a/sw/source/filter/ww8/writerwordglue.cxx +++ b/sw/source/filter/ww8/writerwordglue.cxx @@ -48,7 +48,7 @@ #endif #ifndef SV_FONTCVT_HXX -# include <vcl/fontcvt.hxx> //GetSubsFontName +# include <unotools/fontcvt.hxx> //GetSubsFontName #endif # include <svx/paperinf.hxx> //lA0Width... # include <svx/lrspitem.hxx> //SvxLRSpaceItem diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx index 5bb1ffc557b7..33c6725e1221 100644 --- a/sw/source/filter/ww8/wrtw8esh.cxx +++ b/sw/source/filter/ww8/wrtw8esh.cxx @@ -2,6 +2,7 @@ * * 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 @@ -38,14 +39,14 @@ #define _SVSTDARR_ULONGSSORT #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <vcl/cvtgrf.hxx> #include <vcl/virdev.hxx> #include <com/sun/star/drawing/XShape.hpp> #include <vcl/svapp.hxx> #include <sot/storage.hxx> #include <svtools/filter.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/svdobj.hxx> #include <svx/svdotext.hxx> #include <svx/svdmodel.hxx> @@ -2018,7 +2019,7 @@ SwEscherEx::SwEscherEx(SvStream* pStrm, WW8Export& rWW8Wrt) if (bSwapInPage) (const_cast<SdrObject*>(pSdrObj))->SetPage(0); } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !this, "Where is the SDR-Object?" ); #endif diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 2cbbb7943f37..554f128b361e 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -53,8 +53,8 @@ #include <svx/brkitem.hxx> #include <svx/frmdiritem.hxx> #include <svx/tstpitem.hxx> -#include "svtools/urihelper.hxx" -#include <svtools/whiter.hxx> +#include "svl/urihelper.hxx" +#include <svl/whiter.hxx> #include <fmtpdsc.hxx> #include <fmtfsize.hxx> #include <fmtornt.hxx> diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx index 6601f874c60f..fb121eb322f7 100644 --- a/sw/source/filter/ww8/wrtww8.cxx +++ b/sw/source/filter/ww8/wrtww8.cxx @@ -46,20 +46,20 @@ #include <docsh.hxx> #define _SVSTDARR_BOOLS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> -#include <svtools/fltrcfg.hxx> +#include <unotools/fltrcfg.hxx> #include <vcl/salbtype.hxx> #include <sot/storage.hxx> -#include <svtools/zformat.hxx> +#include <svl/zformat.hxx> #include <sfx2/docinf.hxx> #include <svx/tstpitem.hxx> #include <svx/svdmodel.hxx> #include <svx/svdpage.hxx> #include <svx/hyznitem.hxx> #include <svx/langitem.hxx> -#include <svx/msoleexp.hxx> -#include <svx/msocximex.hxx> +#include <filter/msfilter/msoleexp.hxx> +#include <filter/msfilter/msocximex.hxx> #include <svx/lrspitem.hxx> #include <svx/boxitem.hxx> #include <svx/brshitem.hxx> @@ -112,9 +112,10 @@ #include "dbgoutsw.hxx" #include <sfx2/docfile.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <unotools/tempfile.hxx> -#include <svx/mscodec.hxx> +#include <filter/msfilter/mscodec.hxx> +#include <filter/msfilter/svxmsbas.hxx> #include <osl/time.h> #include <rtl/random.h> #include "WW8Sttbf.hxx" @@ -741,7 +742,7 @@ ULONG SwWW8Writer::FillUntil( SvStream& rStrm, ULONG nEndPos ) if( nEndPos > nCurPos ) SwWW8Writer::FillCount( rStrm, nEndPos - nCurPos ); -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( nEndPos == nCurPos, "Falsches FillUntil()" ); #endif @@ -2370,37 +2371,44 @@ void WW8AttributeOutput::TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t if ( m_rWW8Export.bWrtWW8 ) { + sal_uInt32 aSprmIds[] = {NS_sprm::LN_TCellShd, NS_sprm::LN_TCellShadow}; sal_uInt8 nBoxes0 = rTabBoxes.Count(); if (nBoxes0 > 21) nBoxes0 = 21; - m_rWW8Export.InsUInt16( NS_sprm::LN_TCellShd ); - m_rWW8Export.pO->Insert( static_cast<BYTE>(nBoxes0 * 10), m_rWW8Export.pO->Count() ); - - for ( sal_uInt8 n = 0; n < nBoxes0; n++ ) + for (sal_uInt32 m = 0; m < 2; m++) { - const SwTableBox * pBox1 = rTabBoxes[n]; - const SwFrmFmt * pFrmFmt = pBox1->GetFrmFmt(); - const SfxPoolItem * pI = NULL; - Color aColor; + m_rWW8Export.InsUInt16( aSprmIds[m] ); + m_rWW8Export.pO->Insert( static_cast<BYTE>(nBoxes0 * 10), + m_rWW8Export.pO->Count() ); - if ( SFX_ITEM_ON == pFrmFmt->GetAttrSet().GetItemState( RES_BACKGROUND, false, &pI ) ) + for ( sal_uInt8 n = 0; n < nBoxes0; n++ ) { - aColor = dynamic_cast<const SvxBrushItem *>(pI)->GetColor(); - } - else - aColor = COL_AUTO; + const SwTableBox * pBox1 = rTabBoxes[n]; + const SwFrmFmt * pFrmFmt = pBox1->GetFrmFmt(); + const SfxPoolItem * pI = NULL; + Color aColor; + + if ( SFX_ITEM_ON == + pFrmFmt->GetAttrSet(). + GetItemState( RES_BACKGROUND, false, &pI ) ) + { + aColor = dynamic_cast<const SvxBrushItem *>(pI)->GetColor(); + } + else + aColor = COL_AUTO; - WW8SHDLong aSHD; - aSHD.setCvFore( 0xFF000000 ); + WW8SHDLong aSHD; + aSHD.setCvFore( 0xFF000000 ); - sal_uInt32 nBgColor = aColor.GetColor(); - if ( nBgColor == COL_AUTO ) - aSHD.setCvBack( 0xFF000000 ); - else - aSHD.setCvBack( wwUtility::RGBToBGR( nBgColor ) ); + sal_uInt32 nBgColor = aColor.GetColor(); + if ( nBgColor == COL_AUTO ) + aSHD.setCvBack( 0xFF000000 ); + else + aSHD.setCvBack( wwUtility::RGBToBGR( nBgColor ) ); - aSHD.Write( m_rWW8Export ); + aSHD.Write( m_rWW8Export ); + } } } } @@ -2415,11 +2423,24 @@ void WW8Export::SectionBreaksAndFrames( const SwTxtNode& rNode ) OutWW6FlyFrmsInCntnt( rNode ); } +#ifdef DEBUG +struct SwNodeHash +{ + size_t operator()(SwNode * pNode) const { return reinterpret_cast<size_t>(pNode); } +}; + +typedef ::std::hash_set<SwNode *, SwNodeHash> SwNodeHashSet; +typedef ::std::deque<SwNode *> SwNodeDeque; +#endif + void MSWordExportBase::WriteText() { #ifdef DEBUG ::std::clog << "<WriteText>" << ::std::endl; -// ::std::clog << dbg_out(pCurPam->GetDoc()->GetNodes()) << ::std::endl; + ::std::clog << dbg_out(pCurPam->GetDoc()->GetNodes()) << ::std::endl; + + SwNodeHashSet aNodeSet; + SwNodeDeque aNodeDeque; #endif while( pCurPam->GetPoint()->nNode < pCurPam->GetMark()->nNode || @@ -2428,6 +2449,29 @@ void MSWordExportBase::WriteText() { SwNode * pNd = pCurPam->GetNode(); +#ifdef DEBUG + if (aNodeSet.find(pNd) == aNodeSet.end()) + { + aNodeSet.insert(pNd); + aNodeDeque.push_back(pNd); + } + else + { + ::std::clog << "<already-done><which>" << dbg_out(*pNd) + << "</which><nodes>" << ::std::endl; + + SwNodeDeque::const_iterator aEnd = aNodeDeque.end(); + + for (SwNodeDeque::const_iterator aIt = aNodeDeque.begin(); + aIt != aEnd; aIt++) + { + ::std::clog << dbg_out(**aIt) << ::std::endl; + } + + ::std::clog << "</nodes></already-done>" << ::std::endl; + } +#endif + if ( pNd->IsTxtNode() ) SectionBreaksAndFrames( *pNd->GetTxtNode() ); @@ -2664,33 +2708,41 @@ void WW8Export::WriteFkpPlcUsw() // Write SttbfAssoc WW8SttbAssoc * pSttbfAssoc = dynamic_cast<WW8SttbAssoc *> (pDoc->getExternalData(::sw::STTBF_ASSOC).get()); - ::std::vector<String> aStrings; - - ::ww8::StringVector_t & aSttbStrings = pSttbfAssoc->getStrings(); - ::ww8::StringVector_t::const_iterator aItEnd = aSttbStrings.end(); - for (::ww8::StringVector_t::const_iterator aIt = aSttbStrings.begin(); - aIt != aItEnd; aIt++) + // --> OD 2009-10-19 #i106057# + if ( pSttbfAssoc ) + // <-- { - String aStr(aIt->getStr()); - aStrings.push_back(aStr); - } - - WriteAsStringTable(aStrings, pFib->fcSttbfAssoc, - pFib->lcbSttbfAssoc); + ::std::vector<String> aStrings; + ::ww8::StringVector_t & aSttbStrings = pSttbfAssoc->getStrings(); + ::ww8::StringVector_t::const_iterator aItEnd = aSttbStrings.end(); + for (::ww8::StringVector_t::const_iterator aIt = aSttbStrings.begin(); + aIt != aItEnd; aIt++) + { + String aStr(aIt->getStr()); + aStrings.push_back(aStr); + } + WriteAsStringTable(aStrings, pFib->fcSttbfAssoc, + pFib->lcbSttbfAssoc); + } } Strm().Seek( 0 ); // Reclaim stored FIB data from document. ::ww8::WW8FibData * pFibData = dynamic_cast<ww8::WW8FibData *> (pDoc->getExternalData(::sw::FIB).get()); - - pFib->fReadOnlyRecommended = - pFibData->getReadOnlyRecommended() ? 1 : 0; - pFib->fWriteReservation = - pFibData->getWriteReservation() ? 1 : 0; + // --> OD 2009-10-19 #i106057# + if ( pFibData ) + // <-- + { + pFib->fReadOnlyRecommended = + pFibData->getReadOnlyRecommended() ? 1 : 0; + pFib->fWriteReservation = + pFibData->getWriteReservation() ? 1 : 0; + } pFib->Write( Strm() ); // FIB + } void WW8Export::StoreDoc1() @@ -2813,7 +2865,7 @@ namespace { const ULONG WW_BLOCKSIZE = 0x200; - void EncryptRC4(svx::MSCodec_Std97& rCtx, SvStream &rIn, SvStream &rOut) + void EncryptRC4(msfilter::MSCodec_Std97& rCtx, SvStream &rIn, SvStream &rOut) { rIn.Seek(STREAM_SEEK_TO_END); ULONG nLen = rIn.Tell(); @@ -3049,7 +3101,7 @@ void WW8Export::ExportDocument_Impl() for (xub_StrLen nChar = 0; nChar < nLen; ++nChar ) aPassword[nChar] = sUniPassword.GetChar(nChar); - svx::MSCodec_Std97 aCtx; + msfilter::MSCodec_Std97 aCtx; aCtx.InitKey(aPassword, aDocId); SvStream *pStrmTemp, *pTableStrmTemp, *pDataStrmTemp; @@ -3343,11 +3395,23 @@ SwWW8Writer::~SwWW8Writer() { } +extern "C" SAL_DLLPUBLIC_EXPORT ULONG SAL_CALL SaveOrDelMSVBAStorage_ww8( SfxObjectShell& rDoc, SotStorage& rStor, BOOL bSaveInto, const String& rStorageName ) +{ + SvxImportMSVBasic aTmp( rDoc, rStor ); + return aTmp.SaveOrDelMSVBAStorage( bSaveInto, rStorageName ); +} + extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL ExportDOC( const String& rFltName, const String& rBaseURL, WriterRef& xRet ) { xRet = new SwWW8Writer( rFltName, rBaseURL ); } + +extern "C" SAL_DLLPUBLIC_EXPORT ULONG SAL_CALL GetSaveWarningOfMSVBAStorage_ww8( SfxObjectShell &rDocS ) +{ + return SvxImportMSVBasic::GetSaveWarningOfMSVBAStorage( rDocS ); +} + bool WW8_WrPlcFtnEdn::WriteTxt( WW8Export& rWrt ) { bool bRet = false; @@ -3510,7 +3574,6 @@ void WW8Export::WriteFormData( const ::sw::mark::IFieldmark& rFieldmark ) const sal_uInt8 aFldData[] = { - 0,0,0,0, // len of struct 0x44,0, // the start of "next" data 0,0,0,0,0,0,0,0,0,0, // PIC-Structure! /10 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // | /16 @@ -3518,7 +3581,8 @@ void WW8Export::WriteFormData( const ::sw::mark::IFieldmark& rFieldmark ) 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // | /16 0,0,0,0, // / /4 }; - int slen = sizeof( aFldData ) + sal_uInt32 slen=sizeof(sal_uInt32) + + sizeof(aFldData) + sizeof( aFldHeader ) + 2*ffname.getLength() + 4 + 2*ffdeftext.getLength() + 4 @@ -3527,12 +3591,11 @@ void WW8Export::WriteFormData( const ::sw::mark::IFieldmark& rFieldmark ) + 2*ffstattext.getLength() + 4 + 2*ffentrymcr.getLength() + 4 + 2*ffexitmcr.getLength() + 4; -#ifdef OSL_BIGENDIAN - slen = SWAPLONG( slen ); -#endif // OSL_BIGENDIAN - *( (sal_uInt32 *)aFldData ) = slen; + + *pDataStrm << slen; + int len = sizeof( aFldData ); - OSL_ENSURE( len == 0x44, "SwWW8Writer::WriteFormData(..) - wrong aFldData length" ); + OSL_ENSURE( len == 0x44-sizeof(sal_uInt32), "SwWW8Writer::WriteFormData(..) - wrong aFldData length" ); pDataStrm->Write( aFldData, len ); len = sizeof( aFldHeader ); @@ -3591,6 +3654,7 @@ void WW8AttributeOutput::TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer #endif TableRowEnd(pNodeInfoInner->getDepth()); + ShortToSVBT16(0, nStyle); m_rWW8Export.pO->Insert( (BYTE*)&nStyle, 2, m_rWW8Export.pO->Count() ); // Style # TableInfoRow(pNodeInfoInner); m_rWW8Export.pPapPlc->AppendFkpEntry( m_rWW8Export.Strm().Tell(), m_rWW8Export.pO->Count(), diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx index 75b59638ccde..2e0b4ab7d778 100644 --- a/sw/source/filter/ww8/wrtww8.hxx +++ b/sw/source/filter/ww8/wrtww8.hxx @@ -36,7 +36,7 @@ #include <tools/gen.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <map> @@ -44,7 +44,7 @@ #include <shellio.hxx> #include <wrt_fn.hxx> -#include <svx/msocximex.hxx> +#include <filter/msfilter/msocximex.hxx> #include "ww8struc.hxx" #include "ww8scan.hxx" diff --git a/sw/source/filter/ww8/wrtww8gr.cxx b/sw/source/filter/ww8/wrtww8gr.cxx index aaafe0ee49fc..c4ad0735d5d4 100644 --- a/sw/source/filter/ww8/wrtww8gr.cxx +++ b/sw/source/filter/ww8/wrtww8gr.cxx @@ -37,8 +37,8 @@ #include <com/sun/star/embed/Aspects.hpp> #include <rtl/math.hxx> #include <svtools/filter.hxx> -#include <svtools/itemiter.hxx> -#include "svtools/urihelper.hxx" +#include <svl/itemiter.hxx> +#include "svl/urihelper.hxx" #include <svtools/embedhlp.hxx> @@ -49,7 +49,7 @@ #include <svx/boxitem.hxx> #include <svx/shaditem.hxx> #include <svx/shaditem.hxx> -#include <svx/msoleexp.hxx> +#include <filter/msfilter/msoleexp.hxx> #include <svx/lrspitem.hxx> // SvxLRSpaceItem #include <svx/ulspitem.hxx> #include <svx/fhgtitem.hxx> diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index ddb8e13bb867..54ebd5c5a9ba 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -41,9 +41,9 @@ #include <vcl/svapp.hxx> #include <vcl/salbtype.hxx> -#include <svtools/zformat.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/whiter.hxx> +#include <svl/zformat.hxx> +#include <svl/itemiter.hxx> +#include <svl/whiter.hxx> #include <svx/fontitem.hxx> #include <svx/tstpitem.hxx> #include <svx/adjitem.hxx> @@ -966,7 +966,7 @@ void WW8AttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTe TableRowEnd( pTextNodeInfoInner->getDepth() ); SVBT16 nSty; - ShortToSVBT16( m_rWW8Export.nStyleBeforeFly, nSty ); + ShortToSVBT16( 0, nSty ); m_rWW8Export.pO->Insert( (BYTE*)&nSty, 2, m_rWW8Export.pO->Count() ); // Style # TableInfoRow( pTextNodeInfoInner ); m_rWW8Export.pPapPlc->AppendFkpEntry( m_rWW8Export.Strm().Tell(), m_rWW8Export.pO->Count(), @@ -1559,7 +1559,7 @@ bool WW8Export::TransBrush(const Color& rCol, WW8_SHD& rShd) rShd = WW8_SHD(); // alles Nullen : transparent else { - rShd.SetFore( 8); + rShd.SetFore( 0); rShd.SetBack( TransCol( rCol ) ); rShd.SetStyle( bWrtWW8, 0 ); } @@ -3582,7 +3582,7 @@ ULONG WW8Export::ReplaceCr( BYTE nChar ) pChpPlc->AppendFkpEntry(rStrm.Tell()); nRetPos = rStrm.Tell(); } -#ifdef PRODUCT +#ifndef DBG_UTIL else { ASSERT( nRetPos || nPos == (ULONG)pFib->fcMin, diff --git a/sw/source/filter/ww8/ww8glsy.cxx b/sw/source/filter/ww8/ww8glsy.cxx index b0dabff56b2f..eca0e0d77c21 100644 --- a/sw/source/filter/ww8/ww8glsy.cxx +++ b/sw/source/filter/ww8/ww8glsy.cxx @@ -33,7 +33,7 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ #include <tools/urlobj.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <rtl/tencinfo.h> #include <swerror.h> #ifndef _NDTXT diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx index 4948ac5eddae..0553267d12ed 100644 --- a/sw/source/filter/ww8/ww8graf.cxx +++ b/sw/source/filter/ww8/ww8graf.cxx @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <hintids.hxx> #include <osl/endian.h> #include <svx/fmglob.hxx> @@ -75,7 +75,7 @@ #include <svx/outliner.hxx> // #79453# #include <svx/frmdiritem.hxx> #include <svx/xfltrit.hxx> -#include <svx/msdffimp.hxx> +#include <filter/msfilter/msdffimp.hxx> #include <grfatr.hxx> // class SwCropGrf #include <fmtornt.hxx> #include <fmtcntnt.hxx> diff --git a/sw/source/filter/ww8/ww8graf2.cxx b/sw/source/filter/ww8/ww8graf2.cxx index dc653c5738e6..68d3e87c475c 100644 --- a/sw/source/filter/ww8/ww8graf2.cxx +++ b/sw/source/filter/ww8/ww8graf2.cxx @@ -37,14 +37,14 @@ #include <iterator> #endif #include <hintids.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/impgrf.hxx> #include <svx/svdpage.hxx> #include <svx/svdmodel.hxx> #include <svx/svdograf.hxx> #include <svx/svdoole2.hxx> #include <svx/opaqitem.hxx> -#include <svx/msdffimp.hxx> +#include <filter/msfilter/msdffimp.hxx> #include <sfx2/app.hxx> #include <sfx2/docfile.hxx> #include <sfx2/fcontnr.hxx> diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index b9fd20dc1cba..b92f80c85290 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -60,18 +60,18 @@ // --> OD 2005-02-28 #i43427# #include <svx/opaqitem.hxx> // <-- -#include <svx/svxmsbas.hxx> +#include <filter/msfilter/svxmsbas.hxx> #include <svx/unoapi.hxx> #include <svx/svdoole2.hxx> -#include <svx/msdffimp.hxx> +#include <filter/msfilter/msdffimp.hxx> #include <svx/svdoashp.hxx> #include <svx/svxerr.hxx> -#include <svx/mscodec.hxx> +#include <filter/msfilter/mscodec.hxx> #include <svx/svdmodel.hxx> #include <svx/svdogrp.hxx> #include <svx/xflclit.hxx> -#include <svtools/fltrcfg.hxx> +#include <unotools/fltrcfg.hxx> #include <fmtfld.hxx> #include <fmturl.hxx> #include <fmtinfmt.hxx> @@ -129,7 +129,7 @@ #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/document/XDocumentProperties.hpp> -#include <svtools/itemiter.hxx> //SfxItemIter +#include <svl/itemiter.hxx> //SfxItemIter #include <stdio.h> @@ -4216,7 +4216,7 @@ namespace #define WW_BLOCKSIZE 0x200 - void DecryptRC4(svx::MSCodec_Std97& rCtx, SvStream &rIn, SvStream &rOut) + void DecryptRC4(msfilter::MSCodec_Std97& rCtx, SvStream &rIn, SvStream &rOut) { rIn.Seek(STREAM_SEEK_TO_END); ULONG nLen = rIn.Tell(); @@ -4233,7 +4233,7 @@ namespace } } - void DecryptXOR(svx::MSCodec_XorWord95 &rCtx, SvStream &rIn, SvStream &rOut) + void DecryptXOR(msfilter::MSCodec_XorWord95 &rCtx, SvStream &rIn, SvStream &rOut) { ULONG nSt = rIn.Tell(); rIn.Seek(STREAM_SEEK_TO_END); @@ -4366,7 +4366,7 @@ ULONG SwWW8ImplReader::LoadThroughDecryption(SwPaM& rPaM ,WW8Glossary *pGloss) for (xub_StrLen nChar = 0; nChar < sPassword.Len(); ++nChar ) aPassword[nChar] = sPassword.GetChar(nChar); - svx::MSCodec_XorWord95 aCtx; + msfilter::MSCodec_XorWord95 aCtx; aCtx.InitKey(aPassword); if (aCtx.VerifyKey(pWwFib->nKey, pWwFib->nHash)) { @@ -4379,7 +4379,7 @@ ULONG SwWW8ImplReader::LoadThroughDecryption(SwPaM& rPaM ,WW8Glossary *pGloss) sal_uInt8 *pIn = new sal_uInt8[nUnencryptedHdr]; pStrm->Read(pIn, nUnencryptedHdr); aDecryptMain.Write(pIn, nUnencryptedHdr); - delete pIn; + delete [] pIn; DecryptXOR(aCtx, *pStrm, aDecryptMain); @@ -4424,7 +4424,7 @@ ULONG SwWW8ImplReader::LoadThroughDecryption(SwPaM& rPaM ,WW8Glossary *pGloss) sal_uInt8 aSaltHash[ 16 ]; pTableStream->Read(aSaltHash, 16); - svx::MSCodec_Std97 aCtx; + msfilter::MSCodec_Std97 aCtx; aCtx.InitKey(aPassword, aDocId); if (aCtx.VerifyKey(aSaltData, aSaltHash)) { diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx index 93a20df1576c..98006fb5d267 100644 --- a/sw/source/filter/ww8/ww8par.hxx +++ b/sw/source/filter/ww8/ww8par.hxx @@ -33,8 +33,8 @@ #define _WW8PAR_HXX #include <tools/string.hxx> -#include <svx/msdffimp.hxx> -#include <svx/msocximex.hxx> +#include <filter/msfilter/msdffimp.hxx> +#include <filter/msfilter/msocximex.hxx> #include <svx/frmdir.hxx> #include <fltshell.hxx> // fuer den Attribut Stack diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index 7342843e6b9a..795cfb749531 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -285,7 +285,7 @@ void sw::util::RedlineStack::close( const SwPosition& rPos, { if( pTabDesc && pTabDesc->getOldRedlineStack() ) { -#ifndef PRODUCT +#ifdef DBG_UTIL ASSERT( pTabDesc->getOldRedlineStack()->close(rPos, eType), "close without open!"); #else pTabDesc->getOldRedlineStack()->close( rPos, eType ); @@ -1170,6 +1170,7 @@ void WW8TabBandDesc::ReadDef(bool bVer67, const BYTE* pS) pS++; short nLen = (INT16)SVBT16ToShort( pS - 2 ); // nicht schoen + BYTE nCols = *pS; // Anzahl der Zellen short nOldCols = nWwCols; @@ -1200,7 +1201,11 @@ void WW8TabBandDesc::ReadDef(bool bVer67, const BYTE* pS) setcelldefaults(pTCs,nCols); } - if( nFileCols ) + short nColsToRead = nFileCols; + if (nColsToRead > nCols) + nColsToRead = nCols; + + if( nColsToRead ) { // lies TCs ein @@ -1216,9 +1221,9 @@ void WW8TabBandDesc::ReadDef(bool bVer67, const BYTE* pS) if( bVer67 ) { WW8_TCellVer6* pTc = (WW8_TCellVer6*)pT; - for(i=0; i<nFileCols; i++, ++pAktTC,++pTc) + for(i=0; i<nColsToRead; i++, ++pAktTC,++pTc) { - if( i < nFileCols ) + if( i < nColsToRead ) { // TC aus File ? BYTE aBits1 = SVBT8ToByte( pTc->aBits1Ver6 ); pAktTC->bFirstMerged = ( ( aBits1 & 0x01 ) != 0 ); @@ -1248,7 +1253,7 @@ void WW8TabBandDesc::ReadDef(bool bVer67, const BYTE* pS) else { WW8_TCellVer8* pTc = (WW8_TCellVer8*)pT; - for (int k = 0; k < nFileCols; ++k, ++pAktTC, ++pTc ) + for (int k = 0; k < nColsToRead; ++k, ++pAktTC, ++pTc ) { UINT16 aBits1 = SVBT16ToShort( pTc->aBits1Ver8 ); pAktTC->bFirstMerged = ( ( aBits1 & 0x0001 ) != 0 ); @@ -1296,6 +1301,12 @@ void WW8TabBandDesc::ProcessSprmTSetBRC(bool bVer67, const BYTE* pParamsTSetBRC) BYTE nitcLim = pParamsTSetBRC[1];// (last col to be changed)+1 BYTE nFlag = *(pParamsTSetBRC+2); + if (nitcFirst >= nWwCols) + return; + + if (nitcLim > nWwCols) + nitcLim = nWwCols; + bool bChangeRight = (nFlag & 0x08) ? true : false; bool bChangeBottom = (nFlag & 0x04) ? true : false; bool bChangeLeft = (nFlag & 0x02) ? true : false; @@ -1491,7 +1502,7 @@ void WW8TabBandDesc::ProcessSpacing(const BYTE* pParams) if (nLen != 6) return; mbHasSpacing=true; -#ifndef PRODUCT +#ifdef DBG_UTIL BYTE nWhichCell = #endif *pParams++; @@ -1545,7 +1556,7 @@ void WW8TabBandDesc::ProcessSpecificSpacing(const BYTE* pParams) ASSERT(nOverrideSpacing[nWhichCell] < 0x10, "Unexpected value for nSideBits"); -#ifndef PRODUCT +#ifdef DBG_UTIL BYTE nUnknown2 = #endif *pParams++; diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index aa2737da1fa4..b6b91459fc10 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -33,7 +33,7 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <vcl/svapp.hxx> #include <vcl/outdev.hxx> @@ -75,7 +75,7 @@ #include <svx/crsditem.hxx> #include <svx/udlnitem.hxx> #include <svx/postitem.hxx> -#include <svx/msocximex.hxx> +#include <filter/msfilter/msocximex.hxx> #include <errhdl.hxx> #include <unoobj.hxx> #include <doc.hxx> @@ -95,7 +95,7 @@ #include "ww8par2.hxx" // wg. Listen-Attributen in Styles #include <IMark.hxx> -#include <svtools/fltrcfg.hxx> +#include <unotools/fltrcfg.hxx> #include <stdio.h> diff --git a/sw/source/filter/ww8/ww8par4.cxx b/sw/source/filter/ww8/ww8par4.cxx index ccabdcf8cac1..a0c70239c604 100644 --- a/sw/source/filter/ww8/ww8par4.cxx +++ b/sw/source/filter/ww8/ww8par4.cxx @@ -46,10 +46,10 @@ #include <com/sun/star/drawing/XShape.hpp> #include <hintids.hxx> #include <svx/svdoole2.hxx> -#include <svx/msdffimp.hxx> +#include <filter/msfilter/msdffimp.hxx> #include <svx/impgrf.hxx> #include <svx/unoapi.hxx> -#include <svx/msocximex.hxx> +#include <filter/msfilter/msocximex.hxx> #include <sot/exchange.hxx> #include <swtypes.hxx> diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index f5f82d879aac..9f4cba28a4db 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -40,9 +40,9 @@ #include <tools/solar.h> #include <com/sun/star/ucb/XCommandEnvironment.hpp> -#include <svtools/urihelper.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> +#include <svl/urihelper.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> #include <sfx2/linkmgr.hxx> #ifndef _UCBHELPER_CONTENT_HXX_ diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 978834f3345e..82e2192b52ed 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ #include <stdlib.h> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <rtl/tencinfo.h> @@ -4673,7 +4673,7 @@ void SwWW8ImplReader::Read_ParaBackColor(USHORT, const BYTE* pData, short nLen) sal_uInt32 SwWW8ImplReader::ExtractColour(const BYTE* &rpData, bool -#ifndef PRODUCT +#ifdef DBG_UTIL bVer67 #endif ) diff --git a/sw/source/filter/xml/XMLRedlineImportHelper.cxx b/sw/source/filter/xml/XMLRedlineImportHelper.cxx index 7e3187a4a948..9b653c5eb33d 100644 --- a/sw/source/filter/xml/XMLRedlineImportHelper.cxx +++ b/sw/source/filter/xml/XMLRedlineImportHelper.cxx @@ -686,7 +686,7 @@ void XMLRedlineImportHelper::InsertIntoDocument(RedlineInfo* pRedlineInfo) if( nPoint < pRedlineInfo->pContentIndex->GetIndex() || nPoint > pRedlineInfo->pContentIndex->GetNode().EndOfSectionIndex() ) pRedline->SetContentIdx(pRedlineInfo->pContentIndex); -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( false, "Recursive change tracking" ); #endif diff --git a/sw/source/filter/xml/swxml.cxx b/sw/source/filter/xml/swxml.cxx index a99e719e3fe0..667ae829edb8 100644 --- a/sw/source/filter/xml/swxml.cxx +++ b/sw/source/filter/xml/swxml.cxx @@ -55,10 +55,10 @@ #include <com/sun/star/packages/zip/ZipIOException.hpp> #include <com/sun/star/packages/WrongPasswordException.hpp> #include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <sfx2/docfile.hxx> #include <svtools/sfxecode.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <unotools/streamwrap.hxx> #include <svx/xmlgrhlp.hxx> #include <svx/xmleohlp.hxx> diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx index 09b7bdd8ed30..f0a1b32c74ba 100644 --- a/sw/source/filter/xml/wrtxml.cxx +++ b/sw/source/filter/xml/wrtxml.cxx @@ -46,9 +46,9 @@ #include <unotools/streamwrap.hxx> #include <svx/xmlgrhlp.hxx> #include <svx/xmleohlp.hxx> -#include <svtools/saveopt.hxx> +#include <unotools/saveopt.hxx> #include <tools/urlobj.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/frame.hxx> #include <sfx2/docfile.hxx> #include <pam.hxx> diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx index 0c2a5cec8f71..cd3c5d1734d4 100644 --- a/sw/source/filter/xml/xmlexp.cxx +++ b/sw/source/filter/xml/xmlexp.cxx @@ -41,13 +41,9 @@ #include <com/sun/star/xforms/XFormsSupplier.hpp> #include <svx/svdmodel.hxx> #include <svx/svdpage.hxx> -#ifndef _XMLGRHLP_HXX -#ifndef _XMLGRHLP_HXX #include <svx/xmlgrhlp.hxx> -#endif #include <svx/xmleohlp.hxx> #include <svx/xmlgrhlp.hxx> -#endif #include <svx/eeitem.hxx> #include <svx/svddef.hxx> #include <xmloff/nmspmap.hxx> @@ -66,9 +62,7 @@ #include <xmltexte.hxx> #include <xmlexp.hxx> #include <sfx2/viewsh.hxx> -#ifndef _COMPHELPER_PROCESSFACTORYHXX_ #include <comphelper/processfactory.hxx> -#endif #include <docary.hxx> #include <svx/unolingu.hxx> #include <svx/forbiddencharacterstable.hxx> @@ -326,13 +320,15 @@ sal_uInt32 SwXMLExport::exportDoc( enum XMLTokenEnum eClass ) // figures given above // The styles in pDoc also count the default style that never // gets exported -> subtract one. - sal_Int32 nRef = 1; + sal_Int32 nRef = 1; // meta.xml nRef += pDoc->GetCharFmts()->Count() - 1; nRef += pDoc->GetFrmFmts()->Count() - 1; nRef += pDoc->GetTxtFmtColls()->Count() - 1; // nRef += pDoc->GetPageDescCnt(); - nRef += aDocStat.nPara; - pProgress->SetReference( 2*nRef ); + nRef *= 2; // for the above styles, xmloff will increment by 2! + // #i93174#: count all paragraphs for the progress bar + nRef += aDocStat.nAllPara; // 1: only content, no autostyle + pProgress->SetReference( nRef ); pProgress->SetValue( 0 ); } } diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx index 7832661d8799..041e3a4eb260 100644 --- a/sw/source/filter/xml/xmlexpit.cxx +++ b/sw/source/filter/xml/xmlexpit.cxx @@ -34,9 +34,9 @@ #include <xmloff/xmluconv.hxx> #include <rtl/ustrbuf.hxx> -#include <svtools/itempool.hxx> -#include <svtools/poolitem.hxx> -#include <svtools/itemset.hxx> +#include <svl/itempool.hxx> +#include <svl/poolitem.hxx> +#include <svl/itemset.hxx> #include <xmloff/attrlist.hxx> #include <xmloff/nmspmap.hxx> #include <xmloff/xmlnmspe.hxx> @@ -45,7 +45,7 @@ #ifndef _SVSTDARR_USHORTS #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif diff --git a/sw/source/filter/xml/xmlfmt.cxx b/sw/source/filter/xml/xmlfmt.cxx index 357546259777..ad86a2d8cf26 100644 --- a/sw/source/filter/xml/xmlfmt.cxx +++ b/sw/source/filter/xml/xmlfmt.cxx @@ -37,7 +37,7 @@ #ifndef _SVSTDARR_STRINGSSORT_DECL #define _SVSTDARR_STRINGSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <xmloff/nmspmap.hxx> #include <format.hxx> diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx index f4a4a676c9a2..3136f7b2fdf1 100644 --- a/sw/source/filter/xml/xmlfmte.cxx +++ b/sw/source/filter/xml/xmlfmte.cxx @@ -38,16 +38,11 @@ #include "xmlexpit.hxx" #include <xmloff/nmspmap.hxx> #include <xmloff/XMLTextListAutoStylePool.hxx> -#ifndef _XMLOFF_XMLTEXTMASTERPAGEEXPORT #include <xmloff/XMLTextMasterPageExport.hxx> -#endif -#ifndef _XMLOFF_TXTPRMAP_HXX #include <xmloff/txtprmap.hxx> -#endif #include <xmloff/xmlaustp.hxx> #include <xmloff/families.hxx> -#include <xmloff/ProgressBarHelper.hxx> #include <format.hxx> #include <fmtpdsc.hxx> #include <pagedesc.hxx> @@ -58,6 +53,7 @@ #include "xmlexp.hxx" #include <SwStyleNameMapper.hxx> + using ::rtl::OUString; using namespace ::com::sun::star::beans; using namespace ::com::sun::star::uno; @@ -87,7 +83,7 @@ void SwXMLExport::ExportFmt( const SwFmt& rFmt, enum XMLTokenEnum eFamily ) if( eFamily != XML_TOKEN_INVALID ) AddAttribute( XML_NAMESPACE_STYLE, XML_FAMILY, eFamily ); -#ifndef PRODUCT +#ifdef DBG_UTIL // style:parent-style-name="..." (if its not the default only) const SwFmt* pParent = rFmt.DerivedFrom(); // Parent-Namen nur uebernehmen, wenn kein Default diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx index 44744f0d18a2..17b95cd310af 100644 --- a/sw/source/filter/xml/xmlimp.cxx +++ b/sw/source/filter/xml/xmlimp.cxx @@ -65,7 +65,7 @@ #include <sfx2/printer.hxx> #include <ForbiddenCharactersEnum.hxx> #include <xmloff/xmluconv.hxx> -#include <svtools/saveopt.hxx> +#include <unotools/saveopt.hxx> #include <tools/diagnose_ex.h> #include <hash_set> #include <stringhash.hxx> @@ -842,7 +842,7 @@ void SwXMLImport::endDocument( void ) pTxtNode->GetTxt().Len() ); } -#ifndef PRODUCT +#ifdef DBG_UTIL // !!! This should be impossible !!!! ASSERT( pSttNdIdx->GetIndex()+1 != pPaM->GetBound( sal_True ).nNode.GetIndex(), diff --git a/sw/source/filter/xml/xmlimpit.cxx b/sw/source/filter/xml/xmlimpit.cxx index 78f391b3840f..836d02b9e4f0 100644 --- a/sw/source/filter/xml/xmlimpit.cxx +++ b/sw/source/filter/xml/xmlimpit.cxx @@ -32,9 +32,9 @@ #include "precompiled_sw.hxx" #include "xmlimpit.hxx" #include <xmloff/xmluconv.hxx> -#include <svtools/itempool.hxx> -#include <svtools/poolitem.hxx> -#include <svtools/itemset.hxx> +#include <svl/itempool.hxx> +#include <svl/poolitem.hxx> +#include <svl/itemset.hxx> #include <xmloff/attrlist.hxx> #include <xmloff/nmspmap.hxx> #include <xmloff/xmlnmspe.hxx> diff --git a/sw/source/filter/xml/xmltble.cxx b/sw/source/filter/xml/xmltble.cxx index 360f8349142e..13cb894d6e1f 100644 --- a/sw/source/filter/xml/xmltble.cxx +++ b/sw/source/filter/xml/xmltble.cxx @@ -39,8 +39,8 @@ #include <xmloff/xmltoken.hxx> #include <xmloff/xmluconv.hxx> #include <xmloff/numehelp.hxx> -#include <svtools/cntnrsrt.hxx> -#include <svtools/zforlist.hxx> +#include <svl/cntnrsrt.hxx> +#include <svl/zforlist.hxx> #include <svx/brshitem.hxx> #include <svx/boxitem.hxx> #include <fmtrowsplt.hxx> @@ -142,7 +142,7 @@ SwXMLTableLines_Impl::SwXMLTableLines_Impl( const SwTableLines& rLines ) : pLines( &rLines ), nWidth( 0UL ) { -#ifndef PRODUCT +#ifdef DBG_UTIL sal_uInt16 nEndCPos = 0U; #endif sal_uInt16 nLines = rLines.Count(); @@ -176,7 +176,7 @@ SwXMLTableLines_Impl::SwXMLTableLines_Impl( const SwTableLines& rLines ) : } else { -#ifndef PRODUCT +#ifdef DBG_UTIL sal_uInt16 nCheckPos = nCPos + (sal_uInt16)SwWriteTable::GetBoxWidth( pBox ); if( !nEndCPos ) @@ -193,7 +193,7 @@ SwXMLTableLines_Impl::SwXMLTableLines_Impl( const SwTableLines& rLines ) : } #endif nCPos = (sal_uInt16)nWidth; -#ifndef PRODUCT +#ifdef DBG_UTIL SwXMLTableColumn_Impl aCol( (sal_uInt16)nWidth ); ASSERT( aCols.Seek_Entry(&aCol), "couldn't find last column" ); ASSERT( SwXMLTableColumn_Impl(nCheckPos) == @@ -699,7 +699,7 @@ void SwXMLExport::ExportTableLinesAutoStyles( const SwTableLines& rLines, // Und ihren Index sal_uInt16 nOldCol = nCol; SwXMLTableColumn_Impl aCol( nCPos ); -#ifndef PRODUCT +#ifdef DBG_UTIL sal_Bool bFound = #endif pLines->GetColumns().Seek_Entry( &aCol, &nCol ); @@ -989,7 +989,7 @@ void SwXMLExport::ExportTableLine( const SwTableLine& rLine, const sal_uInt16 nOldCol = nCol; { SwXMLTableColumn_Impl aCol( nCPos ); -#ifndef PRODUCT +#ifdef DBG_UTIL const sal_Bool bFound = #endif rLines.GetColumns().Seek_Entry( &aCol, &nCol ); diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index b71812df6774..07c09631b531 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -39,8 +39,8 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/text/XTextTable.hpp> #include <com/sun/star/table/XCellRange.hpp> -#include <svtools/itemset.hxx> -#include <svtools/zformat.hxx> +#include <svl/itemset.hxx> +#include <svl/zformat.hxx> #include <xmloff/xmlnmspe.hxx> #include <xmloff/xmltkmap.hxx> #include <xmloff/nmspmap.hxx> @@ -2315,7 +2315,7 @@ SwTableLine *SwXMLTableContext::MakeTableLine( SwTableBox *pUpper, bSplit = 1UL == pCell->GetColSpan(); } -#ifndef PRODUCT +#ifdef DBG_UTIL if( nCol == nRightCol-1UL ) { ASSERT( bSplit, "Split-Flag falsch" ); diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx index b9f903ba14a9..3e224b1c46cb 100644 --- a/sw/source/filter/xml/xmltbli.hxx +++ b/sw/source/filter/xml/xmltbli.hxx @@ -40,7 +40,7 @@ #define _SVSTDARR_USHORTS #define _SVSTDARR_BOOLS #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif class SwXMLImport; diff --git a/sw/source/filter/xml/xmltexte.cxx b/sw/source/filter/xml/xmltexte.cxx index 018ca0c0b5bb..c6ca53c00cb1 100644 --- a/sw/source/filter/xml/xmltexte.cxx +++ b/sw/source/filter/xml/xmltexte.cxx @@ -60,8 +60,8 @@ #include <SwAppletImpl.hxx> #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> -#include "svtools/urihelper.hxx" +#include <svl/svstdarr.hxx> +#include "svl/urihelper.hxx" #include <sfx2/frmdescr.hxx> #include <SwStyleNameMapper.hxx> diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx index 6953e065c82a..47a1957ee41b 100644 --- a/sw/source/filter/xml/xmltexti.cxx +++ b/sw/source/filter/xml/xmltexti.cxx @@ -74,7 +74,7 @@ #include <toolkit/helper/vclunohelper.hxx> #include <svtools/embedhlp.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> using ::rtl::OUString; using ::rtl::OUStringBuffer; diff --git a/sw/source/ui/app/app.src b/sw/source/ui/app/app.src index 961e8bdc57a0..e217bd06bf67 100644 --- a/sw/source/ui/app/app.src +++ b/sw/source/ui/app/app.src @@ -30,7 +30,7 @@ -#include <svtools/style.hrc> +#include <svl/style.hrc> #include <sfx2/sfx.hrc> #include <svx/dialogs.hrc> #include <svx/globlmn.hrc> diff --git a/sw/source/ui/app/apphdl.cxx b/sw/source/ui/app/apphdl.cxx index 7fe0d349e8a7..2d4615bba585 100644 --- a/sw/source/ui/app/apphdl.cxx +++ b/sw/source/ui/app/apphdl.cxx @@ -37,10 +37,10 @@ #include <tools/link.hxx> #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/undoopt.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/svstdarr.hxx> +#include <svl/urihelper.hxx> +#include <unotools/undoopt.hxx> +#include <unotools/pathoptions.hxx> #include <svtools/accessibilityoptions.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/event.hxx> @@ -48,15 +48,15 @@ #include <svx/dataaccessdescriptor.hxx> #include <svx/srchitem.hxx> #include <svtools/colorcfg.hxx> -#include <svtools/eitem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/isethint.hxx> +#include <svl/eitem.hxx> +#include <svl/whiter.hxx> +#include <svl/isethint.hxx> #include <svx/hyprlink.hxx> #include <sfx2/request.hxx> #include <sfx2/fcontnr.hxx> -#include <svtools/stritem.hxx> -#include <svtools/ctloptions.hxx> -#include <svtools/useroptions.hxx> +#include <svl/stritem.hxx> +#include <svl/ctloptions.hxx> +#include <unotools/useroptions.hxx> #include <vcl/msgbox.hxx> #include <vcl/wrkwin.hxx> #include <svx/insctrl.hxx> @@ -753,82 +753,8 @@ void SwModule::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) } else if(rHint.ISA(SfxSimpleHint)) { - ULONG nHintId = ((SfxSimpleHint&)rHint).GetId(); - if(SFX_HINT_COLORS_CHANGED == nHintId || - SFX_HINT_ACCESSIBILITY_CHANGED == nHintId ) - { - sal_Bool bAccessibility = sal_False; - if(SFX_HINT_COLORS_CHANGED == nHintId) - SwViewOption::ApplyColorConfigValues(*pColorConfig); - else - bAccessibility = sal_True; - - //invalidate all edit windows - const TypeId aSwViewTypeId = TYPE(SwView); - const TypeId aSwPreViewTypeId = TYPE(SwPagePreView); - const TypeId aSwSrcViewTypeId = TYPE(SwSrcView); - SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while(pViewShell) - { - if(pViewShell->GetWindow()) - { - if((pViewShell->IsA(aSwViewTypeId) || - pViewShell->IsA(aSwPreViewTypeId) || - pViewShell->IsA(aSwSrcViewTypeId))) - { - if(bAccessibility) - { - if(pViewShell->IsA(aSwViewTypeId)) - ((SwView*)pViewShell)->ApplyAccessiblityOptions(*pAccessibilityOptions); - else if(pViewShell->IsA(aSwPreViewTypeId)) - ((SwPagePreView*)pViewShell)->ApplyAccessiblityOptions(*pAccessibilityOptions); - } - pViewShell->GetWindow()->Invalidate(); - } - } - pViewShell = SfxViewShell::GetNext( *pViewShell ); - } - } - else if( SFX_HINT_CTL_SETTINGS_CHANGED == nHintId ) - { - const SfxObjectShell* pObjSh = SfxObjectShell::GetFirst(); - while( pObjSh ) - { - if( pObjSh->IsA(TYPE(SwDocShell)) ) - { - const SwDoc* pDoc = ((SwDocShell*)pObjSh)->GetDoc(); - ViewShell* pVSh = 0; - pDoc->GetEditShell( &pVSh ); - if ( pVSh ) - pVSh->ChgNumberDigits(); - } - pObjSh = SfxObjectShell::GetNext(*pObjSh); - } - } - else if(SFX_HINT_USER_OPTIONS_CHANGED == nHintId) - { - bAuthorInitialised = FALSE; - } - else if(SFX_HINT_UNDO_OPTIONS_CHANGED == nHintId) - { - const int nNew = GetUndoOptions().GetUndoCount(); - const int nOld = SwEditShell::GetUndoActionCount(); - if(!nNew || !nOld) - { - sal_Bool bUndo = nNew != 0; - //ueber DocShells iterieren und Undo umschalten - - TypeId aType(TYPE(SwDocShell)); - SwDocShell* pDocShell = (SwDocShell*)SfxObjectShell::GetFirst(&aType); - while( pDocShell ) - { - pDocShell->GetDoc()->DoUndo( bUndo ); - pDocShell = (SwDocShell*)SfxObjectShell::GetNext(*pDocShell, &aType); - } - } - SwEditShell::SetUndoActionCount( static_cast< USHORT >(nNew)); - } - else if(SFX_HINT_DEINITIALIZING == nHintId) + USHORT nHintId = ((SfxSimpleHint&)rHint).GetId(); + if(SFX_HINT_DEINITIALIZING == nHintId) { DELETEZ(pWebUsrPref); DELETEZ(pUsrPref) ; @@ -842,20 +768,98 @@ void SwModule::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) DELETEZ(pWebToolbarConfig) ; DELETEZ(pAuthorNames) ; DELETEZ(pDBConfig); - EndListening(*pColorConfig); + pColorConfig->RemoveListener(this); DELETEZ(pColorConfig); - EndListening(*pAccessibilityOptions); + pAccessibilityOptions->RemoveListener(this); DELETEZ(pAccessibilityOptions); - EndListening(*pCTLOptions); + pCTLOptions->RemoveListener(this); DELETEZ(pCTLOptions); - EndListening(*pUserOptions); + pUserOptions->RemoveListener(this); DELETEZ(pUserOptions); - EndListening(*pUndoOptions); + pUndoOptions->RemoveListener(this); DELETEZ(pUndoOptions); } } } +void SwModule::ConfigurationChanged( utl::ConfigurationBroadcaster* pBrdCst, sal_uInt32 ) +{ + if( pBrdCst == pUserOptions ) + { + bAuthorInitialised = FALSE; + } + else if( pBrdCst == pUndoOptions ) + { + const int nNew = GetUndoOptions().GetUndoCount(); + const int nOld = SwEditShell::GetUndoActionCount(); + if(!nNew || !nOld) + { + sal_Bool bUndo = nNew != 0; + //ueber DocShells iterieren und Undo umschalten + + TypeId aType(TYPE(SwDocShell)); + SwDocShell* pDocShell = (SwDocShell*)SfxObjectShell::GetFirst(&aType); + while( pDocShell ) + { + pDocShell->GetDoc()->DoUndo( bUndo ); + pDocShell = (SwDocShell*)SfxObjectShell::GetNext(*pDocShell, &aType); + } + } + SwEditShell::SetUndoActionCount( static_cast< USHORT >(nNew)); + } + else if ( pBrdCst == pColorConfig || pBrdCst == pAccessibilityOptions ) + { + sal_Bool bAccessibility = sal_False; + if( pBrdCst == pColorConfig ) + SwViewOption::ApplyColorConfigValues(*pColorConfig); + else + bAccessibility = sal_True; + + //invalidate all edit windows + const TypeId aSwViewTypeId = TYPE(SwView); + const TypeId aSwPreViewTypeId = TYPE(SwPagePreView); + const TypeId aSwSrcViewTypeId = TYPE(SwSrcView); + SfxViewShell* pViewShell = SfxViewShell::GetFirst(); + while(pViewShell) + { + if(pViewShell->GetWindow()) + { + if((pViewShell->IsA(aSwViewTypeId) || + pViewShell->IsA(aSwPreViewTypeId) || + pViewShell->IsA(aSwSrcViewTypeId))) + { + if(bAccessibility) + { + if(pViewShell->IsA(aSwViewTypeId)) + ((SwView*)pViewShell)->ApplyAccessiblityOptions(*pAccessibilityOptions); + else if(pViewShell->IsA(aSwPreViewTypeId)) + ((SwPagePreView*)pViewShell)->ApplyAccessiblityOptions(*pAccessibilityOptions); + } + pViewShell->GetWindow()->Invalidate(); + } + } + pViewShell = SfxViewShell::GetNext( *pViewShell ); + } + } + else if( pBrdCst == pCTLOptions ) + { + const SfxObjectShell* pObjSh = SfxObjectShell::GetFirst(); + while( pObjSh ) + { + if( pObjSh->IsA(TYPE(SwDocShell)) ) + { + const SwDoc* pDoc = ((SwDocShell*)pObjSh)->GetDoc(); + ViewShell* pVSh = 0; + pDoc->GetEditShell( &pVSh ); + if ( pVSh ) + pVSh->ChgNumberDigits(); + } + pObjSh = SfxObjectShell::GetNext(*pObjSh); + } + } + +} + /* -----------------------------20.02.01 12:43-------------------------------- ---------------------------------------------------------------------------*/ @@ -874,7 +878,7 @@ svtools::ColorConfig& SwModule::GetColorConfig() { pColorConfig = new svtools::ColorConfig; SwViewOption::ApplyColorConfigValues(*pColorConfig); - StartListening(*pColorConfig); + pColorConfig->AddListener(this); } return *pColorConfig; } @@ -886,7 +890,7 @@ SvtAccessibilityOptions& SwModule::GetAccessibilityOptions() if(!pAccessibilityOptions) { pAccessibilityOptions = new SvtAccessibilityOptions; - StartListening(*pAccessibilityOptions); + pAccessibilityOptions->AddListener(this); } return *pAccessibilityOptions; } @@ -898,7 +902,7 @@ SvtCTLOptions& SwModule::GetCTLOptions() if(!pCTLOptions) { pCTLOptions = new SvtCTLOptions; - StartListening(*pCTLOptions); + pCTLOptions->AddListener(this); } return *pCTLOptions; } @@ -910,7 +914,7 @@ SvtUserOptions& SwModule::GetUserOptions() if(!pUserOptions) { pUserOptions = new SvtUserOptions; - StartListening(*pUserOptions); + pUserOptions->AddListener(this); } return *pUserOptions; } @@ -922,7 +926,7 @@ SvtUndoOptions& SwModule::GetUndoOptions() if(!pUndoOptions) { pUndoOptions = new SvtUndoOptions; - StartListening(*pUndoOptions); + pUndoOptions->AddListener(this); } return *pUndoOptions; } diff --git a/sw/source/ui/app/appopt.cxx b/sw/source/ui/app/appopt.cxx index 7698fe58c580..9f04942e04bf 100644 --- a/sw/source/ui/app/appopt.cxx +++ b/sw/source/ui/app/appopt.cxx @@ -38,12 +38,12 @@ #include <com/sun/star/i18n/ScriptType.hpp> #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/request.hxx> #include <sfx2/app.hxx> #include <sfx2/printer.hxx> @@ -87,14 +87,14 @@ #include <glosdoc.hxx> #include <uiitems.hxx> #include <svx/langitem.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <svx/unolingu.hxx> #ifndef _GLOBALS_HRC #include <globals.hrc> #endif #include <globals.h> // globale Konstanten z.B. -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include "swabstdlg.hxx" #include <swwrtshitem.hxx> @@ -151,7 +151,7 @@ SfxItemSet* SwModule::CreateItemSet( USHORT nId ) SID_ATTR_LANGUAGE, SID_ATTR_LANGUAGE, SID_ATTR_CHAR_CJK_LANGUAGE, SID_ATTR_CHAR_CJK_LANGUAGE, SID_ATTR_CHAR_CTL_LANGUAGE, SID_ATTR_CHAR_CTL_LANGUAGE, -#ifndef PRODUCT +#ifdef DBG_UTIL FN_PARAM_SWTEST, FN_PARAM_SWTEST, #endif 0); @@ -285,7 +285,7 @@ SfxItemSet* SwModule::CreateItemSet( USHORT nId ) pRet->Put(SvxBrushItem(aViewOpt.GetRetoucheColor(), RES_BACKGROUND)); } -#ifndef PRODUCT +#ifdef DBG_UTIL /*-----------------01.02.97 13.02------------------- Test-Optionen --------------------------------------------------*/ @@ -491,7 +491,7 @@ void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) } -#ifndef PRODUCT +#ifdef DBG_UTIL /*-------------------------------------------------------------------------- Writer Testseite auswerten ----------------------------------------------------------------------------*/ @@ -614,7 +614,7 @@ SfxTabPage* SwModule::CreateTabPage( USHORT nId, Window* pParent, const SfxItemS } } break; -#ifndef PRODUCT +#ifdef DBG_UTIL case RID_SW_TP_OPTTEST_PAGE: { SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); diff --git a/sw/source/ui/app/docsh.cxx b/sw/source/ui/app/docsh.cxx index 06289c10f38a..8a119ddd5140 100644 --- a/sw/source/ui/app/docsh.cxx +++ b/sw/source/ui/app/docsh.cxx @@ -38,16 +38,15 @@ #include <vcl/wrkwin.hxx> #include <vcl/jobset.hxx> #include <tools/urlobj.hxx> -#include <svtools/whiter.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/whiter.hxx> +#include <svl/zforlist.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <svx/adjitem.hxx> #include <basic/sbx.hxx> -#include <svtools/moduleoptions.hxx> -#include <sfx2/app.hxx> +#include <unotools/moduleoptions.hxx> +#include <unotools/misccfg.hxx> #include <sfx2/request.hxx> -#include <svtools/misccfg.hxx> #include <sfx2/passwd.hxx> #include <sfx2/bindings.hxx> #include <sfx2/docfile.hxx> @@ -58,7 +57,6 @@ #include <svx/srchitem.hxx> #include <svx/flstitem.hxx> #include <svx/htmlmode.hxx> -#include <svx/svxmsbas.hxx> #include <svtools/soerr.hxx> #include <sot/clsids.hxx> #include <basic/basmgr.hxx> @@ -111,8 +109,8 @@ #include "warnpassword.hxx" #include <cfgid.h> -#include <svtools/moduleoptions.hxx> -#include <svtools/fltrcfg.hxx> +#include <unotools/moduleoptions.hxx> +#include <unotools/fltrcfg.hxx> #include <svx/htmlcfg.hxx> #include <sfx2/fcontnr.hxx> #include <sfx2/objface.hxx> @@ -382,8 +380,7 @@ BOOL SwDocShell::Save() //SvxImportMSVBasic aTmp( *this, pIo->GetStorage() ); //aTmp.SaveOrDelMSVBAStorage( FALSE, aEmptyStr ); if( SvtFilterOptions::Get()->IsLoadWordBasicStorage() ) - nVBWarning = SvxImportMSVBasic:: - GetSaveWarningOfMSVBAStorage( *this ); + nVBWarning = GetSaveWarningOfMSVBAStorage( (SfxObjectShell&) (*this) ); pDoc->SetContainsMSVBasic( FALSE ); } @@ -501,8 +498,7 @@ sal_Bool SwDocShell::SaveAs( SfxMedium& rMedium ) //SvxImportMSVBasic aTmp( *this, pIo->GetStorage() ); //aTmp.SaveOrDelMSVBAStorage( FALSE, aEmptyStr ); if( SvtFilterOptions::Get()->IsLoadWordBasicStorage() ) - nVBWarning = SvxImportMSVBasic:: - GetSaveWarningOfMSVBAStorage( *this ); + nVBWarning = GetSaveWarningOfMSVBAStorage( (SfxObjectShell&) *this ); pDoc->SetContainsMSVBasic( FALSE ); } @@ -599,8 +595,7 @@ BOOL SwDocShell::ConvertTo( SfxMedium& rMedium ) DBG_ASSERT( !xStg->GetError(), "No storage available for storing VBA macros!" ); if ( !xStg->GetError() ) { - SvxImportMSVBasic aTmp( *this, *xStg ); - nVBWarning = aTmp.SaveOrDelMSVBAStorage( bSave, String::CreateFromAscii("Macros") ); + nVBWarning = SaveOrDelMSVBAStorage( (SfxObjectShell&) *this, *xStg, bSave, String::CreateFromAscii("Macros") ); xStg->Commit(); pDoc->SetContainsMSVBasic( TRUE ); } @@ -1134,7 +1129,7 @@ void SwDocShell::GetState(SfxItemSet& rSet) rSet.Put( SfxUInt16Item( nWhich, static_cast< sal_uInt16 >( pFmtr ? pFmtr->GetYear2000() - : SFX_APP()->GetMiscConfig()->GetYear2000() ))); + : ::utl::MiscCfg().GetYear2000() ))); } break; case SID_ATTR_CHAR_FONTLIST: diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx index 3fd1e879b063..84c2ae9b9a95 100644 --- a/sw/source/ui/app/docsh2.cxx +++ b/sw/source/ui/app/docsh2.cxx @@ -49,14 +49,14 @@ #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/lckbitem.hxx> -#include <svtools/eitem.hxx> +#include <svl/lckbitem.hxx> +#include <svl/eitem.hxx> /* -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> */ -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> +#include <unotools/pathoptions.hxx> #include <svtools/transfer.hxx> #ifndef _SFXSIDS_HRC //autogen #include <sfx2/dialogs.hrc> @@ -180,8 +180,6 @@ SfxDocumentInfoDialog* SwDocShell::CreateDocumentInfoDialog( Window *pParent, const SfxItemSet &rSet) { SfxDocumentInfoDialog* pDlg = new SfxDocumentInfoDialog(pParent, rSet); -// const SfxDocumentInfoItem& rItem = (const SfxDocumentInfoItem&)rSet.Get(SID_DOCINFO); -// if(rItem.IsOwnFormat()) //nur mit Statistik, wenn dieses Doc auch angezeigt wird, nicht //aus dem Doc-Manager SwDocShell* pDocSh = (SwDocShell*) SfxObjectShell::Current(); diff --git a/sw/source/ui/app/docshdrw.cxx b/sw/source/ui/app/docshdrw.cxx index 25c9f5113d6f..acaf15c45501 100644 --- a/sw/source/ui/app/docshdrw.cxx +++ b/sw/source/ui/app/docshdrw.cxx @@ -45,7 +45,7 @@ -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/drawitem.hxx> #include <svx/svdmodel.hxx> #include <svx/svdoutl.hxx> diff --git a/sw/source/ui/app/docshini.cxx b/sw/source/ui/app/docshini.cxx index 630d836c785b..5f0f0db7dbfd 100644 --- a/sw/source/ui/app/docshini.cxx +++ b/sw/source/ui/app/docshini.cxx @@ -40,19 +40,16 @@ #include <i18npool/mslangid.hxx> #include <sot/storinfo.hxx> #include <sot/storage.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <sfx2/docfile.hxx> -#ifndef _OFA_MISCCFG_HXX //autogen -#include <svtools/misccfg.hxx> -#endif #include <sfx2/printer.hxx> #include <sfx2/bindings.hxx> #include <svx/asiancfg.hxx> #include <svx/unolingu.hxx> #include <sfx2/request.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svx/adjitem.hxx> #ifndef _SVX_AKRNTEM_HXX #include <svx/akrnitem.hxx> @@ -655,7 +652,7 @@ sal_Bool SwDocShell::Load( SfxMedium& rMedium ) pDoc->set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true); } } -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( !this, "ohne Sw3Reader geht nichts" ); #endif diff --git a/sw/source/ui/app/docst.cxx b/sw/source/ui/app/docst.cxx index 9d624c2f5179..8d723f64f28e 100644 --- a/sw/source/ui/app/docst.cxx +++ b/sw/source/ui/app/docst.cxx @@ -36,17 +36,17 @@ #include <hintids.hxx> #include <sfx2/app.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <sfx2/templdlg.hxx> #include <sfx2/tplpitem.hxx> #include <sfx2/request.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/newstyle.hxx> #include <sfx2/printer.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <svx/brshitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/stritem.hxx> +#include <svl/languageoptions.hxx> #include <svx/eeitem.hxx> #include <svx/htmlmode.hxx> #include <swmodule.hxx> diff --git a/sw/source/ui/app/docstyle.cxx b/sw/source/ui/app/docstyle.cxx index 7841176d47e1..a69a7f921c13 100644 --- a/sw/source/ui/app/docstyle.cxx +++ b/sw/source/ui/app/docstyle.cxx @@ -33,11 +33,11 @@ #define _SVSTDARR_USHORTS -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> #include <hintids.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/eitem.hxx> -#include <svtools/syslocale.hxx> +#include <svl/itemiter.hxx> +#include <svl/eitem.hxx> +#include <unotools/syslocale.hxx> #include <svx/boxitem.hxx> #include <svx/numitem.hxx> // --> OD 2008-02-13 #newlistlevelattrs# @@ -68,7 +68,7 @@ #endif #include <paratr.hxx> #include <SwStyleNameMapper.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include <comphelper/processfactory.hxx> #include <unotools/localedatawrapper.hxx> #include <unotools/intlwrapper.hxx> diff --git a/sw/source/ui/app/mainwn.cxx b/sw/source/ui/app/mainwn.cxx index 815269e82044..d20c60df78cd 100644 --- a/sw/source/ui/app/mainwn.cxx +++ b/sw/source/ui/app/mainwn.cxx @@ -37,7 +37,7 @@ #include <tools/shl.hxx> #include <tools/string.hxx> #ifndef _SVARRAY_HXX -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <sfx2/progress.hxx> #ifndef _RESID_HXX //autogen diff --git a/sw/source/ui/app/swdll.cxx b/sw/source/ui/app/swdll.cxx index 57f983a3852d..965708ca1579 100644 --- a/sw/source/ui/app/swdll.cxx +++ b/sw/source/ui/app/swdll.cxx @@ -51,7 +51,7 @@ #include <dobjfac.hxx> #include <cfgid.h> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #ifndef _FM_FMOBJFAC_HXX #include <svx/fmobjfac.hxx> diff --git a/sw/source/ui/app/swmodul1.cxx b/sw/source/ui/app/swmodul1.cxx index 863ef3c22f76..13bef2aa4cc2 100644 --- a/sw/source/ui/app/swmodul1.cxx +++ b/sw/source/ui/app/swmodul1.cxx @@ -36,7 +36,7 @@ #include <sfx2/request.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/childwin.hxx> -#include <svtools/useroptions.hxx> +#include <unotools/useroptions.hxx> #include <cppuhelper/weak.hxx> #include <com/sun/star/frame/FrameSearchFlag.hpp> #include <com/sun/star/view/XSelectionSupplier.hpp> diff --git a/sw/source/ui/app/swmodule.cxx b/sw/source/ui/app/swmodule.cxx index c84273770667..d5b54c1ca846 100644 --- a/sw/source/ui/app/swmodule.cxx +++ b/sw/source/ui/app/swmodule.cxx @@ -154,7 +154,7 @@ #include <svtools/colorcfg.hxx> #include <svx/acorrcfg.hxx> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #ifndef _AVMEDIA_MEDIAPPLAYER_HXX #include <avmedia/mediaplayer.hxx> diff --git a/sw/source/ui/chrdlg/break.cxx b/sw/source/ui/chrdlg/break.cxx index d2d07d81e368..6b3882bf7860 100644 --- a/sw/source/ui/chrdlg/break.cxx +++ b/sw/source/ui/chrdlg/break.cxx @@ -37,7 +37,7 @@ #include <sfx2/request.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif diff --git a/sw/source/ui/chrdlg/ccoll.cxx b/sw/source/ui/chrdlg/ccoll.cxx index 25276c2cc4bc..e0e4826a93d4 100644 --- a/sw/source/ui/chrdlg/ccoll.cxx +++ b/sw/source/ui/chrdlg/ccoll.cxx @@ -209,11 +209,7 @@ int SwCondCollItem::operator==( const SfxPoolItem& rItem) const const String& SwCondCollItem::GetStyle(USHORT nPos) const { -#ifndef IRIX return nPos < COND_COMMAND_COUNT ? sStyles[nPos] : aEmptyStr; -#else - return nPos < COND_COMMAND_COUNT ? (String)sStyles[nPos] : aEmptyStr; -#endif } /**************************************************************************** @@ -224,11 +220,7 @@ const String& SwCondCollItem::GetStyle(USHORT nPos) const void SwCondCollItem::SetStyle(const String* pStyle, USHORT nPos) { if( nPos < COND_COMMAND_COUNT ) -#ifndef IRIX sStyles[nPos] = pStyle ? *pStyle : aEmptyStr; -#else - sStyles[nPos] = pStyle ? (String)*pStyle : aEmptyStr; -#endif } diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx index 2aff6e0cf4d1..8c7fd302df81 100644 --- a/sw/source/ui/chrdlg/chardlg.cxx +++ b/sw/source/ui/chrdlg/chardlg.cxx @@ -41,11 +41,11 @@ #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/urihelper.hxx> -#include <svtools/stritem.hxx> +#include <svl/urihelper.hxx> +#include <svl/stritem.hxx> #include <svx/flstitem.hxx> #include <svx/htmlmode.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #ifndef _CMDID_H #include <cmdid.h> diff --git a/sw/source/ui/chrdlg/drpcps.cxx b/sw/source/ui/chrdlg/drpcps.cxx index cc4d15664cf7..4a7803d88cf2 100644 --- a/sw/source/ui/chrdlg/drpcps.cxx +++ b/sw/source/ui/chrdlg/drpcps.cxx @@ -39,7 +39,7 @@ #include <hintids.hxx> #define _SVSTDARR_STRINGSDTOR #define _SVSTDARR_STRINGSISORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include "cmdid.h" #include "swmodule.hxx" @@ -51,7 +51,7 @@ #ifndef _METRIC_HXX //autogen #include <vcl/metric.hxx> #endif -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/fontitem.hxx> #include <svx/htmlmode.hxx> #include <sfx2/objsh.hxx> @@ -68,7 +68,7 @@ #define _SVSTDARR_XUB_STRLEN #define _SVSTDARR_USHORTS #define _SVSTDARR_ULONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include "charatr.hxx" #include "viewopt.hxx" diff --git a/sw/source/ui/chrdlg/numpara.cxx b/sw/source/ui/chrdlg/numpara.cxx index 26f146e628f0..2039c997097d 100644 --- a/sw/source/ui/chrdlg/numpara.cxx +++ b/sw/source/ui/chrdlg/numpara.cxx @@ -47,9 +47,9 @@ #ifndef _SVX_SVXIDS_HRC #include <svx/svxids.hrc> #endif -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/intitem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/intitem.hxx> #include <fmtline.hxx> #include <numpara.hxx> #include <numpara.hrc> diff --git a/sw/source/ui/chrdlg/pardlg.cxx b/sw/source/ui/chrdlg/pardlg.cxx index e095c7b79085..19bed390802a 100644 --- a/sw/source/ui/chrdlg/pardlg.cxx +++ b/sw/source/ui/chrdlg/pardlg.cxx @@ -38,15 +38,15 @@ #include "hintids.hxx" #include <svx/htmlmode.hxx> -#include <svtools/style.hxx> +#include <svl/style.hxx> #include <svx/htmlcfg.hxx> #ifndef _SVSTDARR_STRINGSSORTDTOR #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include "docsh.hxx" #include "wrtsh.hxx" #include "frmatr.hxx" @@ -62,8 +62,8 @@ #include "chrdlg.hrc" #include "poolfmt.hrc" #include <svx/svxids.hrc> -#include <svtools/eitem.hxx> -#include <svtools/intitem.hxx> +#include <svl/eitem.hxx> +#include <svl/intitem.hxx> #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> #include <svx/flagsdef.hxx> diff --git a/sw/source/ui/chrdlg/tblnumfm.cxx b/sw/source/ui/chrdlg/tblnumfm.cxx index 1024c8a6bff6..2ffc9e8a8ae5 100644 --- a/sw/source/ui/chrdlg/tblnumfm.cxx +++ b/sw/source/ui/chrdlg/tblnumfm.cxx @@ -51,7 +51,7 @@ #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <sfx2/tabdlg.hxx> SwNumFmtDlg::SwNumFmtDlg(Window* pParent, const SfxItemSet& rSet) diff --git a/sw/source/ui/config/barcfg.cxx b/sw/source/ui/config/barcfg.cxx index 4859c59499e3..3222852f33ce 100644 --- a/sw/source/ui/config/barcfg.cxx +++ b/sw/source/ui/config/barcfg.cxx @@ -151,3 +151,5 @@ void SwToolbarConfigItem::Commit() PutProperties(aNames, aValues); } +void SwToolbarConfigItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + diff --git a/sw/source/ui/config/cfgitems.cxx b/sw/source/ui/config/cfgitems.cxx index 1ca465678def..cf74d3eaec52 100644 --- a/sw/source/ui/config/cfgitems.cxx +++ b/sw/source/ui/config/cfgitems.cxx @@ -407,7 +407,7 @@ void SwShadowCursorItem::FillViewOptions( SwViewOption& rVOpt ) const rVOpt.SetShdwCrsrFillMode( eMode ); } -#ifndef PRODUCT +#ifdef DBG_UTIL /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ diff --git a/sw/source/ui/config/dbconfig.cxx b/sw/source/ui/config/dbconfig.cxx index 52a06b389643..cc0f24d8442b 100644 --- a/sw/source/ui/config/dbconfig.cxx +++ b/sw/source/ui/config/dbconfig.cxx @@ -140,5 +140,7 @@ const SwDBData& SwDBConfig::GetBibliographySource() return *pBibImpl; } +void SwDBConfig::Commit() {} +void SwDBConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} diff --git a/sw/source/ui/config/fontcfg.cxx b/sw/source/ui/config/fontcfg.cxx index 34ffa8f215b9..af185d53e58b 100644 --- a/sw/source/ui/config/fontcfg.cxx +++ b/sw/source/ui/config/fontcfg.cxx @@ -35,7 +35,7 @@ #include <fontcfg.hxx> #include <i18npool/mslangid.hxx> #include <vcl/outdev.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/i18n/ScriptType.hpp> @@ -358,3 +358,5 @@ sal_Int32 SwStdFontConfig::GetFontHeight( sal_uInt8 nFont, sal_uInt8 nScriptType return nRet; } +void SwStdFontConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + diff --git a/sw/source/ui/config/mailconfigpage.cxx b/sw/source/ui/config/mailconfigpage.cxx index f17af2f8061a..00219b8d9cdf 100644 --- a/sw/source/ui/config/mailconfigpage.cxx +++ b/sw/source/ui/config/mailconfigpage.cxx @@ -295,7 +295,7 @@ SwTestAccountSettingsDialog::SwTestAccountSettingsDialog(SwMailConfigPage* pPare #ifdef MSC #pragma warning (default : 4355) #endif - m_aImageList( SW_RES( GetSettings().GetStyleSettings().GetWindowColor().IsDark() ? ILIST_HC : ILIST) ), + m_aImageList( SW_RES( GetSettings().GetStyleSettings().GetHighContrastMode() ? ILIST_HC : ILIST) ), m_sTask( SW_RES( ST_TASK )), m_sStatus( SW_RES( ST_STATUS )), m_sEstablish( SW_RES( ST_ESTABLISH )), diff --git a/sw/source/ui/config/modcfg.cxx b/sw/source/ui/config/modcfg.cxx index dab5e97cc2e8..a89684ccee98 100644 --- a/sw/source/ui/config/modcfg.cxx +++ b/sw/source/ui/config/modcfg.cxx @@ -50,7 +50,7 @@ #include <modcfg.hxx> #endif #include <fldupde.hxx> -#include <svtools/syslocaleoptions.hxx> +#include <unotools/syslocaleoptions.hxx> #include <caption.hxx> #include <com/sun/star/uno/Any.hxx> @@ -336,6 +336,8 @@ sal_Int32 lcl_ConvertAttrToCfg(const AuthorCharAttr& rAttr) return nRet; } //----------------------------------------------------------------------------- +void SwRevisionConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwRevisionConfig::Commit() { const Sequence<OUString>& aNames = GetPropertyNames(); @@ -691,6 +693,8 @@ void lcl_WriteOpt(const InsCaptionOpt& rOpt, Any* pValues, sal_Int32 nProp, sal_ } } //----------------------------------------------------------------------------- +void SwInsertConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwInsertConfig::Commit() { const Sequence<OUString>& aNames = GetPropertyNames(); @@ -1207,6 +1211,8 @@ SwTableConfig::~SwTableConfig() /*-- 10.10.00 16:22:56--------------------------------------------------- -----------------------------------------------------------------------*/ +void SwTableConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwTableConfig::Commit() { const Sequence<OUString>& aNames = GetPropertyNames(); @@ -1318,6 +1324,8 @@ const Sequence<OUString>& SwMiscConfig::GetPropertyNames() /*-- 18.01.01 17:02:47--------------------------------------------------- -----------------------------------------------------------------------*/ +void SwMiscConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwMiscConfig::Commit() { const Sequence<OUString>& aNames = GetPropertyNames(); diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx index 70db2cdf008b..e836790b5d50 100644 --- a/sw/source/ui/config/optload.cxx +++ b/sw/source/ui/config/optload.cxx @@ -76,7 +76,7 @@ #include <SwNodeNum.hxx> #include <doc.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> using namespace ::com::sun::star; diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 0777ac3c3325..84e8958fa977 100755 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -42,11 +42,11 @@ #include <vcl/svapp.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/htmlmode.hxx> #include <sfx2/printer.hxx> #include <sfx2/bindings.hxx> @@ -97,10 +97,10 @@ #include <optdlg.hrc> #endif #include <svx/strarray.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <sfx2/request.hxx> #include <swwrtshitem.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <unomid.h> @@ -1776,7 +1776,7 @@ void SwMarkPreview::InitColors( void ) const StyleSettings& rSettings = GetSettings().GetStyleSettings(); m_aBgCol = Color( rSettings.GetWindowColor() ); - BOOL bHC = m_aBgCol.IsDark(); + BOOL bHC = rSettings.GetHighContrastMode(); m_aLineCol = bHC? SwViewOption::GetFontColor() : Color( COL_BLACK ); m_aShadowCol = bHC? m_aBgCol : rSettings.GetShadowColor(); m_aTxtCol = bHC? SwViewOption::GetFontColor() : Color( COL_GRAY ); @@ -2458,7 +2458,7 @@ void SwRedlineOptionsTabPage::InitFontStyle(SvxFontPrevWindow& rExampleWin) } -#ifndef PRODUCT +#ifdef DBG_UTIL /******************************************************* ******************************************************/ /*----------------- OS 11.01.95 ----------------------- diff --git a/sw/source/ui/config/prtopt.cxx b/sw/source/ui/config/prtopt.cxx index 1f8f04f54d65..68f86cae4639 100644 --- a/sw/source/ui/config/prtopt.cxx +++ b/sw/source/ui/config/prtopt.cxx @@ -151,6 +151,9 @@ SwPrintOptions::~SwPrintOptions() /* -----------------------------06.09.00 16:43-------------------------------- ---------------------------------------------------------------------------*/ + +void SwPrintOptions::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwPrintOptions::Commit() { Sequence<OUString> aNames = GetPropertyNames(); diff --git a/sw/source/ui/config/uinums.cxx b/sw/source/ui/config/uinums.cxx index bfe68b3d6b3a..8dbfceb0e9c8 100644 --- a/sw/source/ui/config/uinums.cxx +++ b/sw/source/ui/config/uinums.cxx @@ -35,13 +35,13 @@ #include <hintids.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/urihelper.hxx> +#include <unotools/pathoptions.hxx> #include <tools/stream.hxx> #ifndef _SFX_INIMGR_HXX #endif #include <sfx2/docfile.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/brshitem.hxx> diff --git a/sw/source/ui/config/usrpref.cxx b/sw/source/ui/config/usrpref.cxx index 1170f3506b31..21abc0f60090 100644 --- a/sw/source/ui/config/usrpref.cxx +++ b/sw/source/ui/config/usrpref.cxx @@ -33,7 +33,7 @@ #include <tools/stream.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include "swtypes.hxx" #include "hintids.hxx" @@ -427,6 +427,9 @@ void SwLayoutViewConfig::Load() } } } + +void SwLayoutViewConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /* -----------------------------19.01.01 13:07-------------------------------- ---------------------------------------------------------------------------*/ @@ -531,6 +534,8 @@ void SwGridConfig::Load() } } +void SwGridConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /* -----------------------------19.01.01 13:07-------------------------------- ---------------------------------------------------------------------------*/ @@ -621,6 +626,9 @@ void SwCursorConfig::Load() } } + +void SwCursorConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /*-- 28.09.00 09:55:33--------------------------------------------------- -----------------------------------------------------------------------*/ @@ -654,6 +662,9 @@ void SwWebColorConfig::Commit() } PutProperties(aPropNames, aValues); } + +void SwWebColorConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /*-- 28.09.00 09:55:34--------------------------------------------------- -----------------------------------------------------------------------*/ diff --git a/sw/source/ui/config/viewopt.cxx b/sw/source/ui/config/viewopt.cxx index 661a73f312ad..1c3e6b2aafc6 100644 --- a/sw/source/ui/config/viewopt.cxx +++ b/sw/source/ui/config/viewopt.cxx @@ -58,11 +58,11 @@ #include <crstate.hxx> #include <svtools/colorcfg.hxx> #include <svtools/accessibilityoptions.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include <svx/acorrcfg.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL BOOL SwViewOption::bTest9 = FALSE; //DrawingLayerNotLoading #endif Color SwViewOption::aDocBoundColor(COL_LIGHTGRAY); @@ -115,7 +115,7 @@ BOOL SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const && bFormView == rOpt.IsFormView() && mbViewLayoutBookMode == rOpt.mbViewLayoutBookMode && bShowPlaceHolderFields == rOpt.bShowPlaceHolderFields -#ifndef PRODUCT +#ifdef DBG_UTIL // korrespondieren zu den Angaben in ui/config/cfgvw.src && bTest1 == rOpt.IsTest1() && bTest2 == rOpt.IsTest2() @@ -246,7 +246,7 @@ SwViewOption::SwViewOption() : bSelectionInReadonly = SW_MOD()->GetAccessibilityOptions().IsSelectionInReadonly(); -#ifndef PRODUCT +#ifdef DBG_UTIL // korrespondieren zu den Angaben in ui/config/cfgvw.src bTest1 = bTest2 = bTest3 = bTest4 = bTest5 = bTest6 = bTest7 = bTest8 = bTest10 = FALSE; @@ -281,7 +281,7 @@ SwViewOption::SwViewOption(const SwViewOption& rVOpt) mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; -#ifndef PRODUCT +#ifdef DBG_UTIL bTest1 = rVOpt.bTest1 ; bTest2 = rVOpt.bTest2 ; bTest3 = rVOpt.bTest3 ; @@ -321,7 +321,7 @@ SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt ) mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; -#ifndef PRODUCT +#ifdef DBG_UTIL bTest1 = rVOpt.bTest1 ; bTest2 = rVOpt.bTest2 ; bTest3 = rVOpt.bTest3 ; diff --git a/sw/source/ui/dbui/addresslistdialog.cxx b/sw/source/ui/dbui/addresslistdialog.cxx index 91248fa1e422..ec8ad0dc1473 100644 --- a/sw/source/ui/dbui/addresslistdialog.cxx +++ b/sw/source/ui/dbui/addresslistdialog.cxx @@ -67,8 +67,8 @@ #include <com/sun/star/frame/XStorable.hpp> #include <swunohelper.hxx> #include <vcl/waitobj.hxx> -#include <svtools/pathoptions.hxx> -#include <svtools/urihelper.hxx> +#include <unotools/pathoptions.hxx> +#include <svl/urihelper.hxx> #include <addresslistdialog.hrc> #include <dbui.hrc> diff --git a/sw/source/ui/dbui/createaddresslistdialog.cxx b/sw/source/ui/dbui/createaddresslistdialog.cxx index 3f7484932010..dc96002db759 100644 --- a/sw/source/ui/dbui/createaddresslistdialog.cxx +++ b/sw/source/ui/dbui/createaddresslistdialog.cxx @@ -42,7 +42,7 @@ #ifndef _SVT_CONTROLDIMS_HRC_ #include <svtools/controldims.hrc> #endif -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <sfx2/filedlghelper.hxx> #include <sfx2/docfilt.hxx> #include <sfx2/fcontnr.hxx> diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx index cb815a93f1a6..30e886008da7 100644 --- a/sw/source/ui/dbui/dbinsdlg.cxx +++ b/sw/source/ui/dbui/dbinsdlg.cxx @@ -64,19 +64,19 @@ #include <com/sun/star/sdbc/XRowSet.hpp> #include <comphelper/processfactory.hxx> #include <svx/langitem.hxx> -#include <svtools/numuno.hxx> -#include <svtools/stritem.hxx> +#include <svl/numuno.hxx> +#include <svl/stritem.hxx> #include <vcl/msgbox.hxx> #include <vcl/svapp.hxx> #ifndef __SV_MNEMONIC_HXX #include <vcl/mnemonic.hxx> #endif -#include <svtools/style.hxx> -#include <svtools/zformat.hxx> +#include <svl/style.hxx> +#include <svl/zformat.hxx> #include <svx/htmlmode.hxx> #include <svx/unolingu.hxx> #include <sfx2/app.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/brshitem.hxx> #include <svx/boxitem.hxx> #include <svx/rulritem.hxx> @@ -1651,6 +1651,8 @@ static rtl::OUString lcl_CreateUniqueName(const Sequence<rtl::OUString>& aNames) /* -----------------------------05.12.00 15:00-------------------------------- ---------------------------------------------------------------------------*/ +void SwInsertDBColAutoPilot::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwInsertDBColAutoPilot::Commit() { Sequence <rtl::OUString> aNames = GetNodeNames(rtl::OUString()); diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx index 1eb661a83148..07ba1564c5ef 100644 --- a/sw/source/ui/dbui/dbmgr.cxx +++ b/sw/source/ui/dbui/dbmgr.cxx @@ -63,18 +63,17 @@ #include <pagedesc.hxx> #include <vcl/lstbox.hxx> #include <unotools/tempfile.hxx> -#include <svtools/pathoptions.hxx> -#include <svtools/urihelper.hxx> +#include <unotools/pathoptions.hxx> +#include <svl/urihelper.hxx> #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <vcl/oldprintadaptor.hxx> -//#include <sfx2/printer.hxx> #include <sfx2/docfile.hxx> #include <sfx2/progress.hxx> #include <sfx2/dispatch.hxx> @@ -121,7 +120,7 @@ #include <i18npool/mslangid.hxx> #include <com/sun/star/util/XNumberFormatTypes.hpp> #include <svx/langitem.hxx> -#include <svtools/numuno.hxx> +#include <svl/numuno.hxx> #include <unomailmerge.hxx> #include <sfx2/event.hxx> @@ -2967,7 +2966,7 @@ sal_Int32 SwNewDBMgr::MergeDocuments( SwMailMergeConfigItem& rMMConfig, } if(nDocNo == 1 || bPageStylesWithHeaderFooter) { - pTargetView->GetDocShell()->_LoadStyles( *pWorkView->GetDocShell(), sal_True ); + pTargetView->GetDocShell()->_LoadStyles( *rSourceView.GetDocShell(), sal_True ); } if(nDocNo > 1) { diff --git a/sw/source/ui/dbui/maildispatcher.cxx b/sw/source/ui/dbui/maildispatcher.cxx index e49c5c68fccb..81dabd052042 100644 --- a/sw/source/ui/dbui/maildispatcher.cxx +++ b/sw/source/ui/dbui/maildispatcher.cxx @@ -110,8 +110,7 @@ namespace /* private */ MailDispatcher::MailDispatcher(uno::Reference<mail::XSmtpService> mailserver) : mailserver_ (mailserver), run_(false), - shutdown_requested_(false), - bIsInRun(false) + shutdown_requested_(false) { wakening_call_.reset(); mail_dispatcher_active_.reset(); @@ -206,12 +205,6 @@ bool MailDispatcher::isStarted() const return run_; } -bool MailDispatcher::isRunning() const -{ - return bIsInRun; -} - - void MailDispatcher::addListener(::rtl::Reference<IMailDispatcherListener> listener) { OSL_PRECOND(!shutdown_requested_, "MailDispatcher thread is shuting down already"); @@ -267,7 +260,6 @@ void MailDispatcher::run() // signal that the mail dispatcher thread is now alive mail_dispatcher_active_.set(); - bIsInRun = true; for(;;) { wakening_call_.wait(); @@ -295,7 +287,6 @@ void MailDispatcher::run() std::for_each(listeners_cloned.begin(), listeners_cloned.end(), GenericEventNotifier(&IMailDispatcherListener::idle, this)); } } // end for SSH ALI - bIsInRun = false; } /*-- 27.08.2004 12:04:46--------------------------------------------------- diff --git a/sw/source/ui/dbui/mailmergechildwindow.cxx b/sw/source/ui/dbui/mailmergechildwindow.cxx index ca3489b99776..d70dea638297 100644 --- a/sw/source/ui/dbui/mailmergechildwindow.cxx +++ b/sw/source/ui/dbui/mailmergechildwindow.cxx @@ -103,7 +103,7 @@ SwMailMergeChildWin::SwMailMergeChildWin( SfxBindings* _pBindings, m_aBackTB(this, SW_RES( TB_BACK )) { m_aBackTB.SetSelectHdl(LINK(this, SwMailMergeChildWin, BackHdl)); - sal_uInt16 nIResId = GetSettings().GetStyleSettings().GetWindowColor().IsDark() ? + sal_uInt16 nIResId = GetSettings().GetStyleSettings().GetHighContrastMode() ? ILIST_TBX_HC : ILIST_TBX; ResId aResId( nIResId, *pSwResMgr ); ImageList aIList(aResId); @@ -639,7 +639,7 @@ void SwSendMailDialog::IterateMails() { if(!SwMailMergeHelper::CheckMailAddress( pCurrentMailDescriptor->sEMail )) { - ImageList& rImgLst = GetSettings().GetStyleSettings().GetWindowColor().IsDark() ? + ImageList& rImgLst = GetSettings().GetStyleSettings().GetHighContrastMode() ? m_aImageListHC : m_aImageList; Image aInsertImg = rImgLst.GetImage( FN_FORMULA_CANCEL ); @@ -747,7 +747,7 @@ void SwSendMailDialog::DocumentSent( uno::Reference< mail::XMailMessage> xMessag Application::PostUserEvent( STATIC_LINK( this, SwSendMailDialog, StopSendMails ), this ); } - ImageList& rImgLst = GetSettings().GetStyleSettings().GetWindowColor().IsDark() ? + ImageList& rImgLst = GetSettings().GetStyleSettings().GetHighContrastMode() ? m_aImageListHC : m_aImageList; Image aInsertImg = rImgLst.GetImage( bResult ? FN_FORMULA_APPLY : FN_FORMULA_CANCEL ); diff --git a/sw/source/ui/dbui/mmaddressblockpage.hxx b/sw/source/ui/dbui/mmaddressblockpage.hxx index 7d6c3ae81718..c56b5535bfa4 100644 --- a/sw/source/ui/dbui/mmaddressblockpage.hxx +++ b/sw/source/ui/dbui/mmaddressblockpage.hxx @@ -43,7 +43,7 @@ #include <svtools/headbar.hxx> #include <svtools/svtreebx.hxx> #include <vcl/combobox.hxx> -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> class SwMailMergeWizard; class SwMailMergeConfigItem; /*-- 13.04.2004 15:50:37--------------------------------------------------- diff --git a/sw/source/ui/dbui/mmconfigitem.cxx b/sw/source/ui/dbui/mmconfigitem.cxx index 7438988a88fd..b4e4eb06e75e 100644 --- a/sw/source/ui/dbui/mmconfigitem.cxx +++ b/sw/source/ui/dbui/mmconfigitem.cxx @@ -63,7 +63,7 @@ #include <unomid.h> #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> using namespace utl; using ::rtl::OUString; @@ -183,8 +183,8 @@ public: SwMailMergeConfigItem_Impl(); ~SwMailMergeConfigItem_Impl(); - virtual void Commit(); - + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); const Sequence< ::rtl::OUString> GetAddressBlocks(sal_Bool bConvertToConfig = sal_False) const; void SetAddressBlocks( @@ -538,6 +538,8 @@ const Sequence<OUString>& SwMailMergeConfigItem_Impl::GetPropertyNames() /*-- 15.04.2004 08:48:39--------------------------------------------------- -----------------------------------------------------------------------*/ +void SwMailMergeConfigItem_Impl::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwMailMergeConfigItem_Impl::Commit() { Sequence<OUString> aNames = GetPropertyNames(); diff --git a/sw/source/ui/dbui/mmdocselectpage.cxx b/sw/source/ui/dbui/mmdocselectpage.cxx index 7bef5c752be6..423185fb0ba3 100644 --- a/sw/source/ui/dbui/mmdocselectpage.cxx +++ b/sw/source/ui/dbui/mmdocselectpage.cxx @@ -35,7 +35,7 @@ #endif -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <sfx2/filedlghelper.hxx> #include <sfx2/new.hxx> #include <sfx2/docfilt.hxx> diff --git a/sw/source/ui/dbui/mmlayoutpage.cxx b/sw/source/ui/dbui/mmlayoutpage.cxx index ddb37e3c8eeb..958b9497a08a 100644 --- a/sw/source/ui/dbui/mmlayoutpage.cxx +++ b/sw/source/ui/dbui/mmlayoutpage.cxx @@ -47,7 +47,7 @@ #endif #include <swundo.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/docfilt.hxx> #include <com/sun/star/text/XParagraphCursor.hpp> #include <com/sun/star/view/XViewSettingsSupplier.hpp> @@ -67,7 +67,7 @@ #include <fmtornt.hxx> #include <fmtfsize.hxx> #include <svx/boxitem.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <shellio.hxx> #include <osl/file.hxx> #include <unoprnms.hxx> diff --git a/sw/source/ui/dbui/mmmergepage.cxx b/sw/source/ui/dbui/mmmergepage.cxx index d6083d1fc712..74a647f755bd 100644 --- a/sw/source/ui/dbui/mmmergepage.cxx +++ b/sw/source/ui/dbui/mmmergepage.cxx @@ -44,7 +44,7 @@ #include <mmmergepage.hrc> #include <svx/srchitem.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <swabstdlg.hxx> /*-- 02.04.2004 16:38:45--------------------------------------------------- diff --git a/sw/source/ui/dbui/mmoutputpage.cxx b/sw/source/ui/dbui/mmoutputpage.cxx index f6bbf47002b2..331589570246 100644 --- a/sw/source/ui/dbui/mmoutputpage.cxx +++ b/sw/source/ui/dbui/mmoutputpage.cxx @@ -53,8 +53,8 @@ #include <hintids.hxx> #include <svx/scripttypeitem.hxx> #include <svx/langitem.hxx> -#include <svtools/itemset.hxx> -#include <svtools/stritem.hxx> +#include <svl/itemset.hxx> +#include <svl/stritem.hxx> #include <svtools/ehdl.hxx> #include <svtools/sfxecode.hxx> #include <vcl/msgbox.hxx> @@ -68,7 +68,7 @@ //#include <sfx2/docfilt.hxx> //#endif #include <tools/urlobj.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef _VCL_PRINT_HXX #include <vcl/print.hxx> #endif diff --git a/sw/source/ui/dialog/SwSpellDialogChildWindow.cxx b/sw/source/ui/dialog/SwSpellDialogChildWindow.cxx index 8dca8ef1abf0..ae783c991799 100644 --- a/sw/source/ui/dialog/SwSpellDialogChildWindow.cxx +++ b/sw/source/ui/dialog/SwSpellDialogChildWindow.cxx @@ -47,8 +47,8 @@ #include <svx/svdview.hxx> #include <svx/svditer.hxx> #include <svx/svdogrp.hxx> -#include <svtools/linguprops.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/linguprops.hxx> +#include <unotools/lingucfg.hxx> #include <doc.hxx> #ifndef _DOCSH_HXX #include <docsh.hxx> diff --git a/sw/source/ui/dialog/ascfldlg.cxx b/sw/source/ui/dialog/ascfldlg.cxx index 585151383893..e2313d54c87f 100644 --- a/sw/source/ui/dialog/ascfldlg.cxx +++ b/sw/source/ui/dialog/ascfldlg.cxx @@ -37,7 +37,7 @@ #include <rtl/textenc.h> #include <i18npool/mslangid.hxx> #include <com/sun/star/i18n/ScriptType.hpp> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <fontcfg.hxx> #include <swmodule.hxx> #include <svx/unolingu.hxx> diff --git a/sw/source/ui/dialog/macassgn.cxx b/sw/source/ui/dialog/macassgn.cxx index 0c052223abcf..b1e24df519c0 100644 --- a/sw/source/ui/dialog/macassgn.cxx +++ b/sw/source/ui/dialog/macassgn.cxx @@ -39,7 +39,7 @@ #include "hintids.hxx" #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/htmlmode.hxx> #ifndef _SVX_SVXIDS_HRC //autogen #include <svx/svxids.hrc> diff --git a/sw/source/ui/dialog/regionsw.cxx b/sw/source/ui/dialog/regionsw.cxx index 47936697a20d..7d387a2f5943 100644 --- a/sw/source/ui/dialog/regionsw.cxx +++ b/sw/source/ui/dialog/regionsw.cxx @@ -34,13 +34,13 @@ #include <hintids.hxx> #include <uitool.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/PasswordHelper.hxx> +#include <svl/urihelper.hxx> +#include <svl/PasswordHelper.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <sot/formats.hxx> #ifndef _PASSWD_HXX //autogen #include <sfx2/passwd.hxx> diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index ab2a1d8e3d3c..25581e6a3110 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -36,7 +36,7 @@ #endif #include "swdlgfact.hxx" -#include <svtools/style.hxx> +#include <svl/style.hxx> #ifndef _SVX_SVXIDS_HRC #include <svx/svxids.hrc> #endif @@ -1698,7 +1698,7 @@ CreateTabPage SwAbstractDialogFactory_Impl::GetTabPageCreatorFunc( USHORT nId ) break; case RID_SW_TP_OPTTEST_PAGE : case TP_OPTTEST_PAGE : -#ifndef PRODUCT +#ifdef DBG_UTIL pRet = SwTestTabPage::Create; #endif break; diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx index 9626f5104db9..2a37f6911b02 100644 --- a/sw/source/ui/dialog/uiregionsw.cxx +++ b/sw/source/ui/dialog/uiregionsw.cxx @@ -36,12 +36,12 @@ #include <hintids.hxx> #include <regionsw.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/PasswordHelper.hxx> +#include <svl/urihelper.hxx> +#include <svl/PasswordHelper.hxx> #include <vcl/svapp.hxx> #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <sfx2/passwd.hxx> #include <sfx2/docfilt.hxx> #include <sfx2/request.hxx> @@ -1480,14 +1480,16 @@ static void lcl_ReadSections( SfxMedium& rMedium, ComboBox& rBox ) uno::Reference < embed::XStorage > xStg; if( rMedium.IsStorage() && (xStg = rMedium.GetStorage()).is() ) { - SvStringsDtor aArr( 10, 10 ); + SvStrings aArr( 10, 10 ); sal_uInt32 nFormat = SotStorage::GetFormatID( xStg ); if ( nFormat == SOT_FORMATSTR_ID_STARWRITER_60 || nFormat == SOT_FORMATSTR_ID_STARWRITERGLOB_60 || nFormat == SOT_FORMATSTR_ID_STARWRITER_8 || nFormat == SOT_FORMATSTR_ID_STARWRITERGLOB_8) - SwGetReaderXML()->GetSectionList( rMedium, (SvStrings&) aArr ); + SwGetReaderXML()->GetSectionList( rMedium, aArr ); for( USHORT n = 0; n < aArr.Count(); ++n ) rBox.InsertEntry( *aArr[ n ] ); + + aArr.DeleteAndDestroy(0, aArr.Count()); } } /* -----------------21.05.99 10:16------------------- diff --git a/sw/source/ui/dochdl/gloshdl.cxx b/sw/source/ui/dochdl/gloshdl.cxx index 8d716d6420a9..95e5dea9b9c9 100644 --- a/sw/source/ui/dochdl/gloshdl.cxx +++ b/sw/source/ui/dochdl/gloshdl.cxx @@ -44,12 +44,12 @@ #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <sfx2/fcontnr.hxx> #include <sfx2/docfile.hxx> #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> -#include <svtools/urihelper.hxx> +#include <svl/svstdarr.hxx> +#include <svl/urihelper.hxx> #include <unotools/transliterationwrapper.hxx> #include <poolfmt.hxx> #include <fmtcol.hxx> diff --git a/sw/source/ui/dochdl/swdtflvr.cxx b/sw/source/ui/dochdl/swdtflvr.cxx index f3dc55f26f4d..64d894acfdb2 100644 --- a/sw/source/ui/dochdl/swdtflvr.cxx +++ b/sw/source/ui/dochdl/swdtflvr.cxx @@ -60,13 +60,13 @@ #include <vcl/msgbox.hxx> #endif #include <sfx2/dispatch.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svtools/imap.hxx> #include <sot/storage.hxx> #ifndef _GRAPH_HXX #include <vcl/graph.hxx> #endif -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/svdmodel.hxx> #include <svx/xexch.hxx> #include <svx/xmlexchg.hxx> @@ -75,7 +75,7 @@ #include <sfx2/mieclip.hxx> #include <svx/svdetc.hxx> #include <svx/xoutbmp.hxx> -#include <svtools/urlbmk.hxx> +#include <svl/urlbmk.hxx> #include <svtools/htmlout.hxx> #include <svx/hlnkitem.hxx> #include <svtools/inetimg.hxx> diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx index 6bea77137ac6..8b275c0a6447 100644 --- a/sw/source/ui/docvw/PostItMgr.cxx +++ b/sw/source/ui/docvw/PostItMgr.cxx @@ -70,9 +70,9 @@ #include <sfx2/srchitem.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svtools/langtab.hxx> -#include <svtools/smplhint.hxx> +#include <svl/smplhint.hxx> #include <svx/svdview.hxx> #include <svx/eeitem.hxx> @@ -1941,9 +1941,14 @@ void SwPostItMgr::AssureStdModeAtShell() { mpWrtShell->UnSelectFrm(); mpWrtShell->LeaveSelFrmMode(); + mpWrtShell->GetView().LeaveDrawCreate(); mpWrtShell->EnterStdMode(); mpWrtShell->DrawSelChanged(); mpView->StopShellTimer(); } } + +void SwNoteProps::Commit() {} +void SwNoteProps::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx index 7d8e38443ca0..5bef2edb398f 100644 --- a/sw/source/ui/docvw/edtwin.cxx +++ b/sw/source/ui/docvw/edtwin.cxx @@ -48,15 +48,15 @@ #include <vcl/msgbox.hxx> #include <vcl/cmdevt.h> #include <sot/storage.hxx> -#include <svtools/macitem.hxx> -#include <svtools/securityoptions.hxx> +#include <svl/macitem.hxx> +#include <unotools/securityoptions.hxx> #ifndef __SBX_SBXVARIABLE_HXX //autogen #include <basic/sbxvar.hxx> #endif -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <basic/sbx.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #ifndef _SFX_CLIENTSH_HXX #include <sfx2/ipclient.hxx> #endif @@ -64,7 +64,7 @@ #include <sfx2/request.hxx> #include <sfx2/bindings.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/ptitem.hxx> +#include <svl/ptitem.hxx> #include <svx/sizeitem.hxx> #include <svx/langitem.hxx> #include <svx/htmlmode.hxx> @@ -156,7 +156,7 @@ #include "postit.hxx" //JP 11.10.2001: enable test code for bug fix 91313 -#if !defined( PRODUCT ) && (OSL_DEBUG_LEVEL > 1) +#if defined(DBG_UTIL) && (OSL_DEBUG_LEVEL > 1) //#define TEST_FOR_BUG91313 #endif @@ -1503,7 +1503,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) case KS_CheckKey: eKeyState = KS_KeyToView; // default weiter zur View -#ifndef PRODUCT +#ifdef DBG_UTIL //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // JP 19.01.99: zum Umschalten des Cursor Verhaltens in ReadOnly // Bereichen diff --git a/sw/source/ui/docvw/edtwin2.cxx b/sw/source/ui/docvw/edtwin2.cxx index 13f832acfccf..5562932956e8 100644 --- a/sw/source/ui/docvw/edtwin2.cxx +++ b/sw/source/ui/docvw/edtwin2.cxx @@ -34,26 +34,26 @@ #include <hintids.hxx> #include <doc.hxx> -#ifndef PRODUCT +#ifdef DBG_UTIL #include <stdio.h> #endif #ifndef _HELP_HXX //autogen #include <vcl/help.hxx> #endif -#include <svtools/stritem.hxx> -#include <svtools/securityoptions.hxx> +#include <svl/stritem.hxx> +#include <unotools/securityoptions.hxx> #include <tools/urlobj.hxx> #include <txtrfmrk.hxx> #include <fmtrfmrk.hxx> #include <svx/flditem.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <svx/svdotext.hxx> #ifndef _OUTLINER_HXX //autogen #define _EEITEMID_HXX #include <svx/outliner.hxx> #endif -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/svdview.hxx> #include <svx/svdpagv.hxx> #include <swmodule.hxx> @@ -162,7 +162,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) SwContentAtPos::SW_TOXMARK | SwContentAtPos::SW_REFMARK | SwContentAtPos::SW_SMARTTAG | -#ifndef PRODUCT +#ifdef DBG_UTIL SwContentAtPos::SW_TABLEBOXVALUE | ( bBalloon ? SwContentAtPos::SW_CURR_ATTRS : 0) | #endif @@ -176,7 +176,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) sTxt.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "= " )); sTxt += ((SwTblBoxFormula*)aCntntAtPos.aFnd.pAttr)->GetFormula(); break; -#ifndef PRODUCT +#ifdef DBG_UTIL case SwContentAtPos::SW_TABLEBOXVALUE: { sTxt = UniString( diff --git a/sw/source/ui/docvw/postit.cxx b/sw/source/ui/docvw/postit.cxx index e693f87e7a35..77ded3905220 100644 --- a/sw/source/ui/docvw/postit.cxx +++ b/sw/source/ui/docvw/postit.cxx @@ -68,11 +68,11 @@ #include <svx/unolingu.hxx> #include <svtools/langtab.hxx> -#include <svtools/slstitm.hxx> -#include <svtools/securityoptions.hxx> -#include <svtools/useroptions.hxx> -#include <svtools/languageoptions.hxx> -#include <svtools/zforlist.hxx> +#include <svl/slstitm.hxx> +#include <unotools/securityoptions.hxx> +#include <unotools/useroptions.hxx> +#include <svl/languageoptions.hxx> +#include <svl/zforlist.hxx> #include <svtools/svmedit.hxx> #include <linguistic/lngprops.hxx> @@ -1953,7 +1953,7 @@ private: ShadowState maShadowState; protected: - virtual drawinglayer::primitive2d::Primitive2DSequence createLocalDecomposition( + virtual drawinglayer::primitive2d::Primitive2DSequence create2DDecomposition( const drawinglayer::geometry::ViewInformation2D& rViewInformation) const; public: @@ -1977,7 +1977,7 @@ public: DeclPrimitrive2DIDBlock() }; -drawinglayer::primitive2d::Primitive2DSequence SwPostItShadowPrimitive::createLocalDecomposition( +drawinglayer::primitive2d::Primitive2DSequence SwPostItShadowPrimitive::create2DDecomposition( const drawinglayer::geometry::ViewInformation2D& /*rViewInformation*/) const { // get logic sizes in object coordinate system @@ -2140,7 +2140,7 @@ private: bool mbLineSolid : 1; protected: - virtual drawinglayer::primitive2d::Primitive2DSequence createLocalDecomposition( + virtual drawinglayer::primitive2d::Primitive2DSequence create2DDecomposition( const drawinglayer::geometry::ViewInformation2D& rViewInformation) const; public: @@ -2179,7 +2179,7 @@ public: DeclPrimitrive2DIDBlock() }; -drawinglayer::primitive2d::Primitive2DSequence SwPostItAnkorPrimitive::createLocalDecomposition( +drawinglayer::primitive2d::Primitive2DSequence SwPostItAnkorPrimitive::create2DDecomposition( const drawinglayer::geometry::ViewInformation2D& /*rViewInformation*/) const { drawinglayer::primitive2d::Primitive2DSequence aRetval; diff --git a/sw/source/ui/docvw/romenu.cxx b/sw/source/ui/docvw/romenu.cxx index 50776ef80f11..313604be962e 100644 --- a/sw/source/ui/docvw/romenu.cxx +++ b/sw/source/ui/docvw/romenu.cxx @@ -37,9 +37,9 @@ #include <vcl/graph.hxx> #include <vcl/msgbox.hxx> #include <sot/formats.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> +#include <unotools/pathoptions.hxx> #include <svtools/filter.hxx> #include <svtools/imap.hxx> #include <svtools/inetimg.hxx> diff --git a/sw/source/ui/docvw/srcedtw.cxx b/sw/source/ui/docvw/srcedtw.cxx index 19ba5aefdf25..12288d1e8619 100644 --- a/sw/source/ui/docvw/srcedtw.cxx +++ b/sw/source/ui/docvw/srcedtw.cxx @@ -49,7 +49,7 @@ #include <sfx2/app.hxx> #include <svtools/htmltokn.h> #include <svtools/txtattr.hxx> -#include <svtools/sourceviewconfig.hxx> +#include <unotools/sourceviewconfig.hxx> #include <svtools/colorcfg.hxx> #include <svx/flstitem.hxx> #include <vcl/metric.hxx> @@ -248,7 +248,7 @@ SwSrcEditWindow::SwSrcEditWindow( Window* pParent, SwSrcView* pParentView ) : pVScrollbar(0), pSrcView(pParentView), - pSourceViewConfig(new svt::SourceViewConfig), + pSourceViewConfig(new utl::SourceViewConfig), nCurTextWidth(0), nStartLine(USHRT_MAX), @@ -258,14 +258,14 @@ SwSrcEditWindow::SwSrcEditWindow( Window* pParent, SwSrcView* pParentView ) : { SetHelpId(HID_SOURCE_EDITWIN); CreateTextEngine(); - StartListening(*pSourceViewConfig); + pSourceViewConfig->AddListener(this); } /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ SwSrcEditWindow::~SwSrcEditWindow() { - EndListening(*pSourceViewConfig); + pSourceViewConfig->RemoveListener(this); delete pSourceViewConfig; aSyntaxIdleTimer.Stop(); if ( pTextEngine ) @@ -819,7 +819,7 @@ void SwSrcEditWindow::ImpDoHighlight( const String& rSource, USHORT nLineOff ) --------------------------------------------------*/ -void SwSrcEditWindow::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) +void SwSrcEditWindow::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) { if ( rHint.ISA( TextHint ) ) { @@ -842,7 +842,11 @@ void SwSrcEditWindow::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) DoDelayedSyntaxHighlight( (USHORT)rTextHint.GetValue() ); } } - else if(&rBC == pSourceViewConfig) +} + +void SwSrcEditWindow::ConfigurationChanged( utl::ConfigurationBroadcaster* pBrdCst, sal_uInt32 ) +{ + if( pBrdCst == pSourceViewConfig) SetFont(); } diff --git a/sw/source/ui/envelp/envfmt.cxx b/sw/source/ui/envelp/envfmt.cxx index f6fb3f596a35..379a0f4f7004 100644 --- a/sw/source/ui/envelp/envfmt.cxx +++ b/sw/source/ui/envelp/envfmt.cxx @@ -44,7 +44,7 @@ #define _SVSTDARR_LONGSSORT #define _SVSTDARR_LONGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svx/paperinf.hxx> #ifndef _SVX_TSTPITEM_HXX //autogen #include <svx/tstpitem.hxx> diff --git a/sw/source/ui/envelp/envfmt.hxx b/sw/source/ui/envelp/envfmt.hxx index 16d77e4bccd2..fcb449839d53 100644 --- a/sw/source/ui/envelp/envfmt.hxx +++ b/sw/source/ui/envelp/envfmt.hxx @@ -33,7 +33,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <svtools/stdctrl.hxx> #ifndef _FIELD_HXX //autogen diff --git a/sw/source/ui/envelp/envimg.cxx b/sw/source/ui/envelp/envimg.cxx index fa1744ca1ae5..0bbc713d145c 100644 --- a/sw/source/ui/envelp/envimg.cxx +++ b/sw/source/ui/envelp/envimg.cxx @@ -38,7 +38,7 @@ #include <sfx2/app.hxx> #include <svx/paperinf.hxx> #include <com/sun/star/uno/Sequence.hxx> -#include <svtools/useroptions.hxx> +#include <unotools/useroptions.hxx> #include <tools/shl.hxx> #include <swmodule.hxx> #include <errhdl.hxx> @@ -293,6 +293,9 @@ void SwEnvCfgItem::Commit() } PutProperties(aNames, aValues); } + +void SwEnvCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /* -----------------------------26.09.00 14:04-------------------------------- ---------------------------------------------------------------------------*/ diff --git a/sw/source/ui/envelp/envprt.cxx b/sw/source/ui/envelp/envprt.cxx index 01b6bc394b5c..c54911294912 100644 --- a/sw/source/ui/envelp/envprt.cxx +++ b/sw/source/ui/envelp/envprt.cxx @@ -107,7 +107,7 @@ SwEnvPrtPage::~SwEnvPrtPage() IMPL_LINK( SwEnvPrtPage, ClickHdl, Button *, EMPTYARG ) { - sal_Bool bHC = GetDisplayBackground().GetColor().IsDark(); + sal_Bool bHC = GetSettings().GetStyleSettings().GetHighContrastMode(); if (aBottomButton.IsChecked()) { // Briefumschlaege von unten diff --git a/sw/source/ui/envelp/labelcfg.cxx b/sw/source/ui/envelp/labelcfg.cxx index 76a971c60db6..e0731a0836f4 100644 --- a/sw/source/ui/envelp/labelcfg.cxx +++ b/sw/source/ui/envelp/labelcfg.cxx @@ -65,6 +65,9 @@ void SwLabelConfig::Commit() { // the config item is not writable yet } + +void SwLabelConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + /* -----------------------------15.01.01 11:42-------------------------------- ---------------------------------------------------------------------------*/ diff --git a/sw/source/ui/envelp/labimg.cxx b/sw/source/ui/envelp/labimg.cxx index 6406861f114b..7ebb06bf5e8b 100644 --- a/sw/source/ui/envelp/labimg.cxx +++ b/sw/source/ui/envelp/labimg.cxx @@ -38,7 +38,7 @@ #endif #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Sequence.hxx> -#include <svtools/useroptions.hxx> +#include <unotools/useroptions.hxx> #include <tools/shl.hxx> #include <swmodule.hxx> #include "labimg.hxx" @@ -410,6 +410,8 @@ SwLabCfgItem::SwLabCfgItem(sal_Bool bLabel) : /* -----------------------------25.09.00 16:26-------------------------------- ---------------------------------------------------------------------------*/ +void SwLabCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + void SwLabCfgItem::Commit() { Sequence<OUString> aNames = GetPropertyNames(); diff --git a/sw/source/ui/envelp/labprt.cxx b/sw/source/ui/envelp/labprt.cxx index de5197af2622..75afb901425a 100644 --- a/sw/source/ui/envelp/labprt.cxx +++ b/sw/source/ui/envelp/labprt.cxx @@ -37,7 +37,7 @@ #include <svtools/prnsetup.hxx> -#include <svtools/cmdoptions.hxx> +#include <unotools/cmdoptions.hxx> #include <vcl/print.hxx> #include <wrtsh.hxx> #include <label.hxx> @@ -137,7 +137,7 @@ IMPL_LINK( SwLabPrtPage, CountHdl, Button *, pButton ) if ( bEnable ) aColField.GrabFocus(); -#ifndef PRODUCT +#ifdef DBG_UTIL else ASSERT( pButton == &aPageButton, "NewButton?" ); #endif diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx index 97c5a208ec45..4b9fb14d0500 100644 --- a/sw/source/ui/envelp/mailmrge.cxx +++ b/sw/source/ui/envelp/mailmrge.cxx @@ -38,8 +38,8 @@ #include <vcl/msgbox.hxx> #include <vcl/svapp.hxx> #include <tools/urlobj.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/urihelper.hxx> +#include <unotools/pathoptions.hxx> #include <goodies/mailenum.hxx> #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> @@ -873,7 +873,7 @@ IMPL_LINK( SwMailMergeDlg, AttachFileHdl, PushButton *, EMPTYARG ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if(pFact) { - AbstractSvxMultiFileDialog* pFileDlg = pFact->CreateSvxMultiFileDialog( this, RID_SVXDLG_MULTIPATH); + AbstractSvxMultiFileDialog* pFileDlg = pFact->CreateSvxMultiFileDialog( this ); DBG_ASSERT(pFileDlg, "Dialogdiet fail!"); pFileDlg->SetFiles(aAttachED.GetText()); pFileDlg->SetHelpId(HID_FILEDLG_MAILMRGE2); diff --git a/sw/source/ui/fldui/flddinf.cxx b/sw/source/ui/fldui/flddinf.cxx index e368340314fc..4bdb5dc005db 100644 --- a/sw/source/ui/fldui/flddinf.cxx +++ b/sw/source/ui/fldui/flddinf.cxx @@ -38,15 +38,12 @@ #include <sfx2/request.hxx> #include <sfx2/frame.hxx> #include <vcl/svapp.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> -#ifndef _HELPID_H #include <helpid.h> -#endif #include <swtypes.hxx> -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif #include <fldbas.hxx> #include <docufld.hxx> #include <wrtsh.hxx> @@ -63,13 +60,16 @@ #ifndef _VIEW_HXX #include <view.hxx> #endif -#include <svtools/zformat.hxx> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/util/Time.hpp> +#include <com/sun/star/util/DateTime.hpp> +#include <com/sun/star/util/Date.hpp> #define USER_DATA_VERSION_1 "1" #define USER_DATA_VERSION USER_DATA_VERSION_1 using namespace nsSwDocInfoSubType; - +using namespace com::sun::star; /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ @@ -103,7 +103,7 @@ SwFldDokInfPage::SwFldDokInfPage(Window* pWindow, const SfxItemSet& rCoreSet ) : SFX_ITEMSET_ARG( &rCoreSet, pItem, SfxUnoAnyItem, SID_DOCINFO, FALSE ); if ( pItem ) - pItem->GetValue() >>= aPropertyNames; + pItem->GetValue() >>= xCustomPropertySet; } /*-------------------------------------------------------------------- @@ -168,24 +168,31 @@ void __EXPORT SwFldDokInfPage::Reset(const SfxItemSet& ) { if (DI_CUSTOM == i) { - if (aPropertyNames.getLength() ) + if(xCustomPropertySet.is() ) { + uno::Reference< beans::XPropertySetInfo > xSetInfo = xCustomPropertySet->getPropertySetInfo(); + const uno::Sequence< beans::Property > rProperties = xSetInfo->getProperties(); +// uno::Sequence< ::rtl::OUString > aPropertyNames(rProperties.getLength()); +// for (sal_Int32 i = 0; i < rProperties.getLength(); ++i) { +// aPropertyNames[i] = rProperties[i].Name; +// } //if ( !IsFldEdit() ) + if( rProperties.getLength() ) { pInfo = aTypeTLB.InsertEntry( String(SW_RES( STR_CUSTOM )) ); pInfo->SetUserData(reinterpret_cast<void*>(USHRT_MAX)); - } - for (sal_Int32 n=0; n<aPropertyNames.getLength(); n++) - { - rtl::OUString sEntry = aPropertyNames[n]; - pEntry = aTypeTLB.InsertEntry(sEntry, pInfo); - if(m_sOldCustomFieldName.equals( sEntry )) + for (sal_Int32 n=0; n < rProperties.getLength(); n++) { - pSelEntry = pEntry; - aTypeTLB.Expand( pInfo ); + rtl::OUString sEntry = rProperties[n].Name; + pEntry = aTypeTLB.InsertEntry(sEntry, pInfo); + if(m_sOldCustomFieldName.equals( sEntry )) + { + pSelEntry = pEntry; + aTypeTLB.Expand( pInfo ); + } + pEntry->SetUserData(reinterpret_cast<void*>(i)); } - pEntry->SetUserData(reinterpret_cast<void*>(i)); } } } @@ -263,12 +270,12 @@ IMPL_LINK( SwFldDokInfPage, TypeHdl, ListBox *, EMPTYARG ) /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ - IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) { USHORT nSubType = (USHORT)(ULONG)pSelEntry->GetUserData(); USHORT nPos = aSelectionLB.GetSelectEntryPos(); USHORT nExtSubType; + USHORT nNewType = 0; if (nSubType != DI_EDIT) { @@ -279,7 +286,33 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) aFormatLB.Clear(); aFormatLB.Enable(FALSE); aFormatFT.Enable(FALSE); - return 0; + if( nSubType == DI_CUSTOM ) + { + //find out which type the custom field has - for a start set to DATE format + ::rtl::OUString sName = aTypeTLB.GetEntryText(pSelEntry); + try + { + uno::Any aVal = xCustomPropertySet->getPropertyValue( sName ); + const uno::Type& rValueType = aVal.getValueType(); + if( rValueType == ::getCppuType( (util::DateTime*)0 )) + { + nNewType = NUMBERFORMAT_DATETIME; + } + else if( rValueType == ::getCppuType( (util::Date*)0 )) + { + nNewType = NUMBERFORMAT_DATE; + } + else if( rValueType == ::getCppuType( (util::Time*)0 )) + { + nNewType = NUMBERFORMAT_TIME; + } + } + catch( const uno::Exception& ) + { + } + } + else + return 0; } nPos = 0; } @@ -290,7 +323,6 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) nExtSubType = DI_SUB_TIME; USHORT nOldType = 0; - USHORT nNewType = 0; BOOL bEnable = FALSE; BOOL bOneArea = FALSE; @@ -312,7 +344,6 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) bOneArea = TRUE; break; } - if (!nNewType) { aFormatLB.Clear(); @@ -334,7 +365,7 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) if (IsFldEdit()) { nPos = aSelectionLB.GetSelectEntryPos(); - if (nPos != LISTBOX_ENTRY_NOTFOUND) + if (nPos != LISTBOX_ENTRY_NOTFOUND ) { nSubType = (USHORT)(ULONG)aSelectionLB.GetEntryData(nPos); @@ -346,7 +377,6 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) SwWrtShell *pSh = GetWrtShell(); if(pSh) { - SvNumberFormatter* pFormatter = pSh->GetNumberFormatter(); LanguageType eLang = aFormatLB.GetCurLanguage(); if (nNewType == NUMBERFORMAT_DATE) @@ -358,6 +388,10 @@ IMPL_LINK( SwFldDokInfPage, SubTypeHdl, ListBox *, EMPTYARG ) aFormatLB.SetDefFormat(nFormat); } } + else if( (nSubType == DI_CUSTOM) && (nNewType != 0) ) + { + aFormatLB.SetDefFormat(nFormat); + } } aFormatLB.Enable(bEnable); diff --git a/sw/source/ui/fldui/flddinf.hxx b/sw/source/ui/fldui/flddinf.hxx index 2b72b1aec33a..0d46c873f342 100644 --- a/sw/source/ui/fldui/flddinf.hxx +++ b/sw/source/ui/fldui/flddinf.hxx @@ -33,15 +33,16 @@ #include <sfx2/tabdlg.hxx> #include <vcl/fixed.hxx> #include <vcl/lstbox.hxx> -#ifndef _SV_BUTTON_HXX //autogen #include <vcl/button.hxx> -#endif #include <vcl/group.hxx> #include <svtools/svtreebx.hxx> #include "numfmtlb.hxx" #include "fldpage.hxx" +namespace com{namespace sun{ namespace star{ namespace beans{ + class XPropertySet; +}}}} /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ @@ -57,7 +58,7 @@ class SwFldDokInfPage : public SwFldPage CheckBox aFixedCB; SvLBoxEntry* pSelEntry; - com::sun::star::uno::Sequence < ::rtl::OUString > aPropertyNames; + com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > xCustomPropertySet; String aInfoStr; diff --git a/sw/source/ui/fldui/flddok.cxx b/sw/source/ui/fldui/flddok.cxx index f2c22682690a..8c35fb55823e 100644 --- a/sw/source/ui/fldui/flddok.cxx +++ b/sw/source/ui/fldui/flddok.cxx @@ -56,7 +56,7 @@ #include <view.hxx> #endif #include <wrtsh.hxx> -#include <svtools/zformat.hxx> +#include <svl/zformat.hxx> #include <index.hrc> diff --git a/sw/source/ui/fldui/fldedt.cxx b/sw/source/ui/fldui/fldedt.cxx index c0ee8f2e0a98..318ca160c670 100644 --- a/sw/source/ui/fldui/fldedt.cxx +++ b/sw/source/ui/fldui/fldedt.cxx @@ -226,15 +226,15 @@ SfxTabPage* SwFldEditDlg::CreatePage(USHORT nGroup) uno::Reference< beans::XPropertySet > xUDProps( xDocProps->getUserDefinedProperties(), uno::UNO_QUERY_THROW); - uno::Reference< beans::XPropertySetInfo > xSetInfo - = xUDProps->getPropertySetInfo(); - const uno::Sequence< beans::Property > props - = xSetInfo->getProperties(); - uno::Sequence< ::rtl::OUString > names(props.getLength()); - for (sal_Int32 i = 0; i < props.getLength(); ++i) { - names[i] = props[i].Name; - } - pSet->Put( SfxUnoAnyItem( SID_DOCINFO, uno::makeAny(names) ) ); +// uno::Reference< beans::XPropertySetInfo > xSetInfo +// = xUDProps->getPropertySetInfo(); +// const uno::Sequence< beans::Property > props +// = xSetInfo->getProperties(); +// uno::Sequence< ::rtl::OUString > names(props.getLength()); +// for (sal_Int32 i = 0; i < props.getLength(); ++i) { +// names[i] = props[i].Name; +// } + pSet->Put( SfxUnoAnyItem( SID_DOCINFO, uno::makeAny(xUDProps) ) ); pTabPage = SwFldDokInfPage::Create(this, *pSet); nHelpId = HID_EDIT_FLD_DOKINF; break; diff --git a/sw/source/ui/fldui/fldfunc.cxx b/sw/source/ui/fldui/fldfunc.cxx index 1531df836622..8603497ecaca 100644 --- a/sw/source/ui/fldui/fldfunc.cxx +++ b/sw/source/ui/fldui/fldfunc.cxx @@ -460,7 +460,7 @@ IMPL_LINK( SwFldFuncPage, ListModifyHdl, Control*, pControl) { aListItemsLB.SetUpdateMode(FALSE); if(pControl == &aListAddPB || - pControl == &aListItemED && aListAddPB.IsEnabled()) + (pControl == &aListItemED && aListAddPB.IsEnabled())) { String sEntry(aListItemED.GetText()); aListItemsLB.InsertEntry(sEntry); diff --git a/sw/source/ui/fldui/fldmgr.cxx b/sw/source/ui/fldui/fldmgr.cxx index dfb7823a1216..d55a77294c75 100644 --- a/sw/source/ui/fldui/fldmgr.cxx +++ b/sw/source/ui/fldui/fldmgr.cxx @@ -33,7 +33,7 @@ #include <cmdid.h> #include <hintids.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/text/XDefaultNumberingProvider.hpp> @@ -53,13 +53,13 @@ #include <sfx2/app.hxx> #include <basic/basmgr.hxx> #include <svx/langitem.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <basic/sbmod.hxx> #include <fmtrfmrk.hxx> #include <basic/sbmeth.hxx> #include <basic/sbx.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/zformat.hxx> +#include <svl/zforlist.hxx> +#include <svl/zformat.hxx> #include <vcl/mnemonic.hxx> #include <view.hxx> #include <wrtsh.hxx> // Actives Fenster diff --git a/sw/source/ui/fldui/fldpage.cxx b/sw/source/ui/fldui/fldpage.cxx index a13f2d6b5806..b44c1deb2209 100644 --- a/sw/source/ui/fldui/fldpage.cxx +++ b/sw/source/ui/fldui/fldpage.cxx @@ -37,7 +37,7 @@ #include <vcl/lstbox.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/request.hxx> #include <svx/htmlmode.hxx> #include <dbfld.hxx> diff --git a/sw/source/ui/fldui/fldtdlg.cxx b/sw/source/ui/fldui/fldtdlg.cxx index 0de17286fcad..31388cd2e51e 100644 --- a/sw/source/ui/fldui/fldtdlg.cxx +++ b/sw/source/ui/fldui/fldtdlg.cxx @@ -48,47 +48,23 @@ #include <vcl/msgbox.hxx> #include <svx/htmlmode.hxx> #include <viewopt.hxx> -#ifndef _DOCSH_HXX #include <docsh.hxx> -#endif #include <fldwrap.hxx> -#ifndef _FLDDB_HXX #include <flddb.hxx> -#endif -#ifndef _FLDDINF_HXX #include <flddinf.hxx> -#endif -#ifndef _FLDVAR_HXX #include <fldvar.hxx> -#endif -#ifndef _FLDDOK_HXX #include <flddok.hxx> -#endif -#ifndef _FLDFUNC_HXX #include <fldfunc.hxx> -#endif -#ifndef _FLDREF_HXX #include <fldref.hxx> -#endif #include <wrtsh.hxx> #include <view.hxx> -#ifndef _FLDTDLG_HXX #include <fldtdlg.hxx> -#endif #include <swmodule.hxx> -#ifndef _HELPID_H #include <helpid.h> -#endif -#ifndef _FLDUI_HRC #include <fldui.hrc> -#endif -#ifndef _GLOBALS_HRC #include <globals.hrc> -#endif -#ifndef _FLDTDLG_HRC #include <fldtdlg.hrc> -#endif #include <com/sun/star/document/XDocumentProperties.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> @@ -245,15 +221,7 @@ SfxItemSet* SwFldDlg::CreateInputItemSet( USHORT nID ) uno::Reference< beans::XPropertySet > xUDProps( xDocProps->getUserDefinedProperties(), uno::UNO_QUERY_THROW); - uno::Reference< beans::XPropertySetInfo > xSetInfo - = xUDProps->getPropertySetInfo(); - const uno::Sequence< beans::Property > props - = xSetInfo->getProperties(); - uno::Sequence< ::rtl::OUString > names(props.getLength()); - for (sal_Int32 i = 0; i < props.getLength(); ++i) { - names[i] = props[i].Name; - } - pISet->Put( SfxUnoAnyItem( SID_DOCINFO, uno::makeAny(names) ) ); + pISet->Put( SfxUnoAnyItem( SID_DOCINFO, uno::makeAny(xUDProps) ) ); return pISet; } else diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx index fac8f7943317..a54257e683cf 100644 --- a/sw/source/ui/fldui/fldvar.cxx +++ b/sw/source/ui/fldui/fldvar.cxx @@ -52,7 +52,7 @@ #include <fldvar.hxx> #endif #include <calc.hxx> -#include <svtools/zformat.hxx> +#include <svl/zformat.hxx> #ifndef _GLOBALS_HRC #include <globals.hrc> #endif diff --git a/sw/source/ui/fldui/javaedit.cxx b/sw/source/ui/fldui/javaedit.cxx index 14cc6e4f540e..545a7aa77033 100644 --- a/sw/source/ui/fldui/javaedit.cxx +++ b/sw/source/ui/fldui/javaedit.cxx @@ -46,7 +46,7 @@ #include <vcl/msgbox.hxx> #endif #include <vcl/svapp.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef _VIEW_HXX #include <view.hxx> #endif diff --git a/sw/source/ui/fldui/makefile.mk b/sw/source/ui/fldui/makefile.mk index a94fdaef17e7..23160cf80fb8 100644 --- a/sw/source/ui/fldui/makefile.mk +++ b/sw/source/ui/fldui/makefile.mk @@ -80,6 +80,7 @@ SLOFILES = \ EXCEPTIONSFILES = \ $(SLO)$/fldtdlg.obj \ $(SLO)$/fldedt.obj \ + $(SLO)$/flddinf.obj \ $(SLO)$/xfldui.obj LIB1TARGET = $(SLB)$/$(TARGET).lib diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx index 4c6f35341e30..ef33935f1b6f 100644 --- a/sw/source/ui/fmtui/tmpdlg.cxx +++ b/sw/source/ui/fmtui/tmpdlg.cxx @@ -40,7 +40,7 @@ #ifndef _SVSTDARR_STRINGSSORTDTOR #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <vcl/msgbox.hxx> #include <sfx2/viewfrm.hxx> @@ -48,7 +48,7 @@ #include <svx/flstitem.hxx> #include <svx/htmlmode.hxx> #include <svx/htmlcfg.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include <numpara.hxx> #include <fmtclds.hxx> #include <swtypes.hxx> @@ -95,11 +95,11 @@ #endif #include <SwStyleNameMapper.hxx> #include <svx/svxids.hrc> -#include <svtools/stritem.hxx> -#include <svtools/aeitem.hxx> -#include <svtools/slstitm.hxx> -#include <svtools/eitem.hxx> -#include <svtools/intitem.hxx> +#include <svl/stritem.hxx> +#include <svl/aeitem.hxx> +#include <svl/slstitm.hxx> +#include <svl/eitem.hxx> +#include <svl/intitem.hxx> #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> #include <svx/flagsdef.hxx> diff --git a/sw/source/ui/frmdlg/colex.cxx b/sw/source/ui/frmdlg/colex.cxx index 4b7a12868328..a382edf1aa5c 100644 --- a/sw/source/ui/frmdlg/colex.cxx +++ b/sw/source/ui/frmdlg/colex.cxx @@ -39,7 +39,7 @@ #include <algorithm> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/lrspitem.hxx> #include <svx/ulspitem.hxx> #include <svx/sizeitem.hxx> diff --git a/sw/source/ui/frmdlg/column.cxx b/sw/source/ui/frmdlg/column.cxx index a9df9762ad92..44eb80358ac6 100644 --- a/sw/source/ui/frmdlg/column.cxx +++ b/sw/source/ui/frmdlg/column.cxx @@ -44,7 +44,7 @@ #include <svx/lrspitem.hxx> #include <svx/sizeitem.hxx> #include "svx/frmdiritem.hxx" -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <sfx2/dispatch.hxx> #include <vcl/msgbox.hxx> #include <swmodule.hxx> diff --git a/sw/source/ui/frmdlg/frmmgr.cxx b/sw/source/ui/frmdlg/frmmgr.cxx index bd1e98b37b9e..0443074c2cd5 100644 --- a/sw/source/ui/frmdlg/frmmgr.cxx +++ b/sw/source/ui/frmdlg/frmmgr.cxx @@ -37,7 +37,7 @@ #include "hintids.hxx" -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/protitem.hxx> #include <svx/boxitem.hxx> #include <svx/opaqitem.hxx> diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx index 3225e120248a..eeb58d83c7fd 100644 --- a/sw/source/ui/frmdlg/frmpage.cxx +++ b/sw/source/ui/frmdlg/frmpage.cxx @@ -46,8 +46,8 @@ #include <hintids.hxx> #include <vcl/msgbox.hxx> #include <vcl/mnemonic.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/stritem.hxx> +#include <svl/urihelper.hxx> +#include <svl/stritem.hxx> #include <svx/impgrf.hxx> #include <svx/htmlmode.hxx> #include <svx/sizeitem.hxx> @@ -2641,8 +2641,8 @@ void BmpWindow::Paint( const Rectangle& ) aGraphic.Draw( this, aPntPos, aPntSz ); else { - bool bIsDark = ( GetSettings().GetStyleSettings().GetWindowColor().IsDark() != FALSE ); - DrawBitmapEx( aPntPos, aPntSz, bIsDark ? aBmpHC : aBmp ); + bool bHC = GetSettings().GetStyleSettings().GetHighContrastMode(); + DrawBitmapEx( aPntPos, aPntSz, bHC ? aBmpHC : aBmp ); } } diff --git a/sw/source/ui/frmdlg/uiborder.cxx b/sw/source/ui/frmdlg/uiborder.cxx index fe1733b34fcc..a6baebe4d366 100644 --- a/sw/source/ui/frmdlg/uiborder.cxx +++ b/sw/source/ui/frmdlg/uiborder.cxx @@ -38,10 +38,10 @@ #include <svx/svxdlg.hxx> #include <svx/svxids.hrc> #include <svx/dialogs.hrc> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/flagsdef.hxx> #include <sfx2/tabdlg.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include "swtypes.hxx" #include "uiborder.hxx" diff --git a/sw/source/ui/frmdlg/wrap.cxx b/sw/source/ui/frmdlg/wrap.cxx index f73d977969ab..3dfad685f732 100644 --- a/sw/source/ui/frmdlg/wrap.cxx +++ b/sw/source/ui/frmdlg/wrap.cxx @@ -41,7 +41,7 @@ #include <vcl/graph.hxx> #include <svx/htmlmode.hxx> #include <sfx2/objsh.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <svx/opaqitem.hxx> #include <svx/ulspitem.hxx> #include <svx/lrspitem.hxx> @@ -748,7 +748,7 @@ void SwWrapTabPage::DataChanged( const DataChangedEvent& rDCEvt ) ---------------------------------------------------------------------------*/ void SwWrapTabPage::ApplyImageList() { - ImageList& rImgLst = GetDisplayBackground().GetColor().IsDark() ? + ImageList& rImgLst = GetSettings().GetStyleSettings().GetHighContrastMode() ? aWrapILH : aWrapIL; aWrapThroughRB.SetModeRadioImage(rImgLst.GetImage(IMG_THROUGH)); diff --git a/sw/source/ui/globdoc/globdoc.cxx b/sw/source/ui/globdoc/globdoc.cxx index ae2c98507bbe..993c65d5d7b7 100644 --- a/sw/source/ui/globdoc/globdoc.cxx +++ b/sw/source/ui/globdoc/globdoc.cxx @@ -34,7 +34,7 @@ #include <sot/clsids.hxx> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <unomid.h> diff --git a/sw/source/ui/inc/barcfg.hxx b/sw/source/ui/inc/barcfg.hxx index 05b92671ba77..96d8f76d4b92 100644 --- a/sw/source/ui/inc/barcfg.hxx +++ b/sw/source/ui/inc/barcfg.hxx @@ -41,7 +41,8 @@ public: SwToolbarConfigItem( sal_Bool bWeb ); ~SwToolbarConfigItem(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void SetTopToolbar( sal_Int32 nSelType, sal_Int32 nBarId ); }; diff --git a/sw/source/ui/inc/basesh.hxx b/sw/source/ui/inc/basesh.hxx index b5ecd678d380..ffca3315acbd 100644 --- a/sw/source/ui/inc/basesh.hxx +++ b/sw/source/ui/inc/basesh.hxx @@ -39,7 +39,7 @@ #include <vcl/timer.hxx> #include <sfx2/module.hxx> #include <sfx2/shell.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <mdiexp.hxx> diff --git a/sw/source/ui/inc/cfgitems.hxx b/sw/source/ui/inc/cfgitems.hxx index bb301283a005..913191ea7c3b 100644 --- a/sw/source/ui/inc/cfgitems.hxx +++ b/sw/source/ui/inc/cfgitems.hxx @@ -31,7 +31,7 @@ #define _CFGITEMS_HXX #include <tools/color.hxx> -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" #include <printdata.hxx> @@ -39,7 +39,7 @@ class SwWriterApp; class SwModule; -#ifndef PRODUCT +#ifdef DBG_UTIL class SwTestTabPage; #endif class SwAddPrinterTabPage; @@ -207,7 +207,7 @@ public: void SetOn( BOOL bFlag ) { bOn = bFlag; } }; -#ifndef PRODUCT +#ifdef DBG_UTIL /*--------OS 12.01.95 ----------------------------------- Item fuer Einstellungsdialog - Testeinstellungen --------------------------------------------------------- */ diff --git a/sw/source/ui/inc/dbconfig.hxx b/sw/source/ui/inc/dbconfig.hxx index 9661472115f3..86fcc17b5595 100644 --- a/sw/source/ui/inc/dbconfig.hxx +++ b/sw/source/ui/inc/dbconfig.hxx @@ -49,6 +49,8 @@ public: void Load(); const SwDBData& GetAddressSource(); const SwDBData& GetBibliographySource(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); }; #endif diff --git a/sw/source/ui/inc/dbinsdlg.hxx b/sw/source/ui/inc/dbinsdlg.hxx index 20a3e9f5e51a..709866681f51 100644 --- a/sw/source/ui/inc/dbinsdlg.hxx +++ b/sw/source/ui/inc/dbinsdlg.hxx @@ -47,7 +47,7 @@ #include <vcl/lstbox.hxx> #include <svtools/svmedit.hxx> #include <sfx2/basedlgs.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <unotools/configitem.hxx> #include <numfmtlb.hxx> #include <swdbdata.hxx> @@ -165,8 +165,8 @@ class SwInsertDBColAutoPilot : public SfxModalDialog, public utl::ConfigItem DECL_LINK( HeaderHdl, Button* ); BOOL SplitTextToColArr( const String& rTxt, _DB_Columns& rColArr, BOOL bInsField ); - - + using SfxModalDialog::Notify; + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); virtual void Commit(); void Load(); diff --git a/sw/source/ui/inc/edtwin.hxx b/sw/source/ui/inc/edtwin.hxx index 2b39b928bca6..fe6589dc1521 100644 --- a/sw/source/ui/inc/edtwin.hxx +++ b/sw/source/ui/inc/edtwin.hxx @@ -38,7 +38,7 @@ #include <swevent.hxx> #define _SVSTDARR_STRINGSISORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> class SwWrtShell; class SwView; diff --git a/sw/source/ui/inc/envimg.hxx b/sw/source/ui/inc/envimg.hxx index ce7d3ffcc927..c864d05d41aa 100644 --- a/sw/source/ui/inc/envimg.hxx +++ b/sw/source/ui/inc/envimg.hxx @@ -30,7 +30,7 @@ #ifndef _ENVIMG_HXX #define _ENVIMG_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <unotools/configitem.hxx> #include "swdllapi.h" @@ -97,6 +97,7 @@ public: SwEnvItem& GetItem() {return aEnvItem;} virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); }; #endif diff --git a/sw/source/ui/inc/fldmgr.hxx b/sw/source/ui/inc/fldmgr.hxx index 6919e636fc58..a9cd07224cd9 100644 --- a/sw/source/ui/inc/fldmgr.hxx +++ b/sw/source/ui/inc/fldmgr.hxx @@ -31,7 +31,7 @@ #define _FLDMGR_HXX #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <tools/string.hxx> #include "swdllapi.h" diff --git a/sw/source/ui/inc/fontcfg.hxx b/sw/source/ui/inc/fontcfg.hxx index 1f5eed01b371..58e8d46b0845 100644 --- a/sw/source/ui/inc/fontcfg.hxx +++ b/sw/source/ui/inc/fontcfg.hxx @@ -87,6 +87,7 @@ public: ~SwStdFontConfig(); virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); const String& GetFontStandard(sal_uInt8 nFontGroup) const {return sDefaultFonts[FONT_STANDARD + FONT_PER_GROUP * nFontGroup];} const String& GetFontOutline(sal_uInt8 nFontGroup) const {return sDefaultFonts[FONT_OUTLINE + FONT_PER_GROUP * nFontGroup];} diff --git a/sw/source/ui/inc/formatclipboard.hxx b/sw/source/ui/inc/formatclipboard.hxx index 4eabd66b606c..b9009f2e88c7 100644 --- a/sw/source/ui/inc/formatclipboard.hxx +++ b/sw/source/ui/inc/formatclipboard.hxx @@ -34,9 +34,9 @@ // header for class SwWrtShell #include <wrtsh.hxx> // header for class SfxItemSet -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> // header for class SfxStyleSheetBasePool -#include <svtools/style.hxx> +#include <svl/style.hxx> //----------------------------------------------------------------------------- /** This class acts as data container and execution class for the format paintbrush feature in writer. diff --git a/sw/source/ui/inc/glosdoc.hxx b/sw/source/ui/inc/glosdoc.hxx index eef305546754..4ae564ace5d0 100644 --- a/sw/source/ui/inc/glosdoc.hxx +++ b/sw/source/ui/inc/glosdoc.hxx @@ -31,7 +31,7 @@ #define _GLOSDOC_HXX #include <tools/string.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <com/sun/star/text/XAutoTextGroup.hpp> class SwTextBlocks; diff --git a/sw/source/ui/inc/gloslst.hxx b/sw/source/ui/inc/gloslst.hxx index 085b5fa703fd..b968573348a5 100644 --- a/sw/source/ui/inc/gloslst.hxx +++ b/sw/source/ui/inc/gloslst.hxx @@ -35,7 +35,7 @@ #include <tools/datetime.hxx> #include <tools/string.hxx> #include <vcl/timer.hxx> -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> class SwGlossaries; class SvStringsISortDtor; diff --git a/sw/source/ui/inc/label.hxx b/sw/source/ui/inc/label.hxx index 2fecfbf4dcb2..72575620231d 100644 --- a/sw/source/ui/inc/label.hxx +++ b/sw/source/ui/inc/label.hxx @@ -33,7 +33,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <sfx2/tabdlg.hxx> #include <com/sun/star/frame/XModel.hpp> diff --git a/sw/source/ui/inc/labelcfg.hxx b/sw/source/ui/inc/labelcfg.hxx index 10b55fca21e4..60c1d7a37ae4 100644 --- a/sw/source/ui/inc/labelcfg.hxx +++ b/sw/source/ui/inc/labelcfg.hxx @@ -46,7 +46,8 @@ public: SwLabelConfig(); virtual ~SwLabelConfig(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void FillLabels(const rtl::OUString& rManufacturer, SwLabRecs& rLabArr); const com::sun::star::uno::Sequence<rtl::OUString>& diff --git a/sw/source/ui/inc/labimg.hxx b/sw/source/ui/inc/labimg.hxx index 1a0adf19d735..e45b2a0d3403 100644 --- a/sw/source/ui/inc/labimg.hxx +++ b/sw/source/ui/inc/labimg.hxx @@ -31,7 +31,7 @@ #ifndef _LABIMG_HXX #define _LABIMG_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include <unotools/configitem.hxx> #include "swdllapi.h" @@ -126,7 +126,8 @@ public: SwLabItem& GetItem() {return aItem;} - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); }; #endif diff --git a/sw/source/ui/inc/maildispatcher.hxx b/sw/source/ui/inc/maildispatcher.hxx index 4a0ad7239116..44cb3b2a4707 100644 --- a/sw/source/ui/inc/maildispatcher.hxx +++ b/sw/source/ui/inc/maildispatcher.hxx @@ -131,7 +131,6 @@ public: /** returns if the thread is still running */ using osl::Thread::isRunning; - bool isRunning() const; /** returns if shutdown has already been called */ @@ -167,7 +166,6 @@ private: ::rtl::Reference<MailDispatcher> m_xSelfReference; bool run_; bool shutdown_requested_; - bool bIsInRun; }; #endif // INCLUDED_MAILDISPATCHER_HXX diff --git a/sw/source/ui/inc/navicfg.hxx b/sw/source/ui/inc/navicfg.hxx index 124758a773b1..a1c5beb6007b 100644 --- a/sw/source/ui/inc/navicfg.hxx +++ b/sw/source/ui/inc/navicfg.hxx @@ -50,7 +50,8 @@ public: SwNavigationConfig(); ~SwNavigationConfig(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); sal_Int32 GetRootType()const {return nRootType;} void SetRootType(sal_Int32 nSet){ diff --git a/sw/source/ui/inc/navipi.hxx b/sw/source/ui/inc/navipi.hxx index 479ed1329ea8..70e03b4570ad 100644 --- a/sw/source/ui/inc/navipi.hxx +++ b/sw/source/ui/inc/navipi.hxx @@ -35,7 +35,7 @@ #ifndef _LSTBOX_HXX //autogen #include <vcl/lstbox.hxx> #endif -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> #include <svtools/transfer.hxx> #include <sfx2/childwin.hxx> #include <sfx2/ctrlitem.hxx> diff --git a/sw/source/ui/inc/numfmtlb.hxx b/sw/source/ui/inc/numfmtlb.hxx index 1a768d98fac2..891b6dc9009c 100644 --- a/sw/source/ui/inc/numfmtlb.hxx +++ b/sw/source/ui/inc/numfmtlb.hxx @@ -31,7 +31,7 @@ #define _SWNUMFMTLB_HXX #include <vcl/lstbox.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include "swdllapi.h" class SwView; diff --git a/sw/source/ui/inc/optcomp.hxx b/sw/source/ui/inc/optcomp.hxx index b72f9f8d21e9..2742a97efd85 100644 --- a/sw/source/ui/inc/optcomp.hxx +++ b/sw/source/ui/inc/optcomp.hxx @@ -33,7 +33,7 @@ #include <sfx2/tabdlg.hxx> #include <vcl/fixed.hxx> #include <vcl/lstbox.hxx> -#include <svtools/compatibility.hxx> +#include <unotools/compatibility.hxx> #include <svx/checklbx.hxx> // class SwCompatibilityOptPage ------------------------------------------ diff --git a/sw/source/ui/inc/optpage.hxx b/sw/source/ui/inc/optpage.hxx index b2fe407964c4..52611a703447 100644 --- a/sw/source/ui/inc/optpage.hxx +++ b/sw/source/ui/inc/optpage.hxx @@ -466,7 +466,7 @@ public: TabPage Testeinstellungen fuer SW --------------------------------------------------------- */ -#ifndef PRODUCT +#ifdef DBG_UTIL class SwTestTabPage : public SfxTabPage { diff --git a/sw/source/ui/inc/prtopt.hxx b/sw/source/ui/inc/prtopt.hxx index 7fa3d66dd6cc..f6abda7f3df6 100644 --- a/sw/source/ui/inc/prtopt.hxx +++ b/sw/source/ui/inc/prtopt.hxx @@ -42,7 +42,8 @@ public: SwPrintOptions(sal_Bool bWeb); virtual ~SwPrintOptions(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); virtual void doSetModified( ) { bModified = sal_True; SetModified();} SwPrintOptions& operator=(const SwPrintData& rData) diff --git a/sw/source/ui/inc/redlndlg.hxx b/sw/source/ui/inc/redlndlg.hxx index 9325aa7ae640..2edc9583d523 100644 --- a/sw/source/ui/inc/redlndlg.hxx +++ b/sw/source/ui/inc/redlndlg.hxx @@ -35,9 +35,9 @@ #include <tools/datetime.hxx> #include <vcl/msgbox.hxx> #ifndef _SVSTDARR_HXX -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/basedlgs.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/dispatch.hxx> diff --git a/sw/source/ui/inc/srcedtw.hxx b/sw/source/ui/inc/srcedtw.hxx index 9dbb5ba6fe31..66d3af9b902a 100644 --- a/sw/source/ui/inc/srcedtw.hxx +++ b/sw/source/ui/inc/srcedtw.hxx @@ -31,7 +31,8 @@ #define _SRCEDTW_HXX #include <vcl/window.hxx> -#include <svtools/lstner.hxx> +#include <svl/lstner.hxx> +#include <unotools/options.hxx> #include <vcl/timer.hxx> #ifndef _TABLE_HXX //autogen @@ -46,6 +47,11 @@ class TextEngine; class ExtTextView; class DataChangedEvent; +namespace utl +{ + class SourceViewConfig; +} + class TextViewOutWin : public Window { ExtTextView* pTextView; @@ -69,7 +75,7 @@ public: //------------------------------------------------------------ namespace svt{ class SourceViewConfig;} -class SwSrcEditWindow : public Window, public SfxListener +class SwSrcEditWindow : public Window, public SfxListener, public utl::ConfigurationListener { private: ExtTextView* pTextView; @@ -80,7 +86,7 @@ private: *pVScrollbar; SwSrcView* pSrcView; - svt::SourceViewConfig* pSourceViewConfig; + utl::SourceViewConfig* pSourceViewConfig; long nCurTextWidth; USHORT nStartLine; @@ -114,6 +120,7 @@ protected: void DoSyntaxHighlight( USHORT nPara ); virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 ); DECL_LINK(ScrollHdl, ScrollBar*); diff --git a/sw/source/ui/inc/swlbox.hxx b/sw/source/ui/inc/swlbox.hxx index c774faca9d79..492f6559cdfb 100644 --- a/sw/source/ui/inc/swlbox.hxx +++ b/sw/source/ui/inc/swlbox.hxx @@ -30,7 +30,7 @@ #ifndef _SWLBOX_HXX #define _SWLBOX_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #ifndef _LSTBOX_HXX //autogen #include <vcl/lstbox.hxx> diff --git a/sw/source/ui/inc/swwrtshitem.hxx b/sw/source/ui/inc/swwrtshitem.hxx index cf46f3ea6ef3..625d78c81a52 100644 --- a/sw/source/ui/inc/swwrtshitem.hxx +++ b/sw/source/ui/inc/swwrtshitem.hxx @@ -29,7 +29,7 @@ ************************************************************************/ #ifndef _SW_WRTSHELLITEM_HXX #define _SW_WRTSHELLITEM_HXX -#include <svtools/poolitem.hxx> +#include <svl/poolitem.hxx> #include "swdllapi.h" class SwWrtShell; diff --git a/sw/source/ui/inc/uiitems.hxx b/sw/source/ui/inc/uiitems.hxx index 1f94219fa71d..3ecbfd49f5d3 100644 --- a/sw/source/ui/inc/uiitems.hxx +++ b/sw/source/ui/inc/uiitems.hxx @@ -30,7 +30,7 @@ #ifndef _UIITEMS_HXX #define _UIITEMS_HXX -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include "swdllapi.h" #include "cmdid.h" #include "pagedesc.hxx" diff --git a/sw/source/ui/inc/uinums.hxx b/sw/source/ui/inc/uinums.hxx index 72b30c753cc3..a6dba21205cb 100644 --- a/sw/source/ui/inc/uinums.hxx +++ b/sw/source/ui/inc/uinums.hxx @@ -30,7 +30,7 @@ #ifndef _UINUMS_HXX #define _UINUMS_HXX -#include <svtools/svarray.hxx> +#include <svl/svarray.hxx> #include <numrule.hxx> #include "swdllapi.h" diff --git a/sw/source/ui/inc/unotxvw.hxx b/sw/source/ui/inc/unotxvw.hxx index 4db18720cf87..43dc420915ef 100644 --- a/sw/source/ui/inc/unotxvw.hxx +++ b/sw/source/ui/inc/unotxvw.hxx @@ -47,7 +47,7 @@ #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/datatransfer/XTransferableSupplier.hpp> #include <cppuhelper/implbase8.hxx> // helper for implementations -#include <svtools/itemprop.hxx> +#include <svl/itemprop.hxx> #include "calbck.hxx" #include "TextCursorHelper.hxx" #include <comphelper/uno3.hxx> diff --git a/sw/source/ui/inc/usrpref.hxx b/sw/source/ui/inc/usrpref.hxx index 812873626ced..8c8f949bf803 100644 --- a/sw/source/ui/inc/usrpref.hxx +++ b/sw/source/ui/inc/usrpref.hxx @@ -71,6 +71,7 @@ class SwLayoutViewConfig : public utl::ConfigItem SwLayoutViewConfig(BOOL bWeb, SwMasterUsrPref& rParent); ~SwLayoutViewConfig(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); virtual void Commit(); void Load(); void SetModified(){ConfigItem::SetModified();} @@ -88,7 +89,8 @@ class SwGridConfig : public utl::ConfigItem SwGridConfig(BOOL bWeb, SwMasterUsrPref& rParent); ~SwGridConfig(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; @@ -104,7 +106,8 @@ class SwCursorConfig : public utl::ConfigItem SwCursorConfig(SwMasterUsrPref& rParent); ~SwCursorConfig(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; @@ -120,7 +123,8 @@ class SwWebColorConfig : public utl::ConfigItem SwWebColorConfig(SwMasterUsrPref& rParent); ~SwWebColorConfig(); - virtual void Commit(); + virtual void Commit(); + virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); void Load(); void SetModified(){ConfigItem::SetModified();} }; diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx index 9eeaa42ccaa4..a670139687e5 100644 --- a/sw/source/ui/index/cnttab.cxx +++ b/sw/source/ui/index/cnttab.cxx @@ -38,9 +38,9 @@ #include <rsc/rscsfx.hxx> #include <vcl/msgbox.hxx> #include <vcl/help.hxx> -#include <svtools/stritem.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/stritem.hxx> +#include <svl/urihelper.hxx> +#include <unotools/pathoptions.hxx> #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/dispatch.hxx> diff --git a/sw/source/ui/index/idxmrk.cxx b/sw/source/ui/index/idxmrk.cxx index 866ecd82ee4e..259110a888d8 100644 --- a/sw/source/ui/index/idxmrk.cxx +++ b/sw/source/ui/index/idxmrk.cxx @@ -37,7 +37,7 @@ #include <helpid.h> #endif #define _SVSTDARR_STRINGSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <comphelper/processfactory.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/beans/PropertyValue.hpp> @@ -45,15 +45,15 @@ #include <com/sun/star/util/SearchOptions.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <com/sun/star/i18n/TransliterationModules.hpp> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif #include <sfx2/dispatch.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svtools/txtcmp.hxx> #include <svx/scripttypeitem.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/langitem.hxx> #include <swtypes.hxx> #include <idxmrk.hxx> @@ -78,7 +78,7 @@ #include <fldbas.hxx> #include <utlui.hrc> #include <swcont.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include <ndtxt.hxx> #include <breakit.hxx> diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index 9b26818d028f..b5082f14c485 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -40,7 +40,7 @@ #include <helpid.h> #endif #define _SVSTDARR_STRINGSSORT -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <comphelper/processfactory.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/beans/PropertyValue.hpp> @@ -48,15 +48,15 @@ #include <com/sun/star/util/SearchOptions.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <com/sun/star/i18n/TransliterationModules.hpp> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif #include <sfx2/dispatch.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svtools/txtcmp.hxx> #include <svx/scripttypeitem.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/langitem.hxx> #include "svx/unolingu.hxx" #include <swtypes.hxx> @@ -82,7 +82,7 @@ #include <fldbas.hxx> #include <utlui.hrc> #include <swcont.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/cjkoptions.hxx> #include <ndtxt.hxx> #include <breakit.hxx> #include <SwRewriter.hxx> diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx index 865908568cd6..be469f14db1b 100644 --- a/sw/source/ui/lingu/olmenu.cxx +++ b/sw/source/ui/lingu/olmenu.cxx @@ -35,10 +35,10 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/lingucfg.hxx> -#include <svtools/linguprops.hxx> +#include <unotools/lingucfg.hxx> +#include <unotools/linguprops.hxx> #include <svtools/filter.hxx> #include <svx/impgrf.hxx> #include <svx/svxacorr.hxx> @@ -64,12 +64,12 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/i18n/ScriptType.hpp> #include <svx/dlgutil.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <svx/langitem.hxx> #include <svx/splwrap.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <svx/acorrcfg.hxx> #include <swmodule.hxx> #include <cmdid.h> @@ -92,7 +92,7 @@ // <- #111827# #include <unomid.h> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <map> #include <svtools/langtab.hxx> #include <com/sun/star/document/XDocumentLanguages.hpp> @@ -101,7 +101,7 @@ #include "swabstdlg.hxx" #include "chrdlg.hrc" #include <svx/brshitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <viewopt.hxx> #include <uitool.hxx> @@ -428,7 +428,7 @@ bGrammarResults(false) sal_Int16 nStringCount = static_cast< sal_Int16 >( aSuggestions.getLength() ); SvtLinguConfig aCfg; - const bool bIsDark = Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark(); + const bool bHC = Application::GetSettings().GetStyleSettings().GetHighContrastMode(); PopupMenu *pMenu = GetPopupMenu(MN_AUTOCORR); pMenu->SetMenuFlags(MENU_FLAG_NOAUTOMNEMONICS); @@ -440,7 +440,7 @@ bGrammarResults(false) uno::Reference< container::XNamed > xNamed( xSpellAlt, uno::UNO_QUERY ); if (xNamed.is()) { - aSuggestionImageUrl = aCfg.GetSpellAndGrammarContextSuggestionImage( xNamed->getName(), bIsDark ); + aSuggestionImageUrl = aCfg.GetSpellAndGrammarContextSuggestionImage( xNamed->getName(), bHC ); aImage = Image( lcl_GetImageFromPngUrl( aSuggestionImageUrl ) ); } @@ -529,7 +529,7 @@ bGrammarResults(false) if (xSvcInfo.is()) { OUString aDictionaryImageUrl( aCfg.GetSpellAndGrammarContextDictionaryImage( - xSvcInfo->getImplementationName(), bIsDark) ); + xSvcInfo->getImplementationName(), bHC) ); if (aDictionaryImageUrl.getLength() > 0) { Image aImage( lcl_GetImageFromPngUrl( aDictionaryImageUrl ) ); @@ -583,7 +583,7 @@ bGrammarResults(false) uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface(); Image rImg = ::GetImage( xFrame, ::rtl::OUString::createFromAscii(".uno:SpellingAndGrammarDialog"), sal_False, - Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark() ); + Application::GetSettings().GetStyleSettings().GetHighContrastMode() ); SetItemImage( MN_SPELLING, rImg ); ////////////////////////////////////////////////////////////////////////////////// @@ -717,7 +717,7 @@ aInfo16( SW_RES(IMG_INFO_16) ) uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface(); Image rImg = ::GetImage( xFrame, ::rtl::OUString::createFromAscii(".uno:SpellingAndGrammarDialog"), sal_False, - Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark() ); + Application::GetSettings().GetStyleSettings().GetHighContrastMode() ); SetItemImage( MN_SPELLING, rImg ); ////////////////////////////////////////////////////////////////////////////////// diff --git a/sw/source/ui/misc/bookmark.cxx b/sw/source/ui/misc/bookmark.cxx index f7eace73f06e..3915d6918f33 100644 --- a/sw/source/ui/misc/bookmark.cxx +++ b/sw/source/ui/misc/bookmark.cxx @@ -37,7 +37,7 @@ #include <sfx2/request.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <vcl/msgbox.hxx> diff --git a/sw/source/ui/misc/docfnote.cxx b/sw/source/ui/misc/docfnote.cxx index 44a3e0750890..d56ac7c593b6 100644 --- a/sw/source/ui/misc/docfnote.cxx +++ b/sw/source/ui/misc/docfnote.cxx @@ -36,7 +36,7 @@ #endif -#include <svtools/style.hxx> +#include <svl/style.hxx> #include <errhdl.hxx> #include <wrtsh.hxx> #ifndef _VIEW_HXX diff --git a/sw/source/ui/misc/glosbib.cxx b/sw/source/ui/misc/glosbib.cxx index e5269a6f7dd7..206c4ea900d7 100644 --- a/sw/source/ui/misc/glosbib.cxx +++ b/sw/source/ui/misc/glosbib.cxx @@ -46,8 +46,8 @@ #include <unotools/transliterationwrapper.hxx> #include <unotools/tempfile.hxx> -#include <svtools/svstdarr.hxx> -#include <svtools/pathoptions.hxx> +#include <svl/svstdarr.hxx> +#include <unotools/pathoptions.hxx> #include <swtypes.hxx> #include <glosbib.hxx> #include <gloshdl.hxx> diff --git a/sw/source/ui/misc/glosdoc.cxx b/sw/source/ui/misc/glosdoc.cxx index 94d2f04a9b0e..f9db3c82fcba 100644 --- a/sw/source/ui/misc/glosdoc.cxx +++ b/sw/source/ui/misc/glosdoc.cxx @@ -38,17 +38,17 @@ #define _SVSTDARR_STRINGS #include <unotools/transliterationwrapper.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #ifndef __RSC //autogen #include <tools/errinf.hxx> #endif #include <tools/debug.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <unotools/tempfile.hxx> #include <swtypes.hxx> #include <errhdl.hxx> // ASSERT diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx index ef368f680378..17afbfb31578 100644 --- a/sw/source/ui/misc/glossary.cxx +++ b/sw/source/ui/misc/glossary.cxx @@ -50,11 +50,11 @@ #include <vcl/help.hxx> #endif #ifndef _SVSTDARR_HXX -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/stritem.hxx> -#include <svtools/pathoptions.hxx> -#include <svtools/lingucfg.hxx> +#include <svl/stritem.hxx> +#include <unotools/pathoptions.hxx> +#include <unotools/lingucfg.hxx> #include <sfx2/request.hxx> #include <sfx2/fcontnr.hxx> @@ -70,7 +70,7 @@ #include <com/sun/star/ui/dialogs/XFilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <unotools/charclass.hxx> #include <swwait.hxx> #include <swtypes.hxx> @@ -1216,7 +1216,7 @@ IMPL_LINK( SwGlossaryDlg, PathHdl, Button *, pBtn ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if(pFact) { - AbstractSvxMultiPathDialog* pDlg = pFact->CreateSvxMultiPathDialog( pBtn, RID_SVXDLG_MULTIPATH); + AbstractSvxMultiPathDialog* pDlg = pFact->CreateSvxMultiPathDialog( pBtn ); DBG_ASSERT(pDlg, "Dialogdiet fail!"); SvtPathOptions aPathOpt; String sGlosPath( aPathOpt.GetAutoTextPath() ); diff --git a/sw/source/ui/misc/glshell.cxx b/sw/source/ui/misc/glshell.cxx index a79e67eec31c..12befeaeb194 100644 --- a/sw/source/ui/misc/glshell.cxx +++ b/sw/source/ui/misc/glshell.cxx @@ -34,13 +34,13 @@ #include <com/sun/star/frame/XTitle.hpp> #include <tools/list.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <sfx2/printer.hxx> #include <sfx2/request.hxx> #include <sfx2/sfxsids.hrc> #include <svx/srchitem.hxx> -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <gloshdl.hxx> #include <svx/acorrcfg.hxx> diff --git a/sw/source/ui/misc/insfnote.cxx b/sw/source/ui/misc/insfnote.cxx index d659ceb0b6f1..a91953e24148 100644 --- a/sw/source/ui/misc/insfnote.cxx +++ b/sw/source/ui/misc/insfnote.cxx @@ -36,8 +36,8 @@ #endif #include <hintids.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <sfx2/request.hxx> #include <svx/fontitem.hxx> #include <vcl/msgbox.hxx> diff --git a/sw/source/ui/misc/insrule.cxx b/sw/source/ui/misc/insrule.cxx index b2d38797222f..117590728c88 100644 --- a/sw/source/ui/misc/insrule.cxx +++ b/sw/source/ui/misc/insrule.cxx @@ -43,7 +43,7 @@ #include <vcl/msgbox.hxx> #endif #include <svx/brshitem.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <vcl/graph.hxx> #include "swtypes.hxx" diff --git a/sw/source/ui/misc/linenum.cxx b/sw/source/ui/misc/linenum.cxx index 58babb639807..8707cac36fb6 100644 --- a/sw/source/ui/misc/linenum.cxx +++ b/sw/source/ui/misc/linenum.cxx @@ -37,7 +37,7 @@ #include <sfx2/viewfrm.hxx> -#include <svtools/style.hxx> +#include <svl/style.hxx> #include <vcl/msgbox.hxx> #include <view.hxx> #include <wrtsh.hxx> diff --git a/sw/source/ui/misc/num.cxx b/sw/source/ui/misc/num.cxx index c1e46a1b4dfb..94a8ea847781 100644 --- a/sw/source/ui/misc/num.cxx +++ b/sw/source/ui/misc/num.cxx @@ -93,9 +93,9 @@ #include <SwStyleNameMapper.hxx> #include <svx/svxids.hrc> #include <svx/dialogs.hrc> -#include <svtools/stritem.hxx> -#include <svtools/aeitem.hxx> -#include <svtools/slstitm.hxx> +#include <svl/stritem.hxx> +#include <svl/aeitem.hxx> +#include <svl/slstitm.hxx> static BOOL bLastRelative = FALSE; diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx index 9fd448fcb210..27eabd673750 100644 --- a/sw/source/ui/misc/outline.cxx +++ b/sw/source/ui/misc/outline.cxx @@ -65,7 +65,7 @@ #include <uinums.hxx> #include <poolfmt.hxx> #include <shellres.hxx> -#include <svtools/style.hxx> +#include <svl/style.hxx> #include <charfmt.hxx> #include <docstyle.hxx> #include <viewopt.hxx> diff --git a/sw/source/ui/misc/pgfnote.cxx b/sw/source/ui/misc/pgfnote.cxx index 3f0c634f2b24..75c72d6b3f66 100644 --- a/sw/source/ui/misc/pgfnote.cxx +++ b/sw/source/ui/misc/pgfnote.cxx @@ -48,10 +48,10 @@ #include <vcl/field.hxx> #include <vcl/svapp.hxx> #include <unotools/localedatawrapper.hxx> -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include <svx/sizeitem.hxx> #include <svx/pageitem.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/ulspitem.hxx> #include <uitool.hxx> #include <pagedesc.hxx> diff --git a/sw/source/ui/misc/redlndlg.cxx b/sw/source/ui/misc/redlndlg.cxx index a0da69f942e5..483340b63585 100644 --- a/sw/source/ui/misc/redlndlg.cxx +++ b/sw/source/ui/misc/redlndlg.cxx @@ -41,9 +41,9 @@ #include <tools/datetime.hxx> #include <vcl/msgbox.hxx> #ifndef _SVSTDARR_HXX -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/dispatch.hxx> #include <svx/ctredlin.hxx> @@ -1281,7 +1281,7 @@ IMPL_LINK( SwRedlineAcceptDlg, CommandHdl, void*, EMPTYARG ) rRedline.GetRedlineData().GetTimeStamp() ), SID_ATTR_POSTIT_DATE )); - AbstractSvxPostItDialog* pDlg = pFact->CreateSvxPostItDialog( pParentDlg, aSet, RID_SVXDLG_POSTIT, FALSE ); + AbstractSvxPostItDialog* pDlg = pFact->CreateSvxPostItDialog( pParentDlg, aSet, FALSE ); DBG_ASSERT(pDlg, "Dialogdiet fail!"); pDlg->HideAuthor(); diff --git a/sw/source/ui/misc/srtdlg.cxx b/sw/source/ui/misc/srtdlg.cxx index 0b2ff55c7c41..6000632ef3f8 100644 --- a/sw/source/ui/misc/srtdlg.cxx +++ b/sw/source/ui/misc/srtdlg.cxx @@ -39,8 +39,8 @@ #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/intitem.hxx> -#include <svtools/eitem.hxx> +#include <svl/intitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/dispatch.hxx> #include <svx/svxids.hrc> #include <svx/unolingu.hxx> diff --git a/sw/source/ui/misc/swmodalredlineacceptdlg.cxx b/sw/source/ui/misc/swmodalredlineacceptdlg.cxx index 6039600d037c..6a6dff99c9bc 100644 --- a/sw/source/ui/misc/swmodalredlineacceptdlg.cxx +++ b/sw/source/ui/misc/swmodalredlineacceptdlg.cxx @@ -45,9 +45,9 @@ #include <tools/datetime.hxx> #include <vcl/msgbox.hxx> #ifndef _SVSTDARR_HXX -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/dispatch.hxx> #include <svx/ctredlin.hxx> diff --git a/sw/source/ui/ribbar/concustomshape.cxx b/sw/source/ui/ribbar/concustomshape.cxx index 809b593dec0c..3fc2ff816dfe 100644 --- a/sw/source/ui/ribbar/concustomshape.cxx +++ b/sw/source/ui/ribbar/concustomshape.cxx @@ -61,7 +61,7 @@ #ifndef _FM_FMMODEL_HXX #include <svx/fmmodel.hxx> #endif -#include <svtools/itempool.hxx> +#include <svl/itempool.hxx> #include <svx/svdpage.hxx> #include <svx/svdoashp.hxx> #include <svx/adjitem.hxx> diff --git a/sw/source/ui/ribbar/drawbase.cxx b/sw/source/ui/ribbar/drawbase.cxx index f6a48d36cd68..764090080aeb 100644 --- a/sw/source/ui/ribbar/drawbase.cxx +++ b/sw/source/ui/ribbar/drawbase.cxx @@ -34,7 +34,7 @@ #include <tools/list.hxx> #include <svx/svdview.hxx> #include <svx/svdobj.hxx> -#include <svtools/ptitem.hxx> +#include <svl/ptitem.hxx> #include <svx/sizeitem.hxx> #include <sfx2/request.hxx> #include <sfx2/bindings.hxx> diff --git a/sw/source/ui/ribbar/inputwin.cxx b/sw/source/ui/ribbar/inputwin.cxx index 07745f3c01bb..005f9e019cf3 100644 --- a/sw/source/ui/ribbar/inputwin.cxx +++ b/sw/source/ui/ribbar/inputwin.cxx @@ -37,8 +37,8 @@ #include <sfx2/viewfrm.hxx> #include <sfx2/dispatch.hxx> #include <svx/ruler.hxx> -#include <svtools/zforlist.hxx> -#include <svtools/stritem.hxx> +#include <svl/zforlist.hxx> +#include <svl/stritem.hxx> #include "swtypes.hxx" #include "cmdid.h" @@ -95,10 +95,10 @@ SwInputWindow::SwInputWindow( Window* pParent, SfxBindings* pBind ) InsertWindow( ED_FORMULA, &aEdit); SetHelpId(ED_FORMULA, HID_EDIT_FORMULA); - BOOL bDark = GetSettings().GetStyleSettings().GetFaceColor().IsDark(); - SetItemImage( FN_FORMULA_CALC, pManager->GetImage(FN_FORMULA_CALC, bDark )); - SetItemImage( FN_FORMULA_CANCEL, pManager->GetImage(FN_FORMULA_CANCEL, bDark )); - SetItemImage( FN_FORMULA_APPLY, pManager->GetImage(FN_FORMULA_APPLY, bDark )); + BOOL bHC = GetSettings().GetStyleSettings().GetHighContrastMode(); + SetItemImage( FN_FORMULA_CALC, pManager->GetImage(FN_FORMULA_CALC, bHC )); + SetItemImage( FN_FORMULA_CANCEL, pManager->GetImage(FN_FORMULA_CANCEL, bHC )); + SetItemImage( FN_FORMULA_APPLY, pManager->GetImage(FN_FORMULA_APPLY, bHC )); SetItemBits( FN_FORMULA_CALC, GetItemBits( FN_FORMULA_CALC ) | TIB_DROPDOWNONLY ); SetDropdownClickHdl( LINK( this, SwInputWindow, DropdownClickHdl )); @@ -156,12 +156,11 @@ void SwInputWindow::DataChanged( const DataChangedEvent& rDCEvt ) // update item images SwModule *pMod = SW_MOD(); SfxImageManager *pImgMgr = SfxImageManager::GetImageManager( pMod ); - //!! Don't use display-background to check for IsDark !! - BOOL bDark = GetSettings().GetStyleSettings().GetFaceColor().IsDark(); + BOOL bHC = GetSettings().GetStyleSettings().GetHighContrastMode(); // - SetItemImage( FN_FORMULA_CALC, pImgMgr->GetImage(FN_FORMULA_CALC, bDark )); - SetItemImage( FN_FORMULA_CANCEL, pImgMgr->GetImage(FN_FORMULA_CANCEL, bDark )); - SetItemImage( FN_FORMULA_APPLY, pImgMgr->GetImage(FN_FORMULA_APPLY, bDark )); + SetItemImage( FN_FORMULA_CALC, pImgMgr->GetImage(FN_FORMULA_CALC, bHC )); + SetItemImage( FN_FORMULA_CANCEL, pImgMgr->GetImage(FN_FORMULA_CANCEL, bHC )); + SetItemImage( FN_FORMULA_APPLY, pImgMgr->GetImage(FN_FORMULA_APPLY, bHC )); } ToolBox::DataChanged( rDCEvt ); diff --git a/sw/source/ui/ribbar/tblctrl.cxx b/sw/source/ui/ribbar/tblctrl.cxx index 5441943c126f..741fd4509b81 100644 --- a/sw/source/ui/ribbar/tblctrl.cxx +++ b/sw/source/ui/ribbar/tblctrl.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <vcl/toolbox.hxx> #include <sfx2/app.hxx> diff --git a/sw/source/ui/ribbar/tbxanchr.cxx b/sw/source/ui/ribbar/tbxanchr.cxx index fc086a1143c2..5ca8c504229a 100644 --- a/sw/source/ui/ribbar/tbxanchr.cxx +++ b/sw/source/ui/ribbar/tbxanchr.cxx @@ -37,7 +37,7 @@ #include <vcl/timer.hxx> #include <sfx2/app.hxx> #include <svx/htmlmode.hxx> -#include <svtools/intitem.hxx> +#include <svl/intitem.hxx> #include <sfx2/dispatch.hxx> #ifndef _TOOLBOX_HXX //autogen #include <vcl/toolbox.hxx> diff --git a/sw/source/ui/ribbar/workctrl.cxx b/sw/source/ui/ribbar/workctrl.cxx index c0f248dfcd66..dea86994f2d3 100644 --- a/sw/source/ui/ribbar/workctrl.cxx +++ b/sw/source/ui/ribbar/workctrl.cxx @@ -34,7 +34,7 @@ #include <string> // HACK: prevent conflict between STLPORT and Workshop headers -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/htmlmode.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/bindings.hxx> @@ -65,7 +65,7 @@ #include <helpid.h> #endif #include <wrtsh.hxx> -#include <svtools/imageitm.hxx> +#include <svl/imageitm.hxx> #include <vcl/lstbox.hxx> #include <rtl/ustring.hxx> #include "swabstdlg.hxx" @@ -115,7 +115,7 @@ void SAL_CALL SwTbxInsertCtrl::update() throw (uno::RuntimeException) Image aImage = GetImage( m_xFrame, aSlotURL, hasBigImages(), - rTbx.GetDisplayBackground().GetColor().IsDark() ); + rTbx.GetSettings().GetStyleSettings().GetHighContrastMode() ); rTbx.SetItemImage(GetId(), aImage); rTbx.Invalidate(); @@ -146,11 +146,11 @@ void SwTbxInsertCtrl::StateChanged( USHORT /*nSID*/, rtl::OUString aSlotURL( RTL_CONSTASCII_USTRINGPARAM( "slot:" )); aSlotURL += rtl::OUString::valueOf( sal_Int32( nId )); + ToolBox& rBox = GetToolBox(); Image aImage = GetImage( m_xFrame, aSlotURL, hasBigImages(), - GetToolBox().GetDisplayBackground().GetColor().IsDark() ); - ToolBox& rBox = GetToolBox(); + rBox.GetSettings().GetStyleSettings().GetHighContrastMode() ); rBox.SetItemImage(GetId(), aImage); rBox.SetItemImageMirrorMode( GetId(), FALSE ); rBox.SetItemImageAngle( GetId(), pItem->GetRotation() ); @@ -572,7 +572,7 @@ void SwScrollNaviPopup::DataChanged( const DataChangedEvent& rDCEvt ) ---------------------------------------------------------------------------*/ void SwScrollNaviPopup::ApplyImageList() { - ImageList& rImgLst = aToolBox.GetDisplayBackground().GetColor().IsDark() ? + ImageList& rImgLst = aToolBox.GetSettings().GetStyleSettings().GetHighContrastMode() ? aIListH : aIList; for(USHORT i = 0; i < NID_COUNT; i++) { @@ -746,7 +746,7 @@ SwNaviImageButton::SwNaviImageButton( FreeResource(); SetStyle(GetStyle()|WB_NOPOINTERFOCUS); SetQuickHelpText(sQuickText); - SetModeImage( GetDisplayBackground().GetColor().IsDark() ? aImageH : aImage); + SetModeImage( GetSettings().GetStyleSettings().GetHighContrastMode() ? aImageH : aImage); } /* -----------------------------2002/07/05 9:41------------------------------- @@ -755,7 +755,7 @@ void SwNaviImageButton::DataChanged( const DataChangedEvent& rDCEvt ) { if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) - SetModeImage( GetDisplayBackground().GetColor().IsDark() ? aImageH : aImage); + SetModeImage( GetSettings().GetStyleSettings().GetHighContrastMode() ? aImageH : aImage); Window::DataChanged( rDCEvt ); } diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx index 1a34e2972956..023936ffa5d6 100755 --- a/sw/source/ui/shells/annotsh.cxx +++ b/sw/source/ui/shells/annotsh.cxx @@ -57,18 +57,18 @@ #include <svx/fontitem.hxx> #include <svx/fhgtitem.hxx> #include <svx/clipfmtitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/slstitm.hxx> +#include <svl/stritem.hxx> +#include <svl/slstitm.hxx> #include <svx/colritem.hxx> #include <svx/wghtitem.hxx> #include <svx/cntritem.hxx> #include <svx/postitem.hxx> #include <svx/frmdiritem.hxx> #include <svx/svdoutl.hxx> -#include <svtools/whiter.hxx> -#include <svtools/cjkoptions.hxx> -#include <svtools/ctloptions.hxx> -#include <svtools/useroptions.hxx> +#include <svl/whiter.hxx> +#include <svl/cjkoptions.hxx> +#include <svl/ctloptions.hxx> +#include <unotools/useroptions.hxx> #include <vcl/msgbox.hxx> #include <svx/flditem.hxx> #include <svx/editstat.hxx> @@ -108,18 +108,18 @@ #include <svx/dialogs.hrc> #include <svx/svxids.hrc> -#include <svtools/itempool.hxx> +#include <svl/itempool.hxx> #include <svx/outliner.hxx> #include <svx/editeng.hxx> #include <svx/editview.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svx/langitem.hxx> #include <svtools/langtab.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <docsh.hxx> -#include <svtools/undo.hxx> +#include <svl/undo.hxx> #include "swabstdlg.hxx" //CHINA001 #include "chrdlg.hrc" //CHINA001 #include "misc.hrc" diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx index 9f5ee6195e81..9b38981abbb3 100644 --- a/sw/source/ui/shells/basesh.cxx +++ b/sw/source/ui/shells/basesh.cxx @@ -32,8 +32,8 @@ #include "precompiled_sw.hxx" #include <sot/factory.hxx> #include <hintids.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/urihelper.hxx> +#include <svl/languageoptions.hxx> #ifndef _SVX_SVXIDS_HRC #include <svx/svxids.hrc> @@ -45,8 +45,8 @@ #include <sfx2/docfile.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/request.hxx> -#include <svtools/whiter.hxx> -#include <svtools/visitem.hxx> +#include <svl/whiter.hxx> +#include <svl/visitem.hxx> #include <sfx2/objitem.hxx> #include <svtools/filter.hxx> #include <svx/gallery.hxx> @@ -55,11 +55,11 @@ #include <svx/contdlg.hxx> #include <vcl/graph.hxx> #include <svx/impgrf.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <vcl/msgbox.hxx> -#include <svtools/ptitem.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/stritem.hxx> +#include <svl/ptitem.hxx> +#include <svl/itemiter.hxx> +#include <svl/stritem.hxx> #include <svx/colritem.hxx> #include <svx/shaditem.hxx> #include <svx/boxitem.hxx> @@ -517,6 +517,9 @@ void SwBaseShell::ExecUndo(SfxRequest &rReq) if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nId, FALSE, &pItem )) nCnt = ((SfxUInt16Item*)pItem)->GetValue(); + // #i106349#: save pointer: undo/redo may delete the shell, i.e., this! + SfxViewFrame *const pViewFrame( GetView().GetViewFrame() ); + switch( nId ) { case SID_UNDO: @@ -538,7 +541,7 @@ void SwBaseShell::ExecUndo(SfxRequest &rReq) DBG_ERROR("falscher Dispatcher"); } - GetView().GetViewFrame()->GetBindings().InvalidateAll(sal_False); + if (pViewFrame) { pViewFrame->GetBindings().InvalidateAll(sal_False); } } /*-------------------------------------------------------------------- diff --git a/sw/source/ui/shells/beziersh.cxx b/sw/source/ui/shells/beziersh.cxx index cc3493fe5120..919531e84fb7 100644 --- a/sw/source/ui/shells/beziersh.cxx +++ b/sw/source/ui/shells/beziersh.cxx @@ -35,8 +35,8 @@ #include "cmdid.h" #include <svx/svdview.hxx> #include <svx/srchitem.hxx> -#include <svtools/eitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/eitem.hxx> +#include <svl/whiter.hxx> #include <svx/svdopath.hxx> #include <sfx2/request.hxx> #include <sfx2/dispatch.hxx> diff --git a/sw/source/ui/shells/drawdlg.cxx b/sw/source/ui/shells/drawdlg.cxx index 8cad5be21ccb..329465421dd4 100644 --- a/sw/source/ui/shells/drawdlg.cxx +++ b/sw/source/ui/shells/drawdlg.cxx @@ -83,7 +83,7 @@ void SwDrawShell::ExecDrawDlg(SfxRequest& rReq) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if ( pFact ) { - SfxAbstractTabDialog *pDlg = pFact->CreateTextTabDialog( NULL, &aNewAttr, RID_SVXDLG_TEXT, pView ); + SfxAbstractTabDialog *pDlg = pFact->CreateTextTabDialog( NULL, &aNewAttr, pView ); USHORT nResult = pDlg->Execute(); if (nResult == RET_OK) @@ -111,7 +111,6 @@ void SwDrawShell::ExecDrawDlg(SfxRequest& rReq) AbstractSvxAreaTabDialog * pDlg = pFact->CreateSvxAreaTabDialog( NULL, &aNewAttr, pDoc, - RID_SVXDLG_AREA, pView); DBG_ASSERT(pDlg, "Dialogdiet fail!"); const SvxColorTableItem* pColorItem = (const SvxColorTableItem*) @@ -154,7 +153,6 @@ void SwDrawShell::ExecDrawDlg(SfxRequest& rReq) SfxAbstractTabDialog * pDlg = pFact->CreateSvxLineTabDialog( NULL, &aNewAttr, pDoc, - RID_SVXDLG_LINE, pObj, bHasMarked); DBG_ASSERT(pDlg, "Dialogdiet fail!"); diff --git a/sw/source/ui/shells/drawsh.cxx b/sw/source/ui/shells/drawsh.cxx index 4da015e2d586..8e5b20c67dd2 100644 --- a/sw/source/ui/shells/drawsh.cxx +++ b/sw/source/ui/shells/drawsh.cxx @@ -35,12 +35,12 @@ #include <tools/shl.hxx> #include <svx/svdview.hxx> #include <svx/svdotext.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/fontwork.hxx> #include <sfx2/request.hxx> #include <sfx2/bindings.hxx> #include <sfx2/objface.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <svx/srchitem.hxx> #include <svx/xftsfit.hxx> #include <svx/extrusionbar.hxx> diff --git a/sw/source/ui/shells/drformsh.cxx b/sw/source/ui/shells/drformsh.cxx index 97cac7006b98..d15c0b697e12 100644 --- a/sw/source/ui/shells/drformsh.cxx +++ b/sw/source/ui/shells/drformsh.cxx @@ -36,7 +36,7 @@ #include <hintids.hxx> #include <svx/hlnkitem.hxx> #include <svx/svdview.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <sfx2/request.hxx> #include <sfx2/objface.hxx> #include <sfx2/app.hxx> @@ -59,7 +59,7 @@ #include "shells.hrc" #include "drwbassh.hxx" #include "drformsh.hxx" -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <view.hxx> #include <sfx2/docfile.hxx> #include <docsh.hxx> diff --git a/sw/source/ui/shells/drwbassh.cxx b/sw/source/ui/shells/drwbassh.cxx index 339c332c9135..3f5bb4fe6d77 100644 --- a/sw/source/ui/shells/drwbassh.cxx +++ b/sw/source/ui/shells/drwbassh.cxx @@ -39,11 +39,11 @@ #include <sfx2/objface.hxx> #include <sfx2/request.hxx> #include <sfx2/bindings.hxx> -#include <svtools/aeitem.hxx> +#include <svl/aeitem.hxx> #include <svx/svdview.hxx> #include <vcl/msgbox.hxx> #include <svx/srchitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/swframevalidation.hxx> #include <svx/anchorid.hxx> #include <svx/htmlmode.hxx> @@ -238,7 +238,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq) if ( pFact ) { AbstractSvxCaptionDialog* pCaptionDlg = - pFact->CreateCaptionDialog( NULL, pSdrView, RID_SVXDLG_CAPTION, nAllowedAnchors ); + pFact->CreateCaptionDialog( NULL, pSdrView, nAllowedAnchors ); pCaptionDlg->SetValidateFramePosLink( LINK(this, SwDrawBaseShell, ValidatePosition) ); pDlg = pCaptionDlg; DBG_ASSERT(pDlg, "Dialogdiet fail!"); @@ -251,7 +251,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq) { AbstractSvxTransformTabDialog* pTransform = - pFact->CreateSvxTransformTabDialog( NULL, NULL, pSdrView, RID_SVXDLG_TRANSFORM, nAllowedAnchors ); + pFact->CreateSvxTransformTabDialog( NULL, NULL, pSdrView, nAllowedAnchors ); pTransform->SetValidateFramePosLink( LINK(this, SwDrawBaseShell, ValidatePosition) ); pDlg = pTransform; DBG_ASSERT(pDlg, "Dialogdiet fail!"); @@ -567,7 +567,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialogdiet fail!"); - AbstractSvxObjectNameDialog* pDlg = pFact->CreateSvxObjectNameDialog(NULL, aName, RID_SVXDLG_OBJECT_NAME); + AbstractSvxObjectNameDialog* pDlg = pFact->CreateSvxObjectNameDialog(NULL, aName); OSL_ENSURE(pDlg, "Dialogdiet fail!"); pDlg->SetCheckNameHdl(LINK(this, SwDrawBaseShell, CheckGroupShapeNameHdl)); @@ -599,7 +599,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialogdiet fail!"); - AbstractSvxObjectTitleDescDialog* pDlg = pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription, RID_SVXDLG_OBJECT_TITLE_DESC); + AbstractSvxObjectTitleDescDialog* pDlg = pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription); OSL_ENSURE(pDlg, "Dialogdiet fail!"); if(RET_OK == pDlg->Execute()) diff --git a/sw/source/ui/shells/drwtxtex.cxx b/sw/source/ui/shells/drwtxtex.cxx index 11874ca5b151..da71d364f6a3 100644 --- a/sw/source/ui/shells/drwtxtex.cxx +++ b/sw/source/ui/shells/drwtxtex.cxx @@ -59,9 +59,9 @@ #include <svx/frmdiritem.hxx> #include <svx/svdoutl.hxx> #include <sfx2/viewfrm.hxx> -#include <svtools/whiter.hxx> -#include <svtools/cjkoptions.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/whiter.hxx> +#include <svl/cjkoptions.hxx> +#include <svl/ctloptions.hxx> #include <sfx2/bindings.hxx> #include <vcl/msgbox.hxx> #include <sfx2/dispatch.hxx> @@ -99,10 +99,10 @@ #include "misc.hrc" //modified on Jul. 30th -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svx/langitem.hxx> #include <svtools/langtab.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <string.h> #include <svx/eeitem.hxx> diff --git a/sw/source/ui/shells/drwtxtsh.cxx b/sw/source/ui/shells/drwtxtsh.cxx index 9f1d49ebe067..59e4bc01c5e3 100644 --- a/sw/source/ui/shells/drwtxtsh.cxx +++ b/sw/source/ui/shells/drwtxtsh.cxx @@ -32,8 +32,8 @@ #include "precompiled_sw.hxx" #include <hintids.hxx> #include <i18npool/lang.h> -#include <svtools/slstitm.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/slstitm.hxx> +#include <svl/cjkoptions.hxx> #include <svx/fontitem.hxx> #include <svx/langitem.hxx> #include <svx/svdview.hxx> @@ -49,7 +49,7 @@ #include <sfx2/bindings.hxx> #include <svx/fontwork.hxx> #include <sfx2/request.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/outliner.hxx> #include <svx/editstat.hxx> #include <svx/svdoutl.hxx> @@ -577,7 +577,7 @@ void SwDrawTextShell::ExecDraw(SfxRequest &rReq) { SfxAbstractTabDialog *pDlg = pFact->CreateTextTabDialog( &(GetView().GetViewFrame()->GetWindow()), - &aNewAttr, RID_SVXDLG_TEXT, pSdrView ); + &aNewAttr, pSdrView ); USHORT nResult = pDlg->Execute(); if (nResult == RET_OK) diff --git a/sw/source/ui/shells/frmsh.cxx b/sw/source/ui/shells/frmsh.cxx index f7957a66077a..4bd22a2c5822 100644 --- a/sw/source/ui/shells/frmsh.cxx +++ b/sw/source/ui/shells/frmsh.cxx @@ -33,15 +33,15 @@ #include <hintids.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svtools/imapobj.hxx> #include <svx/srchitem.hxx> #include <svtools/imap.hxx> #include <sfx2/viewfrm.hxx> #include <basic/sbstar.hxx> -#include <svtools/rectitem.hxx> -#include <svtools/ptitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/rectitem.hxx> +#include <svl/ptitem.hxx> +#include <svl/stritem.hxx> #include <svx/colritem.hxx> #include <svx/bolnitem.hxx> #include <svx/boxitem.hxx> @@ -618,8 +618,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) AbstractSvxObjectTitleDescDialog* pDlg = pFact->CreateSvxObjectTitleDescDialog( NULL, aTitle, - aDescription, - RID_SVXDLG_OBJECT_TITLE_DESC ); + aDescription ); OSL_ENSURE(pDlg, "Dialogdiet fail!"); if ( pDlg->Execute() == RET_OK ) diff --git a/sw/source/ui/shells/grfsh.cxx b/sw/source/ui/shells/grfsh.cxx index 7203d9c91ebb..4a34d39588fe 100644 --- a/sw/source/ui/shells/grfsh.cxx +++ b/sw/source/ui/shells/grfsh.cxx @@ -40,9 +40,9 @@ #include <hintids.hxx> #include <tools/urlobj.hxx> #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/urihelper.hxx> +#include <svl/stritem.hxx> +#include <svl/whiter.hxx> +#include <svl/urihelper.hxx> #include <sfx2/docfile.hxx> #include <sfx2/dispatch.hxx> diff --git a/sw/source/ui/shells/grfshex.cxx b/sw/source/ui/shells/grfshex.cxx index ccf9d006c26f..9ee02b74e591 100644 --- a/sw/source/ui/shells/grfshex.cxx +++ b/sw/source/ui/shells/grfshex.cxx @@ -51,7 +51,7 @@ #endif #include <caption.hxx> #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svtools/filter.hxx> #include <svx/impgrf.hxx> #include <svx/htmlmode.hxx> @@ -81,7 +81,7 @@ #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <avmedia/mediawindow.hxx> #include <vcl/svapp.hxx> diff --git a/sw/source/ui/shells/langhelper.cxx b/sw/source/ui/shells/langhelper.cxx index e5e4dbe81b29..fa27f72b36d7 100755 --- a/sw/source/ui/shells/langhelper.cxx +++ b/sw/source/ui/shells/langhelper.cxx @@ -48,11 +48,11 @@ #include <svx/scripttypeitem.hxx> #include <svx/langitem.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svtools/langtab.hxx> -#include <svtools/slstitm.hxx> -#include <svtools/svstdarr.hxx> -#include <svtools/stritem.hxx> +#include <svl/slstitm.hxx> +#include <svl/svstdarr.hxx> +#include <svl/stritem.hxx> #include <ndtxt.hxx> #include <pam.hxx> diff --git a/sw/source/ui/shells/listsh.cxx b/sw/source/ui/shells/listsh.cxx index 34f349befbc9..e0d6bdcc4228 100644 --- a/sw/source/ui/shells/listsh.cxx +++ b/sw/source/ui/shells/listsh.cxx @@ -40,11 +40,11 @@ #include <sfx2/request.hxx> #include <sfx2/objface.hxx> #include <sfx2/bindings.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <tools/urlobj.hxx> -#include <svtools/whiter.hxx> -#include <svtools/intitem.hxx> +#include <svl/whiter.hxx> +#include <svl/intitem.hxx> #include <tools/shl.hxx> #include <svx/srchitem.hxx> diff --git a/sw/source/ui/shells/mediash.cxx b/sw/source/ui/shells/mediash.cxx index ae1ed883cb8b..d0e3a94c970e 100644 --- a/sw/source/ui/shells/mediash.cxx +++ b/sw/source/ui/shells/mediash.cxx @@ -40,9 +40,9 @@ #include <hintids.hxx> #include <tools/urlobj.hxx> #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/urihelper.hxx> +#include <svl/stritem.hxx> +#include <svl/whiter.hxx> +#include <svl/urihelper.hxx> #include <sfx2/dispatch.hxx> #include <svx/sizeitem.hxx> #include <svx/protitem.hxx> diff --git a/sw/source/ui/shells/slotadd.cxx b/sw/source/ui/shells/slotadd.cxx index 333128a18db9..94c74122bdec 100644 --- a/sw/source/ui/shells/slotadd.cxx +++ b/sw/source/ui/shells/slotadd.cxx @@ -35,12 +35,12 @@ #include "uiitems.hxx" #include "cmdid.h" -#include <svtools/globalnameitem.hxx> +#include <svl/globalnameitem.hxx> -#include <svtools/imageitm.hxx> -#include <svtools/aeitem.hxx> -#include <svtools/rectitem.hxx> +#include <svl/imageitm.hxx> +#include <svl/aeitem.hxx> +#include <svl/rectitem.hxx> #include <sfx2/objitem.hxx> #include <sfx2/objsh.hxx> #include <svx/rulritem.hxx> @@ -49,7 +49,7 @@ #include <svx/zoomslideritem.hxx> #include <svx/hlnkitem.hxx> #include <svx/SmartTagItem.hxx> -#include <svtools/ptitem.hxx> +#include <svl/ptitem.hxx> #include <svx/pageitem.hxx> #include <svx/srchitem.hxx> #include <sfx2/tplpitem.hxx> @@ -130,7 +130,7 @@ #include "fmtline.hxx" #include <svx/clipfmtitem.hxx> #include <svx/blnkitem.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <svx/paravertalignitem.hxx> #include <svx/charreliefitem.hxx> #include <svx/charrotateitem.hxx> diff --git a/sw/source/ui/shells/tabsh.cxx b/sw/source/ui/shells/tabsh.cxx index 7ba4d0b8e954..20b548efaf91 100644 --- a/sw/source/ui/shells/tabsh.cxx +++ b/sw/source/ui/shells/tabsh.cxx @@ -34,11 +34,11 @@ #ifndef _ZFORLIST_HXX #define _ZFORLIST_DECLARE_TABLE -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #endif -#include <svtools/stritem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/moduleoptions.hxx> +#include <svl/stritem.hxx> +#include <svl/whiter.hxx> +#include <unotools/moduleoptions.hxx> #include <svx/rulritem.hxx> #include <svx/srchitem.hxx> #include <svx/lrspitem.hxx> @@ -55,7 +55,7 @@ #include <svx/numinf.hxx> #include <svx/svddef.hxx> #include <svx/svxdlg.hxx> -#include <svtools/zformat.hxx> +#include <svl/zformat.hxx> #include <sfx2/bindings.hxx> #include <vcl/msgbox.hxx> #include <sfx2/request.hxx> diff --git a/sw/source/ui/shells/textdrw.cxx b/sw/source/ui/shells/textdrw.cxx index 1d10c885bc17..ee714ee6ff55 100644 --- a/sw/source/ui/shells/textdrw.cxx +++ b/sw/source/ui/shells/textdrw.cxx @@ -57,7 +57,7 @@ #include <docsh.hxx> #endif #include <sfx2/docfile.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <avmedia/mediawindow.hxx> #include <unomid.h> diff --git a/sw/source/ui/shells/textfld.cxx b/sw/source/ui/shells/textfld.cxx index 0dedb918aaf5..2e65b5a5ce48 100644 --- a/sw/source/ui/shells/textfld.cxx +++ b/sw/source/ui/shells/textfld.cxx @@ -38,11 +38,11 @@ #include <fmtfld.hxx> #include <tools/urlobj.hxx> #include <vcl/msgbox.hxx> -#include <svtools/itempool.hxx> -#include <svtools/useroptions.hxx> -#include <svtools/whiter.hxx> -#include <svtools/eitem.hxx> -#include <svtools/macitem.hxx> +#include <svl/itempool.hxx> +#include <unotools/useroptions.hxx> +#include <svl/whiter.hxx> +#include <svl/eitem.hxx> +#include <svl/macitem.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/request.hxx> #include <svx/postattr.hxx> @@ -463,7 +463,7 @@ void SwTextShell::ExecField(SfxRequest &rReq) SvxAbstractDialogFactory* pFact2 = SvxAbstractDialogFactory::Create(); DBG_ASSERT(pFact2, "Dialogdiet fail!"); - AbstractSvxPostItDialog* pDlg = pFact2->CreateSvxPostItDialog( pMDI, aSet, RID_SVXDLG_POSTIT, bTravel, TRUE ); + AbstractSvxPostItDialog* pDlg = pFact2->CreateSvxPostItDialog( pMDI, aSet, bTravel, TRUE ); DBG_ASSERT(pDlg, "Dialogdiet fail!"); pDlg->HideAuthor(); diff --git a/sw/source/ui/shells/textglos.cxx b/sw/source/ui/shells/textglos.cxx index 076697ac08ff..6eab16a31141 100644 --- a/sw/source/ui/shells/textglos.cxx +++ b/sw/source/ui/shells/textglos.cxx @@ -33,8 +33,8 @@ #include <sfx2/request.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include "errhdl.hxx" #include "view.hxx" diff --git a/sw/source/ui/shells/textidx.cxx b/sw/source/ui/shells/textidx.cxx index 3eb67f725acd..62eeb00dcb20 100644 --- a/sw/source/ui/shells/textidx.cxx +++ b/sw/source/ui/shells/textidx.cxx @@ -37,8 +37,8 @@ #endif #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <svx/sizeitem.hxx> #include <fmtfsize.hxx> #include <fldbas.hxx> diff --git a/sw/source/ui/shells/textsh.cxx b/sw/source/ui/shells/textsh.cxx index 7e38c1297d0b..9dd27b760064 100644 --- a/sw/source/ui/shells/textsh.cxx +++ b/sw/source/ui/shells/textsh.cxx @@ -35,7 +35,7 @@ #define _SW_FRMVALID_HXX #include <hintids.hxx> -#include <svtools/globalnameitem.hxx> +#include <svl/globalnameitem.hxx> #include <sfx2/objface.hxx> #include <sfx2/lnkbase.hxx> @@ -43,18 +43,18 @@ #include <tools/errinf.hxx> #endif #include <svx/svdview.hxx> -#include <svtools/ptitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/moduleoptions.hxx> +#include <svl/ptitem.hxx> +#include <svl/stritem.hxx> +#include <unotools/moduleoptions.hxx> #include <vcl/msgbox.hxx> #include <sfx2/fcontnr.hxx> #include <svx/hlnkitem.hxx> #include <svx/srchitem.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/docfile.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <basic/sbxvar.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <sfx2/request.hxx> #include <svx/opaqitem.hxx> #include <svx/fontitem.hxx> diff --git a/sw/source/ui/shells/textsh1.cxx b/sw/source/ui/shells/textsh1.cxx index 977dc77c98d3..0dac20c78933 100644 --- a/sw/source/ui/shells/textsh1.cxx +++ b/sw/source/ui/shells/textsh1.cxx @@ -38,30 +38,30 @@ #include <helpid.h> #include <i18npool/mslangid.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svx/langitem.hxx> #include <svtools/langtab.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <string.h> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/htmlmode.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <sfx2/bindings.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/objitem.hxx> #include <vcl/msgbox.hxx> #include <vcl/unohelp2.hxx> #include <sfx2/request.hxx> -#include <svtools/eitem.hxx> -#include <svtools/macitem.hxx> +#include <svl/eitem.hxx> +#include <svl/macitem.hxx> #include <svx/lrspitem.hxx> #include <svx/ulspitem.hxx> #include <svx/colritem.hxx> #include <svx/tstpitem.hxx> #include <svx/brshitem.hxx> #include <svx/svxacorr.hxx> -#include <svtools/cjkoptions.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/cjkoptions.hxx> +#include <svl/ctloptions.hxx> #include <IDocumentSettingAccess.hxx> #include <charfmt.hxx> #include <svx/fontitem.hxx> @@ -116,13 +116,13 @@ #include <IDocumentStatistics.hxx> #include <sfx2/sfxdlg.hxx> -#include <svtools/languageoptions.hxx> -#include <svtools/lingucfg.hxx> +#include <svl/languageoptions.hxx> +#include <unotools/lingucfg.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/util/XChangesBatch.hpp> #include <com/sun/star/uno/Any.hxx> #include <svx/unolingu.hxx> -#include <svtools/syslocaleoptions.hxx> +#include <unotools/syslocaleoptions.hxx> #include <doc.hxx> #include <view.hxx> #include <ndtxt.hxx> diff --git a/sw/source/ui/shells/textsh2.cxx b/sw/source/ui/shells/textsh2.cxx index e3ba958d9e1a..417f235c190d 100644 --- a/sw/source/ui/shells/textsh2.cxx +++ b/sw/source/ui/shells/textsh2.cxx @@ -38,16 +38,16 @@ #endif #include <svtools/svmedit.hxx> -#include <svtools/eitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/eitem.hxx> +#include <svl/whiter.hxx> #include <sfx2/event.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/viewfrm.hxx> #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/stritem.hxx> -#include <svtools/itemset.hxx> +#include <svl/stritem.hxx> +#include <svl/itemset.hxx> #include <sfx2/request.hxx> #include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> diff --git a/sw/source/ui/shells/txtattr.cxx b/sw/source/ui/shells/txtattr.cxx index 8e30123a192b..a88f5c996f65 100644 --- a/sw/source/ui/shells/txtattr.cxx +++ b/sw/source/ui/shells/txtattr.cxx @@ -37,10 +37,10 @@ #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/whiter.hxx> -#include <svtools/stritem.hxx> -#include <svtools/itemiter.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/whiter.hxx> +#include <svl/stritem.hxx> +#include <svl/itemiter.hxx> +#include <svl/ctloptions.hxx> #include <swmodule.hxx> #include <sfx2/bindings.hxx> #include <sfx2/request.hxx> diff --git a/sw/source/ui/shells/txtcrsr.cxx b/sw/source/ui/shells/txtcrsr.cxx index 19b36367d49f..9c3a95e2006b 100644 --- a/sw/source/ui/shells/txtcrsr.cxx +++ b/sw/source/ui/shells/txtcrsr.cxx @@ -33,7 +33,7 @@ #include <sfx2/request.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #ifndef __SBX_SBXVARIABLE_HXX //autogen #include <basic/sbxvar.hxx> #endif diff --git a/sw/source/ui/shells/txtnum.cxx b/sw/source/ui/shells/txtnum.cxx index 3bbee6762431..6b4be8da6e14 100644 --- a/sw/source/ui/shells/txtnum.cxx +++ b/sw/source/ui/shells/txtnum.cxx @@ -37,8 +37,8 @@ #include <vcl/msgbox.hxx> #endif #include <sfx2/request.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <svx/numitem.hxx> #include <svx/brshitem.hxx> #include <numrule.hxx> diff --git a/sw/source/ui/smartmenu/stmenu.cxx b/sw/source/ui/smartmenu/stmenu.cxx index a2f37ac801f9..977f63681410 100644 --- a/sw/source/ui/smartmenu/stmenu.cxx +++ b/sw/source/ui/smartmenu/stmenu.cxx @@ -34,7 +34,7 @@ #include "precompiled_sw.hxx" #include <stmenu.hxx> #include <com/sun/star/uno/Sequence.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/dispatch.hxx> #include <SwSmartTagMgr.hxx> diff --git a/sw/source/ui/table/convert.cxx b/sw/source/ui/table/convert.cxx index 63f8ac8a2e00..ce8e62e3990d 100644 --- a/sw/source/ui/table/convert.cxx +++ b/sw/source/ui/table/convert.cxx @@ -38,7 +38,7 @@ #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/viewfrm.hxx> #include <modcfg.hxx> #include <svx/htmlmode.hxx> diff --git a/sw/source/ui/table/convert.src b/sw/source/ui/table/convert.src index 44a8923d9e48..983cf90dac08 100644 --- a/sw/source/ui/table/convert.src +++ b/sw/source/ui/table/convert.src @@ -177,7 +177,7 @@ ModalDialog DLG_CONV_TEXT_TABLE PushButton BT_AUTOFORMAT { Pos = MAP_APPFONT ( 12 , 152 ) ; - Size = MAP_APPFONT ( 66 , 14 ) ; + Size = MAP_APPFONT ( 86 , 14 ) ; TabStop = TRUE ; Hide = TRUE ; Text [ en-US ] = "Auto~Format..." ; diff --git a/sw/source/ui/table/instable.src b/sw/source/ui/table/instable.src index ca5680ebf494..ebe03f5f364b 100644 --- a/sw/source/ui/table/instable.src +++ b/sw/source/ui/table/instable.src @@ -159,7 +159,7 @@ ModalDialog DLG_INSERT_TABLE PushButton BT_AUTOFORMAT { Pos = MAP_APPFONT ( 12 , 146 ) ; - Size = MAP_APPFONT ( 66 , 14 ) ; + Size = MAP_APPFONT ( 86 , 14 ) ; TabStop = TRUE ; Text [ en-US ] = "Auto~Format..." ; }; diff --git a/sw/source/ui/table/rowht.cxx b/sw/source/ui/table/rowht.cxx index 46e0a1828538..95c9fb5db81c 100644 --- a/sw/source/ui/table/rowht.cxx +++ b/sw/source/ui/table/rowht.cxx @@ -36,8 +36,8 @@ #endif -#include <svtools/intitem.hxx> -#include <svtools/eitem.hxx> +#include <svl/intitem.hxx> +#include <svl/eitem.hxx> #include <sfx2/dispatch.hxx> #include <svx/dlgutil.hxx> diff --git a/sw/source/ui/table/swtablerep.cxx b/sw/source/ui/table/swtablerep.cxx index c6a2d93cf423..dea9ae75e021 100644 --- a/sw/source/ui/table/swtablerep.cxx +++ b/sw/source/ui/table/swtablerep.cxx @@ -35,14 +35,14 @@ #include <hintids.hxx> #include <tools/list.hxx> #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> -#include <svtools/intitem.hxx> +#include <svl/stritem.hxx> +#include <svl/intitem.hxx> #include <svx/htmlmode.hxx> #include <svx/keepitem.hxx> #include <svx/brkitem.hxx> #include <svx/ulspitem.hxx> #include <svx/frmdiritem.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <swmodule.hxx> #include <fmtornt.hxx> #include <fmtpdsc.hxx> diff --git a/sw/source/ui/table/tabledlg.cxx b/sw/source/ui/table/tabledlg.cxx index c18d7b6f7d07..8a831a60d9ff 100644 --- a/sw/source/ui/table/tabledlg.cxx +++ b/sw/source/ui/table/tabledlg.cxx @@ -39,14 +39,14 @@ #include <hintids.hxx> #include <tools/list.hxx> #include <vcl/msgbox.hxx> -#include <svtools/stritem.hxx> -#include <svtools/intitem.hxx> +#include <svl/stritem.hxx> +#include <svl/intitem.hxx> #include <svx/htmlmode.hxx> #include <svx/keepitem.hxx> #include <svx/brkitem.hxx> #include <svx/ulspitem.hxx> #include <svx/frmdiritem.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/ctloptions.hxx> #include <swmodule.hxx> #include <fmtornt.hxx> #include <fmtpdsc.hxx> diff --git a/sw/source/ui/table/tautofmt.cxx b/sw/source/ui/table/tautofmt.cxx index de8ea6e3e62b..7b8fac2526c0 100644 --- a/sw/source/ui/table/tautofmt.cxx +++ b/sw/source/ui/table/tautofmt.cxx @@ -45,7 +45,7 @@ #include <vcl/msgbox.hxx> #endif #include <vcl/svapp.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/i18n/XBreakIterator.hpp> #include <comphelper/processfactory.hxx> diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx index 3480b6ac77f1..801a5fa68f6a 100644 --- a/sw/source/ui/uiview/pview.cxx +++ b/sw/source/ui/uiview/pview.cxx @@ -41,9 +41,9 @@ #include <vcl/cmdevt.hxx> #include <vcl/button.hxx> #include <svtools/printdlg.hxx> -#include <svtools/whiter.hxx> -#include <svtools/stritem.hxx> -#include <svtools/eitem.hxx> +#include <svl/whiter.hxx> +#include <svl/stritem.hxx> +#include <svl/eitem.hxx> #include <sfx2/printer.hxx> #include <sfx2/progress.hxx> #include <sfx2/app.hxx> @@ -1377,7 +1377,7 @@ void SwPagePreView::Execute( SfxRequest &rReq ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if(pFact) { - pDlg = pFact->CreateSvxZoomDialog(&GetViewFrame()->GetWindow(), aCoreSet, RID_SVXDLG_ZOOM); + pDlg = pFact->CreateSvxZoomDialog(&GetViewFrame()->GetWindow(), aCoreSet); DBG_ASSERT(pDlg, "Dialogdiet fail!"); } @@ -2460,7 +2460,7 @@ USHORT SwPagePreView::SetPrinter( SfxPrinter *pNew, USHORT nDiffFlags, bool ) SID_ATTR_LONG_ULSPACE, SID_ATTR_LONG_LRSPACE, SID_RULER_BORDERS, SID_RULER_PAGE_POS, 0 }; -#ifndef PRODUCT +#ifdef DBG_UTIL { const USHORT* pPtr = aInval + 1; do { diff --git a/sw/source/ui/uiview/srcview.cxx b/sw/source/ui/uiview/srcview.cxx index a238710a0acc..050f5c9d3057 100644 --- a/sw/source/ui/uiview/srcview.cxx +++ b/sw/source/ui/uiview/srcview.cxx @@ -43,14 +43,14 @@ #include <vcl/wrkwin.hxx> #include <vcl/metric.hxx> #include <svtools/ctrltool.hxx> -#include <svtools/intitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/pathoptions.hxx> -#include <svtools/undo.hxx> +#include <svl/intitem.hxx> +#include <svl/stritem.hxx> +#include <unotools/pathoptions.hxx> +#include <svl/undo.hxx> #include <svtools/txtcmp.hxx> -#include <svtools/eitem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/saveopt.hxx> +#include <svl/eitem.hxx> +#include <svl/whiter.hxx> +#include <unotools/saveopt.hxx> #include <svtools/transfer.hxx> #include <svx/htmlcfg.hxx> @@ -717,6 +717,7 @@ USHORT SwSrcView::StartSearchAndReplace(const SvxSearchItem& rSearchItem, if(!bApi) + { if(bNotFoundMessage) { InfoBox( 0, SW_RES(MSG_NOT_FOUND)).Execute(); @@ -728,6 +729,7 @@ USHORT SwSrcView::StartSearchAndReplace(const SvxSearchItem& rSearchItem, pTextView->SetSelection( TextSelection( aPaM, aPaM ) ); StartSearchAndReplace( rSearchItem, FALSE, FALSE, TRUE ); } + } } return nFound; } diff --git a/sw/source/ui/uiview/view.cxx b/sw/source/ui/uiview/view.cxx index bde87a79bf1b..3d9062b14684 100644 --- a/sw/source/ui/uiview/view.cxx +++ b/sw/source/ui/uiview/view.cxx @@ -40,11 +40,11 @@ #include <vcl/graph.hxx> #include <vcl/inputctx.hxx> #include <basic/sbxobj.hxx> -#include <svtools/eitem.hxx> -#include <svtools/undoopt.hxx> -#include <svtools/lingucfg.hxx> +#include <svl/eitem.hxx> +#include <unotools/undoopt.hxx> +#include <unotools/lingucfg.hxx> #include <svtools/printdlg.hxx> -#include <svtools/useroptions.hxx> +#include <unotools/useroptions.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/request.hxx> #include <sfx2/docfile.hxx> diff --git a/sw/source/ui/uiview/view0.cxx b/sw/source/ui/uiview/view0.cxx index 38f885657450..73c401f2bcb6 100644 --- a/sw/source/ui/uiview/view0.cxx +++ b/sw/source/ui/uiview/view0.cxx @@ -38,14 +38,14 @@ #include <svx/galbrws.hxx> #include <svx/srchitem.hxx> #include <SwSpellDialogChildWindow.hxx> -#include <svtools/eitem.hxx> -#include <svtools/linguprops.hxx> -#include <svtools/lingucfg.hxx> +#include <svl/eitem.hxx> +#include <unotools/linguprops.hxx> +#include <unotools/lingucfg.hxx> #include <viewopt.hxx> #include <globals.h> #include <sfx2/app.hxx> #include <sfx2/request.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <svx/srchdlg.hxx> #include <sfx2/templdlg.hxx> #include <uivwimp.hxx> @@ -99,7 +99,7 @@ using namespace ::com::sun::star; using ::rtl::OUString; -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <IDocumentSettingAccess.hxx> diff --git a/sw/source/ui/uiview/view2.cxx b/sw/source/ui/uiview/view2.cxx index 77c06f44c494..33acb232821a 100644 --- a/sw/source/ui/uiview/view2.cxx +++ b/sw/source/ui/uiview/view2.cxx @@ -46,8 +46,8 @@ #define _SVSTDARR_STRINGSSORTDTOR -#include <svtools/svstdarr.hxx> -#include <svtools/aeitem.hxx> +#include <svl/svstdarr.hxx> +#include <svl/aeitem.hxx> // #ifndef _FILTER_HXX // #include <svtools/filter.hxx> @@ -59,8 +59,8 @@ #include <undobj.hxx> #include <swundo.hxx> #include <caption.hxx> -#include <svtools/PasswordHelper.hxx> -#include <svtools/urihelper.hxx> +#include <svl/PasswordHelper.hxx> +#include <svl/urihelper.hxx> #include <sfx2/passwd.hxx> #include <sfx2/sfxdlg.hxx> #include <sfx2/filedlghelper.hxx> @@ -91,8 +91,8 @@ #include <svx/sizeitem.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/topfrm.hxx> -#include <svtools/whiter.hxx> -#include <svtools/ptitem.hxx> +#include <svl/whiter.hxx> +#include <svl/ptitem.hxx> #include <svx/linkmgr.hxx> #ifndef __RSC //autogen #include <tools/errinf.hxx> @@ -1624,7 +1624,7 @@ void SwView::ExecuteStatusLine(SfxRequest &rReq) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if(pFact) { - pDlg = pFact->CreateSvxZoomDialog(&GetViewFrame()->GetWindow(), aCoreSet, RID_SVXDLG_ZOOM); + pDlg = pFact->CreateSvxZoomDialog(&GetViewFrame()->GetWindow(), aCoreSet); DBG_ASSERT(pDlg, "Dialogdiet fail!"); } diff --git a/sw/source/ui/uiview/viewcoll.cxx b/sw/source/ui/uiview/viewcoll.cxx index d1bd291e917c..92937b2f1746 100644 --- a/sw/source/ui/uiview/viewcoll.cxx +++ b/sw/source/ui/uiview/viewcoll.cxx @@ -39,7 +39,7 @@ #include <vcl/window.hxx> #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <rsc/rscsfx.hxx> diff --git a/sw/source/ui/uiview/viewdlg.cxx b/sw/source/ui/uiview/viewdlg.cxx index c7f3f2373c8f..04370478c796 100644 --- a/sw/source/ui/uiview/viewdlg.cxx +++ b/sw/source/ui/uiview/viewdlg.cxx @@ -36,7 +36,7 @@ #include "hintids.hxx" #include <sfx2/viewfrm.hxx> #include <svx/tstpitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/request.hxx> diff --git a/sw/source/ui/uiview/viewdraw.cxx b/sw/source/ui/uiview/viewdraw.cxx index 4fb7746db4d7..328b5a3d06ca 100644 --- a/sw/source/ui/uiview/viewdraw.cxx +++ b/sw/source/ui/uiview/viewdraw.cxx @@ -33,8 +33,8 @@ #include "hintids.hxx" -#include <svtools/aeitem.hxx> -#include <svtools/itempool.hxx> +#include <svl/aeitem.hxx> +#include <svl/itempool.hxx> #include <svx/svdobj.hxx> #include <svx/svdview.hxx> #include <svx/svdpage.hxx> diff --git a/sw/source/ui/uiview/viewling.cxx b/sw/source/ui/uiview/viewling.cxx index 588c30a9844d..09014ea3afcf 100644 --- a/sw/source/ui/uiview/viewling.cxx +++ b/sw/source/ui/uiview/viewling.cxx @@ -36,7 +36,7 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <com/sun/star/lang/Locale.hpp> #include <com/sun/star/linguistic2/XThesaurus.hpp> @@ -47,7 +47,7 @@ #include <toolkit/helper/vclunohelper.hxx> #include <vcl/msgbox.hxx> #include <svtools/ehdl.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/request.hxx> #include <svx/dlgutil.hxx> diff --git a/sw/source/ui/uiview/viewprt.cxx b/sw/source/ui/uiview/viewprt.cxx index 2f78c63b285b..4d46407d3f15 100644 --- a/sw/source/ui/uiview/viewprt.cxx +++ b/sw/source/ui/uiview/viewprt.cxx @@ -43,13 +43,13 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #include <sfx2/request.hxx> #include <sfx2/progress.hxx> #include <sfx2/app.hxx> -#include <svtools/flagitem.hxx> +#include <svl/flagitem.hxx> #include <vcl/msgbox.hxx> #include <vcl/oldprintadaptor.hxx> #include <svtools/printdlg.hxx> @@ -57,13 +57,13 @@ #include <sfx2/prnmon.hxx> #include <svx/paperinf.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/misccfg.hxx> +#include <unotools/misccfg.hxx> #include <svx/prtqry.hxx> #include <svx/svdview.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> -#include <svtools/intitem.hxx> -#include <svtools/flagitem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> +#include <svl/intitem.hxx> +#include <svl/flagitem.hxx> #include <svx/linkmgr.hxx> #include <modcfg.hxx> @@ -87,10 +87,10 @@ #include <globals.hrc> #include <view.hrc> #include <app.hrc> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <swwrtshitem.hxx> #include "swabstdlg.hxx" -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <unomid.h> @@ -360,17 +360,17 @@ void SetAppPrintOptions( ViewShell* pSh, BOOL bWeb ) SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, 0 ); - SfxMiscCfg* pMisc = SFX_APP()->GetMiscConfig(); + utl::MiscCfg aMisc; if(bWeb) aSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(((SwWrtShell*)pSh)->GetView().GetDocShell()))); aSet.Put(SfxBoolItem(SID_PRINTER_NOTFOUND_WARN, - pMisc->IsNotFoundWarning() )); + aMisc.IsNotFoundWarning() )); aSet.Put(aAddPrinterItem); aSet.Put( SfxFlagItem( SID_PRINTER_CHANGESTODOC, - (pMisc->IsPaperSizeWarning() ? SFX_PRINTER_CHG_SIZE : 0) | - (pMisc->IsPaperOrientationWarning() ? SFX_PRINTER_CHG_ORIENTATION : 0 ))); + (aMisc.IsPaperSizeWarning() ? SFX_PRINTER_CHG_SIZE : 0) | + (aMisc.IsPaperOrientationWarning() ? SFX_PRINTER_CHG_ORIENTATION : 0 ))); pIDDA->getPrinter( true )->SetOptions( aSet ); } diff --git a/sw/source/ui/uiview/viewsrch.cxx b/sw/source/ui/uiview/viewsrch.cxx index 690a1900749e..d55975eaa190 100644 --- a/sw/source/ui/uiview/viewsrch.cxx +++ b/sw/source/ui/uiview/viewsrch.cxx @@ -35,17 +35,17 @@ #include <string> // HACK: prevent conflict between STLPORT and Workshop headers #include <hintids.hxx> #include <com/sun/star/util/SearchOptions.hpp> -#include <svtools/cjkoptions.hxx> -#include <svtools/ctloptions.hxx> +#include <svl/cjkoptions.hxx> +#include <svl/ctloptions.hxx> #include <svx/pageitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/whiter.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #ifndef _T2XTCMP_HXX //autogen #include <svtools/txtcmp.hxx> #endif -#include <svtools/itempool.hxx> -#include <svtools/eitem.hxx> +#include <svl/itempool.hxx> +#include <svl/eitem.hxx> #include <svx/srchitem.hxx> #include <sfx2/request.hxx> #include <svx/srchdlg.hxx> @@ -428,7 +428,7 @@ void SwView::ExecSearch(SfxRequest& rReq, BOOL bNoMessage) } break; default: -#ifndef PRODUCT +#ifdef DBG_UTIL if(nSlot) { ByteString sStr( "nSlot: " ); diff --git a/sw/source/ui/uiview/viewstat.cxx b/sw/source/ui/uiview/viewstat.cxx index 7563a7b5e779..3824f5f10723 100644 --- a/sw/source/ui/uiview/viewstat.cxx +++ b/sw/source/ui/uiview/viewstat.cxx @@ -33,14 +33,14 @@ #include <hintids.hxx> #include <com/sun/star/linguistic2/XThesaurus.hpp> #include <com/sun/star/uno/Sequence.hxx> -#include <svtools/aeitem.hxx> -#include <svtools/whiter.hxx> -#include <svtools/cjkoptions.hxx> +#include <svl/aeitem.hxx> +#include <svl/whiter.hxx> +#include <svl/cjkoptions.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/objitem.hxx> -#include <svtools/imageitm.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/imageitm.hxx> +#include <svl/languageoptions.hxx> #include <svx/protitem.hxx> #include <svx/linkmgr.hxx> #include <svx/langitem.hxx> @@ -67,9 +67,9 @@ #include <wview.hxx> #endif #include <globdoc.hxx> -#include <svtools/stritem.hxx> -#include <svtools/moduleoptions.hxx> -#include <svtools/visitem.hxx> +#include <svl/stritem.hxx> +#include <unotools/moduleoptions.hxx> +#include <svl/visitem.hxx> #ifndef _CMDID_H #include <cmdid.h> diff --git a/sw/source/ui/uiview/viewtab.cxx b/sw/source/ui/uiview/viewtab.cxx index 6223d1d0234a..316156d0112d 100644 --- a/sw/source/ui/uiview/viewtab.cxx +++ b/sw/source/ui/uiview/viewtab.cxx @@ -44,11 +44,11 @@ #include <svx/ulspitem.hxx> #include <svx/boxitem.hxx> #include <svx/frmdiritem.hxx> -#include <svtools/eitem.hxx> -#include <svtools/whiter.hxx> +#include <svl/eitem.hxx> +#include <svl/whiter.hxx> #include <svx/ruler.hxx> #include <svx/protitem.hxx> -#include <svtools/rectitem.hxx> +#include <svl/rectitem.hxx> #include <sfx2/bindings.hxx> #include <fmtfsize.hxx> #include <fmthdft.hxx> diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx index 055dfab0c7f0..c850f77b6011 100644 --- a/sw/source/ui/uno/SwXDocumentSettings.cxx +++ b/sw/source/ui/uno/SwXDocumentSettings.cxx @@ -49,7 +49,7 @@ #include <sfx2/printer.hxx> #include <editsh.hxx> #include <drawdoc.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <unoobj.hxx> #include <unotxdoc.hxx> #include <cmdid.h> diff --git a/sw/source/ui/uno/dlelstnr.cxx b/sw/source/ui/uno/dlelstnr.cxx index 3b066a66ce08..c883a03f23ee 100644 --- a/sw/source/ui/uno/dlelstnr.cxx +++ b/sw/source/ui/uno/dlelstnr.cxx @@ -41,7 +41,7 @@ #include <com/sun/star/linguistic2/XProofreadingIterator.hpp> #include <com/sun/star/linguistic2/LinguServiceEventFlags.hpp> -#include <svtools/lingucfg.hxx> +#include <unotools/lingucfg.hxx> #include <com/sun/star/uno/Reference.h> #include <comphelper/processfactory.hxx> diff --git a/sw/source/ui/uno/swdet2.cxx b/sw/source/ui/uno/swdet2.cxx index aedd6e0f6c68..4d369d2b7ee2 100644 --- a/sw/source/ui/uno/swdet2.cxx +++ b/sw/source/ui/uno/swdet2.cxx @@ -49,7 +49,7 @@ #include <web.hrc> #include <globdoc.hrc> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <unomid.h> diff --git a/sw/source/ui/uno/swdetect.cxx b/sw/source/ui/uno/swdetect.cxx index 82da0914124a..d0fcf366ee15 100644 --- a/sw/source/ui/uno/swdetect.cxx +++ b/sw/source/ui/uno/swdetect.cxx @@ -53,10 +53,10 @@ #include <ucbhelper/simpleinteractionrequest.hxx> #include <rtl/ustring.h> #include <rtl/logfile.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <vcl/window.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <tools/urlobj.hxx> #include <vos/mutex.hxx> #include <svtools/sfxecode.hxx> @@ -72,7 +72,7 @@ #include <sfx2/brokenpackageint.hxx> #include <svx/impgrf.hxx> #include <svtools/FilterConfigItem.hxx> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <com/sun/star/util/XArchiver.hpp> #include <comphelper/ihwrapnofilter.hxx> diff --git a/sw/source/ui/uno/unoatxt.cxx b/sw/source/ui/uno/unoatxt.cxx index 2b302245f53b..b877b9aac7f5 100644 --- a/sw/source/ui/uno/unoatxt.cxx +++ b/sw/source/ui/uno/unoatxt.cxx @@ -41,9 +41,9 @@ #include <vos/mutex.hxx> #include <tools/debug.hxx> #include <vcl/svapp.hxx> -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <svtools/unoevent.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <sfx2/event.hxx> #include <swtypes.hxx> #include <glosdoc.hxx> @@ -61,8 +61,8 @@ #include <docsh.hxx> #include <swunodef.hxx> #include <swmodule.hxx> -#include <svtools/smplhint.hxx> -#include <svtools/macitem.hxx> +#include <svl/smplhint.hxx> +#include <svl/macitem.hxx> #include <svx/acorrcfg.hxx> diff --git a/sw/source/ui/uno/unomailmerge.cxx b/sw/source/ui/uno/unomailmerge.cxx index 7ffa962dd7bb..5d0b03a4eaad 100644 --- a/sw/source/ui/uno/unomailmerge.cxx +++ b/sw/source/ui/uno/unomailmerge.cxx @@ -35,8 +35,8 @@ #include <vcl/svapp.hxx> #include <vos/mutex.hxx> #include <osl/mutex.hxx> -#include <svtools/itemprop.hxx> -#include <svtools/urihelper.hxx> +#include <svl/itemprop.hxx> +#include <svl/urihelper.hxx> #include <svx/dataaccessdescriptor.hxx> #include <tools/shl.hxx> // GetAppData #include <tools/tempfile.hxx> diff --git a/sw/source/ui/uno/unomod.cxx b/sw/source/ui/uno/unomod.cxx index b701edd514e0..75711a414620 100644 --- a/sw/source/ui/uno/unomod.cxx +++ b/sw/source/ui/uno/unomod.cxx @@ -576,17 +576,17 @@ void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, break; case HANDLE_PRINTSET_PROSPECT_RTL: { - rValue <<= mpPrtOpt->IsPrintProspectRTL(); + bBoolVal = mpPrtOpt->IsPrintProspectRTL(); } break; case HANDLE_PRINTSET_PLACEHOLDER: { - rValue <<= mpPrtOpt->IsPrintTextPlaceholder(); + bBoolVal = mpPrtOpt->IsPrintTextPlaceholder(); } break; case HANDLE_PRINTSET_HIDDEN_TEXT: { - rValue <<= mpPrtOpt->IsPrintHiddenText(); + bBoolVal = mpPrtOpt->IsPrintHiddenText(); } break; default: diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx index 6c6194555559..4b519bc747fd 100755..100644 --- a/sw/source/ui/uno/unotxdoc.cxx +++ b/sw/source/ui/uno/unotxdoc.cxx @@ -50,9 +50,9 @@ #include <viewsh.hxx> #include <pvprtdat.hxx> #include <swprtopt.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <unotxdoc.hxx> -#include <svtools/numuno.hxx> +#include <svl/numuno.hxx> #include <unoobj.hxx> #include <unosett.hxx> #include <unocoll.hxx> @@ -64,7 +64,7 @@ #include <unoprnms.hxx> #include <unostyle.hxx> #include <unodraw.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <pagedesc.hxx> #include <svtools/txtcmp.hxx> #include <unocrsr.hxx> @@ -109,7 +109,7 @@ #include <SwXPrintPreviewSettings.hxx> #include <doc.hxx> #include <svx/forbiddencharacterstable.hxx> -#include <svtools/zforlist.hxx> +#include <svl/zforlist.hxx> #include <drawdoc.hxx> #include <SwStyleNameMapper.hxx> #include <osl/file.hxx> @@ -133,7 +133,7 @@ #include <unostyle.hxx> //SwAutoStyleFamily #include <istyleaccess.hxx> // handling of automatic styles -#include <svtools/stylepool.hxx> +#include <svl/stylepool.hxx> #include <swatrset.hxx> #include <view.hxx> #include <srcview.hxx> @@ -147,7 +147,7 @@ #include <svx/eeitem.hxx> #include <svx/editeng.hxx> #include <svx/svdoutl.hxx> -#include <svtools/languageoptions.hxx> +#include <svl/languageoptions.hxx> #include <svx/svdview.hxx> // @@ -3771,7 +3771,7 @@ Any lcl_GetDisplayBitmap(String sLinkSuffix) if(USHRT_MAX != nImgId) { nImgId += 20000; - BOOL bHighContrast = Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark(); + BOOL bHighContrast = Application::GetSettings().GetStyleSettings().GetHighContrastMode(); ImageList aEntryImages( SW_RES(bHighContrast ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP) ); const Image& rImage = aEntryImages.GetImage( nImgId ); Bitmap aBitmap( rImage.GetBitmapEx().GetBitmap() ); @@ -4059,12 +4059,12 @@ void SwXDocumentPropertyHelper::onChange() /*****************************************************************************/ -SwViewOptionAdjust_Impl::SwViewOptionAdjust_Impl( SwWrtShell& rSh, const SwViewOption &rViewOptions ) :
+SwViewOptionAdjust_Impl::SwViewOptionAdjust_Impl( SwWrtShell& rSh, const SwViewOption &rViewOptions ) : m_rShell( rSh ), m_aOldViewOptions( rViewOptions ) -{
-}
-
+{ +} + SwViewOptionAdjust_Impl::~SwViewOptionAdjust_Impl() { diff --git a/sw/source/ui/uno/warnpassword.cxx b/sw/source/ui/uno/warnpassword.cxx index 8523d69de823..600256cf05db 100644 --- a/sw/source/ui/uno/warnpassword.cxx +++ b/sw/source/ui/uno/warnpassword.cxx @@ -33,7 +33,7 @@ // ============================================================================ #include "warnpassword.hxx" #include <com/sun/star/task/XInteractionHandler.hpp> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <sfx2/docfile.hxx> #include <sfx2/sfxsids.hrc> #include <ucbhelper/simpleinteractionrequest.hxx> diff --git a/sw/source/ui/utlui/attrdesc.cxx b/sw/source/ui/utlui/attrdesc.cxx index 14c27c19b137..076f7aa7bdb8 100644 --- a/sw/source/ui/utlui/attrdesc.cxx +++ b/sw/source/ui/utlui/attrdesc.cxx @@ -32,7 +32,7 @@ #include "precompiled_sw.hxx" -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #include <vcl/svapp.hxx> #include <svx/itemtype.hxx> #include <goodies/grfmgr.hxx> diff --git a/sw/source/ui/utlui/bookctrl.cxx b/sw/source/ui/utlui/bookctrl.cxx index 1de7b99a2b66..b4fb0d6e1b5c 100644 --- a/sw/source/ui/utlui/bookctrl.cxx +++ b/sw/source/ui/utlui/bookctrl.cxx @@ -35,10 +35,10 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_USHORTS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/intitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/intitem.hxx> +#include <svl/stritem.hxx> #include <sfx2/dispatch.hxx> #ifndef _EVENT_HXX //autogen #include <vcl/event.hxx> diff --git a/sw/source/ui/utlui/content.cxx b/sw/source/ui/utlui/content.cxx index e86270c55e12..28c340b63cd3 100644 --- a/sw/source/ui/utlui/content.cxx +++ b/sw/source/ui/utlui/content.cxx @@ -33,9 +33,9 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif -#include <svtools/urlbmk.hxx> +#include <svl/urlbmk.hxx> #include <tools/urlobj.hxx> #include <sfx2/docfile.hxx> #include <sfx2/dispatch.hxx> @@ -1354,7 +1354,7 @@ void SwContentTree::Display( sal_Bool bActive ) { if(!bIsImageListInitialized) { - USHORT nResId = GetDisplayBackground().GetColor().IsDark() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; + USHORT nResId = GetSettings().GetStyleSettings().GetHighContrastMode() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; aEntryImages = ImageList(SW_RES(nResId)); bIsImageListInitialized = sal_True; } @@ -3257,7 +3257,7 @@ void SwContentTree::DataChanged( const DataChangedEvent& rDCEvt ) if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) { - USHORT nResId = GetDisplayBackground().GetColor().IsDark() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; + USHORT nResId = GetSettings().GetStyleSettings().GetHighContrastMode() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; aEntryImages = ImageList(SW_RES(nResId)); FindActiveTypeAndRemoveUserData(); Display(sal_True); diff --git a/sw/source/ui/utlui/glbltree.cxx b/sw/source/ui/utlui/glbltree.cxx index 613bbac403b2..20bb340218b2 100644 --- a/sw/source/ui/utlui/glbltree.cxx +++ b/sw/source/ui/utlui/glbltree.cxx @@ -33,23 +33,23 @@ #ifndef _SVSTDARR_HXX #define _SVSTDARR_STRINGSDTOR -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #endif #ifndef _MSGBOX_HXX //autogen #include <vcl/msgbox.hxx> #endif -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/fcontnr.hxx> #include <svx/linkmgr.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <sfx2/docfile.hxx> #ifndef _HELP_HXX //autogen #include <vcl/help.hxx> #endif #include <sot/filelist.hxx> -#include <svtools/eitem.hxx> -#include <svtools/urlbmk.hxx> +#include <svl/eitem.hxx> +#include <svl/urlbmk.hxx> #include <svtools/filter.hxx> #include <sfx2/docinsert.hxx> #include <sfx2/filedlghelper.hxx> @@ -728,7 +728,7 @@ void SwGlobalTree::Display(BOOL bOnlyUpdateUserData) { if(!bIsImageListInitialized) { - USHORT nResId = GetDisplayBackground().GetColor().IsDark() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; + USHORT nResId = GetSettings().GetStyleSettings().GetHighContrastMode() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; aEntryImages = ImageList(SW_RES(nResId)); bIsImageListInitialized = TRUE; } @@ -1396,7 +1396,7 @@ void SwGlobalTree::DataChanged( const DataChangedEvent& rDCEvt ) if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) { - USHORT nResId = GetDisplayBackground().GetColor().IsDark() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; + USHORT nResId = GetSettings().GetStyleSettings().GetHighContrastMode() ? IMG_NAVI_ENTRYBMPH : IMG_NAVI_ENTRYBMP; aEntryImages = ImageList(SW_RES(nResId)); Update(sal_True); } diff --git a/sw/source/ui/utlui/gloslst.cxx b/sw/source/ui/utlui/gloslst.cxx index 7072cb254274..5430c783acc7 100644 --- a/sw/source/ui/utlui/gloslst.cxx +++ b/sw/source/ui/utlui/gloslst.cxx @@ -36,7 +36,7 @@ #define _SVSTDARR_STRINGSDTOR #define _SVSTDARR_STRINGSISORTDTOR #define _SVSTDARR_STRINGS -#include <svtools/svstdarr.hxx> +#include <svl/svstdarr.hxx> #include <tools/urlobj.hxx> #include <vcl/dialog.hxx> #include <vcl/msgbox.hxx> @@ -48,9 +48,9 @@ #endif #include <vcl/lstbox.hxx> #ifndef SVTOOLS_FSTATHELPER_HXX -#include <svtools/fstathelper.hxx> +#include <svl/fstathelper.hxx> #endif -#include <svtools/pathoptions.hxx> +#include <unotools/pathoptions.hxx> #include <unotools/transliterationwrapper.hxx> #include <swtypes.hxx> #include <swmodule.hxx> diff --git a/sw/source/ui/utlui/initui.cxx b/sw/source/ui/utlui/initui.cxx index 275b49a4c9e4..ec3328676d2b 100644 --- a/sw/source/ui/utlui/initui.cxx +++ b/sw/source/ui/utlui/initui.cxx @@ -54,7 +54,7 @@ #ifndef _DBMGR_HXX #include <dbmgr.hxx> #endif -#include <svtools/syslocale.hxx> +#include <unotools/syslocale.hxx> #include <unomid.h> @@ -169,6 +169,7 @@ ShellResource::ShellResource() aStrAllPageHeadFoot( SW_RES( STR_ALLPAGE_HEADFOOT ) ), aStrNone( SW_RES( STR_TEMPLATE_NONE )), aFixedStr( SW_RES( STR_FIELD_FIXED )), + sDurationFormat( SW_RES( STR_DURATION_FORMAT )), aTOXIndexName( SW_RES(STR_TOI)), aTOXUserName( SW_RES(STR_TOU)), diff --git a/sw/source/ui/utlui/initui.hrc b/sw/source/ui/utlui/initui.hrc index 5e0c5092d6f6..6c3c0302dbbd 100644 --- a/sw/source/ui/utlui/initui.hrc +++ b/sw/source/ui/utlui/initui.hrc @@ -64,5 +64,6 @@ #define STR_PAGEDESC_FOLLOWNAME 27 #define STR_HYPERLINK_CLICK 28 #define STR_GETREFFLD_REFITEMNOTFOUND 29 +#define STR_DURATION_FORMAT 30 #endif diff --git a/sw/source/ui/utlui/initui.src b/sw/source/ui/utlui/initui.src index d8ebdfc7e64e..26b10dcd0804 100644 --- a/sw/source/ui/utlui/initui.src +++ b/sw/source/ui/utlui/initui.src @@ -112,6 +112,10 @@ Resource RID_SW_SHELLRES { Text [ en-US ] = "(fixed)" ; }; + String STR_DURATION_FORMAT + { + Text [en-US] = " Y: %1 M: %2 D: %3 H: %4 M: %5 S: %6"; + }; String STR_TOI { Text [ en-US ] = "Alphabetical Index" ; diff --git a/sw/source/ui/utlui/navicfg.cxx b/sw/source/ui/utlui/navicfg.cxx index 68383d7d28c2..e9ad48b6d6ea 100644 --- a/sw/source/ui/utlui/navicfg.cxx +++ b/sw/source/ui/utlui/navicfg.cxx @@ -139,3 +139,6 @@ void SwNavigationConfig::Commit() PutProperties(aNames, aValues); } +void SwNavigationConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} + + diff --git a/sw/source/ui/utlui/navipi.cxx b/sw/source/ui/utlui/navipi.cxx index eb3500ea59c4..96fe31edd500 100644 --- a/sw/source/ui/utlui/navipi.cxx +++ b/sw/source/ui/utlui/navipi.cxx @@ -37,10 +37,10 @@ #include <string> // HACK: prevent conflict between STLPORT and Workshop headers #include <tools/list.hxx> -#include <svtools/urlbmk.hxx> -#include <svtools/stritem.hxx> +#include <svl/urlbmk.hxx> +#include <svl/stritem.hxx> #include <svtools/filter.hxx> -#include <svtools/urihelper.hxx> +#include <svl/urihelper.hxx> #include <sot/formats.hxx> #include <sot/filelist.hxx> #include <sfx2/event.hxx> @@ -1034,8 +1034,8 @@ void SwNavigationPI::StateChanged( USHORT nSID, SfxItemState /*eState*/, aContentTree.SetActiveShell(pWrtShell); BOOL bGlobal = IsGlobalDoc(); aContentToolBox.EnableItem(FN_GLOBAL_SWITCH, bGlobal); - if(!bGlobal && IsGlobalMode() || - !IsGlobalMode() && pConfig->IsGlobalActive()) + if( (!bGlobal && IsGlobalMode()) || + (!IsGlobalMode() && pConfig->IsGlobalActive()) ) { ToggleTree(); } @@ -1375,7 +1375,7 @@ void SwNavigationPI::SetRegionDropMode(USHORT nNewMode) else if(nRegionMode == REGION_MODE_EMBEDDED) nDropId = FN_DROP_REGION_COPY; - ImageList& rImgLst = aContentToolBox.GetDisplayBackground().GetColor().IsDark() + ImageList& rImgLst = aContentToolBox.GetSettings().GetStyleSettings().GetHighContrastMode() ? aContentImageListH : aContentImageList; aContentToolBox.SetItemImage( FN_DROP_REGION, @@ -1531,7 +1531,7 @@ void SwNavigationPI::InitImageList() { USHORT k; - ImageList& rImgLst = aContentToolBox.GetDisplayBackground().GetColor().IsDark() ? + ImageList& rImgLst = aContentToolBox.GetSettings().GetStyleSettings().GetHighContrastMode() ? aContentImageListH : aContentImageList; for( k = 0; k < aContentToolBox.GetItemCount(); k++) aContentToolBox.SetItemImage(aContentToolBox.GetItemId(k), diff --git a/sw/source/ui/utlui/numfmtlb.cxx b/sw/source/ui/utlui/numfmtlb.cxx index 5a0030d9dd85..4581330ab393 100644 --- a/sw/source/ui/utlui/numfmtlb.cxx +++ b/sw/source/ui/utlui/numfmtlb.cxx @@ -40,14 +40,14 @@ #include <i18npool/lang.h> #ifndef _ZFORMAT_HXX //autogen #define _ZFORLIST_DECLARE_TABLE -#include <svtools/zformat.hxx> +#include <svl/zformat.hxx> #endif -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/svxids.hrc> #include <svx/numinf.hxx> #include <vcl/msgbox.hxx> #include <svx/flagsdef.hxx> -#include <svtools/itemset.hxx> +#include <svl/itemset.hxx> #include <docsh.hxx> #include <swtypes.hxx> #include <swmodule.hxx> diff --git a/sw/source/ui/utlui/swrenamexnameddlg.cxx b/sw/source/ui/utlui/swrenamexnameddlg.cxx index 85d8aa2cf7a6..283da9eaa129 100644 --- a/sw/source/ui/utlui/swrenamexnameddlg.cxx +++ b/sw/source/ui/utlui/swrenamexnameddlg.cxx @@ -57,7 +57,7 @@ #include <com/sun/star/container/XNameContainer.hpp> #include <comphelper/processfactory.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <shellio.hxx> #include <docsh.hxx> #include <view.hxx> diff --git a/sw/source/ui/utlui/tmplctrl.cxx b/sw/source/ui/utlui/tmplctrl.cxx index 0ba8740fb5b2..af89104265b3 100644 --- a/sw/source/ui/utlui/tmplctrl.cxx +++ b/sw/source/ui/utlui/tmplctrl.cxx @@ -34,11 +34,11 @@ // include --------------------------------------------------------------- -#include <svtools/style.hxx> +#include <svl/style.hxx> #ifndef _MENU_HXX //autogen #include <vcl/menu.hxx> #endif -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <sfx2/dispatch.hxx> #ifndef _STATUS_HXX //autogen #include <vcl/status.hxx> diff --git a/sw/source/ui/utlui/uitool.cxx b/sw/source/ui/utlui/uitool.cxx index cb6a3888d45f..4bd54affeed9 100644 --- a/sw/source/ui/utlui/uitool.cxx +++ b/sw/source/ui/utlui/uitool.cxx @@ -37,9 +37,9 @@ #include <tools/datetime.hxx> #include <vcl/svapp.hxx> #include <unotools/collatorwrapper.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/stritem.hxx> -#include <svtools/syslocale.hxx> +#include <svl/urihelper.hxx> +#include <svl/stritem.hxx> +#include <unotools/syslocale.hxx> #include <sfx2/app.hxx> #include <sfx2/docfile.hxx> #include <sfx2/docfilt.hxx> @@ -51,7 +51,7 @@ #include <svx/sizeitem.hxx> #include <svx/pageitem.hxx> #include <svx/lrspitem.hxx> -#include <svtools/style.hxx> +#include <svl/style.hxx> #ifndef _VCL_LSTBOX_HXX //autogen #include <vcl/lstbox.hxx> #endif diff --git a/sw/source/ui/utlui/unotools.cxx b/sw/source/ui/utlui/unotools.cxx index f2efc1d85a00..a7d06416b443 100644 --- a/sw/source/ui/utlui/unotools.cxx +++ b/sw/source/ui/utlui/unotools.cxx @@ -53,7 +53,7 @@ #include <com/sun/star/frame/XLayoutManager.hpp> #include <comphelper/processfactory.hxx> #include <sfx2/dispatch.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <shellio.hxx> #include <docsh.hxx> #include <view.hxx> diff --git a/sw/source/ui/utlui/viewlayoutctrl.cxx b/sw/source/ui/utlui/viewlayoutctrl.cxx index 2741b668844b..b7a4fdb033d6 100644 --- a/sw/source/ui/utlui/viewlayoutctrl.cxx +++ b/sw/source/ui/utlui/viewlayoutctrl.cxx @@ -38,7 +38,7 @@ #include <vcl/status.hxx> #endif #include <vcl/image.hxx> -#include <svtools/eitem.hxx> +#include <svl/eitem.hxx> #include <svx/viewlayoutitem.hxx> #ifndef _UTLUI_HRC #include <utlui.hrc> @@ -78,13 +78,13 @@ SwViewLayoutControl::SwViewLayoutControl( USHORT _nSlotId, USHORT _nId, StatusBa { mpImpl->mnState = 0; - const sal_Bool bIsDark = GetStatusBar().GetBackground().GetColor().IsDark(); - mpImpl->maImageSingleColumn = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_HC) : SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN) ); - mpImpl->maImageSingleColumn_Active = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_ACTIVE) ); - mpImpl->maImageAutomatic = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_HC) : SW_RES(IMG_VIEWLAYOUT_AUTOMATIC) ); - mpImpl->maImageAutomatic_Active = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_ACTIVE) ); - mpImpl->maImageBookMode = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_BOOKMODE_HC) : SW_RES(IMG_VIEWLAYOUT_BOOKMODE) ); - mpImpl->maImageBookMode_Active = Image( bIsDark ? SW_RES(IMG_VIEWLAYOUT_BOOKMODE_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_BOOKMODE_ACTIVE) ); + const sal_Bool bHC = GetStatusBar().GetSettings().GetStyleSettings().GetHighContrastMode(); + mpImpl->maImageSingleColumn = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_HC) : SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN) ); + mpImpl->maImageSingleColumn_Active = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_SINGLECOLUMN_ACTIVE) ); + mpImpl->maImageAutomatic = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_HC) : SW_RES(IMG_VIEWLAYOUT_AUTOMATIC) ); + mpImpl->maImageAutomatic_Active = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_AUTOMATIC_ACTIVE) ); + mpImpl->maImageBookMode = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_BOOKMODE_HC) : SW_RES(IMG_VIEWLAYOUT_BOOKMODE) ); + mpImpl->maImageBookMode_Active = Image( bHC ? SW_RES(IMG_VIEWLAYOUT_BOOKMODE_ACTIVE_HC) : SW_RES(IMG_VIEWLAYOUT_BOOKMODE_ACTIVE) ); } // ----------------------------------------------------------------------- diff --git a/sw/source/ui/utlui/zoomctrl.cxx b/sw/source/ui/utlui/zoomctrl.cxx index 1a76e5bc5ecc..08e552efee7f 100644 --- a/sw/source/ui/utlui/zoomctrl.cxx +++ b/sw/source/ui/utlui/zoomctrl.cxx @@ -39,7 +39,7 @@ #include <vcl/status.hxx> #endif #include <sfx2/app.hxx> -#include <svtools/stritem.hxx> +#include <svl/stritem.hxx> #include <svx/zoomitem.hxx> #include "swtypes.hxx" diff --git a/sw/source/ui/vba/makefile.mk b/sw/source/ui/vba/makefile.mk new file mode 100644 index 000000000000..f4c604f5d4eb --- /dev/null +++ b/sw/source/ui/vba/makefile.mk @@ -0,0 +1,111 @@ +#************************************************************************* +# +# 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: makefile.mk,v $ +# +# $Revision: 1.6 $ +# +# 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. +# +#************************************************************************* + +PRJ=..$/..$/.. + +PRJNAME=sw +TARGET=vbaswobj +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +DLLPRE = + +.IF "$(ENABLE_VBA)"!="YES" +dummy: + @echo "not building vba..." +.ENDIF + +INCPRE=$(INCCOM)$/$(TARGET) +CDEFS+=-DVBA_OOBUILD_HACK +# ------------------------------------------------------------------ + +SLOFILES= \ + $(SLO)$/vbaglobals.obj \ + $(SLO)$/vbaapplication.obj \ + $(SLO)$/vbadocument.obj \ + $(SLO)$/vbawindow.obj \ + $(SLO)$/vbasystem.obj \ + $(SLO)$/vbarangehelper.obj \ + $(SLO)$/vbarange.obj \ + $(SLO)$/vbabookmark.obj \ + $(SLO)$/vbabookmarks.obj \ + $(SLO)$/vbavariable.obj \ + $(SLO)$/vbavariables.obj \ + $(SLO)$/vbaview.obj \ + $(SLO)$/wordvbahelper.obj \ + $(SLO)$/service.obj \ + $(SLO)$/vbadocumentproperties.obj \ + $(SLO)$/vbapane.obj \ + $(SLO)$/vbapanes.obj \ + $(SLO)$/vbaoptions.obj \ + $(SLO)$/vbaselection.obj \ + $(SLO)$/vbatemplate.obj \ + $(SLO)$/vbaparagraphformat.obj \ + $(SLO)$/vbaautotextentry.obj \ + $(SLO)$/vbaparagraph.obj \ + $(SLO)$/vbafind.obj \ + $(SLO)$/vbareplacement.obj \ + $(SLO)$/vbastyle.obj \ + $(SLO)$/vbastyles.obj \ + $(SLO)$/vbafont.obj \ + $(SLO)$/vbapalette.obj \ + $(SLO)$/vbainformationhelper.obj \ + $(SLO)$/vbatable.obj \ + $(SLO)$/vbatables.obj \ + $(SLO)$/vbafield.obj \ + $(SLO)$/vbaborders.obj \ + $(SLO)$/vbadocuments.obj \ + $(SLO)$/vbaheaderfooter.obj \ + $(SLO)$/vbaheaderfooterhelper.obj \ + $(SLO)$/vbaaddin.obj \ + $(SLO)$/vbaaddins.obj \ + $(SLO)$/vbadialogs.obj \ + $(SLO)$/vbadialog.obj \ + $(SLO)$/vbawrapformat.obj \ + $(SLO)$/vbapagesetup.obj \ + $(SLO)$/vbasection.obj \ + $(SLO)$/vbasections.obj \ + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + +ALLTAR : \ + $(MISC)$/$(TARGET).don \ + +$(SLOFILES) : $(MISC)$/$(TARGET).don + +$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb + +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@ + echo $@ + diff --git a/sw/source/ui/vba/service.cxx b/sw/source/ui/vba/service.cxx new file mode 100644 index 000000000000..20b93a45a2ce --- /dev/null +++ b/sw/source/ui/vba/service.cxx @@ -0,0 +1,87 @@ +/************************************************************************* + * + * 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: service.cxx,v $ + * $Revision: 1.4 $ + * + * 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. + * + ************************************************************************/ +#include "cppuhelper/implementationentry.hxx" +#include "com/sun/star/lang/XMultiServiceFactory.hpp" +#include "com/sun/star/registry/XRegistryKey.hpp" +#include "comphelper/servicedecl.hxx" + +// ============================================================================= +// component exports +// ============================================================================= +using namespace ::com::sun::star; +using namespace ::com::sun::star::uno; + +namespace sdecl = comphelper::service_decl; + +namespace globals +{ +extern sdecl::ServiceDecl const serviceDecl; +} + +namespace document +{ +extern sdecl::ServiceDecl const serviceDecl; +} + +namespace wrapformat +{ +extern sdecl::ServiceDecl const serviceDecl; +} + +extern "C" +{ + void SAL_CALL component_getImplementationEnvironment( + const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ ) + { + OSL_TRACE("In component_getImplementationEnv"); + *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; + } + + sal_Bool SAL_CALL component_writeInfo( + lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey ) + { + OSL_TRACE("In component_writeInfo"); + + // Component registration + return component_writeInfoHelper( pServiceManager, pRegistryKey, + globals::serviceDecl, document::serviceDecl, wrapformat::serviceDecl ); + } + + void * SAL_CALL component_getFactory( + const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager, + registry::XRegistryKey * pRegistryKey ) + { + OSL_TRACE("In component_getFactory for %s", pImplName ); + void* pRet = component_getFactoryHelper( + pImplName, pServiceManager, pRegistryKey, globals::serviceDecl, document::serviceDecl, wrapformat::serviceDecl ); + OSL_TRACE("Ret is 0x%x", pRet); + return pRet; + } +} diff --git a/sw/source/ui/vba/vbaaddin.cxx b/sw/source/ui/vba/vbaaddin.cxx new file mode 100644 index 000000000000..beac56b63cb6 --- /dev/null +++ b/sw/source/ui/vba/vbaaddin.cxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaaddin.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include <tools/urlobj.hxx> +#include <osl/file.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaAddin::SwVbaAddin( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const rtl::OUString& rFileURL, sal_Bool bAutoload ) throw ( uno::RuntimeException ) : + SwVbaAddin_BASE( rParent, rContext ), msFileURL( rFileURL ), mbAutoload( bAutoload ), mbInstalled( bAutoload ) +{ +} + +SwVbaAddin::~SwVbaAddin() +{ +} + +::rtl::OUString SAL_CALL SwVbaAddin::getName() throw (uno::RuntimeException) +{ + rtl::OUString sName; + INetURLObject aURL( msFileURL ); + ::osl::File::getSystemPathFromFileURL( aURL.GetLastName(), sName ); + return sName; +} + +void SAL_CALL +SwVbaAddin::setName( const rtl::OUString& ) throw ( css::uno::RuntimeException ) +{ + throw uno::RuntimeException( rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM(" Fail to set name")), uno::Reference< uno::XInterface >() ); +} + +::rtl::OUString SAL_CALL SwVbaAddin::getPath() throw (uno::RuntimeException) +{ + INetURLObject aURL( msFileURL ); + aURL.CutLastName(); + return aURL.GetURLPath(); +} + +::sal_Bool SAL_CALL SwVbaAddin::getAutoload() throw (uno::RuntimeException) +{ + return mbAutoload; +} + +::sal_Bool SAL_CALL SwVbaAddin::getInstalled() throw (uno::RuntimeException) +{ + return mbInstalled; +} + +void SAL_CALL SwVbaAddin::setInstalled( ::sal_Bool _installed ) throw (uno::RuntimeException) +{ + if( _installed != mbInstalled ) + { + mbInstalled = _installed; + // TODO: should call AutoExec and AutoExit etc. + } +} + +rtl::OUString& +SwVbaAddin::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaAddin") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaAddin::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Addin" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbaaddin.hxx b/sw/source/ui/vba/vbaaddin.hxx new file mode 100644 index 000000000000..753d9584cc6d --- /dev/null +++ b/sw/source/ui/vba/vbaaddin.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_ADDIN_HXX +#define SW_VBA_ADDIN_HXX + +#include <ooo/vba/word/XAddin.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XAddin > SwVbaAddin_BASE; + +class SwVbaAddin : public SwVbaAddin_BASE +{ +private: + rtl::OUString msFileURL; + sal_Bool mbAutoload; + sal_Bool mbInstalled; + +public: + SwVbaAddin( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const rtl::OUString& rFileURL, sal_Bool bAutoload ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaAddin(); + + // Attributes + virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException); + virtual void SAL_CALL setName( const rtl::OUString& _name ) throw (css::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getPath() throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoload() throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getInstalled() throw (css::uno::RuntimeException); + virtual void SAL_CALL setInstalled( ::sal_Bool _installed ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_ADDIN_HXX */ diff --git a/sw/source/ui/vba/vbaaddins.cxx b/sw/source/ui/vba/vbaaddins.cxx new file mode 100644 index 000000000000..0457388af1de --- /dev/null +++ b/sw/source/ui/vba/vbaaddins.cxx @@ -0,0 +1,110 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaaddins.hxx" +#include "vbaaddin.hxx" +#include <cppuhelper/implbase3.hxx> +#include <unotools/pathoptions.hxx> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/ucb/XSimpleFileAccess.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +uno::Reference< container::XIndexAccess > lcl_getAddinCollection( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext ) +{ + XNamedObjectCollectionHelper< word::XAddin >::XNamedVec maAddins; + + // first get the autoload addins in the directory STARTUP + uno::Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager(), uno::UNO_QUERY_THROW ); + uno::Reference< ucb::XSimpleFileAccess > xSFA( xMCF->createInstanceWithContext( rtl::OUString::createFromAscii( "com.sun.star.ucb.SimpleFileAccess" ), xContext), uno::UNO_QUERY_THROW ); + SvtPathOptions aPathOpt; + // FIXME: temporary the STARTUP path is located in $OO/basic3.1/program/addin + String aAddinPath = aPathOpt.GetAddinPath(); + OSL_TRACE("lcl_getAddinCollection: %s", rtl::OUStringToOString( aAddinPath, RTL_TEXTENCODING_UTF8 ).getStr() ); + if( xSFA->isFolder( aAddinPath ) ) + { + uno::Sequence< rtl::OUString > sEntries = xSFA->getFolderContents( aAddinPath, sal_False ); + sal_Int32 nEntry = sEntries.getLength(); + for( sal_Int32 index = 0; index < nEntry; ++index ) + { + rtl::OUString sUrl = sEntries[ index ]; + if( !xSFA->isFolder( sUrl ) && sUrl.endsWithIgnoreAsciiCaseAsciiL( ".dot", 4 ) ) + { + maAddins.push_back( uno::Reference< word::XAddin >( new SwVbaAddin( xParent, xContext, sUrl, sal_True ) ) ); + } + } + } + + // TODO: second get the customize addins in the org.openoffice.Office.Writer/GlobalTemplateList + + uno::Reference< container::XIndexAccess > xAddinsAccess( new XNamedObjectCollectionHelper< word::XAddin >( maAddins ) ); + return xAddinsAccess; +} + +SwVbaAddins::SwVbaAddins( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext ) throw (uno::RuntimeException): SwVbaAddins_BASE( xParent, xContext, lcl_getAddinCollection( xParent,xContext ) ) +{ +} +// XEnumerationAccess +uno::Type +SwVbaAddins::getElementType() throw (uno::RuntimeException) +{ + return word::XAddin::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaAddins::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumerationAccess->createEnumeration(); +} + +uno::Any +SwVbaAddins::createCollectionObject( const css::uno::Any& aSource ) +{ + return aSource; +} + +rtl::OUString& +SwVbaAddins::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaAddins") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaAddins::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Addins") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbaaddins.hxx b/sw/source/ui/vba/vbaaddins.hxx new file mode 100644 index 000000000000..a78b3a6d32d0 --- /dev/null +++ b/sw/source/ui/vba/vbaaddins.hxx @@ -0,0 +1,55 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_ADDINS_HXX +#define SW_VBA_ADDINS_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XAddins.hpp> +#include <vbahelper/vbahelperinterface.hxx> + +typedef CollTestImplHelper< ooo::vba::word::XAddins > SwVbaAddins_BASE; + +class SwVbaAddins : public SwVbaAddins_BASE +{ +public: + SwVbaAddins( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext ) throw (css::uno::RuntimeException); + virtual ~SwVbaAddins() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaAddins_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_ADDINS_HXX */ diff --git a/sw/source/ui/vba/vbaapplication.cxx b/sw/source/ui/vba/vbaapplication.cxx new file mode 100644 index 000000000000..1ad6539c86aa --- /dev/null +++ b/sw/source/ui/vba/vbaapplication.cxx @@ -0,0 +1,206 @@ +/************************************************************************* + * + * 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: vbaapplication.cxx,v $ + * $Revision: 1.7 $ + * + * 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. + * + ************************************************************************/ +#include <stdio.h> +#include "vbaapplication.hxx" +#include "vbadocument.hxx" +#include <osl/file.hxx> +#include <vbahelper/vbahelper.hxx> +#include "vbawindow.hxx" +#include "vbasystem.hxx" +#include "vbaoptions.hxx" +#include "vbaselection.hxx" +#include "vbadocuments.hxx" +#include "vbaaddins.hxx" +#include "vbadialogs.hxx" +#include <ooo/vba/word/WdEnableCancelKey.hpp> +#include <svx/acorrcfg.hxx> +#include "wordvbahelper.hxx" +#include <docsh.hxx> + +using namespace ::ooo; +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +using ::com::sun::star::uno::Reference; +using ::com::sun::star::uno::UNO_QUERY_THROW; +using ::com::sun::star::uno::UNO_QUERY; +using ::rtl::OUString; + +// Enable our own join detection for Intersection and Union +// should be more efficient than using ScRangeList::Join ( because +// we already are testing the same things ) + +#define OWN_JOIN 1 + +// #TODO is this defined somewhere else? +#if ( defined UNX ) || ( defined OS2 ) //unix +#define FILE_PATH_SEPERATOR "/" +#else // windows +#define FILE_PATH_SEPERATOR "\\" +#endif + +#define EXCELVERSION "11.0" + +uno::Any sbxToUnoValue( SbxVariable* pVar ); + +SwVbaApplication::SwVbaApplication( uno::Reference<uno::XComponentContext >& xContext ): SwVbaApplication_BASE( xContext ) +{ +} + +SwVbaApplication::~SwVbaApplication() +{ +} + +SfxObjectShell* SwVbaApplication::GetDocShell( const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) +{ + return static_cast< SfxObjectShell* >( word::getDocShell( xModel ) ); +} + +rtl::OUString SAL_CALL +SwVbaApplication::getName() throw (uno::RuntimeException) +{ + static rtl::OUString appName( RTL_CONSTASCII_USTRINGPARAM("Microsoft Word" ) ); + return appName; +} + +uno::Reference< word::XDocument > SAL_CALL +SwVbaApplication::getActiveDocument() throw (uno::RuntimeException) +{ + return new SwVbaDocument( this, mxContext, getCurrentDocument() ); +} + +uno::Reference< word::XWindow > SAL_CALL +SwVbaApplication::getActiveWindow() throw (uno::RuntimeException) +{ + // #FIXME sofar can't determine Parent + return new SwVbaWindow( uno::Reference< XHelperInterface >(), mxContext, getCurrentDocument() ); +} + +uno::Reference<word::XSystem > SAL_CALL +SwVbaApplication::getSystem() throw (uno::RuntimeException) +{ + return uno::Reference< word::XSystem >( new SwVbaSystem( mxContext ) ); +} + +uno::Reference<word::XOptions > SAL_CALL +SwVbaApplication::getOptions() throw (uno::RuntimeException) +{ + return uno::Reference< word::XOptions >( new SwVbaOptions( mxContext ) ); +} + +uno::Any SAL_CALL +SwVbaApplication::CommandBars( const uno::Any& aIndex ) throw (uno::RuntimeException) +{ + return VbaApplicationBase::CommandBars( aIndex ); +} + +uno::Reference< word::XSelection > SAL_CALL +SwVbaApplication::getSelection() throw (uno::RuntimeException) +{ + return new SwVbaSelection( this, mxContext, getCurrentDocument() ); +} + +uno::Any SAL_CALL +SwVbaApplication::Documents( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaDocuments( this, mxContext ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaApplication::Addins( const uno::Any& index ) throw (uno::RuntimeException) +{ + static uno::Reference< XCollection > xCol( new SwVbaAddins( this, mxContext ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaApplication::Dialogs( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< word::XDialogs > xCol( new SwVbaDialogs( this, mxContext, getCurrentDocument() )); + if ( index.hasValue() ) + return xCol->Item( index ); + return uno::makeAny( xCol ); +} + +sal_Bool SAL_CALL SwVbaApplication::getDisplayAutoCompleteTips() throw (css::uno::RuntimeException) +{ + return SvxAutoCorrCfg::Get()->IsAutoTextTip(); +} + +void SAL_CALL SwVbaApplication::setDisplayAutoCompleteTips( sal_Bool _displayAutoCompleteTips ) throw (css::uno::RuntimeException) +{ + SvxAutoCorrCfg::Get()->SetAutoTextTip( _displayAutoCompleteTips ); +} + +sal_Int32 SAL_CALL SwVbaApplication::getEnableCancelKey() throw (css::uno::RuntimeException) +{ + // the default value is wdCancelInterrupt in Word + return word::WdEnableCancelKey::wdCancelInterrupt; +} + +void SAL_CALL SwVbaApplication::setEnableCancelKey( sal_Int32/* _enableCancelKey */) throw (css::uno::RuntimeException) +{ + // seems not supported in Writer +} + +float SAL_CALL SwVbaApplication::CentimetersToPoints( float _Centimeters ) throw (uno::RuntimeException) +{ + return VbaApplicationBase::CentimetersToPoints( _Centimeters ); +} + +uno::Reference< frame::XModel > +SwVbaApplication::getCurrentDocument() throw (css::uno::RuntimeException) +{ + return getCurrentWordDoc( mxContext ); +} + +rtl::OUString& +SwVbaApplication::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaApplication") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaApplication::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Application" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbaapplication.hxx b/sw/source/ui/vba/vbaapplication.hxx new file mode 100644 index 000000000000..c563cf99b965 --- /dev/null +++ b/sw/source/ui/vba/vbaapplication.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * 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: vbaapplication.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_APPLICATION_HXX +#define SW_VBA_APPLICATION_HXX + +#include <ooo/vba/word/XApplication.hpp> +#include <ooo/vba/word/XDocument.hpp> +#include <ooo/vba/word/XWindow.hpp> +#include <ooo/vba/word/XSystem.hpp> +#include <ooo/vba/word/XOptions.hpp> +#include <ooo/vba/word/XSelection.hpp> +#include <ooo/vba/word/XAddins.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbaapplicationbase.hxx> +#include <cppuhelper/implbase1.hxx> + +//typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XApplication > SwVbaApplication_BASE; +typedef cppu::ImplInheritanceHelper1< VbaApplicationBase, ooo::vba::word::XApplication > SwVbaApplication_BASE; + +class SwVbaApplication : public SwVbaApplication_BASE +{ +public: + SwVbaApplication( css::uno::Reference< css::uno::XComponentContext >& m_xContext ); + virtual ~SwVbaApplication(); + + virtual SfxObjectShell* GetDocShell( const css::uno::Reference< css::frame::XModel >& xModel ) throw (css::uno::RuntimeException); + + // XApplication + virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XSystem > SAL_CALL getSystem() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ov::word::XDocument > SAL_CALL getActiveDocument() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ov::word::XWindow > SAL_CALL getActiveWindow() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XOptions > SAL_CALL getOptions() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XSelection > SAL_CALL getSelection() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL CommandBars( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Documents( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Addins( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Dialogs( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual sal_Bool SAL_CALL getDisplayAutoCompleteTips() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDisplayAutoCompleteTips( sal_Bool _displayAutoCompleteTips ) throw (css::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getEnableCancelKey() throw (css::uno::RuntimeException); + virtual void SAL_CALL setEnableCancelKey( sal_Int32 _enableCancelKey ) throw (css::uno::RuntimeException); + virtual float SAL_CALL CentimetersToPoints( float _Centimeters ) throw (css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +protected: + virtual css::uno::Reference< css::frame::XModel > getCurrentDocument() throw (css::uno::RuntimeException); +}; +#endif /* SW_VBA_APPLICATION_HXX */ diff --git a/sw/source/ui/vba/vbaautotextentry.cxx b/sw/source/ui/vba/vbaautotextentry.cxx new file mode 100644 index 000000000000..5d604f47bbf9 --- /dev/null +++ b/sw/source/ui/vba/vbaautotextentry.cxx @@ -0,0 +1,129 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaautotextentry.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbarange.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaAutoTextEntry::SwVbaAutoTextEntry( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XAutoTextEntry >& xEntry ) throw ( uno::RuntimeException ) : + SwVbaAutoTextEntry_BASE( rParent, rContext ), mxEntry( xEntry ) +{ +} + +SwVbaAutoTextEntry::~SwVbaAutoTextEntry() +{ +} + +uno::Reference< word::XRange > SAL_CALL SwVbaAutoTextEntry::Insert( const uno::Reference< word::XRange >& _where, const uno::Any& /*_richtext*/ ) throw ( uno::RuntimeException ) +{ + SwVbaRange* pWhere = dynamic_cast<SwVbaRange*>( _where.get() ); + if( pWhere ) + { + uno::Reference< text::XTextRange > xTextRange = pWhere->getXTextRange(); + xTextRange->setString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("x") ) ); // set marker + uno::Reference< text::XTextRange > xEndMarker = xTextRange->getEnd(); + xEndMarker->setString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("x") ) ); // set marker + uno::Reference< text::XText > xText = pWhere->getXText(); + mxEntry->applyTo( xEndMarker->getStart() ); + uno::Reference< text::XTextCursor > xTC = xText->createTextCursorByRange( xTextRange->getStart() ); + xTC->goRight( 1, sal_True ); + xTC->setString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("") ) ); // remove marker + xEndMarker->setString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("") ) ); // remove marker + xTC->gotoRange( xEndMarker, sal_True ); + pWhere->setXTextCursor( xTC ); + } + return uno::Reference< word::XRange >( pWhere ); +} + +rtl::OUString& +SwVbaAutoTextEntry::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaAutoTextEntry") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaAutoTextEntry::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.AutoTextEntry" ) ); + } + return aServiceNames; +} + + +SwVbaAutoTextEntries::SwVbaAutoTextEntries( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ) throw (uno::RuntimeException) : SwVbaAutoTextEntries_BASE( xParent, xContext, xIndexAccess ), mxAutoTextEntryAccess( xIndexAccess ) +{ +} + +// XEnumerationAccess +uno::Type +SwVbaAutoTextEntries::getElementType() throw (uno::RuntimeException) +{ + return word::XAutoTextEntry::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaAutoTextEntries::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumerationAccess->createEnumeration(); +} + +uno::Any +SwVbaAutoTextEntries::createCollectionObject( const css::uno::Any& aSource ) +{ + uno::Reference< text::XAutoTextEntry > xEntry( aSource, uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XAutoTextEntry >( new SwVbaAutoTextEntry( this, mxContext, xEntry ) ) ); +} + +rtl::OUString& +SwVbaAutoTextEntries::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaAutoTextEntries") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaAutoTextEntries::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.AutoTextEntries") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbaautotextentry.hxx b/sw/source/ui/vba/vbaautotextentry.hxx new file mode 100644 index 000000000000..f86f5a4d657d --- /dev/null +++ b/sw/source/ui/vba/vbaautotextentry.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_AUTOTEXTENTRY_HXX +#define SW_VBA_AUTOTEXTENTRY_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XAutoTextEntries.hpp> +#include <ooo/vba/word/XAutoTextEntry.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <ooo/vba/word/XRange.hpp> +#include <com/sun/star/text/XAutoTextEntry.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XAutoTextEntry > SwVbaAutoTextEntry_BASE; + +class SwVbaAutoTextEntry : public SwVbaAutoTextEntry_BASE +{ +private: + css::uno::Reference< css::text::XAutoTextEntry > mxEntry; + +public: + SwVbaAutoTextEntry( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XAutoTextEntry >& xEntry ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaAutoTextEntry(); + + // XAutoTextEntry + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL Insert( const css::uno::Reference< ooo::vba::word::XRange >& _where, const css::uno::Any& _richtext ) throw ( css::uno::RuntimeException ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + + +/* class SwVbaAutoTextEntries */ +typedef CollTestImplHelper< ooo::vba::word::XAutoTextEntries > SwVbaAutoTextEntries_BASE; + +class SwVbaAutoTextEntries : public SwVbaAutoTextEntries_BASE +{ +private: + css::uno::Reference< css::container::XIndexAccess > mxAutoTextEntryAccess; + +public: + SwVbaAutoTextEntries( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) throw (css::uno::RuntimeException); + virtual ~SwVbaAutoTextEntries() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaAutoTextEntries_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_AUTOTEXTENTRY_HXX */ diff --git a/sw/source/ui/vba/vbabookmark.cxx b/sw/source/ui/vba/vbabookmark.cxx new file mode 100644 index 000000000000..d5737a040cdc --- /dev/null +++ b/sw/source/ui/vba/vbabookmark.cxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbabookmark.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextContent.hpp> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include "vbarange.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaBookmark::SwVbaBookmark( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, + const css::uno::Reference< frame::XModel >& rModel, const rtl::OUString& rName ) throw ( css::uno::RuntimeException ) : + SwVbaBookmark_BASE( rParent, rContext ), mxModel( rModel ), maName( rName ), mbValid( sal_True ) +{ + uno::Reference< text::XBookmarksSupplier > xBookmarksSupplier( mxModel, uno::UNO_QUERY_THROW ); + mxBookmark.set( xBookmarksSupplier->getBookmarks()->getByName( maName ), uno::UNO_QUERY_THROW ); +} + +SwVbaBookmark::~SwVbaBookmark() +{ +} + +void SwVbaBookmark::checkVality() throw ( uno::RuntimeException ) +{ + if( !mbValid ) + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("The bookmark is not valid" ) ), uno::Reference< uno::XInterface >() ); +} + +void SAL_CALL SwVbaBookmark::Delete() throw ( uno::RuntimeException ) +{ + checkVality(); + uno::Reference< text::XTextDocument > xTextDocument( mxModel, uno::UNO_QUERY_THROW ); + xTextDocument->getText()->removeTextContent( mxBookmark ); + mbValid = sal_False; +} + +void SAL_CALL SwVbaBookmark::Select() throw ( uno::RuntimeException ) +{ + checkVality(); + uno::Reference< text::XTextViewCursorSupplier > xViewCursorSupplier( mxModel->getCurrentController(), uno::UNO_QUERY_THROW ); + xViewCursorSupplier->getViewCursor()->gotoRange( mxBookmark->getAnchor(),sal_False ); +} + +rtl::OUString SAL_CALL SwVbaBookmark::getName() throw ( uno::RuntimeException ) +{ + return maName; +} + +void SAL_CALL SwVbaBookmark::setName( const rtl::OUString& _name ) throw ( uno::RuntimeException ) +{ + uno::Reference< container::XNamed > xNamed( mxBookmark, uno::UNO_QUERY_THROW ); + xNamed->setName( _name ); +} + +uno::Any SAL_CALL SwVbaBookmark::Range() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextContent > xTextContent( mxBookmark, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextDocument > xTextDocument( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextRange > xTextRange( xTextContent->getAnchor(), uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XRange>( new SwVbaRange( this, mxContext, xTextDocument, xTextRange->getStart(), xTextRange->getEnd(), xTextRange->getText() ) ) ); +} + +rtl::OUString& +SwVbaBookmark::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBookmark") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaBookmark::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Bookmark" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbabookmark.hxx b/sw/source/ui/vba/vbabookmark.hxx new file mode 100644 index 000000000000..76220ab3ccbe --- /dev/null +++ b/sw/source/ui/vba/vbabookmark.hxx @@ -0,0 +1,68 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_BOOKMARK_HXX +#define SW_VBA_BOOKMARK_HXX + +#include <ooo/vba/word/XBookmark.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/text/XBookmarksSupplier.hpp> +#include <com/sun/star/text/XTextContent.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XBookmark > SwVbaBookmark_BASE; + +class SwVbaBookmark : public SwVbaBookmark_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::text::XTextContent > mxBookmark; + rtl::OUString maName; + sal_Bool mbValid; + +private: + void checkVality() throw ( css::uno::RuntimeException ); + +public: + SwVbaBookmark( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, + const css::uno::Reference< css::frame::XModel >& rModel, const rtl::OUString& rName ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaBookmark(); + + // Methods + virtual rtl::OUString SAL_CALL getName() throw ( css::uno::RuntimeException ); + virtual void SAL_CALL setName( const rtl::OUString& ) throw ( css::uno::RuntimeException ); + virtual void SAL_CALL Delete() throw ( css::uno::RuntimeException ); + virtual void SAL_CALL Select() throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL Range() throw ( css::uno::RuntimeException ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_BOOKMARK_HXX */ diff --git a/sw/source/ui/vba/vbabookmarks.cxx b/sw/source/ui/vba/vbabookmarks.cxx new file mode 100644 index 000000000000..f54460f75435 --- /dev/null +++ b/sw/source/ui/vba/vbabookmarks.cxx @@ -0,0 +1,240 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbabookmarks.hxx" +#include "vbabookmark.hxx" +#include <com/sun/star/container/XNamed.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <ooo/vba/word/WdBookmarkSortBy.hpp> +#include "vbarange.hxx" +#include "wordvbahelper.hxx" +#include <cppuhelper/implbase2.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +class BookmarksEnumeration : public EnumerationHelperImpl +{ + uno::Reference< frame::XModel > mxModel; + uno::WeakReference< XHelperInterface > mxParent; +public: + BookmarksEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), mxModel( xModel ), mxParent( xParent ) {} + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + uno::Reference< container::XNamed > xNamed( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW ); + rtl::OUString aName = xNamed->getName(); + return uno::makeAny( uno::Reference< word::XBookmark > ( new SwVbaBookmark( mxParent, m_xContext, mxModel, aName ) ) ); + } + +}; + +// Bookmarks use case-insensitive name lookup in MS Word. +typedef ::cppu::WeakImplHelper2< container::XNameAccess, container::XIndexAccess > BookmarkCollectionHelper_BASE; +class BookmarkCollectionHelper : public BookmarkCollectionHelper_BASE +{ +private: + uno::Reference< container::XNameAccess > mxNameAccess; + uno::Reference< container::XIndexAccess > mxIndexAccess; + uno::Any cachePos; +public: + BookmarkCollectionHelper( const uno::Reference< container::XIndexAccess >& xIndexAccess ) throw (uno::RuntimeException) : mxIndexAccess( xIndexAccess ) + { + mxNameAccess.set( mxIndexAccess, uno::UNO_QUERY_THROW ); + } + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) { return mxIndexAccess->getElementType(); } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) { return mxIndexAccess->hasElements(); } + // XNameAcess + virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasByName(aName) ) + throw container::NoSuchElementException(); + return cachePos; + } + virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException) + { + return mxNameAccess->getElementNames(); + } + virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException) + { + if( mxNameAccess->hasByName( aName ) ) + { + cachePos = mxNameAccess->getByName( aName ); + return sal_True; + } + else + { + for( sal_Int32 nIndex = 0; nIndex < mxIndexAccess->getCount(); nIndex++ ) + { + uno::Reference< container::XNamed > xNamed( mxIndexAccess->getByIndex( nIndex ), uno::UNO_QUERY_THROW ); + rtl::OUString aBookmarkName = xNamed->getName(); + if( aName.equalsIgnoreAsciiCase( aBookmarkName ) ) + { + cachePos <<= xNamed; + return sal_True; + } + } + } + return sal_False; + } + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return mxIndexAccess->getCount(); + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException ) + { + return mxIndexAccess->getByIndex( Index ); + } +}; + +SwVbaBookmarks::SwVbaBookmarks( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< container::XIndexAccess >& xBookmarks, const uno::Reference< frame::XModel >& xModel ): SwVbaBookmarks_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( new BookmarkCollectionHelper( xBookmarks ) ) ), mxModel( xModel ) +{ + mxBookmarksSupplier.set( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextDocument > xDocument( mxModel, uno::UNO_QUERY_THROW ); + // use view cursor to insert bookmark, or it will fail if insert bookmark in table + // mxText = xDocument->getText(); + mxText = word::getXTextViewCursor( mxModel )->getText(); +} +// XEnumerationAccess +uno::Type +SwVbaBookmarks::getElementType() throw (uno::RuntimeException) +{ + return word::XBookmark::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaBookmarks::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return new BookmarksEnumeration( getParent(), mxContext,xEnumAccess->createEnumeration(), mxModel ); +} + +uno::Any +SwVbaBookmarks::createCollectionObject( const css::uno::Any& aSource ) +{ + uno::Reference< container::XNamed > xNamed( aSource, uno::UNO_QUERY_THROW ); + rtl::OUString aName = xNamed->getName(); + return uno::makeAny( uno::Reference< word::XBookmark > ( new SwVbaBookmark( getParent(), mxContext, mxModel, aName ) ) ); +} + +void SwVbaBookmarks::removeBookmarkByName( const rtl::OUString& rName ) throw (uno::RuntimeException) +{ + uno::Reference< text::XTextContent > xBookmark( m_xNameAccess->getByName( rName ), uno::UNO_QUERY_THROW ); + mxText->removeTextContent( xBookmark ); +} + +void SwVbaBookmarks::addBookmarkByName( const rtl::OUString& rName, const uno::Reference< text::XTextRange >& rTextRange ) throw (uno::RuntimeException) +{ + uno::Reference< lang::XMultiServiceFactory > xDocMSF( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextContent > xBookmark( xDocMSF->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Bookmark")) ), uno::UNO_QUERY_THROW ); + uno::Reference< container::XNamed > xNamed( xBookmark, uno::UNO_QUERY_THROW ); + xNamed->setName( rName ); + mxText->insertTextContent( rTextRange, xBookmark, sal_False ); +} + +uno::Any SAL_CALL +SwVbaBookmarks::Add( const rtl::OUString& rName, const uno::Any& rRange ) throw (uno::RuntimeException) +{ + uno::Reference< text::XTextRange > xTextRange; + uno::Reference< word::XRange > xRange; + if( rRange >>= xRange ) + { + SwVbaRange* pRange = dynamic_cast< SwVbaRange* >( xRange.get() ); + if( pRange ) + xTextRange = pRange->getXTextRange(); + } + else + { + // FIXME: insert the bookmark into current view cursor + xTextRange.set( word::getXTextViewCursor( mxModel ), uno::UNO_QUERY_THROW ); + } + + // remove the exist bookmark + // rtl::OUString aName = rName.toAsciiLowerCase(); + rtl::OUString aName = rName; + if( m_xNameAccess->hasByName( aName ) ) + removeBookmarkByName( aName ); + + addBookmarkByName( aName, xTextRange ); + + return uno::makeAny( uno::Reference< word::XBookmark >( new SwVbaBookmark( getParent(), mxContext, mxModel, aName ) ) ); +} + +sal_Int32 SAL_CALL +SwVbaBookmarks::getDefaultSorting() throw (css::uno::RuntimeException) +{ + return word::WdBookmarkSortBy::wdSortByName; +} + +void SAL_CALL +SwVbaBookmarks::setDefaultSorting( sal_Int32/* _type*/ ) throw (css::uno::RuntimeException) +{ + // not support in Writer +} + +sal_Bool SAL_CALL +SwVbaBookmarks::getShowHidden() throw (css::uno::RuntimeException) +{ + return sal_True; +} + +void SAL_CALL +SwVbaBookmarks::setShowHidden( sal_Bool /*_hidden*/ ) throw (css::uno::RuntimeException) +{ + // not support in Writer +} + +sal_Bool SAL_CALL +SwVbaBookmarks::Exists( const rtl::OUString& rName ) throw (css::uno::RuntimeException) +{ + sal_Bool bExist = m_xNameAccess->hasByName( rName ); + return bExist; +} + +rtl::OUString& +SwVbaBookmarks::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBookmarks") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaBookmarks::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Bookmarks") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbabookmarks.hxx b/sw/source/ui/vba/vbabookmarks.hxx new file mode 100644 index 000000000000..f9bbc18903be --- /dev/null +++ b/sw/source/ui/vba/vbabookmarks.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_BOOKMARKS_HXX +#define SW_VBA_BOOKMARKS_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XBookmarks.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XBookmarksSupplier.hpp> +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/text/XText.hpp> + +typedef CollTestImplHelper< ooo::vba::word::XBookmarks > SwVbaBookmarks_BASE; + +class SwVbaBookmarks : public SwVbaBookmarks_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::text::XBookmarksSupplier > mxBookmarksSupplier; + css::uno::Reference< css::text::XText > mxText; + +private: + void removeBookmarkByName( const rtl::OUString& rName ) throw (css::uno::RuntimeException); + void addBookmarkByName( const rtl::OUString& rName, const css::uno::Reference< css::text::XTextRange >& rTextRange ) throw (css::uno::RuntimeException); + +public: + SwVbaBookmarks( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XIndexAccess >& xBookmarks, const css::uno::Reference< css::frame::XModel >& xModel ); + virtual ~SwVbaBookmarks() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaBookmarks_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); + + // XBookmarks + virtual sal_Int32 SAL_CALL getDefaultSorting() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDefaultSorting( sal_Int32 _type ) throw (css::uno::RuntimeException); + virtual sal_Bool SAL_CALL getShowHidden() throw (css::uno::RuntimeException); + virtual void SAL_CALL setShowHidden( sal_Bool _hidden ) throw (css::uno::RuntimeException); + + virtual css::uno::Any SAL_CALL Add( const rtl::OUString& rName, const css::uno::Any& rRange ) throw (css::uno::RuntimeException); + virtual sal_Bool SAL_CALL Exists( const rtl::OUString& rName ) throw (css::uno::RuntimeException); +}; + +#endif /* SW_VBA_BOOKMARKS_HXX */ diff --git a/sw/source/ui/vba/vbaborders.cxx b/sw/source/ui/vba/vbaborders.cxx new file mode 100644 index 000000000000..e02c64b3284e --- /dev/null +++ b/sw/source/ui/vba/vbaborders.cxx @@ -0,0 +1,381 @@ +/************************************************************************* + * + * 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: vbaborders.cxx,v $ + * $Revision: 1.6 $ + * + * 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. + * + ************************************************************************/ +#include "vbaborders.hxx" +#include <ooo/vba/word/XBorder.hpp> +#include <ooo/vba/word/WdBorderType.hpp> +#include <ooo/vba/word/WdLineStyle.hpp> +#include <cppuhelper/implbase3.hxx> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/table/TableBorder.hpp> +#include <com/sun/star/table/ShadowFormat.hpp> +#include <com/sun/star/table/ShadowLocation.hpp> +#include "vbapalette.hxx" + +using namespace ::com::sun::star; +using namespace ::ooo::vba; + + +typedef ::cppu::WeakImplHelper1<container::XIndexAccess > RangeBorders_Base; +typedef InheritedHelperInterfaceImpl1<word::XBorder > SwVbaBorder_Base; + +// #TODO sort these indexes to match the order in which Word iterates over the +// borders, the enumeration will match the order in this list +static const sal_Int16 supportedIndexTable[] = { word::WdBorderType::wdBorderBottom, word::WdBorderType::wdBorderDiagonalDown, word::WdBorderType::wdBorderDiagonalUp, word::WdBorderType::wdBorderHorizontal, word::WdBorderType::wdBorderLeft, word::WdBorderType::wdBorderRight, word::WdBorderType::wdBorderTop, word::WdBorderType::wdBorderVertical }; + +const static rtl::OUString sTableBorder( RTL_CONSTASCII_USTRINGPARAM("TableBorder") ); + +// Equiv widths in in 1/100 mm +const static sal_Int32 OOLineThin = 35; +const static sal_Int32 OOLineMedium = 88; +const static sal_Int32 OOLineThick = 141; +const static sal_Int32 OOLineHairline = 2; + +class SwVbaBorder : public SwVbaBorder_Base +{ +private: + uno::Reference< beans::XPropertySet > m_xProps; + sal_Int32 m_LineType; + VbaPalette m_Palette; + bool setBorderLine( table::BorderLine& rBorderLine ) + { + table::TableBorder aTableBorder; + m_xProps->getPropertyValue( sTableBorder ) >>= aTableBorder; + + switch ( m_LineType ) + { + case word::WdBorderType::wdBorderLeft: + aTableBorder.IsLeftLineValid = sal_True; + aTableBorder.LeftLine= rBorderLine; + break; + case word::WdBorderType::wdBorderTop: + aTableBorder.IsTopLineValid = sal_True; + aTableBorder.TopLine = rBorderLine; + break; + + case word::WdBorderType::wdBorderBottom: + aTableBorder.IsBottomLineValid = sal_True; + aTableBorder.BottomLine = rBorderLine; + break; + case word::WdBorderType::wdBorderRight: + aTableBorder.IsRightLineValid = sal_True; + aTableBorder.RightLine = rBorderLine; + break; + case word::WdBorderType::wdBorderVertical: + aTableBorder.IsVerticalLineValid = sal_True; + aTableBorder.VerticalLine = rBorderLine; + break; + case word::WdBorderType::wdBorderHorizontal: + aTableBorder.IsHorizontalLineValid = sal_True; + aTableBorder.HorizontalLine = rBorderLine; + break; + case word::WdBorderType::wdBorderDiagonalDown: + case word::WdBorderType::wdBorderDiagonalUp: + // #TODO have to ignore at the momement, would be + // nice to investigate what we can do here + break; + default: + return false; + } + m_xProps->setPropertyValue( sTableBorder, uno::makeAny(aTableBorder) ); + return true; + } + + bool getBorderLine( table::BorderLine& rBorderLine ) + { + table::TableBorder aTableBorder; + m_xProps->getPropertyValue( sTableBorder ) >>= aTableBorder; + switch ( m_LineType ) + { + case word::WdBorderType::wdBorderLeft: + if ( aTableBorder.IsLeftLineValid ) + rBorderLine = aTableBorder.LeftLine; + break; + case word::WdBorderType::wdBorderTop: + if ( aTableBorder.IsTopLineValid ) + rBorderLine = aTableBorder.TopLine; + break; + case word::WdBorderType::wdBorderBottom: + if ( aTableBorder.IsBottomLineValid ) + rBorderLine = aTableBorder.BottomLine; + break; + case word::WdBorderType::wdBorderRight: + if ( aTableBorder.IsRightLineValid ) + rBorderLine = aTableBorder.RightLine; + break; + case word::WdBorderType::wdBorderVertical: + if ( aTableBorder.IsVerticalLineValid ) + rBorderLine = aTableBorder.VerticalLine; + break; + case word::WdBorderType::wdBorderHorizontal: + if ( aTableBorder.IsHorizontalLineValid ) + rBorderLine = aTableBorder.HorizontalLine; + break; + + case word::WdBorderType::wdBorderDiagonalDown: + case word::WdBorderType::wdBorderDiagonalUp: + // #TODO have to ignore at the momement, would be + // nice to investigate what we can do here + break; + default: + return false; + } + return true; + } + SwVbaBorder(); // no impl +protected: + virtual rtl::OUString& getServiceImplName() + { + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBorder") ); + return sImplName; + } + virtual css::uno::Sequence<rtl::OUString> getServiceNames() + { + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Border" ) ); + } + return aServiceNames; + } +public: + SwVbaBorder( const uno::Reference< beans::XPropertySet > & xProps, const uno::Reference< uno::XComponentContext >& xContext, sal_Int32 lineType, VbaPalette& rPalette) : SwVbaBorder_Base( uno::Reference< XHelperInterface >( xProps, uno::UNO_QUERY ), xContext ), m_xProps( xProps ), m_LineType( lineType ), m_Palette( rPalette ) {} + + uno::Any SAL_CALL getLineStyle() throw (uno::RuntimeException) + { + sal_Int32 nLineStyle = word::WdLineStyle::wdLineStyleNone; + table::BorderLine aBorderLine; + if ( getBorderLine( aBorderLine ) ) + { + if( aBorderLine.InnerLineWidth !=0 && aBorderLine.OuterLineWidth !=0 ) + { + nLineStyle = word::WdLineStyle::wdLineStyleDouble; + } + else if( aBorderLine.InnerLineWidth !=0 || aBorderLine.OuterLineWidth !=0 ) + { + nLineStyle = word::WdLineStyle::wdLineStyleSingle; + } + else + { + nLineStyle = word::WdLineStyle::wdLineStyleNone; + } + } + return uno::makeAny( nLineStyle ); + } + void SAL_CALL setLineStyle( const uno::Any& _linestyle ) throw (uno::RuntimeException) + { + // Urk no choice but to silently ignore we don't support this attribute + // #TODO would be nice to support the word line styles + sal_Int32 nLineStyle = 0; + _linestyle >>= nLineStyle; + table::BorderLine aBorderLine; + if ( getBorderLine( aBorderLine ) ) + { + switch ( nLineStyle ) + { + case word::WdLineStyle::wdLineStyleNone: + { + aBorderLine.InnerLineWidth = 0; + aBorderLine.OuterLineWidth = 0; + break; + } + case word::WdLineStyle::wdLineStyleDashDot: + case word::WdLineStyle::wdLineStyleDashDotDot: + case word::WdLineStyle::wdLineStyleDashDotStroked: + case word::WdLineStyle::wdLineStyleDashLargeGap: + case word::WdLineStyle::wdLineStyleDashSmallGap: + case word::WdLineStyle::wdLineStyleDot: + case word::WdLineStyle::wdLineStyleDouble: + case word::WdLineStyle::wdLineStyleDoubleWavy: + case word::WdLineStyle::wdLineStyleEmboss3D: + case word::WdLineStyle::wdLineStyleEngrave3D: + case word::WdLineStyle::wdLineStyleInset: + case word::WdLineStyle::wdLineStyleOutset: + case word::WdLineStyle::wdLineStyleSingle: + case word::WdLineStyle::wdLineStyleSingleWavy: + case word::WdLineStyle::wdLineStyleThickThinLargeGap: + case word::WdLineStyle::wdLineStyleThickThinMedGap: + case word::WdLineStyle::wdLineStyleThickThinSmallGap: + case word::WdLineStyle::wdLineStyleThinThickLargeGap: + case word::WdLineStyle::wdLineStyleThinThickMedGap: + case word::WdLineStyle::wdLineStyleThinThickSmallGap: + case word::WdLineStyle::wdLineStyleThinThickThinLargeGap: + case word::WdLineStyle::wdLineStyleThinThickThinMedGap: + case word::WdLineStyle::wdLineStyleThinThickThinSmallGap: + case word::WdLineStyle::wdLineStyleTriple: + { + aBorderLine.InnerLineWidth = 0; + aBorderLine.OuterLineWidth = OOLineHairline; + break; + } + default: + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Bad param" ) ), uno::Reference< uno::XInterface >() ); + } + setBorderLine( aBorderLine ); + } + else + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Method failed" ) ), uno::Reference< uno::XInterface >() ); + } +}; + +class RangeBorders : public RangeBorders_Base +{ +private: + uno::Reference< table::XCellRange > m_xRange; + uno::Reference< uno::XComponentContext > m_xContext; + VbaPalette m_Palette; + sal_Int32 getTableIndex( sal_Int32 nConst ) + { + // hokay return position of the index in the table + sal_Int32 nIndexes = getCount(); + sal_Int32 realIndex = 0; + const sal_Int16* pTableEntry = supportedIndexTable; + for ( ; realIndex < nIndexes; ++realIndex, ++pTableEntry ) + { + if ( *pTableEntry == nConst ) + return realIndex; + } + return getCount(); // error condition + } +public: + RangeBorders( const uno::Reference< table::XCellRange >& xRange, const uno::Reference< uno::XComponentContext > & xContext, VbaPalette& rPalette ) : m_xRange( xRange ), m_xContext( xContext ), m_Palette( rPalette ) + { + } + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return sizeof( supportedIndexTable ) / sizeof( supportedIndexTable[0] ); + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException) + { + + sal_Int32 nIndex = getTableIndex( Index ); + if ( nIndex >= 0 && nIndex < getCount() ) + { + uno::Reference< beans::XPropertySet > xProps( m_xRange, uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XBorder >( new SwVbaBorder( xProps, m_xContext, supportedIndexTable[ nIndex ], m_Palette )) ); + } + throw lang::IndexOutOfBoundsException(); + } + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) + { + return word::XBorder::static_type(0); + } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) + { + return sal_True; + } +}; + +uno::Reference< container::XIndexAccess > +rangeToBorderIndexAccess( const uno::Reference< table::XCellRange >& xRange, const uno::Reference< uno::XComponentContext > & xContext, VbaPalette& rPalette ) +{ + return new RangeBorders( xRange, xContext, rPalette ); +} + +class RangeBorderEnumWrapper : public EnumerationHelper_BASE +{ + uno::Reference<container::XIndexAccess > m_xIndexAccess; + sal_Int32 nIndex; +public: + RangeBorderEnumWrapper( const uno::Reference< container::XIndexAccess >& xIndexAccess ) : m_xIndexAccess( xIndexAccess ), nIndex( 0 ) {} + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return ( nIndex < m_xIndexAccess->getCount() ); + } + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( nIndex < m_xIndexAccess->getCount() ) + return m_xIndexAccess->getByIndex( nIndex++ ); + throw container::NoSuchElementException(); + } +}; + +// for Table borders +SwVbaBorders::SwVbaBorders( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< table::XCellRange >& xRange, VbaPalette& rPalette ): SwVbaBorders_BASE( xParent, xContext, rangeToBorderIndexAccess( xRange ,xContext, rPalette ) ) +{ + m_xProps.set( xRange, uno::UNO_QUERY_THROW ); +} + +uno::Reference< container::XEnumeration > +SwVbaBorders::createEnumeration() throw (uno::RuntimeException) +{ + return new RangeBorderEnumWrapper( m_xIndexAccess ); +} + +uno::Any +SwVbaBorders::createCollectionObject( const css::uno::Any& aSource ) +{ + return aSource; // its already a Border object +} + +uno::Type +SwVbaBorders::getElementType() throw (uno::RuntimeException) +{ + return word::XBorders::static_type(0); +} + +uno::Any +SwVbaBorders::getItemByIntIndex( const sal_Int32 nIndex ) throw (uno::RuntimeException) +{ + return createCollectionObject( m_xIndexAccess->getByIndex( nIndex ) ); +} + +sal_Bool SAL_CALL SwVbaBorders::getShadow() throw (uno::RuntimeException) +{ + table::ShadowFormat aShadowFormat; + m_xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShadowFormat") ) ) >>= aShadowFormat; + return ( aShadowFormat.Location != table::ShadowLocation_NONE ); +} + +void SAL_CALL SwVbaBorders::setShadow( sal_Bool /*_shadow*/ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +rtl::OUString& +SwVbaBorders::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBorders") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaBorders::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Borders" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbaborders.hxx b/sw/source/ui/vba/vbaborders.hxx new file mode 100644 index 000000000000..a9915574199e --- /dev/null +++ b/sw/source/ui/vba/vbaborders.hxx @@ -0,0 +1,66 @@ +/************************************************************************* + * + * 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: vbaborders.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_BORDERS_HXX +#define SW_VBA_BORDERS_HXX + +#include <cppuhelper/implbase1.hxx> +#include <ooo/vba/word/XBorders.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/table/XCellRange.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <vbahelper/vbacollectionimpl.hxx> + +typedef CollTestImplHelper< ov::word::XBorders > SwVbaBorders_BASE; +class VbaPalette; +class SwVbaBorders : public SwVbaBorders_BASE +{ + // XEnumerationAccess + virtual css::uno::Any getItemByIntIndex( const sal_Int32 nIndex ) throw (css::uno::RuntimeException); + css::uno::Reference< css::beans::XPropertySet > m_xProps; +public: + SwVbaBorders( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::table::XCellRange >& xRange, VbaPalette& rPalette ); + virtual ~SwVbaBorders() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaCollectionBaseImpl + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + + virtual sal_Bool SAL_CALL getShadow() throw (css::uno::RuntimeException); + virtual void SAL_CALL setShadow( sal_Bool _shadow ) throw (css::uno::RuntimeException); + + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif //SW_VBA_BORDERS_HXX + diff --git a/sw/source/ui/vba/vbadialog.cxx b/sw/source/ui/vba/vbadialog.cxx new file mode 100644 index 000000000000..4e54b7abaef7 --- /dev/null +++ b/sw/source/ui/vba/vbadialog.cxx @@ -0,0 +1,81 @@ +/************************************************************************* + * + * 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: vbadialog.cxx,v $ + * $Revision: 1.4 $ + * + * 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. + * + ************************************************************************/ +#include "vbadialog.hxx" +#include <ooo/vba/word/WdWordDialog.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +struct WordDialogTable +{ + sal_Int32 wdDialog; + const sal_Char* ooDialog; +}; + +static const WordDialogTable aWordDialogTable[] = +{ + { word::WdWordDialog::wdDialogFileNew, ".uno:NewDoc" }, + { word::WdWordDialog::wdDialogFileOpen, ".uno:Open" }, + { word::WdWordDialog::wdDialogFilePrint, ".uno:Print" }, + { word::WdWordDialog::wdDialogFileSaveAs, ".uno:SaveAs" }, + { 0, 0 } +}; + +rtl::OUString +SwVbaDialog::mapIndexToName( sal_Int32 nIndex ) +{ + for( const WordDialogTable* pTable = aWordDialogTable; pTable != NULL; pTable++ ) + { + if( nIndex == pTable->wdDialog ) + { + return rtl::OUString::createFromAscii( pTable->ooDialog ); + } + } + return rtl::OUString(); +} + +rtl::OUString& +SwVbaDialog::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaDialog") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaDialog::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Dialog" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbadialog.hxx b/sw/source/ui/vba/vbadialog.hxx new file mode 100644 index 000000000000..9a9f68d45bb2 --- /dev/null +++ b/sw/source/ui/vba/vbadialog.hxx @@ -0,0 +1,53 @@ +/************************************************************************* + * + * 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: vbadialog.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_DIALOG_HXX +#define SW_VBA_DIALOG_HXX + +#include <cppuhelper/implbase1.hxx> +#include <ooo/vba/word/XDialog.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbadialogbase.hxx> + +typedef cppu::ImplInheritanceHelper1< VbaDialogBase, ov::word::XDialog > SwVbaDialog_BASE; + +class SwVbaDialog : public SwVbaDialog_BASE +{ +public: + SwVbaDialog( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > xContext, const css::uno::Reference< css::frame::XModel >& xModel, sal_Int32 nIndex ):SwVbaDialog_BASE( xParent, xContext, xModel, nIndex ) {} + virtual ~SwVbaDialog() {} + + // Methods + virtual rtl::OUString mapIndexToName( sal_Int32 nIndex ); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_DIALOG_HXX */ diff --git a/sw/source/ui/vba/vbadialogs.cxx b/sw/source/ui/vba/vbadialogs.cxx new file mode 100644 index 000000000000..45ca6a7cb650 --- /dev/null +++ b/sw/source/ui/vba/vbadialogs.cxx @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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: vbadialogs.cxx,v $ + * $Revision: 1.5 $ + * + * 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. + * + ************************************************************************/ +#include <ooo/vba/word/XDialog.hpp> +#include "vbadialogs.hxx" +#include "vbadialog.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +uno::Any +SwVbaDialogs::Item( const uno::Any &aItem ) throw (uno::RuntimeException) +{ + sal_Int32 nIndex = 0; + aItem >>= nIndex; + uno::Reference< word::XDialog > aDialog( new SwVbaDialog( uno::Reference< XHelperInterface >( Application(),uno::UNO_QUERY_THROW ), mxContext, m_xModel, nIndex ) ); + return uno::Any( aDialog ); +} + +rtl::OUString& +SwVbaDialogs::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaDialogs") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaDialogs::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Dialogs" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbadialogs.hxx b/sw/source/ui/vba/vbadialogs.hxx new file mode 100644 index 000000000000..c99ba1e7164e --- /dev/null +++ b/sw/source/ui/vba/vbadialogs.hxx @@ -0,0 +1,56 @@ +/************************************************************************* + * + * 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: vbadialogs.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_DIALOGS_HXX +#define SW_VBA_DIALOGS_HXX + +#include <com/sun/star/uno/XComponentContext.hpp> +#include <ooo/vba/word/XDialogs.hpp> +#include <ooo/vba/XCollection.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbadialogsbase.hxx> +#include <cppuhelper/implbase1.hxx> + +typedef cppu::ImplInheritanceHelper1< VbaDialogsBase, ov::word::XDialogs > SwVbaDialogs_BASE; + +class SwVbaDialogs : public SwVbaDialogs_BASE +{ +public: + SwVbaDialogs( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > &xContext, const css::uno::Reference< css::frame::XModel >& xModel ): SwVbaDialogs_BASE( xParent, xContext, xModel ) {} + virtual ~SwVbaDialogs() {} + + // XCollection + virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_DIALOGS_HXX */ diff --git a/sw/source/ui/vba/vbadocument.cxx b/sw/source/ui/vba/vbadocument.cxx new file mode 100644 index 000000000000..f118277b3cd0 --- /dev/null +++ b/sw/source/ui/vba/vbadocument.cxx @@ -0,0 +1,384 @@ +/************************************************************************* + * + * 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: vbadocument.cxx,v $ + * $Revision: 1.7 $ + * + * 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. + * + ************************************************************************/ +#include "vbadocument.hxx" +#include "vbarange.hxx" +#include "vbarangehelper.hxx" +#include "vbadocumentproperties.hxx" +#include "vbabookmarks.hxx" +#include "vbavariables.hxx" +#include <com/sun/star/text/XBookmarksSupplier.hpp> +#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> +#include <com/sun/star/document/XDocumentInfoSupplier.hpp> +#include <com/sun/star/document/XDocumentProperties.hpp> +#include <com/sun/star/drawing/XDrawPageSupplier.hpp> +#include <com/sun/star/drawing/XControlShape.hpp> +#include <com/sun/star/drawing/XControlShape.hpp> +#include <com/sun/star/form/XFormsSupplier.hpp> +#include <ooo/vba/XControlProvider.hpp> + +#include <vbahelper/helperdecl.hxx> +#include <wordvbahelper.hxx> +#include <docsh.hxx> +#include "vbatemplate.hxx" +#include "vbaparagraph.hxx" +#include "vbastyles.hxx" +#include "vbatables.hxx" +#include "vbafield.hxx" +#include "vbapagesetup.hxx" +#include "vbasections.hxx" +#include <vbahelper/vbashapes.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaDocument::SwVbaDocument( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, uno::Reference< frame::XModel > xModel ): SwVbaDocument_BASE( xParent, xContext, xModel ) +{ + Initialize(); +} +SwVbaDocument::SwVbaDocument( uno::Sequence< uno::Any > const& aArgs, uno::Reference< uno::XComponentContext >const& xContext ) : SwVbaDocument_BASE( aArgs, xContext ) +{ + Initialize(); +} + +SwVbaDocument::~SwVbaDocument() +{ +} + +void SwVbaDocument::Initialize() +{ + mxTextDocument.set( getModel(), uno::UNO_QUERY_THROW ); +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaDocument::getContent() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xStart = mxTextDocument->getText()->getStart(); + uno::Reference< text::XTextRange > xEnd; + return uno::Reference< word::XRange >( new SwVbaRange( this, mxContext, mxTextDocument, xStart, xEnd, sal_True ) ); +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaDocument::Range( const uno::Any& rStart, const uno::Any& rEnd ) throw ( uno::RuntimeException ) +{ + if( !rStart.hasValue() && !rEnd.hasValue() ) + return getContent(); + + sal_Int32 nStart = 0; + sal_Int32 nEnd = 0; + rStart >>= nStart; + rEnd >>= nEnd; + nStart--; + nEnd--; + + uno::Reference< text::XTextRange > xStart; + uno::Reference< text::XTextRange > xEnd; + if( nStart != -1 || nEnd != -1 ) + { + if( nStart == -1 ) + xStart = mxTextDocument->getText()->getStart(); + else + xStart = SwVbaRangeHelper::getRangeByPosition( mxTextDocument->getText(), nStart ); + + if( nEnd == -1 ) + xEnd = mxTextDocument->getText()->getEnd(); + else + xEnd = SwVbaRangeHelper::getRangeByPosition( mxTextDocument->getText(), nEnd ); + } + + if( !xStart.is() && !xEnd.is() ) + { + try + { + // FIXME + xStart = mxTextDocument->getText()->getStart(); + xEnd = mxTextDocument->getText()->getEnd(); + } + catch( uno::Exception ) + { + DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString()); + } + } + return uno::Reference< word::XRange >( new SwVbaRange( this, mxContext, mxTextDocument, xStart, xEnd ) ); +} + +uno::Any SAL_CALL +SwVbaDocument::BuiltInDocumentProperties( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaBuiltinDocumentProperties( mxParent, mxContext, getModel() ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::CustomDocumentProperties( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaCustomDocumentProperties( mxParent, mxContext, getModel() ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::Bookmarks( const uno::Any& rIndex ) throw ( uno::RuntimeException ) +{ + uno::Reference< text::XBookmarksSupplier > xBookmarksSupplier( getModel(),uno::UNO_QUERY_THROW ); + uno::Reference<container::XIndexAccess > xBookmarks( xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY_THROW ); + uno::Reference< XCollection > xBookmarksVba( new SwVbaBookmarks( this, mxContext, xBookmarks, getModel() ) ); + if ( rIndex.getValueTypeClass() == uno::TypeClass_VOID ) + return uno::makeAny( xBookmarksVba ); + + return uno::Any( xBookmarksVba->Item( rIndex, uno::Any() ) ); +} + +uno::Any SAL_CALL +SwVbaDocument::Variables( const uno::Any& rIndex ) throw ( uno::RuntimeException ) +{ + uno::Reference< document::XDocumentPropertiesSupplier > xDocumentPropertiesSupplier( getModel(),uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentProperties > xDocumentProperties = xDocumentPropertiesSupplier->getDocumentProperties(); + uno::Reference< beans::XPropertyAccess > xUserDefined( xDocumentProperties->getUserDefinedProperties(), uno::UNO_QUERY_THROW ); + + uno::Reference< XCollection > xVariables( new SwVbaVariables( this, mxContext, xUserDefined ) ); + if ( rIndex.getValueTypeClass() == uno::TypeClass_VOID ) + return uno::makeAny( xVariables ); + + return uno::Any( xVariables->Item( rIndex, uno::Any() ) ); +} + +uno::Any SAL_CALL +SwVbaDocument::Paragraphs( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaParagraphs( mxParent, mxContext, mxTextDocument ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::Styles( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaStyles( mxParent, mxContext, getModel() ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::Fields( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaFields( mxParent, mxContext, getModel() ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::Shapes( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( getModel(), uno::UNO_QUERY_THROW ); + //uno::Reference< drawing::XShapes > xShapes( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< XCollection > xCol( new ScVbaShapes( this, mxContext, xIndexAccess, xModel ) ); + + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::Sections( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaSections( mxParent, mxContext, getModel() ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Any SAL_CALL +SwVbaDocument::PageSetup( ) throw (uno::RuntimeException) +{ + uno::Reference< beans::XPropertySet > xPageProps( word::getCurrentPageStyle( mxModel ), uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XPageSetup >( new SwVbaPageSetup( this, mxContext, mxModel, xPageProps ) ) ); +} + +rtl::OUString& +SwVbaDocument::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaDocument") ); + return sImplName; +} +uno::Any SAL_CALL +SwVbaDocument::getAttachedTemplate() throw (uno::RuntimeException) +{ + uno::Reference< word::XTemplate > xTemplate; + uno::Reference< document::XDocumentInfoSupplier > xDocInfoSupp( getModel(), uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentPropertiesSupplier > xDocPropSupp( xDocInfoSupp->getDocumentInfo(), uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentProperties > xDocProps( xDocPropSupp->getDocumentProperties(), uno::UNO_QUERY_THROW ); + rtl::OUString sTemplateName = xDocProps->getTemplateName(); + + xTemplate = new SwVbaTemplate( this, mxContext, getModel(), sTemplateName ); + return uno::makeAny( xTemplate ); +} + +void SAL_CALL +SwVbaDocument::setAttachedTemplate( const css::uno::Any& /*_attachedtemplate*/ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException(); +} + +uno::Any SAL_CALL +SwVbaDocument::Tables( const css::uno::Any& aIndex ) throw (uno::RuntimeException) +{ + uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< XCollection > xColl( new SwVbaTables( mxParent, mxContext, xModel ) ); + + if ( aIndex.hasValue() ) + return xColl->Item( aIndex, uno::Any() ); + return uno::makeAny( xColl ); +} + +void SAL_CALL SwVbaDocument::Activate() throw (uno::RuntimeException) +{ + VbaDocumentBase::Activate(); +} + +uno::Any +SwVbaDocument::getControlShape( const ::rtl::OUString& sName ) +{ + uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + + sal_Int32 nCount = xIndexAccess->getCount(); + for( int index = 0; index < nCount; index++ ) + { + uno::Any aUnoObj = xIndexAccess->getByIndex( index ); + // It seems there are some drawing objects that can not query into Control shapes? + uno::Reference< drawing::XControlShape > xControlShape( aUnoObj, uno::UNO_QUERY ); + if( xControlShape.is() ) + { + uno::Reference< container::XNamed > xNamed( xControlShape->getControl(), uno::UNO_QUERY_THROW ); + if( sName.equals( xNamed->getName() )) + { + return aUnoObj; + } + } + } + return uno::Any(); +} + +uno::Reference< beans::XIntrospectionAccess > SAL_CALL +SwVbaDocument::getIntrospection( ) throw (uno::RuntimeException) +{ + return uno::Reference< beans::XIntrospectionAccess >(); +} + +uno::Any SAL_CALL +SwVbaDocument::invoke( const ::rtl::OUString& aFunctionName, const uno::Sequence< uno::Any >& /*aParams*/, uno::Sequence< ::sal_Int16 >& /*aOutParamIndex*/, uno::Sequence< uno::Any >& /*aOutParam*/ ) throw (lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException) +{ + OSL_TRACE("** SwVbaDocument::invoke( %s ), will barf", + rtl::OUStringToOString( aFunctionName, RTL_TEXTENCODING_UTF8 ).getStr() ); + + throw uno::RuntimeException(); // unsupported operation +} + +void SAL_CALL +SwVbaDocument::setValue( const ::rtl::OUString& /*aPropertyName*/, const uno::Any& /*aValue*/ ) throw (beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException) +{ + throw uno::RuntimeException(); // unsupported operation +} +uno::Any SAL_CALL +SwVbaDocument::getValue( const ::rtl::OUString& aPropertyName ) throw (beans::UnknownPropertyException, uno::RuntimeException) +{ + uno::Reference< drawing::XControlShape > xControlShape( getControlShape( aPropertyName ), uno::UNO_QUERY_THROW ); + + uno::Reference<lang::XMultiComponentFactory > xServiceManager( mxContext->getServiceManager(), uno::UNO_QUERY_THROW ); + uno::Reference< XControlProvider > xControlProvider( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.ControlProvider" ) ), mxContext ), uno::UNO_QUERY_THROW ); + uno::Reference< msforms::XControl > xControl( xControlProvider->createControl( xControlShape, getModel() ) ); + return uno::makeAny( xControl ); +} + +::sal_Bool SAL_CALL +SwVbaDocument::hasMethod( const ::rtl::OUString& /*aName*/ ) throw (uno::RuntimeException) +{ + return sal_False; +} + +::sal_Bool SAL_CALL +SwVbaDocument::hasProperty( const ::rtl::OUString& aName ) throw (uno::RuntimeException) +{ + uno::Reference< container::XNameAccess > xFormControls( getFormControls() ); + if ( xFormControls.is() ) + return xFormControls->hasByName( aName ); + return sal_False; +} + +uno::Reference< container::XNameAccess > +SwVbaDocument::getFormControls() +{ + uno::Reference< container::XNameAccess > xFormControls; + try + { + uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< form::XFormsSupplier > xFormSupplier( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xIndexAccess( xFormSupplier->getForms(), uno::UNO_QUERY_THROW ); + // get the www-standard container ( maybe we should access the + // 'www-standard' by name rather than index, this seems an + // implementation detail + xFormControls.set( xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW ); + } + catch( uno::Exception& ) + { + } + return xFormControls; +} + +uno::Sequence< rtl::OUString > +SwVbaDocument::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Document" ) ); + } + return aServiceNames; +} + +namespace document +{ +namespace sdecl = comphelper::service_decl; +sdecl::vba_service_class_<SwVbaDocument, sdecl::with_args<true> > serviceImpl; +extern sdecl::ServiceDecl const serviceDecl( + serviceImpl, + "SwVbaDocument", + "ooo.vba.word.Document" ); +} + diff --git a/sw/source/ui/vba/vbadocument.hxx b/sw/source/ui/vba/vbadocument.hxx new file mode 100644 index 000000000000..29ab5761878e --- /dev/null +++ b/sw/source/ui/vba/vbadocument.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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: vbadocument.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_DOCUMENT_HXX +#define SW_VBA_DOCUMENT_HXX + +#include <ooo/vba/word/XDocument.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbadocumentbase.hxx> +#include <com/sun/star/text/XTextDocument.hpp> + +typedef cppu::ImplInheritanceHelper1< VbaDocumentBase, ooo::vba::word::XDocument > SwVbaDocument_BASE; + +class SwVbaDocument : public SwVbaDocument_BASE +{ +private: + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + + void Initialize(); + css::uno::Any getControlShape( const rtl::OUString& sName ); + css::uno::Reference< css::container::XNameAccess > getFormControls(); + +public: + SwVbaDocument( const css::uno::Reference< ooo::vba::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& m_xContext, css::uno::Reference< css::frame::XModel > xModel ); + SwVbaDocument( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext >const& xContext ); + virtual ~SwVbaDocument(); + + // XDocument + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL getContent() throw ( css::uno::RuntimeException ); + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL Range( const css::uno::Any& rStart, const css::uno::Any& rEnd ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL BuiltInDocumentProperties( const css::uno::Any& index ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL CustomDocumentProperties( const css::uno::Any& index ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Bookmarks( const css::uno::Any& rIndex ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL Variables( const css::uno::Any& rIndex ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL getAttachedTemplate() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAttachedTemplate( const css::uno::Any& _attachedtemplate ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Paragraphs( const css::uno::Any& rIndex ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL Styles( const css::uno::Any& rIndex ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL Tables( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Fields( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Shapes( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Sections( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Activate() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL PageSetup() throw (css::uno::RuntimeException); + // XInvocation + virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection( ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL invoke( const ::rtl::OUString& aFunctionName, const css::uno::Sequence< css::uno::Any >& aParams, css::uno::Sequence< ::sal_Int16 >& aOutParamIndex, css::uno::Sequence< css::uno::Any >& aOutParam ) throw (css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException); + virtual void SAL_CALL setValue( const ::rtl::OUString& aPropertyName, const css::uno::Any& aValue ) throw (css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getValue( const ::rtl::OUString& aPropertyName ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL hasMethod( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL hasProperty( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_DOCUMENT_HXX */ diff --git a/sw/source/ui/vba/vbadocumentproperties.cxx b/sw/source/ui/vba/vbadocumentproperties.cxx new file mode 100644 index 000000000000..ecdad357aacd --- /dev/null +++ b/sw/source/ui/vba/vbadocumentproperties.cxx @@ -0,0 +1,767 @@ +/************************************************************************* + * + * 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: vbadocument.cxx,v $ + * $Revision: 1.7 $ + * + * 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. + * + ************************************************************************/ +#include "vbadocumentproperties.hxx" +#include <cppuhelper/implbase1.hxx> +#include <cppuhelper/implbase3.hxx> +#include <com/sun/star/document/XDocumentInfoSupplier.hpp> +#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> +#include <com/sun/star/beans/NamedValue.hpp> +#include <com/sun/star/beans/XPropertyContainer.hpp> +#include <ooo/vba/word/WdBuiltInProperty.hpp> +#include <ooo/vba/office/MsoDocProperties.hpp> +#include <memory> +#include <boost/shared_ptr.hpp> +#include "wordvbahelper.hxx" +#include "fesh.hxx" +#include "docsh.hxx" +using namespace ::ooo::vba; +using namespace css; + +sal_Int8 lcl_toMSOPropType( const uno::Type& aType ) throw ( lang::IllegalArgumentException ) +{ + sal_Int16 msoType = office::MsoDocProperties::msoPropertyTypeString; + + switch ( aType.getTypeClass() ) + { + case uno::TypeClass_BOOLEAN: + msoType = office::MsoDocProperties::msoPropertyTypeBoolean; + break; + case uno::TypeClass_FLOAT: + msoType = office::MsoDocProperties::msoPropertyTypeFloat; + break; + case uno::TypeClass_STRUCT: // Assume date + msoType = office::MsoDocProperties::msoPropertyTypeDate; + break; + case uno::TypeClass_BYTE: + case uno::TypeClass_SHORT: + case uno::TypeClass_LONG: + case uno::TypeClass_HYPER: + msoType = office::MsoDocProperties::msoPropertyTypeNumber; + break; + default: + throw lang::IllegalArgumentException(); + } + return msoType; +} + +class PropertGetSetHelper +{ +protected: + uno::Reference< frame::XModel > m_xModel; + uno::Reference< beans::XPropertySet > mxProps; +public: + PropertGetSetHelper( const uno::Reference< frame::XModel >& xModel ):m_xModel( xModel ) + { + uno::Reference< document::XDocumentInfoSupplier > xDocInfoSupp( m_xModel, uno::UNO_QUERY_THROW ); + mxProps.set( xDocInfoSupp->getDocumentInfo(), uno::UNO_QUERY_THROW ); + } + virtual ~PropertGetSetHelper() {} + virtual uno::Any getPropertyValue( const rtl::OUString& rPropName ) = 0; + virtual void setPropertyValue( const rtl::OUString& rPropName, const uno::Any& aValue ) = 0; + virtual uno::Reference< beans::XPropertySet > getUnoProperties() { return mxProps; } + +}; + +class BuiltinPropertyGetSetHelper : public PropertGetSetHelper +{ +public: + BuiltinPropertyGetSetHelper( const uno::Reference< frame::XModel >& xModel ) :PropertGetSetHelper( xModel ) + { + } + virtual uno::Any getPropertyValue( const rtl::OUString& rPropName ) + { + if ( rPropName.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("EditingDuration" ) ) ) ) + { + sal_Int32 nSecs = 0; + mxProps->getPropertyValue( rPropName ) >>= nSecs; + return uno::makeAny( nSecs/60 ); // minutes + } + return mxProps->getPropertyValue( rPropName ); + } + virtual void setPropertyValue( const rtl::OUString& rPropName, const uno::Any& aValue ) + { + mxProps->setPropertyValue( rPropName, aValue ); + } +}; + +class CustomPropertyGetSetHelper : public BuiltinPropertyGetSetHelper +{ +public: + CustomPropertyGetSetHelper( const uno::Reference< frame::XModel >& xModel ) :BuiltinPropertyGetSetHelper( xModel ) + { + uno::Reference< document::XDocumentPropertiesSupplier > xDocPropSupp( mxProps, uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentProperties > xDocProp( xDocPropSupp->getDocumentProperties(), uno::UNO_QUERY_THROW ); + mxProps.set( xDocProp->getUserDefinedProperties(), uno::UNO_QUERY_THROW ); + } +}; +class StatisticPropertyGetSetHelper : public PropertGetSetHelper +{ + SwDocShell* mpDocShell; + uno::Reference< beans::XPropertySet > mxModelProps; +public: + StatisticPropertyGetSetHelper( const uno::Reference< frame::XModel >& xModel ) :PropertGetSetHelper( xModel ) , mpDocShell( NULL ) + { + mxModelProps.set( m_xModel, uno::UNO_QUERY_THROW ); + mpDocShell = word::getDocShell( xModel ); + } + virtual uno::Any getPropertyValue( const rtl::OUString& rPropName ) + { + uno::Sequence< beans::NamedValue > stats; + try + { + // Characters, ParagraphCount & WordCount are available from + // the model ( and addtionally these also update the statics object ) + //return mxProps->getPropertyValue( rPropName ); + return mxModelProps->getPropertyValue( rPropName ); + } + catch( uno::Exception& ) + { + OSL_TRACE("Got exception"); + } + uno::Any aReturn; + if ( rPropName.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LineCount")) ) ) // special processing needed + { + if ( mpDocShell ) + { + SwFEShell* pFEShell = mpDocShell->GetFEShell(); + if(pFEShell) + { + aReturn <<= pFEShell->GetLineCount(FALSE); + } + } + } + else + { + mxModelProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParagraphCount") ) ) >>= stats; + mxProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("DocumentStatistic") ) ) >>= stats; + + sal_Int32 nLen = stats.getLength(); + bool bFound = false; + for ( sal_Int32 index = 0; index < nLen && !bFound ; ++index ) + { + if ( rPropName.equals( stats[ index ].Name ) ) + { + aReturn = stats[ index ].Value; + bFound = true; + } + } + if ( !bFound ) + throw uno::RuntimeException(); // bad Property + } + return aReturn; + } + + virtual void setPropertyValue( const rtl::OUString& rPropName, const uno::Any& aValue ) + { + + uno::Sequence< beans::NamedValue > stats; + mxProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("DocumentStatistic") ) ) >>= stats; + + sal_Int32 nLen = stats.getLength(); + for ( sal_Int32 index = 0; index < nLen; ++index ) + { + if ( rPropName.equals( stats[ index ].Name ) ) + { + stats[ index ].Value = aValue; + mxProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("DocumentStatistic") ), uno::makeAny( stats ) ); + break; + } + } + } +}; + +class DocPropInfo +{ +public: + rtl::OUString msMSODesc; + rtl::OUString msOOOPropName; + boost::shared_ptr< PropertGetSetHelper > mpPropGetSetHelper; + + static DocPropInfo createDocPropInfo( const rtl::OUString& sDesc, const rtl::OUString& sPropName, boost::shared_ptr< PropertGetSetHelper >& rHelper ) + { + return createDocPropInfo( rtl::OUStringToOString( sDesc, RTL_TEXTENCODING_UTF8 ).getStr(), rtl::OUStringToOString( sPropName, RTL_TEXTENCODING_UTF8 ).getStr(), rHelper ); + } + + static DocPropInfo createDocPropInfo( const sal_Char* sDesc, const sal_Char* sPropName, boost::shared_ptr< PropertGetSetHelper >& rHelper ) + { + DocPropInfo aItem; + aItem.msMSODesc = rtl::OUString::createFromAscii( sDesc ); + aItem.msOOOPropName = rtl::OUString::createFromAscii( sPropName ); + aItem.mpPropGetSetHelper = rHelper; + return aItem; + } + uno::Any getValue() + { + if ( mpPropGetSetHelper.get() ) + return mpPropGetSetHelper->getPropertyValue( msOOOPropName ); + return uno::Any(); + } + void setValue( const uno::Any& rValue ) + { + if ( mpPropGetSetHelper.get() ) + mpPropGetSetHelper->setPropertyValue( msOOOPropName, rValue ); + } + uno::Reference< beans::XPropertySet > getUnoProperties() + { + + uno::Reference< beans::XPropertySet > xProps; + if ( mpPropGetSetHelper.get() ) + return mpPropGetSetHelper->getUnoProperties(); + return xProps; + } +}; + + +typedef std::hash_map< sal_Int32, DocPropInfo > MSOIndexToOODocPropInfo; + +class BuiltInIndexHelper +{ + MSOIndexToOODocPropInfo m_docPropInfoMap; + BuiltInIndexHelper(); +public: + BuiltInIndexHelper( const uno::Reference< frame::XModel >& xModel ) + { + boost::shared_ptr< PropertGetSetHelper > aStandardHelper( new BuiltinPropertyGetSetHelper( xModel ) ); + boost::shared_ptr< PropertGetSetHelper > aUsingStatsHelper( new StatisticPropertyGetSetHelper( xModel ) ); + + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyTitle ] = DocPropInfo::createDocPropInfo( "Title", "Title", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertySubject ] = DocPropInfo::createDocPropInfo( "Subject", "Subject", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyAuthor ] = DocPropInfo::createDocPropInfo( "Author", "Author", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyKeywords ] = DocPropInfo::createDocPropInfo( "Keywords", "Keywords", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyComments ] = DocPropInfo::createDocPropInfo( "Comments", "Description", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyTemplate ] = DocPropInfo::createDocPropInfo( "Template", "Template", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyLastAuthor ] = DocPropInfo::createDocPropInfo( "Last author", "ModifiedBy", aStandardHelper ); // doesn't seem to exist - throw or return nothing ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyRevision ] = DocPropInfo::createDocPropInfo( "Revision number", "EditingCycles", aStandardHelper ); // doesn't seem to exist - throw or return nothing ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyAppName ] = DocPropInfo::createDocPropInfo( "Application name", "Generator", aStandardHelper ); // doesn't seem to exist - throw or return nothing ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyTimeLastPrinted ] = DocPropInfo::createDocPropInfo( "Last print date", "PrintDate", aStandardHelper ); // doesn't seem to exist - throw or return nothing ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyTimeCreated ] = DocPropInfo::createDocPropInfo( "Creation date", "CreationDate", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyTimeLastSaved ] = DocPropInfo::createDocPropInfo( "Last save time", "ModifyDate", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyVBATotalEdit ] = DocPropInfo::createDocPropInfo( "Total editing time", "EditingDuration", aStandardHelper ); // Not sure if this is correct + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyPages ] = DocPropInfo::createDocPropInfo( "Number of pages", "PageCount", aUsingStatsHelper ); // special handling required ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyWords ] = DocPropInfo::createDocPropInfo( "Number of words", "WordCount", aUsingStatsHelper ); // special handling require ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyCharacters ] = DocPropInfo::createDocPropInfo( "Number of characters", "CharacterCount", aUsingStatsHelper ); // special handling required ? + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertySecurity ] = DocPropInfo::createDocPropInfo( "Security", "", aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyCategory ] = DocPropInfo::createDocPropInfo( "Category", "Category", aStandardHelper ); // hacked in + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyFormat ] = DocPropInfo::createDocPropInfo( "Format", "", aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyManager ] = DocPropInfo::createDocPropInfo( "Manager", "Manager", aStandardHelper ); // hacked in + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyCompany ] = DocPropInfo::createDocPropInfo( "Company", "Company", aStandardHelper ); // hacked in + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyBytes ] = DocPropInfo::createDocPropInfo( "Number of bytes", "", aStandardHelper ); // doesn't seem to exist - size on disk exists ( for an already saved document ) perhaps it will do ( or we need something else ) + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyLines ] = DocPropInfo::createDocPropInfo( "Number of lines", "LineCount", aUsingStatsHelper ); // special handling + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyParas ] = DocPropInfo::createDocPropInfo( "Number of paragraphs", "ParagraphCount", aUsingStatsHelper ); // special handling + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertySlides ] = DocPropInfo::createDocPropInfo( "Number of slides", "" , aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyNotes ] = DocPropInfo::createDocPropInfo( "Number of notes", "", aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyHiddenSlides ] = DocPropInfo::createDocPropInfo("Number of hidden Slides", "", aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyMMClips ] = DocPropInfo::createDocPropInfo( "Number of multimedia clips", "", aStandardHelper ); // doesn't seem to exist + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyHyperlinkBase ] = DocPropInfo::createDocPropInfo( "Hyperlink base", "AutoloadURL", aStandardHelper ); + m_docPropInfoMap[ word::WdBuiltInProperty::wdPropertyCharsWSpaces ] = DocPropInfo::createDocPropInfo( "Number of characters (with spaces)", "", aStandardHelper ); // doesn't seem to be supported + } + + MSOIndexToOODocPropInfo& getDocPropInfoMap() { return m_docPropInfoMap; } +}; + + +typedef InheritedHelperInterfaceImpl1< ooo::vba::XDocumentProperty > SwVbaDocumentProperty_BASE; + +class SwVbaBuiltInDocumentProperty : public SwVbaDocumentProperty_BASE +{ +protected: + DocPropInfo mPropInfo; +public: + SwVbaBuiltInDocumentProperty( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const DocPropInfo& rInfo ); + // XDocumentProperty + virtual void SAL_CALL Delete( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getName( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& Name ) throw (script::BasicErrorException, uno::RuntimeException); + virtual ::sal_Int8 SAL_CALL getType( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setType( ::sal_Int8 Type ) throw (script::BasicErrorException, uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getLinkToContent( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setLinkToContent( ::sal_Bool LinkToContent ) throw (script::BasicErrorException, uno::RuntimeException); + virtual uno::Any SAL_CALL getValue( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setValue( const uno::Any& Value ) throw (script::BasicErrorException, uno::RuntimeException); + virtual rtl::OUString SAL_CALL getLinkSource( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setLinkSource( const rtl::OUString& LinkSource ) throw (script::BasicErrorException, uno::RuntimeException); + //XDefaultProperty + virtual ::rtl::OUString SAL_CALL getDefaultPropertyName( ) throw (uno::RuntimeException) { return rtl::OUString::createFromAscii("Value"); } + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual uno::Sequence<rtl::OUString> getServiceNames(); +}; + +class SwVbaCustomDocumentProperty : public SwVbaBuiltInDocumentProperty +{ +public: + + SwVbaCustomDocumentProperty( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const DocPropInfo& rInfo ); + + virtual ::sal_Bool SAL_CALL getLinkToContent( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setLinkToContent( ::sal_Bool LinkToContent ) throw (script::BasicErrorException, uno::RuntimeException); + + virtual rtl::OUString SAL_CALL getLinkSource( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setLinkSource( const rtl::OUString& LinkSource ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL Delete( ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& Name ) throw (script::BasicErrorException, uno::RuntimeException); + virtual void SAL_CALL setType( ::sal_Int8 Type ) throw (script::BasicErrorException, uno::RuntimeException); + +}; + + +SwVbaCustomDocumentProperty::SwVbaCustomDocumentProperty( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const DocPropInfo& rInfo ) : SwVbaBuiltInDocumentProperty( xParent, xContext, rInfo ) +{ +} + +sal_Bool +SwVbaCustomDocumentProperty::getLinkToContent( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // #FIXME we need to store the link content somewhere + return sal_False; +} + +void +SwVbaCustomDocumentProperty::setLinkToContent( sal_Bool /*bLinkContent*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ +} + +rtl::OUString +SwVbaCustomDocumentProperty::getLinkSource( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // #FIXME we need to store the link content somewhere + return rtl::OUString();; +} + +void +SwVbaCustomDocumentProperty::setLinkSource( const rtl::OUString& /*rsLinkContent*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // #FIXME we need to store the link source somewhere +} + +void SAL_CALL +SwVbaCustomDocumentProperty::setName( const ::rtl::OUString& /*Name*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // setName on existing property ? + // #FIXME + // do we need to delete existing property and create a new one? +} + +void SAL_CALL +SwVbaCustomDocumentProperty::setType( ::sal_Int8 /*Type*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // setType, do we need to do a conversion? + // #FIXME the underlying value needs to be changed to the new type +} + +void SAL_CALL +SwVbaCustomDocumentProperty::Delete( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + uno::Reference< beans::XPropertyContainer > xContainer( mPropInfo.getUnoProperties(), uno::UNO_QUERY_THROW ); + xContainer->removeProperty( getName() ); +} + +SwVbaBuiltInDocumentProperty::SwVbaBuiltInDocumentProperty( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const DocPropInfo& rInfo ) : SwVbaDocumentProperty_BASE( xParent, xContext ), mPropInfo( rInfo ) +{ +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::Delete( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +::rtl::OUString SAL_CALL +SwVbaBuiltInDocumentProperty::getName( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + return mPropInfo.msMSODesc; +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::setName( const rtl::OUString& ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +::sal_Int8 SAL_CALL +SwVbaBuiltInDocumentProperty::getType( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + return lcl_toMSOPropType( getValue().getValueType() ); +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::setType( ::sal_Int8 /*Type*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +::sal_Bool SAL_CALL +SwVbaBuiltInDocumentProperty::getLinkToContent( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + return sal_False; // built-in always false +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::setLinkToContent( ::sal_Bool /*LinkToContent*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +uno::Any SAL_CALL +SwVbaBuiltInDocumentProperty::getValue( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + uno::Any aRet = mPropInfo.getValue(); + if ( !aRet.hasValue() ) + throw uno::RuntimeException(); + return aRet; +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::setValue( const uno::Any& Value ) throw (script::BasicErrorException, uno::RuntimeException) +{ + mPropInfo.setValue( Value ); +} + +rtl::OUString SAL_CALL +SwVbaBuiltInDocumentProperty::getLinkSource( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +void SAL_CALL +SwVbaBuiltInDocumentProperty::setLinkSource( const rtl::OUString& /*LinkSource*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // not valid for Builtin + throw uno::RuntimeException(); +} + +rtl::OUString& +SwVbaBuiltInDocumentProperty::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBuiltinDocumentProperty") ); + return sImplName; +} + +uno::Sequence<rtl::OUString> +SwVbaBuiltInDocumentProperty::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.DocumentProperty" ) ); + } + return aServiceNames; +} +typedef ::cppu::WeakImplHelper3< com::sun::star::container::XIndexAccess + ,com::sun::star::container::XNameAccess + ,com::sun::star::container::XEnumerationAccess + > PropertiesImpl_BASE; + +typedef std::hash_map< sal_Int32, uno::Reference< XDocumentProperty > > DocProps; + +typedef ::cppu::WeakImplHelper1< com::sun::star::container::XEnumeration > DocPropEnumeration_BASE; +class DocPropEnumeration : public DocPropEnumeration_BASE +{ + DocProps mDocProps; + DocProps::iterator mIt; +public: + + DocPropEnumeration( const DocProps& rProps ) : mDocProps( rProps ), mIt( mDocProps.begin() ) {} + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return mIt != mDocProps.end(); + } + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasMoreElements() ) + throw container::NoSuchElementException(); + return uno::makeAny( mIt++->second ); + } +}; + +typedef std::hash_map< rtl::OUString, uno::Reference< XDocumentProperty >, ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > DocPropsByName; + +class BuiltInPropertiesImpl : public PropertiesImpl_BASE +{ +protected: + + uno::Reference< XHelperInterface > m_xParent; + uno::Reference< uno::XComponentContext > m_xContext; + uno::Reference< frame::XModel > m_xModel; + uno::Reference< document::XDocumentInfo > m_xOOOBuiltIns; + + DocProps mDocProps; + DocPropsByName mNamedDocProps; + + public: + BuiltInPropertiesImpl( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : m_xParent( xParent ), m_xContext( xContext ), m_xModel( xModel ) + { + BuiltInIndexHelper builtIns( m_xModel ); + for ( sal_Int32 index = word::WdBuiltInProperty::wdPropertyTitle; index <= word::WdBuiltInProperty::wdPropertyCharsWSpaces; ++index ) + { + mDocProps[ index ] = new SwVbaBuiltInDocumentProperty( xParent, xContext, builtIns.getDocPropInfoMap()[ index ] ); + mNamedDocProps[ mDocProps[ index ]->getName() ] = mDocProps[ index ]; + } + } +// XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return mDocProps.size(); + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException ) + { + // correct the correct by the base class for 1 based indices + DocProps::iterator it = mDocProps.find( ++Index ); + if ( it == mDocProps.end() ) + throw lang::IndexOutOfBoundsException(); + return uno::makeAny( it->second ); + } + virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasByName( aName ) ) + throw container::NoSuchElementException(); + DocPropsByName::iterator it = mNamedDocProps.find( aName ); + return uno::Any( it->second ); + + } + virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException) + { + uno::Sequence< rtl::OUString > aNames( getCount() ); + rtl::OUString* pName = aNames.getArray(); + DocPropsByName::iterator it_end = mNamedDocProps.end(); + for( DocPropsByName::iterator it = mNamedDocProps.begin(); it != it_end; ++it, ++pName ) + *pName = it->first; + return aNames; + } + + virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException) + { + DocPropsByName::iterator it = mNamedDocProps.find( aName ); + if ( it == mNamedDocProps.end() ) + return sal_False; + return sal_True; + } +// XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) + { + return XDocumentProperty::static_type(0); + } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) + { + return mDocProps.size() > 0; + } + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + return new DocPropEnumeration( mDocProps ); + } +}; + +SwVbaBuiltinDocumentProperties::SwVbaBuiltinDocumentProperties( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : SwVbaDocumentproperties_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( new BuiltInPropertiesImpl( xParent, xContext, xModel ) ) ), m_xModel( xModel ) +{ +} + +uno::Reference< XDocumentProperty > SAL_CALL +SwVbaBuiltinDocumentProperties::Add( const ::rtl::OUString& /*Name*/, ::sal_Bool /*LinkToContent*/, ::sal_Int8 /*Type*/, const uno::Any& /*value*/, const uno::Any& /*LinkSource*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + throw uno::RuntimeException( + rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("not supported for Builtin properties") ), uno::Reference< uno::XInterface >() ); +} + +// XEnumerationAccess +uno::Type SAL_CALL +SwVbaBuiltinDocumentProperties::getElementType() throw (uno::RuntimeException) +{ + return XDocumentProperty::static_type(0); +} + +uno::Reference< container::XEnumeration > SAL_CALL +SwVbaBuiltinDocumentProperties::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumAccess->createEnumeration(); +} + +// ScVbaCollectionBaseImpl +uno::Any +SwVbaBuiltinDocumentProperties::createCollectionObject( const uno::Any& aSource ) +{ + // pass through + return aSource; +} + +// XHelperInterface +rtl::OUString& +SwVbaBuiltinDocumentProperties::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaBuiltinDocumentProperties") ); + return sImplName; +} + +uno::Sequence<rtl::OUString> +SwVbaBuiltinDocumentProperties::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.DocumentProperties" ) ); + } + return aServiceNames; +} + +class CustomPropertiesImpl : public PropertiesImpl_BASE +{ + uno::Reference< XHelperInterface > m_xParent; + uno::Reference< uno::XComponentContext > m_xContext; + uno::Reference< frame::XModel > m_xModel; + uno::Reference< beans::XPropertySet > mxUserDefinedProp; + boost::shared_ptr< PropertGetSetHelper > mpPropGetSetHelper; +public: + CustomPropertiesImpl( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : m_xParent( xParent ), m_xContext( xContext ), m_xModel( xModel ) + { + // suck in the document( custom ) properties + uno::Reference< document::XDocumentInfoSupplier > xDocInfoSupp( m_xModel, uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentPropertiesSupplier > xDocPropSupp( xDocInfoSupp->getDocumentInfo(), uno::UNO_QUERY_THROW ); + uno::Reference< document::XDocumentProperties > xDocProp( xDocPropSupp->getDocumentProperties(), uno::UNO_QUERY_THROW ); + mxUserDefinedProp.set( xDocProp->getUserDefinedProperties(), uno::UNO_QUERY_THROW ); + mpPropGetSetHelper.reset( new CustomPropertyGetSetHelper( m_xModel ) ); + }; + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return mxUserDefinedProp->getPropertySetInfo()->getProperties().getLength(); + } + + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException ) + { + uno::Sequence< beans::Property > aProps = mxUserDefinedProp->getPropertySetInfo()->getProperties(); + if ( Index >= aProps.getLength() ) + throw lang::IndexOutOfBoundsException(); + // How to determine type e.g Date? ( com.sun.star.util.DateTime ) + DocPropInfo aPropInfo = DocPropInfo::createDocPropInfo( aProps[ Index ].Name, aProps[ Index ].Name, mpPropGetSetHelper ); + return uno::makeAny( uno::Reference< XDocumentProperty >( new SwVbaCustomDocumentProperty( m_xParent, m_xContext, aPropInfo ) ) ); + } + + virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasByName( aName ) ) + throw container::NoSuchElementException(); + + DocPropInfo aPropInfo = DocPropInfo::createDocPropInfo( aName, aName, mpPropGetSetHelper ); + return uno::makeAny( uno::Reference< XDocumentProperty >( new SwVbaCustomDocumentProperty( m_xParent, m_xContext, aPropInfo ) ) ); + } + + virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException) + { + uno::Sequence< beans::Property > aProps = mxUserDefinedProp->getPropertySetInfo()->getProperties(); + uno::Sequence< rtl::OUString > aNames( aProps.getLength() ); + rtl::OUString* pString = aNames.getArray(); + rtl::OUString* pEnd = ( pString + aNames.getLength() ); + beans::Property* pProp = aProps.getArray(); + for ( ; pString != pEnd; ++pString, ++pProp ) + *pString = pProp->Name; + return aNames; + } + + virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException) + { + OSL_TRACE("hasByName(%s) returns %d", rtl::OUStringToOString( aName, RTL_TEXTENCODING_UTF8 ).getStr(), mxUserDefinedProp->getPropertySetInfo()->hasPropertyByName( aName ) ); + return mxUserDefinedProp->getPropertySetInfo()->hasPropertyByName( aName ); + } + + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) + { + return XDocumentProperty::static_type(0); + } + + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) + { + return getCount() > 0; + } + + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + // create a map of properties ( the key doesn't matter ) + OSL_TRACE("Creating an enumeration"); + sal_Int32 key = 0; + sal_Int32 nElem = getCount(); + DocProps simpleDocPropSnapShot; + for ( ; key < nElem; ++key ) + simpleDocPropSnapShot[ key ].set( getByIndex( key ), uno::UNO_QUERY_THROW ); + OSL_TRACE("After creating the enumeration"); + return new DocPropEnumeration( simpleDocPropSnapShot ); + } + + void addProp( const ::rtl::OUString& Name, ::sal_Int8 /*Type*/, const uno::Any& Value ) + { + sal_Int16 attributes = 128; + uno::Reference< beans::XPropertyContainer > xContainer( mxUserDefinedProp, uno::UNO_QUERY_THROW ); + // TODO fixme, perform the necessary Type Value conversions + xContainer->addProperty( Name, attributes, Value ); + } + +}; + + +SwVbaCustomDocumentProperties::SwVbaCustomDocumentProperties( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : SwVbaBuiltinDocumentProperties( xParent, xContext, xModel ) +{ + // replace the m_xIndexAccess implementation ( we need a virtual init ) + m_xIndexAccess.set( new CustomPropertiesImpl( xParent, xContext, xModel ) ); + m_xNameAccess.set( m_xIndexAccess, uno::UNO_QUERY_THROW ); +} + +uno::Reference< XDocumentProperty > SAL_CALL +SwVbaCustomDocumentProperties::Add( const ::rtl::OUString& Name, ::sal_Bool LinkToContent, ::sal_Int8 Type, const uno::Any& Value, const uno::Any& LinkSource ) throw (script::BasicErrorException, uno::RuntimeException) +{ + CustomPropertiesImpl* pCustomProps = dynamic_cast< CustomPropertiesImpl* > ( m_xIndexAccess.get() ); + uno::Reference< XDocumentProperty > xDocProp; + if ( pCustomProps ) + { + rtl::OUString sLinkSource; + pCustomProps->addProp( Name, Type, Value ); + + xDocProp.set( m_xNameAccess->getByName( Name ), uno::UNO_QUERY_THROW ); + xDocProp->setLinkToContent( LinkToContent ); + + if ( LinkSource >>= sLinkSource ) + xDocProp->setLinkSource( sLinkSource ); + } + return xDocProp; +} + +// XHelperInterface +rtl::OUString& +SwVbaCustomDocumentProperties::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaCustomDocumentProperties") ); + return sImplName; +} diff --git a/sw/source/ui/vba/vbadocumentproperties.hxx b/sw/source/ui/vba/vbadocumentproperties.hxx new file mode 100644 index 000000000000..57cc41e42b34 --- /dev/null +++ b/sw/source/ui/vba/vbadocumentproperties.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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: vbadocument.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_DOCUMENTPROPERTIES_HXX +#define SW_VBA_DOCUMENTPROPERTIES_HXX + +#include <ooo/vba/XDocumentProperties.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <vbahelper/vbacollectionimpl.hxx> +#include <hash_map> + +typedef CollTestImplHelper< ov::XDocumentProperties > SwVbaDocumentproperties_BASE; + +class SwVbaBuiltinDocumentProperties : public SwVbaDocumentproperties_BASE +{ +protected: + css::uno::Reference< css::frame::XModel > m_xModel; +public: + SwVbaBuiltinDocumentProperties( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xDocument ); + + // XDocumentProperties + virtual css::uno::Reference< ::ooo::vba::XDocumentProperty > SAL_CALL Add( const ::rtl::OUString& Name, ::sal_Bool LinkToContent, ::sal_Int8 Type, const css::uno::Any& Value, const css::uno::Any& LinkSource ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + // ScVbaCollectionBaseImpl + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +class SwVbaCustomDocumentProperties : public SwVbaBuiltinDocumentProperties +{ +public: + SwVbaCustomDocumentProperties( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xDocument ); +// XDocumentProperties + virtual css::uno::Reference< ::ooo::vba::XDocumentProperty > SAL_CALL Add( const ::rtl::OUString& Name, ::sal_Bool LinkToContent, ::sal_Int8 Type, const css::uno::Any& Value, const css::uno::Any& LinkSource ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); +}; + +#endif /* SW_VBA_DOCUMENTPROPERTY_HXX */ diff --git a/sw/source/ui/vba/vbadocuments.cxx b/sw/source/ui/vba/vbadocuments.cxx new file mode 100644 index 000000000000..b97498ff56a5 --- /dev/null +++ b/sw/source/ui/vba/vbadocuments.cxx @@ -0,0 +1,200 @@ +/************************************************************************* + * + * 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: vbadocuments.cxx,v $ + * $Revision: 1.4 $ + * + * 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. + * + ************************************************************************/ +#include <comphelper/processfactory.hxx> + +#include <cppuhelper/implbase1.hxx> +#include <cppuhelper/implbase3.hxx> + +#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/frame/XComponentLoader.hpp> +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/frame/XFrame.hpp> +#include <com/sun/star/frame/FrameSearchFlag.hpp> +#include <com/sun/star/util/XModifiable.hpp> +#include <com/sun/star/frame/XStorable.hpp> +#include <com/sun/star/lang/DisposedException.hpp> +#include <com/sun/star/beans/PropertyVetoException.hpp> +#include <com/sun/star/util/XCloseable.hpp> +#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> +#include <com/sun/star/document/XTypeDetection.hpp> +#include <com/sun/star/uri/XUriReference.hpp> +#include <com/sun/star/uri/XUriReferenceFactory.hpp> + +#include <sfx2/objsh.hxx> +#include <tools/urlobj.hxx> + +#include "vbaglobals.hxx" +#include "vbadocument.hxx" +#include "vbadocuments.hxx" +#include <vbahelper/vbahelper.hxx> + +#include <hash_map> +#include <osl/file.hxx> +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +static uno::Any +getDocument( uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< text::XTextDocument > &xDoc, const uno::Any& aApplication ) +{ + // FIXME: fine as long as SwVbaDocument is stateless ... + uno::Reference< frame::XModel > xModel( xDoc, uno::UNO_QUERY ); + if( !xModel.is() ) + return uno::Any(); + + SwVbaDocument *pWb = new SwVbaDocument( uno::Reference< XHelperInterface >( aApplication, uno::UNO_QUERY_THROW ), xContext, xModel ); + return uno::Any( uno::Reference< word::XDocument > (pWb) ); +} + +class DocumentEnumImpl : public EnumerationHelperImpl +{ + uno::Any m_aApplication; +public: + DocumentEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Any& aApplication ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_aApplication( aApplication ) {} + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + uno::Reference< text::XTextDocument > xDoc( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW ); + return getDocument( m_xContext, xDoc, m_aApplication ); + } +}; + +SwVbaDocuments::SwVbaDocuments( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext ) : SwVbaDocuments_BASE( xParent, xContext, VbaDocumentsBase::WORD_DOCUMENT ) +{ +} +// XEnumerationAccess +uno::Type +SwVbaDocuments::getElementType() throw (uno::RuntimeException) +{ + return word::XDocument::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaDocuments::createEnumeration() throw (uno::RuntimeException) +{ + // #FIXME its possible the DocumentEnumImpl here doens't reflect + // the state of this object ( although it should ) would be + // safer to create an enumeration based on this objects state + // rather than one effectively based of the desktop component + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return new DocumentEnumImpl( mxContext, xEnumerationAccess->createEnumeration(), Application() ); +} + +uno::Any +SwVbaDocuments::createCollectionObject( const uno::Any& aSource ) +{ + uno::Reference< text::XTextDocument > xDoc( aSource, uno::UNO_QUERY_THROW ); + return getDocument( mxContext, xDoc, Application() ); +} + +uno::Any SAL_CALL +SwVbaDocuments::Add( const uno::Any& Template, const uno::Any& /*NewTemplate*/, const uno::Any& /*DocumentType*/, const uno::Any& /*Visible*/ ) throw (uno::RuntimeException) +{ + rtl::OUString sFileName; + if( Template.hasValue() && ( Template >>= sFileName ) ) + { + return Open( sFileName, uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any(), uno::Any()); + } + uno::Reference <text::XTextDocument> xTextDoc( VbaDocumentsBase::Add() , uno::UNO_QUERY_THROW ); + + if( xTextDoc.is() ) + return getDocument( mxContext, xTextDoc, Application() ); + return uno::Any(); +} + +// #TODO# #FIXME# can any of the unused params below be used? +void SAL_CALL +SwVbaDocuments::Close( const uno::Any& /*SaveChanges*/, const uno::Any& /*OriginalFormat*/, const uno::Any& /*RouteDocument*/ ) throw (uno::RuntimeException) +{ + VbaDocumentsBase::Close(); +} + +// #TODO# #FIXME# can any of the unused params below be used? +uno::Any SAL_CALL +SwVbaDocuments::Open( const ::rtl::OUString& Filename, const uno::Any& /*ConfirmConversions*/, const uno::Any& ReadOnly, const uno::Any& /*AddToRecentFiles*/, const uno::Any& /*PasswordDocument*/, const uno::Any& /*PasswordTemplate*/, const uno::Any& /*Revert*/, const uno::Any& /*WritePasswordDocument*/, const uno::Any& /*WritePasswordTemplate*/, const uno::Any& /*Format*/, const uno::Any& /*Encoding*/, const uno::Any& /*Visible*/, const uno::Any& /*OpenAndRepair*/, const uno::Any& /*DocumentDirection*/, const uno::Any& /*NoEncodingDialog*/, const uno::Any& /*XMLTransform*/ ) throw (uno::RuntimeException) +{ + // we need to detect if this is a URL, if not then assume its a file path + rtl::OUString aURL; + INetURLObject aObj; + aObj.SetURL( Filename ); + bool bIsURL = aObj.GetProtocol() != INET_PROT_NOT_VALID; + if ( bIsURL ) + aURL = Filename; + else + osl::FileBase::getFileURLFromSystemPath( Filename, aURL ); + + uno::Sequence< beans::PropertyValue > sProps(0); + + uno::Reference <text::XTextDocument> xSpreadDoc( VbaDocumentsBase::Open( Filename, ReadOnly, sProps ), uno::UNO_QUERY_THROW ); + uno::Any aRet = getDocument( mxContext, xSpreadDoc, Application() ); + uno::Reference< word::XDocument > xDocument( aRet, uno::UNO_QUERY ); + if ( xDocument.is() ) + xDocument->Activate(); + return aRet; +} + + // VbaDocumentsBase / XDocumentsBase (to avoid warning C4266 for hiding function on wntmsci) +uno::Any SAL_CALL +SwVbaDocuments::Add() throw (uno::RuntimeException) +{ + return VbaDocumentsBase::Add(); +} + +void SAL_CALL +SwVbaDocuments::Close( ) throw (uno::RuntimeException) +{ + VbaDocumentsBase::Close(); +} + +uno::Any SAL_CALL +SwVbaDocuments::Open( const ::rtl::OUString& Filename, const uno::Any& ReadOnly, const uno::Sequence< beans::PropertyValue >& rProps ) throw (uno::RuntimeException) +{ + return VbaDocumentsBase::Open( Filename, ReadOnly, rProps ); +} + +rtl::OUString& +SwVbaDocuments::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaDocuments") ); + return sImplName; +} + +uno::Sequence<rtl::OUString> +SwVbaDocuments::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Documents") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbadocuments.hxx b/sw/source/ui/vba/vbadocuments.hxx new file mode 100644 index 000000000000..cb6b9d2ff513 --- /dev/null +++ b/sw/source/ui/vba/vbadocuments.hxx @@ -0,0 +1,69 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_DOCUMENTS_HXX +#define SW_VBA_DOCUMENTS_HXX + + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XDocuments.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <vbahelper/vbadocumentsbase.hxx> +#include "wordvbahelper.hxx" + + +typedef cppu::ImplInheritanceHelper1< VbaDocumentsBase, ov::word::XDocuments > SwVbaDocuments_BASE; + +class SwVbaDocuments : public SwVbaDocuments_BASE +{ +public: + SwVbaDocuments( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext ); + virtual ~SwVbaDocuments() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaDocuments_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); + + // Methods + virtual css::uno::Any SAL_CALL Add( const css::uno::Any& Template, const css::uno::Any& NewTemplate, const css::uno::Any& DocumentType, const css::uno::Any& Visible ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Open( const ::rtl::OUString& Filename, const css::uno::Any& ConfirmConversions, const css::uno::Any& ReadOnly, const css::uno::Any& AddToRecentFiles, const css::uno::Any& PasswordDocument, const css::uno::Any& PasswordTemplate, const css::uno::Any& Revert, const css::uno::Any& WritePasswordDocument, const css::uno::Any& WritePasswordTemplate, const css::uno::Any& Format, const css::uno::Any& Encoding, const css::uno::Any& Visible, const css::uno::Any& OpenAndRepair, const css::uno::Any& DocumentDirection, const css::uno::Any& NoEncodingDialog, const css::uno::Any& XMLTransform ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Close( const css::uno::Any& SaveChanges, const css::uno::Any& OriginalFormat, const css::uno::Any& RouteDocument ) throw (css::uno::RuntimeException); + + // VbaDocumentsBase / XDocumentsBase (to avoid warning C4266 for hiding function on wntmsci) + virtual css::uno::Any SAL_CALL Add() throw (css::uno::RuntimeException); + virtual void SAL_CALL Close( ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Open( const ::rtl::OUString& Filename, const css::uno::Any& ReadOnly, const css::uno::Sequence< css::beans::PropertyValue >& rProps ) throw (css::uno::RuntimeException); +}; + +#endif /* SW_VBA_DOCUMENTS_HXX */ diff --git a/sw/source/ui/vba/vbafield.cxx b/sw/source/ui/vba/vbafield.cxx new file mode 100644 index 000000000000..08f3ae44f4d3 --- /dev/null +++ b/sw/source/ui/vba/vbafield.cxx @@ -0,0 +1,481 @@ +/************************************************************************* + * + * 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: $ + * $Revision: $ + * + * 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. + * + ************************************************************************/ +#include "vbafield.hxx" +#include "vbarange.hxx" +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <com/sun/star/view/XSelectionSupplier.hpp> +#include <com/sun/star/text/XTextFieldsSupplier.hpp> +#include <ooo/vba/word/WdFieldType.hpp> +#include <com/sun/star/text/FilenameDisplayFormat.hpp> +#include <com/sun/star/util/XRefreshable.hpp> +#include <swtypes.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +// *** SwVbaField *********************************************** + +SwVbaField::SwVbaField( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rDocument, const uno::Reference< css::text::XTextField >& xTextField) throw ( uno::RuntimeException ) : SwVbaField_BASE( rParent, rContext ), mxTextDocument( rDocument ) +{ + mxTextField.set( xTextField, uno::UNO_QUERY_THROW ); +} + +// XHelperInterface +rtl::OUString& +SwVbaField::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaField") ); + return sImplName; +} + +uno::Sequence<rtl::OUString> +SwVbaField::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Field" ) ); + } + return aServiceNames; +} + +// *** _ReadFieldParams *********************************************** +// the codes are copied from ww8par5.cxx +class _ReadFieldParams +{ +private: + String aData; + xub_StrLen nLen, nFnd, nNext, nSavPtr; + String aFieldName; +public: + _ReadFieldParams( const String& rData ); + ~_ReadFieldParams(); + + xub_StrLen GoToTokenParam(); + long SkipToNextToken(); + xub_StrLen GetTokenSttPtr() const { return nFnd; } + + xub_StrLen FindNextStringPiece( xub_StrLen _nStart = STRING_NOTFOUND ); + bool GetTokenSttFromTo(xub_StrLen* _pFrom, xub_StrLen* _pTo, + xub_StrLen _nMax); + + String GetResult() const; + String GetFieldName()const { return aFieldName; } +}; + + +_ReadFieldParams::_ReadFieldParams( const String& _rData ) + : aData( _rData ), nLen( _rData.Len() ), nNext( 0 ) +{ + /* + erstmal nach einer oeffnenden Klammer oder einer Leerstelle oder einem + Anfuehrungszeichen oder einem Backslash suchen, damit der Feldbefehl + (also INCLUDEPICTURE bzw EINFUeGENGRAFIK bzw ...) ueberlesen wird + */ + while( (nLen > nNext) && (aData.GetChar( nNext ) == ' ') ) + ++nNext; + + sal_Unicode c; + while( nLen > nNext + && (c = aData.GetChar( nNext )) != ' ' + && c != '"' + && c != '\\' + && c != 132 + && c != 0x201c ) + ++nNext; + + nFnd = nNext; + nSavPtr = nNext; + aFieldName = aData.Copy( 0, nFnd ); +// cLastChar = aData.GetChar( nSavPtr ); +} + + +_ReadFieldParams::~_ReadFieldParams() +{ +// aData.SetChar( nSavPtr, cLastChar ); +} + + +String _ReadFieldParams::GetResult() const +{ + return (STRING_NOTFOUND == nFnd) + ? aEmptyStr + : aData.Copy( nFnd, (nSavPtr - nFnd) ); +} + + +xub_StrLen _ReadFieldParams::GoToTokenParam() +{ + xub_StrLen nOld = nNext; + if( -2 == SkipToNextToken() ) + return GetTokenSttPtr(); + nNext = nOld; + return STRING_NOTFOUND; +} + +// ret: -2: NOT a '\' parameter but normal Text +long _ReadFieldParams::SkipToNextToken() +{ + long nRet = -1; // Ende + if ( + (STRING_NOTFOUND != nNext) && (nLen > nNext) && + STRING_NOTFOUND != (nFnd = FindNextStringPiece(nNext)) + ) + { + nSavPtr = nNext; + + if ('\\' == aData.GetChar(nFnd) && '\\' != aData.GetChar(nFnd + 1)) + { + nRet = aData.GetChar(++nFnd); + nNext = ++nFnd; // und dahinter setzen + } + else + { + nRet = -2; + if ( + (STRING_NOTFOUND != nSavPtr ) && + ( + ('"' == aData.GetChar(nSavPtr - 1)) || + (0x201d == aData.GetChar(nSavPtr - 1)) + ) + ) + { + --nSavPtr; + } + } + } + return nRet; +} + +// FindNextPara sucht naechsten Backslash-Parameter oder naechste Zeichenkette +// bis zum Blank oder naechsten "\" oder zum schliessenden Anfuehrungszeichen +// oder zum String-Ende von pStr. +// +// Ausgabe ppNext (falls ppNext != 0) Suchbeginn fuer naechsten Parameter bzw. 0 +// +// Returnwert: 0 falls String-Ende erreicht, +// ansonsten Anfang des Paramters bzw. der Zeichenkette +// +xub_StrLen _ReadFieldParams::FindNextStringPiece(const xub_StrLen nStart) +{ + xub_StrLen n = ( STRING_NOTFOUND == nStart ) ? nFnd : nStart; // Anfang + xub_StrLen n2; // Ende + + nNext = STRING_NOTFOUND; // Default fuer nicht gefunden + + while( (nLen > n) && (aData.GetChar( n ) == ' ') ) + ++n; + + if( nLen == n ) + return STRING_NOTFOUND; // String End reached! + + if( (aData.GetChar( n ) == '"') // Anfuehrungszeichen vor Para? + || (aData.GetChar( n ) == 0x201c) + || (aData.GetChar( n ) == 132) ) + { + n++; // Anfuehrungszeichen ueberlesen + n2 = n; // ab hier nach Ende suchen + while( (nLen > n2) + && (aData.GetChar( n2 ) != '"') + && (aData.GetChar( n2 ) != 0x201d) + && (aData.GetChar( n2 ) != 147) ) + n2++; // Ende d. Paras suchen + } + else // keine Anfuehrungszeichen + { + n2 = n; // ab hier nach Ende suchen + while( (nLen > n2) && (aData.GetChar( n2 ) != ' ') ) // Ende d. Paras suchen + { + if( aData.GetChar( n2 ) == '\\' ) + { + if( aData.GetChar( n2+1 ) == '\\' ) + n2 += 2; // Doppel-Backslash -> OK + else + { + if( n2 > n ) + n2--; + break; // einfach-Backslash -> Ende + } + } + else + n2++; // kein Backslash -> OK + } + } + if( nLen > n2 ) + { + if(aData.GetChar( n2 ) != ' ') n2++; + nNext = n2; + } + return n; +} + + + +// read parameters "1-3" or 1-3 with both values between 1 and nMax +bool _ReadFieldParams::GetTokenSttFromTo(USHORT* pFrom, USHORT* pTo, USHORT nMax) +{ + USHORT nStart = 0; + USHORT nEnd = 0; + xub_StrLen n = GoToTokenParam(); + if( STRING_NOTFOUND != n ) + { + + String sParams( GetResult() ); + + xub_StrLen nIndex = 0; + String sStart( sParams.GetToken(0, '-', nIndex) ); + if( STRING_NOTFOUND != nIndex ) + { + nStart = static_cast<USHORT>(sStart.ToInt32()); + nEnd = static_cast<USHORT>(sParams.Copy(nIndex).ToInt32()); + } + } + if( pFrom ) *pFrom = nStart; + if( pTo ) *pTo = nEnd; + + return nStart && nEnd && (nMax >= nStart) && (nMax >= nEnd); +} + +// *** SwVbaFields *********************************************** + +uno::Any lcl_createField( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel, const uno::Any& aSource ) +{ + uno::Reference< text::XTextField > xTextField( aSource, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextDocument > xTextDocument( xModel, uno::UNO_QUERY_THROW ); + uno::Reference< word::XField > xField( new SwVbaField( xParent, xContext, xTextDocument, xTextField ) ); + return uno::makeAny( xField ); +} + +typedef ::cppu::WeakImplHelper1< css::container::XEnumeration > FieldEnumeration_BASE; +typedef ::cppu::WeakImplHelper2< container::XIndexAccess, container::XEnumerationAccess > FieldCollectionHelper_BASE; + +class FieldEnumeration : public FieldEnumeration_BASE +{ + uno::Reference< XHelperInterface > mxParent; + uno::Reference< uno::XComponentContext > mxContext; + uno::Reference< frame::XModel > mxModel; + uno::Reference< container::XEnumeration > mxEnumeration; +public: + FieldEnumeration( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel, const uno::Reference< container::XEnumeration >& xEnumeration ) : mxParent( xParent ), mxContext( xContext ), mxModel( xModel ), mxEnumeration( xEnumeration ) + { + } + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return mxEnumeration->hasMoreElements(); + } + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasMoreElements() ) + throw container::NoSuchElementException(); + return lcl_createField( mxParent, mxContext, mxModel, mxEnumeration->nextElement() ); + } +}; + +class FieldCollectionHelper : public FieldCollectionHelper_BASE +{ + uno::Reference< XHelperInterface > mxParent; + uno::Reference< uno::XComponentContext > mxContext; + uno::Reference< frame::XModel > mxModel; + uno::Reference< container::XEnumerationAccess > mxEnumerationAccess; +public: + FieldCollectionHelper( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) throw (css::uno::RuntimeException) : mxParent( xParent ), mxContext( xContext ), mxModel( xModel ) + { + uno::Reference< text::XTextFieldsSupplier > xSupp( xModel, uno::UNO_QUERY_THROW ); + mxEnumerationAccess.set( xSupp->getTextFields(), uno::UNO_QUERY_THROW ); + } + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) { return mxEnumerationAccess->getElementType(); } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) { return mxEnumerationAccess->hasElements(); } + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + uno::Reference< container::XEnumeration > xEnumeration = mxEnumerationAccess->createEnumeration(); + sal_Int32 nCount = 0; + while( xEnumeration->hasMoreElements() ) + { + ++nCount; + xEnumeration->nextElement(); + } + return nCount; + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException ) + { + if( Index < 0 || Index >= getCount() ) + throw lang::IndexOutOfBoundsException(); + + uno::Reference< container::XEnumeration > xEnumeration = mxEnumerationAccess->createEnumeration(); + sal_Int32 nCount = 0; + while( xEnumeration->hasMoreElements() ) + { + if( nCount == Index ) + { + return xEnumeration->nextElement(); + } + ++nCount; + } + throw lang::IndexOutOfBoundsException(); + } + // XEnumerationAccess + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + uno::Reference< container::XEnumeration > xEnumeration = mxEnumerationAccess->createEnumeration(); + return uno::Reference< container::XEnumeration >( new FieldEnumeration( mxParent, mxContext, mxModel, xEnumeration ) ); + } +}; + +SwVbaFields::SwVbaFields( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel ) : SwVbaFields_BASE( xParent, xContext , uno::Reference< container::XIndexAccess >( new FieldCollectionHelper( xParent, xContext, xModel ) ) ), mxModel( xModel ) +{ + mxMSF.set( mxModel, uno::UNO_QUERY_THROW ); +} + +uno::Reference< word::XField > SAL_CALL +SwVbaFields::Add( const css::uno::Reference< ::ooo::vba::word::XRange >& Range, const css::uno::Any& Type, const css::uno::Any& Text, const css::uno::Any& /*PreserveFormatting*/ ) throw (css::uno::RuntimeException) +{ + sal_Int32 nType = word::WdFieldType::wdFieldEmpty; + Type >>= nType; + rtl::OUString sText; + Text >>= sText; + + String sFieldName; + if( ( nType == word::WdFieldType::wdFieldEmpty ) && ( sText.getLength() > 0 ) ) + { + _ReadFieldParams aReadParam(sText); + sFieldName = aReadParam.GetFieldName(); + } + + uno::Reference< text::XTextContent > xTextField; + if( nType == word::WdFieldType::wdFieldFileName || sFieldName.EqualsIgnoreCaseAscii("FILENAME") ) + { + xTextField.set( Create_Field_FileName( sText ), uno::UNO_QUERY_THROW ); + } + else + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } + + SwVbaRange* pVbaRange = dynamic_cast< SwVbaRange* >( Range.get() ); + uno::Reference< text::XTextRange > xTextRange = pVbaRange->getXTextRange(); + uno::Reference< text::XText > xText = xTextRange->getText(); + xText->insertTextContent( xTextRange, xTextField, true ); + return uno::Reference< word::XField >( new SwVbaField( mxParent, mxContext, uno::Reference< text::XTextDocument >( mxModel, uno::UNO_QUERY_THROW ), uno::Reference< text::XTextField >( xTextField, uno::UNO_QUERY_THROW ) ) ); +} + +uno::Reference< text::XTextField > SwVbaFields::Create_Field_FileName( const rtl::OUString _text ) throw (uno::RuntimeException) +{ + uno::Reference< text::XTextField > xTextField( mxMSF->createInstance( rtl::OUString::createFromAscii("com.sun.star.text.TextField.FileName") ), uno::UNO_QUERY_THROW ); + sal_Int16 nFileFormat = text::FilenameDisplayFormat::NAME_AND_EXT; + if( _text.getLength() > 0 ) + { + long nRet; + _ReadFieldParams aReadParam( _text ); + while (-1 != (nRet = aReadParam.SkipToNextToken())) + { + switch (nRet) + { + case 'p': + nFileFormat = text::FilenameDisplayFormat::FULL; + break; + case '*': + //Skip over MERGEFORMAT + aReadParam.SkipToNextToken(); + break; + default: + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + break; + } + } + } + + uno::Reference< beans::XPropertySet > xProps( xTextField, uno::UNO_QUERY_THROW ); + xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FileFormat") ), uno::makeAny( nFileFormat ) ); + + return xTextField; +} + +uno::Reference< container::XEnumeration > SAL_CALL +SwVbaFields::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumerationAccess->createEnumeration(); +} + +// ScVbaCollectionBaseImpl +uno::Any +SwVbaFields::createCollectionObject( const uno::Any& aSource ) +{ + return lcl_createField( mxParent, mxContext, mxModel, aSource ); +} + +sal_Int32 SAL_CALL SwVbaFields::Update() throw (uno::RuntimeException) +{ + sal_Int32 nUpdate = 1; + try + { + uno::Reference< text::XTextFieldsSupplier > xSupp( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< util::XRefreshable > xRef( xSupp->getTextFields(), uno::UNO_QUERY_THROW ); + xRef->refresh(); + nUpdate = 0; + }catch( uno::Exception ) + { + nUpdate = 1; + } + return nUpdate; +} + +// XHelperInterface +rtl::OUString& +SwVbaFields::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaFields") ); + return sImplName; +} + +// XEnumerationAccess +uno::Type SAL_CALL +SwVbaFields::getElementType() throw (uno::RuntimeException) +{ + return word::XField::static_type(0); +} + +uno::Sequence<rtl::OUString> +SwVbaFields::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Fields" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbafield.hxx b/sw/source/ui/vba/vbafield.hxx new file mode 100644 index 000000000000..f02ead1f09d6 --- /dev/null +++ b/sw/source/ui/vba/vbafield.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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: $ + * $Revision: $ + * + * 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 SW_VBA_FIELD_HXX +#define SW_VBA_FIELD_HXX +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextField.hpp> +#include <ooo/vba/word/XField.hpp> +#include <ooo/vba/word/XFields.hpp> +#include <vbahelper/vbacollectionimpl.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XField > SwVbaField_BASE; + +class SwVbaField : public SwVbaField_BASE +{ + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + css::uno::Reference< css::text::XTextField > mxTextField; +public: + SwVbaField( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rDocument, const css::uno::Reference< css::text::XTextField >& xTextField) throw ( css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +// *** SwVbaFields *********************************************** + +typedef CollTestImplHelper< ov::word::XFields > SwVbaFields_BASE; + +class SwVbaFields : public SwVbaFields_BASE +{ + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::lang::XMultiServiceFactory > mxMSF; +private: + css::uno::Reference< css::text::XTextField > Create_Field_FileName( const rtl::OUString _text ) throw (css::uno::RuntimeException); + +public: + SwVbaFields( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xModel ); + // XFields + virtual css::uno::Reference< ::ooo::vba::word::XField > SAL_CALL Add( const css::uno::Reference< ::ooo::vba::word::XRange >& Range, const css::uno::Any& Type, const css::uno::Any& Text, const css::uno::Any& PreserveFormatting ) throw (css::uno::RuntimeException); + virtual sal_Int32 SAL_CALL Update() throw (css::uno::RuntimeException); + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + // ScVbaCollectionBaseImpl + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif diff --git a/sw/source/ui/vba/vbafind.cxx b/sw/source/ui/vba/vbafind.cxx new file mode 100644 index 000000000000..f60c0f134eda --- /dev/null +++ b/sw/source/ui/vba/vbafind.cxx @@ -0,0 +1,431 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbafind.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbareplacement.hxx" +#include <ooo/vba/word/WdFindWrap.hpp> +#include <ooo/vba/word/WdReplace.hpp> +#include <com/sun/star/text/XTextRangeCompare.hpp> +#include "wordvbahelper.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaFind::SwVbaFind( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XTextRange >& xTextRange ) throw ( uno::RuntimeException ) : + SwVbaFind_BASE( rParent, rContext ), mxModel( xModel ), mxTextRange( xTextRange ), mbReplace( sal_False ), mnReplaceType( word::WdReplace::wdReplaceOne ), mnWrap( word::WdFindWrap::wdFindStop ) +{ + mxReplaceable.set( mxModel, uno::UNO_QUERY_THROW ); + mxPropertyReplace.set( mxReplaceable->createReplaceDescriptor(), uno::UNO_QUERY_THROW ); + mxTVC = word::getXTextViewCursor( mxModel ); + mxSelSupp.set( mxModel->getCurrentController(), uno::UNO_QUERY_THROW ); +} + +SwVbaFind::~SwVbaFind() +{ +} + +sal_Bool SwVbaFind::InRange( const uno::Reference< text::XTextRange >& xCurrentRange ) throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRangeCompare > xTRC( mxTextRange->getText(), uno::UNO_QUERY_THROW ); + if( xTRC->compareRegionStarts( mxTextRange, xCurrentRange ) >= 0 && xTRC->compareRegionEnds( mxTextRange, xCurrentRange ) <= 0 ) + return sal_True; + return sal_False; +} + +sal_Bool SwVbaFind::InEqualRange( const uno::Reference< text::XTextRange >& xCurrentRange ) throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRangeCompare > xTRC( mxTextRange->getText(), uno::UNO_QUERY_THROW ); + if( xTRC->compareRegionStarts( mxTextRange, xCurrentRange ) == 0 && xTRC->compareRegionEnds( mxTextRange, xCurrentRange ) == 0 ) + return sal_True; + return sal_False; +} + +void SwVbaFind::SetReplaceWith( const rtl::OUString& rText ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setReplaceString( rText ); + mbReplace = sal_True; +} + +rtl::OUString SwVbaFind::GetReplaceWith() throw (uno::RuntimeException) +{ + return mxPropertyReplace->getReplaceString(); +} +void SwVbaFind::SetReplace( sal_Int32 type ) +{ + mnReplaceType = type; + mbReplace = sal_True; +} + +rtl::OUString SwVbaFind::ReplaceWildcards( const rtl::OUString& /*rText*/ ) throw ( uno::RuntimeException ) +{ + // TODO: + return rtl::OUString(); +} + +uno::Reference< text::XTextRange > SwVbaFind::FindOneElement() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xFoundOne; + if( mxTVC->getString().getLength() > 0 ) + { + if( getForward() ) + { + xFoundOne.set( mxReplaceable->findNext( mxTextRange->getStart(), uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + } + else + { + xFoundOne.set( mxReplaceable->findNext( mxTextRange->getEnd(), uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + } + + if( xFoundOne.is() && InEqualRange( xFoundOne ) ) + { + xFoundOne.set( mxReplaceable->findNext( xFoundOne, uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + } + else if( xFoundOne.is() && !InRange( xFoundOne ) ) + { + xFoundOne = uno::Reference< text::XTextRange >(); + } + } + else + { + xFoundOne.set( mxReplaceable->findNext( mxTextRange, uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + } + + if( !xFoundOne.is() && ( getWrap() == word::WdFindWrap::wdFindContinue || getWrap() == word::WdFindWrap::wdFindAsk ) ) + { + if( getForward() ) + { + mxTVC->gotoStart(sal_False); + xFoundOne.set( mxReplaceable->findNext( mxTextRange->getStart(), uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + } + else + { + mxTVC->gotoEnd( sal_False ); + xFoundOne.set( mxReplaceable->findNext( mxTextRange->getEnd(), uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ), uno::UNO_QUERY ); + + } + } + return xFoundOne; +} + +sal_Bool SwVbaFind::SearchReplace() throw (uno::RuntimeException) +{ + sal_Bool result = sal_False; + + // TODO: map wildcards in area to OOo wildcards + + if( mbReplace ) + { + switch( mnReplaceType ) + { + case word::WdReplace::wdReplaceNone: + { + result = sal_True; + break; + } + case word::WdReplace::wdReplaceOne: + { + uno::Reference< text::XTextRange > xFindOne = FindOneElement(); + if( xFindOne.is() ) + { + xFindOne->setString( GetReplaceWith() ); + result = mxSelSupp->select( uno::makeAny( xFindOne ) ); + } + break; + } + case word::WdReplace::wdReplaceAll: + { + uno::Reference< container::XIndexAccess > xIndexAccess = mxReplaceable->findAll( uno::Reference< util::XSearchDescriptor >( mxPropertyReplace, uno::UNO_QUERY_THROW ) ); + if( xIndexAccess->getCount() > 0 ) + { + for( sal_Int32 i = 0; i < xIndexAccess->getCount(); i++ ) + { + uno::Reference< text::XTextRange > xTextRange( xIndexAccess->getByIndex( i ), uno::UNO_QUERY_THROW ); + if( mnWrap == word::WdFindWrap::wdFindContinue || mnWrap == word::WdFindWrap::wdFindAsk || InRange( xTextRange ) ) + { + xTextRange->setString( GetReplaceWith() ); + result = sal_True; + } + } + } + break; + } + default: + { + result = sal_False; + } + } + } + else + { + uno::Reference< text::XTextRange > xFindOne = FindOneElement(); + if( xFindOne.is() ) + result = mxSelSupp->select( uno::makeAny( xFindOne ) ); + } + + return result; +} + +::rtl::OUString SAL_CALL SwVbaFind::getText() throw (uno::RuntimeException) +{ + return mxPropertyReplace->getSearchString(); +} + +void SAL_CALL SwVbaFind::setText( const ::rtl::OUString& _text ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setSearchString( _text ); +} + +uno::Any SAL_CALL SwVbaFind::getReplacement() throw (uno::RuntimeException) +{ + return uno::makeAny( uno::Reference< word::XReplacement >( new SwVbaReplacement( this, mxContext, mxPropertyReplace ) ) ); +} + +void SAL_CALL SwVbaFind::setReplacement( const uno::Any& /*_replacement */ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +::sal_Bool SAL_CALL SwVbaFind::getForward() throw (uno::RuntimeException) +{ + sal_Bool bBackward = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchBackwards") ) ) >>= bBackward; + return !bBackward; +} + +void SAL_CALL SwVbaFind::setForward( ::sal_Bool _forward ) throw (uno::RuntimeException) +{ + sal_Bool bBackward = !_forward; + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchBackwards") ), uno::makeAny( bBackward ) ); +} + +::sal_Int32 SAL_CALL SwVbaFind::getWrap() throw (uno::RuntimeException) +{ + // seems not supported in Writer + return mnWrap; +} + +void SAL_CALL SwVbaFind::setWrap( ::sal_Int32 _wrap ) throw (uno::RuntimeException) +{ + // seems not supported in Writer + mnWrap = _wrap; +} + +::sal_Bool SAL_CALL SwVbaFind::getFormat() throw (uno::RuntimeException) +{ + return mxPropertyReplace->getValueSearch(); +} + +void SAL_CALL SwVbaFind::setFormat( ::sal_Bool _format ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setValueSearch( _format ); +} + +::sal_Bool SAL_CALL SwVbaFind::getMatchCase() throw (uno::RuntimeException) +{ + sal_Bool value = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchCaseSensitive") ) ) >>= value; + return value; +} + +void SAL_CALL SwVbaFind::setMatchCase( ::sal_Bool _matchcase ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchCaseSensitive") ), uno::makeAny( _matchcase ) ); +} + +::sal_Bool SAL_CALL SwVbaFind::getMatchWholeWord() throw (uno::RuntimeException) +{ + sal_Bool value = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchWords") ) ) >>= value; + return value; +} + +void SAL_CALL SwVbaFind::setMatchWholeWord( ::sal_Bool _matchwholeword ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchWords") ), uno::makeAny( _matchwholeword ) ); +} + +::sal_Bool SAL_CALL SwVbaFind::getMatchWildcards() throw (uno::RuntimeException) +{ + sal_Bool value = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchRegularExpression") ) ) >>= value; + return value; +} + +void SAL_CALL SwVbaFind::setMatchWildcards( ::sal_Bool _matchwildcards ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchRegularExpression") ), uno::makeAny( _matchwildcards ) ); +} + +::sal_Bool SAL_CALL SwVbaFind::getMatchSoundsLike() throw (uno::RuntimeException) +{ + sal_Bool value = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarity") ) ) >>= value; + return value; +} + +void SAL_CALL SwVbaFind::setMatchSoundsLike( ::sal_Bool _matchsoundslike ) throw (uno::RuntimeException) +{ + // seems not accurate + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarity") ), uno::makeAny( _matchsoundslike ) ); +} + +::sal_Bool SAL_CALL SwVbaFind::getMatchAllWordForms() throw (uno::RuntimeException) +{ + sal_Bool value = sal_False; + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarity") ) ) >>= value; + if( value ) + mxPropertyReplace->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarityRelax") ) ) >>= value; + return value; +} + +void SAL_CALL SwVbaFind::setMatchAllWordForms( ::sal_Bool _matchallwordforms ) throw (uno::RuntimeException) +{ + // seems not accurate + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarity") ), uno::makeAny( _matchallwordforms ) ); + mxPropertyReplace->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SearchSimilarityRelax") ), uno::makeAny( _matchallwordforms ) ); +} + +uno::Any SAL_CALL SwVbaFind::getStyle() throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +void SAL_CALL SwVbaFind::setStyle( const uno::Any& /*_style */ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +sal_Bool SAL_CALL +SwVbaFind::Execute( const uno::Any& FindText, const uno::Any& MatchCase, const uno::Any& MatchWholeWord, const uno::Any& MatchWildcards, const uno::Any& MatchSoundsLike, const uno::Any& MatchAllWordForms, const uno::Any& Forward, const uno::Any& Wrap, const uno::Any& Format, const uno::Any& ReplaceWith, const uno::Any& Replace, const uno::Any& /*MatchKashida*/, const uno::Any& /*MatchDiacritics*/, const uno::Any& /*MatchAlefHamza*/, const uno::Any& /*MatchControl*/, const uno::Any& /*MatchPrefix*/, const uno::Any& /*MatchSuffix*/, const uno::Any& /*MatchPhrase*/, const uno::Any& /*IgnoreSpace*/, const uno::Any& /*IgnorePunct*/ ) throw (uno::RuntimeException) +{ + sal_Bool result = sal_False; + if( FindText.hasValue() ) + { + rtl::OUString sText; + FindText >>= sText; + setText( sText ); + } + + sal_Bool bValue = sal_False; + if( MatchCase.hasValue() ) + { + MatchCase >>= bValue; + setMatchCase( bValue ); + } + + if( MatchWholeWord.hasValue() ) + { + MatchWholeWord >>= bValue; + setMatchWholeWord( bValue ); + } + + if( MatchWildcards.hasValue() ) + { + MatchWildcards >>= bValue; + setMatchWildcards( bValue ); + } + + if( MatchSoundsLike.hasValue() ) + { + MatchSoundsLike >>= bValue; + setMatchSoundsLike( bValue ); + } + + if( MatchAllWordForms.hasValue() ) + { + MatchAllWordForms >>= bValue; + setMatchAllWordForms( bValue ); + } + + if( Forward.hasValue() ) + { + Forward >>= bValue; + setForward( bValue ); + } + + if( Wrap.hasValue() ) + { + sal_Int32 nWrapType = 0; + Wrap >>= nWrapType; + setWrap( nWrapType ); + } + + if( Format.hasValue() ) + { + Format >>= bValue; + setFormat( bValue ); + } + + if( ReplaceWith.hasValue() ) + { + rtl::OUString sValue; + ReplaceWith >>= sValue; + SetReplaceWith( sValue ); + } + + if( Replace.hasValue() ) + { + sal_Int32 nValue(0); + Replace >>= nValue; + SetReplace( nValue ); + } + + result = SearchReplace(); + + return result; +} + +void SAL_CALL +SwVbaFind::ClearFormatting( ) throw (uno::RuntimeException) +{ + uno::Sequence< beans::PropertyValue > aSearchAttribs; + mxPropertyReplace->setSearchAttributes( aSearchAttribs ); +} + +rtl::OUString& +SwVbaFind::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaFind") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaFind::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Find" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbafind.hxx b/sw/source/ui/vba/vbafind.hxx new file mode 100644 index 000000000000..bd409770e466 --- /dev/null +++ b/sw/source/ui/vba/vbafind.hxx @@ -0,0 +1,104 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_FIND_HXX +#define SW_VBA_FIND_HXX + +#include <ooo/vba/word/XFind.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/util/XReplaceable.hpp> +#include <com/sun/star/util/XPropertyReplace.hpp> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XTextCursor.hpp> +#include <com/sun/star/view/XSelectionSupplier.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XFind > SwVbaFind_BASE; + +class SwVbaFind : public SwVbaFind_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::text::XTextRange > mxTextRange; + css::uno::Reference< css::util::XReplaceable > mxReplaceable; + css::uno::Reference< css::util::XPropertyReplace> mxPropertyReplace; + css::uno::Reference< css::text::XTextViewCursor> mxTVC; + css::uno::Reference< css::view::XSelectionSupplier> mxSelSupp; + sal_Bool mbReplace; + sal_Int32 mnReplaceType; + sal_Int32 mnWrap; + +private: + sal_Bool InRange( const css::uno::Reference< css::text::XTextRange >& xCurrentRange ) throw ( css::uno::RuntimeException ); + sal_Bool InEqualRange( const css::uno::Reference< css::text::XTextRange >& xCurrentRange ) throw ( css::uno::RuntimeException ); + void SetReplace( sal_Int32 type ); + void SetReplaceWith( const rtl::OUString& rText ) throw ( css::uno::RuntimeException ); + rtl::OUString GetReplaceWith() throw ( css::uno::RuntimeException ); + rtl::OUString ReplaceWildcards( const rtl::OUString& rText ) throw ( css::uno::RuntimeException ); + css::uno::Reference< css::text::XTextRange > FindOneElement() throw ( css::uno::RuntimeException ); + sal_Bool SearchReplace() throw ( css::uno::RuntimeException ); + +public: + SwVbaFind( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XTextRange >& xTextRange ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaFind(); + + // Attributes + virtual ::rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException); + virtual void SAL_CALL setText( const ::rtl::OUString& _text ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getReplacement() throw (css::uno::RuntimeException); + virtual void SAL_CALL setReplacement( const css::uno::Any& _replacement ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getForward() throw (css::uno::RuntimeException); + virtual void SAL_CALL setForward( ::sal_Bool _forward ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getWrap() throw (css::uno::RuntimeException); + virtual void SAL_CALL setWrap( ::sal_Int32 _wrap ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getFormat() throw (css::uno::RuntimeException); + virtual void SAL_CALL setFormat( ::sal_Bool _format ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMatchCase() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMatchCase( ::sal_Bool _matchcase ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMatchWholeWord() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMatchWholeWord( ::sal_Bool _matchwholeword ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMatchWildcards() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMatchWildcards( ::sal_Bool _matchwildcards ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMatchSoundsLike() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMatchSoundsLike( ::sal_Bool _matchsoundslike ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMatchAllWordForms() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMatchAllWordForms( ::sal_Bool _matchallwordforms ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getStyle() throw (css::uno::RuntimeException); + virtual void SAL_CALL setStyle( const css::uno::Any& _style ) throw (css::uno::RuntimeException); + + // Methods + virtual ::sal_Bool SAL_CALL Execute( const css::uno::Any& FindText, const css::uno::Any& MatchCase, const css::uno::Any& MatchWholeWord, const css::uno::Any& MatchWildcards, const css::uno::Any& MatchSoundsLike, const css::uno::Any& MatchAllWordForms, const css::uno::Any& Forward, const css::uno::Any& Wrap, const css::uno::Any& Format, const css::uno::Any& ReplaceWith, const css::uno::Any& Replace, const css::uno::Any& MatchKashida, const css::uno::Any& MatchDiacritics, const css::uno::Any& MatchAlefHamza, const css::uno::Any& MatchControl, const css::uno::Any& MatchPrefix, const css::uno::Any& MatchSuffix, const css::uno::Any& MatchPhrase, const css::uno::Any& IgnoreSpace, const css::uno::Any& IgnorePunct ) throw (css::uno::RuntimeException); + virtual void SAL_CALL ClearFormatting( ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_FIND_HXX */ diff --git a/sw/source/ui/vba/vbafont.cxx b/sw/source/ui/vba/vbafont.cxx new file mode 100644 index 000000000000..47f39bcbefda --- /dev/null +++ b/sw/source/ui/vba/vbafont.cxx @@ -0,0 +1,216 @@ +#include "vbafont.hxx" +#include <com/sun/star/awt/FontUnderline.hpp> +#include <ooo/vba/word/WdUnderline.hpp> +#include <hash_map> +#include <ooo/vba/word/WdColorIndex.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +const uno::Any aLongAnyTrue( sal_Int16(-1) ); +const uno::Any aLongAnyFalse( sal_Int16( 0 ) ); + +struct MapPair +{ + sal_Int32 nMSOConst; + sal_Int32 nOOOConst; +}; + +static MapPair UnderLineTable[] = { + { word::WdUnderline::wdUnderlineNone, com::sun::star::awt::FontUnderline::NONE }, + { word::WdUnderline::wdUnderlineSingle, com::sun::star::awt::FontUnderline::SINGLE }, + { word::WdUnderline::wdUnderlineWords, com::sun::star::awt::FontUnderline::SINGLE }, + { word::WdUnderline::wdUnderlineDouble, com::sun::star::awt::FontUnderline::DOUBLE }, + { word::WdUnderline::wdUnderlineDotted, com::sun::star::awt::FontUnderline::DOTTED }, + { word::WdUnderline::wdUnderlineThick, com::sun::star::awt::FontUnderline::BOLDDASH }, + { word::WdUnderline::wdUnderlineDash, com::sun::star::awt::FontUnderline::DASH }, + { word::WdUnderline::wdUnderlineDotDash, com::sun::star::awt::FontUnderline::DASHDOT }, + { word::WdUnderline::wdUnderlineDotDotDash, com::sun::star::awt::FontUnderline::DASHDOTDOT }, + { word::WdUnderline::wdUnderlineWavy, com::sun::star::awt::FontUnderline::WAVE }, + { word::WdUnderline::wdUnderlineDottedHeavy, com::sun::star::awt::FontUnderline::BOLDDOTTED }, + { word::WdUnderline::wdUnderlineDashHeavy, com::sun::star::awt::FontUnderline::BOLDDASH }, + { word::WdUnderline::wdUnderlineDotDashHeavy, com::sun::star::awt::FontUnderline::BOLDDASHDOT }, + { word::WdUnderline::wdUnderlineDotDotDashHeavy, com::sun::star::awt::FontUnderline::BOLDDASHDOTDOT }, + { word::WdUnderline::wdUnderlineWavyHeavy, com::sun::star::awt::FontUnderline::BOLDWAVE }, + { word::WdUnderline::wdUnderlineDashLong, com::sun::star::awt::FontUnderline::LONGDASH }, + { word::WdUnderline::wdUnderlineWavyDouble, com::sun::star::awt::FontUnderline::DOUBLEWAVE }, + { word::WdUnderline::wdUnderlineDashLongHeavy, com::sun::star::awt::FontUnderline::BOLDLONGDASH }, +}; + +typedef std::hash_map< sal_Int32, sal_Int32 > ConstToConst; +class UnderLineMapper +{ + ConstToConst MSO2OOO; + ConstToConst OOO2MSO; +private: + UnderLineMapper() + { + sal_Int32 nLen = sizeof( UnderLineTable )/ sizeof( UnderLineTable[0] ); + + for ( sal_Int32 index=0; index<nLen; ++index ) + { + MSO2OOO[ UnderLineTable[ index ].nMSOConst ] = UnderLineTable[ index ].nOOOConst; + OOO2MSO[ UnderLineTable[ index ].nOOOConst ] = UnderLineTable[ index ].nMSOConst; + } + } +public: + static rtl::OUString propName() + { + static rtl::OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("CharUnderline") ); + return sPropName; + } + + static UnderLineMapper& instance() + { + static UnderLineMapper theMapper; + return theMapper; + } + + sal_Int32 getOOOFromMSO( sal_Int32 nMSOConst ) throw( lang::IllegalArgumentException ) + { + ConstToConst::iterator it = MSO2OOO.find( nMSOConst ); + if ( it == MSO2OOO.end() ) + throw lang::IllegalArgumentException(); + return it->second; + } + sal_Int32 getMSOFromOOO( sal_Int32 nOOOConst ) throw( lang::IllegalArgumentException ) + { + ConstToConst::iterator it = OOO2MSO.find( nOOOConst ); + if ( it == OOO2MSO.end() ) + throw lang::IllegalArgumentException(); + return it->second; + } +}; + +SwVbaFont::SwVbaFont( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xPalette, uno::Reference< css::beans::XPropertySet > xPropertySet ) throw ( css::uno::RuntimeException ) : SwVbaFont_BASE( xParent, xContext, xPalette, xPropertySet ) +{ +} + +uno::Any SAL_CALL +SwVbaFont::getUnderline() throw (uno::RuntimeException) +{ + sal_Int32 nOOVal = 0; + mxFont->getPropertyValue( UnderLineMapper::propName() ) >>= nOOVal; + return uno::makeAny( UnderLineMapper::instance().getMSOFromOOO( nOOVal ) ); +} + +void SAL_CALL +SwVbaFont::setUnderline( const uno::Any& _underline ) throw (uno::RuntimeException) +{ + sal_Int32 nMSOVal = 0; + + if ( _underline >>= nMSOVal ) + { + sal_Int32 nOOVal = UnderLineMapper::instance().getOOOFromMSO( nMSOVal ); + mxFont->setPropertyValue( UnderLineMapper::propName(), uno::makeAny( nOOVal ) ); + } +} + +rtl::OUString& +SwVbaFont::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaFont") ); + return sImplName; +} + +void SAL_CALL +SwVbaFont::setColorIndex( const uno::Any& _colorindex ) throw( uno::RuntimeException ) +{ + sal_Int32 nIndex = 0; + _colorindex >>= nIndex; + return setColor( OORGBToXLRGB(mxPalette->getByIndex( nIndex )) ); +} + +uno::Any SAL_CALL +SwVbaFont::getColorIndex() throw ( uno::RuntimeException ) +{ + sal_Int32 nColor = 0; + + XLRGBToOORGB( getColor() ) >>= nColor; + sal_Int32 nElems = mxPalette->getCount(); + sal_Int32 nIndex = 0; + for ( sal_Int32 count=0; count<nElems; ++count ) + { + sal_Int32 nPaletteColor = 0; + mxPalette->getByIndex( count ) >>= nPaletteColor; + if ( nPaletteColor == nColor ) + { + nIndex = count; + break; + } + } + return uno::makeAny( nIndex ); +} +uno::Any SAL_CALL +SwVbaFont::getSubscript() throw ( uno::RuntimeException ) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getSubscript() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Any SAL_CALL +SwVbaFont::getSuperscript() throw ( uno::RuntimeException ) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getSuperscript() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Any SAL_CALL +SwVbaFont::getBold() throw (uno::RuntimeException) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getBold() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Any SAL_CALL +SwVbaFont::getItalic() throw (uno::RuntimeException) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getItalic() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Any SAL_CALL +SwVbaFont::getStrikethrough() throw (css::uno::RuntimeException) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getStrikethrough() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Any SAL_CALL +SwVbaFont::getShadow() throw (uno::RuntimeException) +{ + sal_Bool bRes = sal_False; + SwVbaFont_BASE::getShadow() >>= bRes; + if ( bRes ) + return aLongAnyTrue; + return aLongAnyFalse; +} + +uno::Sequence< rtl::OUString > +SwVbaFont::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Font" ) ); + } + return aServiceNames; +} + + diff --git a/sw/source/ui/vba/vbafont.hxx b/sw/source/ui/vba/vbafont.hxx new file mode 100644 index 000000000000..1500c2a314dd --- /dev/null +++ b/sw/source/ui/vba/vbafont.hxx @@ -0,0 +1,31 @@ +#ifndef VBA_FONT_HXX +#define VBA_FONT_HXX + +#include <vbahelper/vbafontbase.hxx> +#include <ooo/vba/word/XFont.hpp> + +typedef cppu::ImplInheritanceHelper1< VbaFontBase, ov::word::XFont > SwVbaFont_BASE; + +class SwVbaFont : public SwVbaFont_BASE +{ +public: + SwVbaFont( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xPalette, css::uno::Reference< css::beans::XPropertySet > xPropertySet ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaFont(){} + + // Attributes + virtual void SAL_CALL setColorIndex( const css::uno::Any& _colorindex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getColorIndex() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getUnderline() throw (css::uno::RuntimeException); + virtual void SAL_CALL setUnderline( const css::uno::Any& _underline ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getSubscript() throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL getSuperscript() throw ( css::uno::RuntimeException ); + + virtual css::uno::Any SAL_CALL getBold() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getItalic() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getStrikethrough() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getShadow() throw (css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif diff --git a/sw/source/ui/vba/vbaglobals.cxx b/sw/source/ui/vba/vbaglobals.cxx new file mode 100644 index 000000000000..72938077cbdf --- /dev/null +++ b/sw/source/ui/vba/vbaglobals.cxx @@ -0,0 +1,196 @@ +/************************************************************************* + * + * 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: vbaglobals.cxx,v $ + * $Revision: 1.4 $ + * + * 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. + * + ************************************************************************/ +#include <vbahelper/helperdecl.hxx> +#include "vbaglobals.hxx" + +#include <comphelper/unwrapargs.hxx> + +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <cppuhelper/bootstrap.hxx> +#include "vbaapplication.hxx" +using namespace ::com::sun::star; +using namespace ::com::sun::star::uno; +using namespace ::ooo::vba; + + +rtl::OUString sDocCtxName( RTL_CONSTASCII_USTRINGPARAM("WordDocumentContext") ); + +// ============================================================================= +// SwVbaGlobals +// ============================================================================= + +SwVbaGlobals::SwVbaGlobals( uno::Sequence< uno::Any > const& aArgs, uno::Reference< uno::XComponentContext >const& rxContext ) : SwVbaGlobals_BASE( uno::Reference< XHelperInterface >(), rxContext, sDocCtxName ) +{ + OSL_TRACE("SwVbaGlobals::SwVbaGlobals()"); + uno::Sequence< beans::PropertyValue > aInitArgs( 2 ); + aInitArgs[ 0 ].Name = rtl::OUString::createFromAscii("Application"); + aInitArgs[ 0 ].Value = uno::makeAny( getApplication() ); + aInitArgs[ 1 ].Name = sDocCtxName; + aInitArgs[ 1 ].Value = uno::makeAny( getXSomethingFromArgs< frame::XModel >( aArgs, 0 ) ); + + init( aInitArgs ); +} + +SwVbaGlobals::~SwVbaGlobals() +{ + OSL_TRACE("SwVbaGlobals::~SwVbaGlobals"); +} + +// ============================================================================= +// XGlobals +// ============================================================================= +uno::Reference<word::XApplication > +SwVbaGlobals::getApplication() throw (uno::RuntimeException) +{ + OSL_TRACE("In SwVbaGlobals::getApplication"); + if ( !mxApplication.is() ) + mxApplication.set( new SwVbaApplication( mxContext) ); + + return mxApplication; +} + +uno::Reference<word::XSystem > SAL_CALL +SwVbaGlobals::getSystem() throw (uno::RuntimeException) +{ + return getApplication()->getSystem(); +} + +uno::Reference< word::XDocument > SAL_CALL +SwVbaGlobals::getActiveDocument() throw (uno::RuntimeException) +{ + return getApplication()->getActiveDocument(); +} + +uno::Reference< word::XWindow > SAL_CALL +SwVbaGlobals::getActiveWindow() throw (uno::RuntimeException) +{ + return getApplication()->getActiveWindow(); +} + +rtl::OUString SAL_CALL +SwVbaGlobals::getName() throw (uno::RuntimeException) +{ + return getApplication()->getName(); +} + +uno::Reference<word::XOptions > SAL_CALL +SwVbaGlobals::getOptions() throw (uno::RuntimeException) +{ + return getApplication()->getOptions(); +} + +uno::Any SAL_CALL +SwVbaGlobals::CommandBars( const uno::Any& aIndex ) throw (uno::RuntimeException) +{ + return getApplication()->CommandBars( aIndex ); +} + +uno::Any SAL_CALL +SwVbaGlobals::Documents( const uno::Any& index ) throw (uno::RuntimeException) +{ + return getApplication()->Documents( index ); +} + +uno::Any SAL_CALL +SwVbaGlobals::Addins( const uno::Any& index ) throw (uno::RuntimeException) +{ + return getApplication()->Addins( index ); +} + +uno::Any SAL_CALL +SwVbaGlobals::Dialogs( const uno::Any& index ) throw (uno::RuntimeException) +{ + return getApplication()->Dialogs( index ); +} + +uno::Reference<word::XSelection > SAL_CALL +SwVbaGlobals::getSelection() throw (uno::RuntimeException) +{ + return getApplication()->getSelection(); +} + +float SAL_CALL SwVbaGlobals::CentimetersToPoints( float _Centimeters ) throw (uno::RuntimeException) +{ + return getApplication()->CentimetersToPoints( _Centimeters ); +} + +rtl::OUString& +SwVbaGlobals::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaGlobals") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaGlobals::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Globals" ) ); + } + return aServiceNames; +} + +uno::Sequence< rtl::OUString > +SwVbaGlobals::getAvailableServiceNames( ) throw (uno::RuntimeException) +{ + static bool bInit = false; + static uno::Sequence< rtl::OUString > serviceNames( SwVbaGlobals_BASE::getAvailableServiceNames() ); + if ( !bInit ) + { + rtl::OUString names[] = { + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ooo.vba.word.Document" ) ), +// #FIXME #TODO make Application a proper service +// ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ooo.vba.word.Application" ) ), + }; + sal_Int32 nWordServices = ( sizeof( names )/ sizeof( names[0] ) ); + sal_Int32 startIndex = serviceNames.getLength(); + serviceNames.realloc( serviceNames.getLength() + nWordServices ); + for ( sal_Int32 index = 0; index < nWordServices; ++index ) + serviceNames[ startIndex + index ] = names[ index ]; + bInit = true; + } + return serviceNames; +} + +namespace globals +{ +namespace sdecl = comphelper::service_decl; +sdecl::vba_service_class_<SwVbaGlobals, sdecl::with_args<true> > serviceImpl; +extern sdecl::ServiceDecl const serviceDecl( + serviceImpl, + "SwVbaGlobals", + "ooo.vba.word.Globals" ); +} + diff --git a/sw/source/ui/vba/vbaglobals.hxx b/sw/source/ui/vba/vbaglobals.hxx new file mode 100644 index 000000000000..745c28a996f5 --- /dev/null +++ b/sw/source/ui/vba/vbaglobals.hxx @@ -0,0 +1,83 @@ +/************************************************************************* + * + * 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: vbaglobals.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_GLOBALS_HXX +#define SW_VBA_GLOBALS_HXX + +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <ooo/vba/word/XGlobals.hpp> +#include <ooo/vba/word/XApplication.hpp> +#include <ooo/vba/word/XSystem.hpp> +#include <ooo/vba/word/XOptions.hpp> +#include <ooo/vba/word/XSelection.hpp> +#include <cppuhelper/implbase1.hxx> +#include <vbahelper/vbahelper.hxx> +#include <vbahelper/vbaglobalbase.hxx> + +// ============================================================================= +// class SwVbaGlobals +// ============================================================================= + + +typedef ::cppu::ImplInheritanceHelper1< VbaGlobalsBase, ov::word::XGlobals > SwVbaGlobals_BASE; + +class SwVbaGlobals : public SwVbaGlobals_BASE +{ +private: + css::uno::Reference< ooo::vba::word::XApplication > mxApplication; + + virtual css::uno::Reference< ooo::vba::word::XApplication > getApplication() throw (css::uno::RuntimeException); + +public: + + SwVbaGlobals( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext >const& rxContext ); + virtual ~SwVbaGlobals(); + + // XGlobals + virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XSystem > SAL_CALL getSystem() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ov::word::XDocument > SAL_CALL getActiveDocument() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ov::word::XWindow > SAL_CALL getActiveWindow() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XOptions > SAL_CALL getOptions() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XSelection > SAL_CALL getSelection() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL CommandBars( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Documents( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Addins( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Dialogs( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual float SAL_CALL CentimetersToPoints( float _Centimeters ) throw (css::uno::RuntimeException); + // XMultiServiceFactory + virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames( ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_GLOBALS_HXX */ diff --git a/sw/source/ui/vba/vbaheaderfooter.cxx b/sw/source/ui/vba/vbaheaderfooter.cxx new file mode 100644 index 000000000000..31225c0fe167 --- /dev/null +++ b/sw/source/ui/vba/vbaheaderfooter.cxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaheaderfooter.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include <ooo/vba/word/WdHeaderFooterIndex.hpp> +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/drawing/XDrawPageSupplier.hpp> +#include "vbarange.hxx" +#include <vbahelper/vbashapes.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaHeaderFooter::SwVbaHeaderFooter( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< frame::XModel >& xModel, const uno::Reference< beans::XPropertySet >& rProps, sal_Bool isHeader, sal_Int32 index ) throw ( uno::RuntimeException ) : SwVbaHeaderFooter_BASE( rParent, rContext ), mxModel( xModel ), mxPageStyleProps( rProps ), mbHeader( isHeader ), mnIndex( index ) +{ +} + +sal_Bool SAL_CALL SwVbaHeaderFooter::getIsHeader() throw (uno::RuntimeException) +{ + return mbHeader; +} + +sal_Bool SAL_CALL SwVbaHeaderFooter::getLinkToPrevious() throw (uno::RuntimeException) +{ + // seems always false + return sal_False; +} + +void SAL_CALL SwVbaHeaderFooter::setLinkToPrevious( ::sal_Bool /*_linktoprevious*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +uno::Reference< word::XRange > SAL_CALL SwVbaHeaderFooter::getRange() throw (uno::RuntimeException) +{ + rtl::OUString sPropsNameText; + if( mbHeader ) + { + sPropsNameText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderText") ); + } + else + { + sPropsNameText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterText") ); + } + if( mnIndex == word::WdHeaderFooterIndex::wdHeaderFooterEvenPages ) + { + sPropsNameText.concat( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Left") ) ); + } + + uno::Reference< text::XText > xText( mxPageStyleProps->getPropertyValue( sPropsNameText ), uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextDocument > xDocument( mxModel, uno::UNO_QUERY_THROW ); + return uno::Reference< word::XRange >( new SwVbaRange( this, mxContext, xDocument, xText->getStart(), xText->getEnd(), xText ) ); +} + +uno::Any SAL_CALL +SwVbaHeaderFooter::Shapes( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( mxModel, uno::UNO_QUERY_THROW ); + //uno::Reference< drawing::XShapes > xShapes( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xIndexAccess( xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); + uno::Reference< XCollection > xCol( new ScVbaShapes( this, mxContext, xIndexAccess, mxModel ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +rtl::OUString& +SwVbaHeaderFooter::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaHeaderFooter") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaHeaderFooter::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Pane" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbaheaderfooter.hxx b/sw/source/ui/vba/vbaheaderfooter.hxx new file mode 100644 index 000000000000..8308102abe2c --- /dev/null +++ b/sw/source/ui/vba/vbaheaderfooter.hxx @@ -0,0 +1,63 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_HEADERFOOTER_HXX +#define SW_VBA_HEADERFOOTER_HXX + +#include <ooo/vba/word/XHeaderFooter.hpp> +#include <ooo/vba/word/XRange.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XHeaderFooter > SwVbaHeaderFooter_BASE; + +class SwVbaHeaderFooter : public SwVbaHeaderFooter_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::beans::XPropertySet > mxPageStyleProps; + sal_Bool mbHeader; + sal_Int32 mnIndex; + +public: + SwVbaHeaderFooter( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::beans::XPropertySet >& xProps, sal_Bool isHeader, sal_Int32 index ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaHeaderFooter(){} + + // Attributes + virtual ::sal_Bool SAL_CALL getIsHeader() throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getLinkToPrevious() throw (css::uno::RuntimeException); + virtual void SAL_CALL setLinkToPrevious( ::sal_Bool _linktoprevious ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ::ooo::vba::word::XRange > SAL_CALL getRange() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Shapes( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_HEADERFOOTER_HXX */ diff --git a/sw/source/ui/vba/vbaheaderfooterhelper.cxx b/sw/source/ui/vba/vbaheaderfooterhelper.cxx new file mode 100644 index 000000000000..afc83ed31140 --- /dev/null +++ b/sw/source/ui/vba/vbaheaderfooterhelper.cxx @@ -0,0 +1,178 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaheaderfooterhelper.hxx" +#include "wordvbahelper.hxx" +#include <comphelper/processfactory.hxx> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/container/XNameAccess.hpp> + +using namespace ::com::sun::star; +using namespace ::ooo::vba; + +#define FIRST_PAGE 1; + +// Class HeaderFooterHelper + +sal_Bool HeaderFooterHelper::isHeader( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( xModel ), uno::UNO_QUERY_THROW ); + + sal_Bool isOn = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn"))) >>= isOn; + if( !isOn ) + return sal_False; + + sal_Bool isShared = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsShared"))) >>= isShared; + + rtl::OUString aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderText") ); + if( !isShared ) + { + if( 0 == xPageCursor->getPage() % 2 ) + { + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderTextLeft") ); + } + else + { + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderTextRight") ); + } + } + + uno::Reference< text::XText > xText( xStyleProps->getPropertyValue( aPropText ), uno::UNO_QUERY_THROW ); + //FIXME: can not compare in this way? + return ( xText == xCurrentText ); +} + +sal_Bool HeaderFooterHelper::isFirstPageHeader( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isHeader( xModel, xCurrentText ) ) + { + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + // FIXME: getPage allways returns 1 + sal_Int32 nPage = xPageCursor->getPage(); + return nPage == FIRST_PAGE; + } + return sal_False; +} + +sal_Bool HeaderFooterHelper::isEvenPagesHeader( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isHeader( xModel, xCurrentText ) ) + { + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( xModel ), uno::UNO_QUERY_THROW ); + sal_Bool isShared = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsShared"))) >>= isShared; + if( !isShared ) + { + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + return ( 0 == xPageCursor->getPage() % 2 ); + } + } + return sal_False; +} + +sal_Bool HeaderFooterHelper::isFooter( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( xModel ), uno::UNO_QUERY_THROW ); + + sal_Bool isOn = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn"))) >>= isOn; + if( !isOn ) + return sal_False; + + sal_Bool isShared = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsShared"))) >>= isShared; + + rtl::OUString aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterText") ); + if( !isShared ) + { + if( 0 == xPageCursor->getPage() % 2 ) + { + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterTextLeft") ); + } + else + { + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterTextRight") ); + } + } + + uno::Reference< text::XText > xText( xStyleProps->getPropertyValue( aPropText ), uno::UNO_QUERY_THROW ); + + return ( xText == xCurrentText ); +} + +sal_Bool HeaderFooterHelper::isFirstPageFooter( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isFooter( xModel, xCurrentText ) ) + { + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + sal_Int32 nPage = xPageCursor->getPage(); + return nPage == FIRST_PAGE; + } + return sal_False; +} + +sal_Bool HeaderFooterHelper::isEvenPagesFooter( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isFooter( xModel, xCurrentText ) ) + { + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( xModel ), uno::UNO_QUERY_THROW ); + sal_Bool isShared = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsShared"))) >>= isShared; + if( !isShared ) + { + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + return ( 0 == xPageCursor->getPage() % 2 ); + } + } + return sal_False; +} + +sal_Bool HeaderFooterHelper::isPrimaryHeader( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isHeader( xModel, xCurrentText ) ) + { + return( !( isFirstPageHeader( xModel, xCurrentText ) && isEvenPagesHeader( xModel, xCurrentText ) ) ); + } + return sal_False; +} + +sal_Bool HeaderFooterHelper::isPrimaryFooter( const uno::Reference< frame::XModel >& xModel, const uno::Reference< text::XText >& xCurrentText ) throw (uno::RuntimeException) +{ + if( isHeader( xModel, xCurrentText ) ) + { + return( !( isFirstPageFooter( xModel, xCurrentText ) && isEvenPagesFooter( xModel, xCurrentText ) ) ); + } + return sal_False; +} diff --git a/sw/source/ui/vba/vbaheaderfooterhelper.hxx b/sw/source/ui/vba/vbaheaderfooterhelper.hxx new file mode 100644 index 000000000000..577e92b6f325 --- /dev/null +++ b/sw/source/ui/vba/vbaheaderfooterhelper.hxx @@ -0,0 +1,52 @@ +/************************************************************************* + * + * 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: vbahelper.hxx,v $ + * $Revision: 1.5.32.1 $ + * + * 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 SW_WORD_VBA_HEADERFOOTERHELPER_HXX +#define SW_WORD_VBA_HEADERFOOTERHELPER_HXX + +#include <vbahelper/vbahelper.hxx> +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XPageCursor.hpp> +#include <com/sun/star/style/XStyle.hpp> + +class HeaderFooterHelper +{ +public: + static sal_Bool isHeader( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isFirstPageHeader( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isEvenPagesHeader( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isFooter( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isFirstPageFooter( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isEvenPagesFooter( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isPrimaryHeader( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); + static sal_Bool isPrimaryFooter( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XText >& xCurrentText ) throw (css::uno::RuntimeException); +}; + +#endif diff --git a/sw/source/ui/vba/vbainformationhelper.cxx b/sw/source/ui/vba/vbainformationhelper.cxx new file mode 100644 index 000000000000..6c1754189af7 --- /dev/null +++ b/sw/source/ui/vba/vbainformationhelper.cxx @@ -0,0 +1,71 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbainformationhelper.hxx" +#include <com/sun/star/text/XPageCursor.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include "wordvbahelper.hxx" +#include <docsh.hxx> +#include <doc.hxx> +#include <vbahelper/vbahelper.hxx> +#include <swtypes.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +static const sal_Int32 DEFAULT_PAGE_DISTANCE = 500; + +sal_Int32 SwVbaInformationHelper::handleWdActiveEndPageNumber( const css::uno::Reference< css::text::XTextViewCursor >& xTVCursor ) throw( css::uno::RuntimeException ) +{ + uno::Reference< text::XPageCursor > xPageCursor( xTVCursor, uno::UNO_QUERY_THROW ); + return xPageCursor->getPage(); +} + +sal_Int32 SwVbaInformationHelper::handleWdNumberOfPagesInDocument( const css::uno::Reference< css::frame::XModel >& xModel ) throw( css::uno::RuntimeException ) +{ + return word::getPageCount( xModel ); +} + +double SwVbaInformationHelper::handleWdVerticalPositionRelativeToPage( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XTextViewCursor >& xTVCursor ) throw( css::uno::RuntimeException ) +{ + xTVCursor->collapseToStart(); + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( xModel ), uno::UNO_QUERY_THROW ); + sal_Int32 nTopMargin = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin") ) ) >>= nTopMargin; + sal_Int32 nCurrentPos = xTVCursor->getPosition().Y; + + sal_Int32 nCurrentPage = handleWdActiveEndPageNumber( xTVCursor ); + sal_Int32 nPageHeight = word::getDocShell( xModel )->GetDoc()->GetPageSize( nCurrentPage, sal_False ).Height(); + // FIXME: handle multipul page style + // it is very strange that the curros position is incorrect when open Word file. + // e.g. if current cursor in the top left of the text body of the first page without header, + // the top value of current position should be 0, but is 201 when open a Word file. + nCurrentPos = nCurrentPos + nTopMargin - ( DEFAULT_PAGE_DISTANCE + TWIP_TO_MM100( nPageHeight ) ) * ( nCurrentPage - 1 ); + return Millimeter::getInPoints( nCurrentPos ); +} diff --git a/sw/source/ui/vba/vbainformationhelper.hxx b/sw/source/ui/vba/vbainformationhelper.hxx new file mode 100644 index 000000000000..194973ba9814 --- /dev/null +++ b/sw/source/ui/vba/vbainformationhelper.hxx @@ -0,0 +1,46 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_INFORMATIONHELPER_HXX +#define SW_VBA_INFORMATIONHELPER_HXX + +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> + +class SwVbaInformationHelper +{ +public: + static sal_Int32 handleWdActiveEndPageNumber( const css::uno::Reference< css::text::XTextViewCursor >& xTVCursor ) throw( css::uno::RuntimeException ); + static sal_Int32 handleWdNumberOfPagesInDocument( const css::uno::Reference< css::frame::XModel >& xModel ) throw( css::uno::RuntimeException ); + static double handleWdVerticalPositionRelativeToPage( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XTextViewCursor >& xTVCursor ) throw( css::uno::RuntimeException ); + //static double verticalPositionRelativeToPageBoundary( const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::text::XTextViewCursor >& xTVCursor, const css::uno::Reference< css::beans::XPropertySet >& xStyleProps ) throw( css::uno::RuntimeException ); + +}; +#endif /* SW_VBA_INFORMATIONHELPER_HXX */ diff --git a/sw/source/ui/vba/vbaoptions.cxx b/sw/source/ui/vba/vbaoptions.cxx new file mode 100644 index 000000000000..b6ce3083b1ed --- /dev/null +++ b/sw/source/ui/vba/vbaoptions.cxx @@ -0,0 +1,287 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microoptionss, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaoptions.hxx" +#include <vbahelper/vbahelper.hxx> +#include <ooo/vba/word/WdDefaultFilePath.hpp> +#include <ooo/vba/word/WdLineStyle.hpp> +#include <ooo/vba/word/WdLineWidth.hpp> +#include <ooo/vba/word/WdColorIndex.hpp> +#include <com/sun/star/util/XStringSubstitution.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <osl/file.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaOptions::SwVbaOptions( uno::Reference<uno::XComponentContext >& xContext ) throw ( uno::RuntimeException ) : SwVbaOptions_BASE( uno::Reference< XHelperInterface >(), xContext ) +{ + mxFactory.set( comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW ); +} + +SwVbaOptions::~SwVbaOptions() +{ +} + +uno::Any SAL_CALL +SwVbaOptions::DefaultFilePath( sal_Int32 _path ) throw ( uno::RuntimeException ) +{ + switch( _path ) + { + case word::WdDefaultFilePath::wdDocumentsPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Work") ); + break; + } + case word::WdDefaultFilePath::wdPicturesPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Gallery") ); + break; + } + case word::WdDefaultFilePath::wdUserTemplatesPath: + case word::WdDefaultFilePath::wdWorkgroupTemplatesPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Template") ); + break; + } + case word::WdDefaultFilePath::wdStartupPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Addin") ); + break; + } + case word::WdDefaultFilePath::wdUserOptionsPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("UserConfig") ); + break; + } + case word::WdDefaultFilePath::wdToolsPath: + case word::WdDefaultFilePath::wdProgramPath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Module") ); + break; + } + case word::WdDefaultFilePath::wdTempFilePath: + { + msDefaultFilePath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Temp") ); + break; + } + default: + { + DebugHelper::exception( SbERR_NOT_IMPLEMENTED, rtl::OUString() ); + break; + } + } + return uno::makeAny( uno::Reference< XPropValue > ( new ScVbaPropValue( this ) ) ); +} + +void SwVbaOptions::setValueEvent( const uno::Any& value ) +{ + rtl::OUString sNewPath; + value >>= sNewPath; + rtl::OUString sNewPathUrl; + ::osl::File::getFileURLFromSystemPath( sNewPath, sNewPathUrl ); + uno::Reference< beans::XPropertySet > xPathSettings( mxFactory->createInstance( rtl::OUString::createFromAscii("com.sun.star.util.PathSettings") ), uno::UNO_QUERY_THROW ); + rtl::OUString sOldPathUrl; + xPathSettings->getPropertyValue( msDefaultFilePath ) >>= sOldPathUrl; + // path could be a multipath, Microsoft doesn't support this feature in Word currently + // only the last path is from interest. + sal_Int32 nIndex = sOldPathUrl.lastIndexOf( sal_Unicode(';') ); + if( nIndex != -1 ) + { + sNewPathUrl = sOldPathUrl.copy( 0, nIndex + 1 ).concat( sNewPathUrl ); + } + xPathSettings->setPropertyValue( msDefaultFilePath, uno::makeAny( sNewPathUrl ) ); +} + +uno::Any SwVbaOptions::getValueEvent() +{ + uno::Reference< beans::XPropertySet > xPathSettings( mxFactory->createInstance( rtl::OUString::createFromAscii("com.sun.star.util.PathSettings") ), uno::UNO_QUERY_THROW ); + rtl::OUString sPathUrl; + xPathSettings->getPropertyValue( msDefaultFilePath ) >>= sPathUrl; + // path could be a multipath, Microsoft doesn't support this feature in Word currently + // only the last path is from interest. + sal_Int32 nIndex = sPathUrl.lastIndexOf( sal_Unicode(';') ); + if( nIndex != -1 ) + { + sPathUrl = sPathUrl.copy( nIndex + 1 ); + } + rtl::OUString sPath; + ::osl::File::getSystemPathFromFileURL( sPathUrl, sPath ); + return uno::makeAny( sPath ); +} + +sal_Int32 SAL_CALL SwVbaOptions::getDefaultBorderLineStyle() throw (uno::RuntimeException) +{ + return word::WdLineStyle::wdLineStyleSingle; +} + +void SAL_CALL SwVbaOptions::setDefaultBorderLineStyle( ::sal_Int32 /*_defaultborderlinestyle*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +sal_Int32 SAL_CALL SwVbaOptions::getDefaultBorderLineWidth() throw (uno::RuntimeException) +{ + return word::WdLineWidth::wdLineWidth050pt; +} + +void SAL_CALL SwVbaOptions::setDefaultBorderLineWidth( ::sal_Int32 /*_defaultborderlinewidth*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +sal_Int32 SAL_CALL SwVbaOptions::getDefaultBorderColorIndex() throw (uno::RuntimeException) +{ + return word::WdColorIndex::wdAuto; +} + +void SAL_CALL SwVbaOptions::setDefaultBorderColorIndex( ::sal_Int32 /*_defaultbordercolorindex*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getReplaceSelection() throw (uno::RuntimeException) +{ + return sal_True; +} + +void SAL_CALL SwVbaOptions::setReplaceSelection( ::sal_Bool /*_replaceselection*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getMapPaperSize() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setMapPaperSize( ::sal_Bool /*_mappapersize*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatAsYouTypeApplyHeadings() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatAsYouTypeApplyHeadings( ::sal_Bool /*_autoformatasyoutypeapplyheadings*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatAsYouTypeApplyBulletedLists() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatAsYouTypeApplyBulletedLists( ::sal_Bool /*_autoformatasyoutypeapplybulletedlists*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatAsYouTypeApplyNumberedLists() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatAsYouTypeApplyNumberedLists( ::sal_Bool /*_autoformatasyoutypeapplynumberedlists*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatAsYouTypeFormatListItemBeginning() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatAsYouTypeFormatListItemBeginning( ::sal_Bool /*_autoformatasyoutypeformatlistitembeginning*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatAsYouTypeDefineStyles() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatAsYouTypeDefineStyles( ::sal_Bool /*_autoformatasyoutypedefinestyles*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatApplyHeadings() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatApplyHeadings( ::sal_Bool /*_autoformatapplyheadings*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatApplyLists() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatApplyLists( ::sal_Bool /*_autoformatapplylists*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL SwVbaOptions::getAutoFormatApplyBulletedLists() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaOptions::setAutoFormatApplyBulletedLists( ::sal_Bool /*_autoformatapplybulletedlists*/ ) throw (uno::RuntimeException) +{ + // not support in Writer +} + + +rtl::OUString& +SwVbaOptions::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaOptions") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaOptions::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Options" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbaoptions.hxx b/sw/source/ui/vba/vbaoptions.hxx new file mode 100644 index 000000000000..45cc56b9c0e2 --- /dev/null +++ b/sw/source/ui/vba/vbaoptions.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * 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: vbasystem.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_OPTIONS_HXX +#define SW_VBA_OPTIONS_HXX + +#include <ooo/vba/word/XOptions.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <vbahelper/vbapropvalue.hxx> +#include <comphelper/processfactory.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XOptions > SwVbaOptions_BASE; + +class SwVbaOptions : public SwVbaOptions_BASE, + public PropListener +{ +private: + rtl::OUString msDefaultFilePath; + css::uno::Reference< css::lang::XMultiServiceFactory > mxFactory; +public: + SwVbaOptions( css::uno::Reference< css::uno::XComponentContext >& m_xContext ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaOptions(); + + // Attributes + virtual ::sal_Int32 SAL_CALL getDefaultBorderLineStyle() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDefaultBorderLineStyle( ::sal_Int32 _defaultborderlinestyle ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getDefaultBorderLineWidth() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDefaultBorderLineWidth( ::sal_Int32 _defaultborderlinewidth ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getDefaultBorderColorIndex() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDefaultBorderColorIndex( ::sal_Int32 _defaultbordercolorindex ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getReplaceSelection() throw (css::uno::RuntimeException); + virtual void SAL_CALL setReplaceSelection( ::sal_Bool _replaceselection ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getMapPaperSize() throw (css::uno::RuntimeException); + virtual void SAL_CALL setMapPaperSize( ::sal_Bool _mappapersize ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatAsYouTypeApplyHeadings() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatAsYouTypeApplyHeadings( ::sal_Bool _autoformatasyoutypeapplyheadings ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatAsYouTypeApplyBulletedLists() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatAsYouTypeApplyBulletedLists( ::sal_Bool _autoformatasyoutypeapplybulletedlists ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatAsYouTypeApplyNumberedLists() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatAsYouTypeApplyNumberedLists( ::sal_Bool _autoformatasyoutypeapplynumberedlists ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatAsYouTypeFormatListItemBeginning() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatAsYouTypeFormatListItemBeginning( ::sal_Bool _autoformatasyoutypeformatlistitembeginning ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatAsYouTypeDefineStyles() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatAsYouTypeDefineStyles( ::sal_Bool _autoformatasyoutypedefinestyles ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatApplyHeadings() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatApplyHeadings( ::sal_Bool _autoformatapplyheadings ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatApplyLists() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatApplyLists( ::sal_Bool _autoformatapplylists ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getAutoFormatApplyBulletedLists() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAutoFormatApplyBulletedLists( ::sal_Bool _autoformatapplybulletedlists ) throw (css::uno::RuntimeException); + + // Methods + virtual css::uno::Any SAL_CALL DefaultFilePath( sal_Int32 _path ) throw ( css::uno::RuntimeException ); + + //PropListener + virtual void setValueEvent( const css::uno::Any& value ); + virtual css::uno::Any getValueEvent(); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_OPTIONS_HXX */ diff --git a/sw/source/ui/vba/vbapagesetup.cxx b/sw/source/ui/vba/vbapagesetup.cxx new file mode 100644 index 000000000000..08fd10da2a6d --- /dev/null +++ b/sw/source/ui/vba/vbapagesetup.cxx @@ -0,0 +1,275 @@ +/************************************************************************* + * + * 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$ + * $Revision$ + * + * 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. + * + ************************************************************************/ +#include "vbapagesetup.hxx" +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/text/XPageCursor.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <ooo/vba/word/WdSectionStart.hpp> +#include <ooo/vba/word/WdOrientation.hpp> +#include "wordvbahelper.hxx" + +using namespace ::com::sun::star; +using namespace ::ooo::vba; + +SwVbaPageSetup::SwVbaPageSetup(const uno::Reference< XHelperInterface >& xParent, + const uno::Reference< uno::XComponentContext >& xContext, + const uno::Reference< frame::XModel >& xModel, + const uno::Reference< beans::XPropertySet >& xProps ) throw (uno::RuntimeException): + SwVbaPageSetup_BASE( xParent, xContext ) +{ + mxModel.set( xModel, uno::UNO_QUERY_THROW ); + mxPageProps.set( xProps, uno::UNO_QUERY_THROW ); + mnOrientPortrait = word::WdOrientation::wdOrientPortrait; + mnOrientLandscape = word::WdOrientation::wdOrientLandscape; +} + +double SAL_CALL SwVbaPageSetup::getGutter() throw (uno::RuntimeException) +{ + // not support in Writer + return 0; +} + +void SAL_CALL SwVbaPageSetup::setGutter( double _gutter ) throw (uno::RuntimeException) +{ + // default add gutter into left margin + if( _gutter != 0 ) + { + double margin = VbaPageSetupBase::getLeftMargin() + _gutter; + VbaPageSetupBase::setLeftMargin( margin ); + } +} + +double SAL_CALL SwVbaPageSetup::getHeaderDistance() throw (uno::RuntimeException) +{ + sal_Bool isHeaderOn = sal_False; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn"))) >>= isHeaderOn; + if( !isHeaderOn ) + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")), uno::makeAny( sal_True ) ); + return VbaPageSetupBase::getHeaderMargin(); +} + + /** + * changes the value of TopMargin to the value of new MS-Word-HeaderDistance. Subtracts the difference + * between old TopMargin and the new headerDistance from the value of HeaderSpacing (which defines the + * space between the header and the body of the text). calculates the new HeaderHeight (= height of the + * header + headerBodyDistance). + * + * @param: headerDistance is the value that is set in MS Word for the distance from the top of the page + * to the header + */ +void SAL_CALL SwVbaPageSetup::setHeaderDistance( double _headerdistance ) throw (uno::RuntimeException) +{ + sal_Int32 newHeaderDistance = Millimeter::getInHundredthsOfOneMillimeter( _headerdistance ); + sal_Bool isHeaderOn = sal_False; + sal_Int32 aktTopMargin = 0; + sal_Int32 aktSpacing = 0; + sal_Int32 aktHeaderHeight = 0; + + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn"))) >>= isHeaderOn; + if( !isHeaderOn ) + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")), uno::makeAny( sal_True ) ); + + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin"))) >>= aktTopMargin; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderBodyDistance"))) >>= aktSpacing; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderHeight"))) >>= aktHeaderHeight; + + sal_Int32 newSpacing = aktSpacing - ( newHeaderDistance - aktTopMargin ); + sal_Int32 height = aktHeaderHeight - aktSpacing; + sal_Int32 newHeaderHeight = newSpacing + height; + + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin")), uno::makeAny( newHeaderDistance ) ); + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderBodyDistance")), uno::makeAny( newSpacing ) ); + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderHeight")), uno::makeAny( newHeaderHeight ) ); +} + +double SAL_CALL SwVbaPageSetup::getFooterDistance() throw (uno::RuntimeException) +{ + sal_Bool isFooterOn = sal_False; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn"))) >>= isFooterOn; + if( !isFooterOn ) + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")), uno::makeAny( sal_True ) ); + return VbaPageSetupBase::getFooterMargin(); +} + +void SAL_CALL SwVbaPageSetup::setFooterDistance( double _footerdistance ) throw (uno::RuntimeException) +{ + sal_Int32 newFooterDistance = Millimeter::getInHundredthsOfOneMillimeter( _footerdistance ); + sal_Bool isFooterOn = sal_False; + sal_Int32 aktBottomMargin = 0; + sal_Int32 aktSpacing = 0; + sal_Int32 aktFooterHeight = 0; + + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn"))) >>= isFooterOn; + if( !isFooterOn ) + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")), uno::makeAny( sal_True ) ); + + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin"))) >>= aktBottomMargin; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterBodyDistance"))) >>= aktSpacing; + mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterHeight"))) >>= aktFooterHeight; + + sal_Int32 newSpacing = aktSpacing - ( newFooterDistance - aktBottomMargin ); + sal_Int32 height = aktFooterHeight - aktSpacing; + sal_Int32 newFooterHeight = newSpacing + height; + + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin")), uno::makeAny( newFooterDistance ) ); + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterBodyDistance")), uno::makeAny( newSpacing ) ); + mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterHeight")), uno::makeAny( newFooterHeight ) ); +} + +sal_Bool SAL_CALL SwVbaPageSetup::getDifferentFirstPageHeaderFooter() throw (uno::RuntimeException) +{ + rtl::OUString pageStyle = getStyleOfFirstPage(); + if( pageStyle.equalsAscii( "First Page" ) ) + return sal_True; + + return sal_False; +} + +void SAL_CALL SwVbaPageSetup::setDifferentFirstPageHeaderFooter( sal_Bool status ) throw (uno::RuntimeException) +{ + if( status == getDifferentFirstPageHeaderFooter() ) + return; + + rtl::OUString newStyle; + if( status ) + newStyle = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("First Page") ); + else + newStyle = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Standard") ); + + uno::Reference< beans::XPropertySet > xStyleProps( word::getCurrentPageStyle( mxModel ), uno::UNO_QUERY_THROW ); + sal_Int32 nTopMargin = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin"))) >>= nTopMargin; + sal_Int32 nBottomMargin = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin"))) >>= nBottomMargin; + sal_Int32 nLeftMargin = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin"))) >>= nLeftMargin; + sal_Int32 nRightMargin = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin"))) >>= nRightMargin; + sal_Int32 nHeaderHeight = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderHeight"))) >>= nHeaderHeight; + sal_Int32 nFooterHeight = 0; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterHeight"))) >>= nFooterHeight; + + sal_Bool isHeaderOn = sal_False; + xStyleProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn"))) >>= isHeaderOn; + if( isHeaderOn ) + { + nTopMargin += nHeaderHeight; + nBottomMargin += nFooterHeight; + xStyleProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")), uno::makeAny( sal_False ) ); + xStyleProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")), uno::makeAny( sal_False ) ); + } + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( mxModel ), uno::UNO_QUERY_THROW ); + if( xPageCursor->getPage() != 1 ) + { + xPageCursor->jumpToFirstPage(); + } + + uno::Reference< beans::XPropertySet > xCursorProps( xPageCursor, uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xTableProps( xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextTable") ) ), uno::UNO_QUERY ); + if( xTableProps.is() ) + { + xTableProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageDescName") ), uno::makeAny( newStyle ) ); + } + else + { + xCursorProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageDescName") ), uno::makeAny( newStyle ) ); + } + + uno::Reference< beans::XPropertySet > xFirstPageProps( word::getCurrentPageStyle( mxModel ), uno::UNO_QUERY_THROW ); + xFirstPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin") ), uno::makeAny( nTopMargin ) ); + xFirstPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin") ), uno::makeAny( nBottomMargin ) ); + xFirstPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin") ), uno::makeAny( nLeftMargin ) ); + xFirstPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin") ), uno::makeAny( nRightMargin ) ); +} + +rtl::OUString SwVbaPageSetup::getStyleOfFirstPage() throw (uno::RuntimeException) +{ + rtl::OUString styleFirstPage; + uno::Reference< text::XPageCursor > xPageCursor( word::getXTextViewCursor( mxModel ), uno::UNO_QUERY_THROW ); + if( xPageCursor->getPage() != 1 ) + { + xPageCursor->jumpToFirstPage(); + } + + uno::Reference< beans::XPropertySet > xCursorProps( xPageCursor, uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xTableProps( xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextTable") ) ), uno::UNO_QUERY ); + if( xTableProps.is() ) + { + xTableProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageDescName") ) ) >>= styleFirstPage; + } + else + { + xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageDescName") ) ) >>= styleFirstPage; + } + return styleFirstPage; +} + +::sal_Int32 SAL_CALL SwVbaPageSetup::getSectionStart() throw (uno::RuntimeException) +{ + // FIXME: + sal_Int32 wdSectionStart = word::WdSectionStart::wdSectionNewPage; + uno::Reference< container::XNamed > xNamed( mxPageProps, uno::UNO_QUERY_THROW ); + rtl::OUString sStyleName = xNamed->getName(); + //mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) >>= sStyleName; + if( sStyleName.equalsAscii("Left Page") ) + wdSectionStart = word::WdSectionStart::wdSectionEvenPage; + else if( sStyleName.equalsAscii("Right Page") ) + wdSectionStart = word::WdSectionStart::wdSectionOddPage; + else + wdSectionStart = word::WdSectionStart::wdSectionNewPage; + return wdSectionStart; +} + +void SAL_CALL SwVbaPageSetup::setSectionStart( ::sal_Int32 /*_sectionstart*/ ) throw (uno::RuntimeException) +{ + // fail to find corresponding feature in Writer + // #FIXME: +} + +rtl::OUString& +SwVbaPageSetup::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaPageSetup") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaPageSetup::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.PageSetup" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbapagesetup.hxx b/sw/source/ui/vba/vbapagesetup.hxx new file mode 100644 index 000000000000..7a039550cb21 --- /dev/null +++ b/sw/source/ui/vba/vbapagesetup.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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$ + * $Revision$ + * + * 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 SW_VBA_PAGESETUP_HXX +#define SW_VBA_PAGESETUP_HXX + +#include <cppuhelper/implbase1.hxx> +#include <ooo/vba/word/XPageSetup.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbapagesetupbase.hxx> + +typedef cppu::ImplInheritanceHelper1< VbaPageSetupBase, ooo::vba::word::XPageSetup > SwVbaPageSetup_BASE; + +class SwVbaPageSetup : public SwVbaPageSetup_BASE +{ +private: + rtl::OUString getStyleOfFirstPage() throw (css::uno::RuntimeException); + +public: + SwVbaPageSetup( const css::uno::Reference< ooo::vba::XHelperInterface >& xParent, + const css::uno::Reference< css::uno::XComponentContext >& xContext, + const css::uno::Reference< css::frame::XModel >& xModel, + const css::uno::Reference< css::beans::XPropertySet >& xProps ) throw (css::uno::RuntimeException); + virtual ~SwVbaPageSetup(){} + + // Attributes + virtual double SAL_CALL getGutter() throw (css::uno::RuntimeException); + virtual void SAL_CALL setGutter( double _gutter ) throw (css::uno::RuntimeException); + virtual double SAL_CALL getHeaderDistance() throw (css::uno::RuntimeException); + virtual void SAL_CALL setHeaderDistance( double _headerdistance ) throw (css::uno::RuntimeException); + virtual double SAL_CALL getFooterDistance() throw (css::uno::RuntimeException); + virtual void SAL_CALL setFooterDistance( double _footerdistance ) throw (css::uno::RuntimeException); + virtual sal_Bool SAL_CALL getDifferentFirstPageHeaderFooter() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDifferentFirstPageHeaderFooter( sal_Bool status ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getSectionStart() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSectionStart( ::sal_Int32 _sectionstart ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif diff --git a/sw/source/ui/vba/vbapalette.cxx b/sw/source/ui/vba/vbapalette.cxx new file mode 100644 index 000000000000..12554e792e5e --- /dev/null +++ b/sw/source/ui/vba/vbapalette.cxx @@ -0,0 +1,75 @@ +#include "vbapalette.hxx" +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <ooo/vba/word/WdColor.hpp> +#include <ooo/vba/word/WdColorIndex.hpp> + +using namespace ::ooo::vba; +using namespace ::ooo::vba::word; +using namespace ::com::sun::star; + +static const sal_Int32 ColorTable[] = +{ +WdColor::wdColorAutomatic, // 0 +WdColor::wdColorBlack, // 1 +WdColor::wdColorBlue, // 2 +WdColor::wdColorTurquoise, // 3 +WdColor::wdColorBrightGreen, // 4 +WdColor::wdColorPink, // 5 +WdColor::wdColorRed, // 6 +WdColor::wdColorYellow, // 7 +WdColor::wdColorWhite, // 8 +WdColor::wdColorDarkBlue, // 9 +WdColor::wdColorTeal, // 10 +WdColor::wdColorGreen, // 11 +WdColor::wdColorViolet, // 12 +WdColor::wdColorDarkRed, // 13 +WdColor::wdColorDarkYellow, // 14 +WdColor::wdColorGray50, // 15 +WdColor::wdColorGray25, // 16 +}; + +typedef ::cppu::WeakImplHelper1< container::XIndexAccess > XIndexAccess_BASE; + +class DefaultPalette : public XIndexAccess_BASE +{ +public: + DefaultPalette(){} + + // Methods XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount() throw (uno::RuntimeException) + { + return sizeof(ColorTable) / sizeof(ColorTable[0]); + } + + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( Index < 0 || Index >= getCount() ) + throw lang::IndexOutOfBoundsException(); + return uno::makeAny( sal_Int32( ColorTable[ Index ] ) ); + } + + // Methods XElementAcess + virtual uno::Type SAL_CALL getElementType() throw (uno::RuntimeException) + { + return ::getCppuType( (sal_Int32*)0 ); + } + virtual ::sal_Bool SAL_CALL hasElements() throw (uno::RuntimeException) + { + return sal_True; + } + +}; + +VbaPalette::VbaPalette() +{ + mxPalette = new DefaultPalette(); +} + +uno::Reference< container::XIndexAccess > +VbaPalette::getPalette() const +{ + + return mxPalette; +} + diff --git a/sw/source/ui/vba/vbapalette.hxx b/sw/source/ui/vba/vbapalette.hxx new file mode 100644 index 000000000000..6179f1723c0b --- /dev/null +++ b/sw/source/ui/vba/vbapalette.hxx @@ -0,0 +1,15 @@ +#ifndef VBAPALETTE_HXX +#define VBAPALETTE_HXX +#include <vbahelper/vbahelper.hxx> + +class VbaPalette +{ + css::uno::Reference< css::container::XIndexAccess > mxPalette; +public: + VbaPalette(); + // if no palette available e.g. because the document doesn't have a + // palette defined then a default palette will be returned. + css::uno::Reference< css::container::XIndexAccess > getPalette() const; +}; + +#endif diff --git a/sw/source/ui/vba/vbapane.cxx b/sw/source/ui/vba/vbapane.cxx new file mode 100644 index 000000000000..fb877d32b507 --- /dev/null +++ b/sw/source/ui/vba/vbapane.cxx @@ -0,0 +1,79 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbapane.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbaview.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaPane::SwVbaPane( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, + const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : + SwVbaPane_BASE( rParent, rContext ), mxModel( xModel ) +{ +} + +SwVbaPane::~SwVbaPane() +{ +} + +uno::Any SAL_CALL +SwVbaPane::View() throw ( css::uno::RuntimeException ) +{ + return uno::makeAny( uno::Reference< word::XView >( new SwVbaView( this, mxContext, mxModel ) ) ); +} + +void SAL_CALL +SwVbaPane::Close( ) throw ( css::uno::RuntimeException ) +{ + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseWin")); + dispatchRequests( mxModel,url ); +} + +rtl::OUString& +SwVbaPane::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaPane") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaPane::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Pane" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbapane.hxx b/sw/source/ui/vba/vbapane.hxx new file mode 100644 index 000000000000..74176591fb5b --- /dev/null +++ b/sw/source/ui/vba/vbapane.hxx @@ -0,0 +1,57 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_PANE_HXX +#define SW_VBA_PANE_HXX + +#include <ooo/vba/word/XPane.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XPane > SwVbaPane_BASE; + +class SwVbaPane : public SwVbaPane_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + +public: + SwVbaPane( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, + const css::uno::Reference< css::frame::XModel >& xModel ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaPane(); + + // Methods + virtual css::uno::Any SAL_CALL View( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Close( ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_PANE_HXX */ diff --git a/sw/source/ui/vba/vbapanes.cxx b/sw/source/ui/vba/vbapanes.cxx new file mode 100644 index 000000000000..55df7ade0e08 --- /dev/null +++ b/sw/source/ui/vba/vbapanes.cxx @@ -0,0 +1,127 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbapanes.hxx" +#include "vbapane.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +// I assume there is only one pane in Writer +typedef ::cppu::WeakImplHelper1<container::XIndexAccess > PanesIndexAccess_Base; +class PanesIndexAccess : public PanesIndexAccess_Base +{ +private: + uno::Reference< XHelperInterface > mxParent; + uno::Reference< uno::XComponentContext > mxContext; + uno::Reference< frame::XModel > mxModel; + +public: + PanesIndexAccess( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : mxParent( xParent ), mxContext( xContext ), mxModel( xModel ) {} + ~PanesIndexAccess(){} + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return 1; + } + virtual uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException) + { + if( Index != 1 ) + throw container::NoSuchElementException(); + return uno::makeAny( uno::Reference< word::XPane >( new SwVbaPane( mxParent, mxContext, mxModel ) ) ); + } + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) + { + return word::XPane::static_type(0); + } + virtual sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) + { + return sal_True; + } +}; + +class PanesEnumWrapper : public EnumerationHelper_BASE +{ + uno::Reference<container::XIndexAccess > m_xIndexAccess; + sal_Int32 nIndex; +public: + PanesEnumWrapper( const uno::Reference< container::XIndexAccess >& xIndexAccess ) : m_xIndexAccess( xIndexAccess ), nIndex( 0 ) {} + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return ( nIndex < m_xIndexAccess->getCount() ); + } + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( nIndex < m_xIndexAccess->getCount() ) + return m_xIndexAccess->getByIndex( nIndex++ ); + throw container::NoSuchElementException(); + } +}; + +SwVbaPanes::SwVbaPanes( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel ): SwVbaPanes_BASE( xParent, xContext, new PanesIndexAccess( xParent, xContext, xModel ) ), mxModel( xModel ) +{ +} +// XEnumerationAccess +uno::Type +SwVbaPanes::getElementType() throw (uno::RuntimeException) +{ + return word::XPane::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaPanes::createEnumeration() throw (uno::RuntimeException) +{ + return new PanesEnumWrapper( m_xIndexAccess ); +} + +uno::Any +SwVbaPanes::createCollectionObject( const css::uno::Any& aSource ) +{ + return aSource; +} + +rtl::OUString& +SwVbaPanes::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaPanes") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaPanes::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Panes") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbapanes.hxx b/sw/source/ui/vba/vbapanes.hxx new file mode 100644 index 000000000000..c2fca4a0613f --- /dev/null +++ b/sw/source/ui/vba/vbapanes.hxx @@ -0,0 +1,60 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_PANES_HXX +#define SW_VBA_PANES_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XPanes.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <vbahelper/vbahelperinterface.hxx> + +typedef CollTestImplHelper< ooo::vba::word::XPanes > SwVbaPanes_BASE; + +class SwVbaPanes : public SwVbaPanes_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + +public: + SwVbaPanes( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xModel ); + virtual ~SwVbaPanes() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaPanes_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_PANES_HXX */ diff --git a/sw/source/ui/vba/vbaparagraph.cxx b/sw/source/ui/vba/vbaparagraph.cxx new file mode 100644 index 000000000000..21077e455690 --- /dev/null +++ b/sw/source/ui/vba/vbaparagraph.cxx @@ -0,0 +1,177 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaparagraph.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbarange.hxx" +#include <com/sun/star/lang/XServiceInfo.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaParagraph::SwVbaParagraph( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& xDocument, const uno::Reference< text::XTextRange >& xTextRange ) throw ( uno::RuntimeException ) : + SwVbaParagraph_BASE( rParent, rContext ), mxTextDocument( xDocument ), mxTextRange( xTextRange ) +{ +} + +SwVbaParagraph::~SwVbaParagraph() +{ +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaParagraph::getRange( ) throw ( uno::RuntimeException ) +{ + return uno::Reference< word::XRange >( new SwVbaRange( this, mxContext, mxTextDocument, mxTextRange->getStart(), mxTextRange->getEnd(), mxTextRange->getText(), sal_True ) ); +} + +rtl::OUString& +SwVbaParagraph::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaParagraph") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaParagraph::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Paragraph" ) ); + } + return aServiceNames; +} + + +//typedef ::cppu::WeakImplHelper1< container::XEnumeration > ParagraphEnumeration_BASE; +typedef ::cppu::WeakImplHelper2< container::XIndexAccess, container::XEnumerationAccess > ParagraphCollectionHelper_BASE; + +class ParagraphCollectionHelper : public ParagraphCollectionHelper_BASE +{ +private: + uno::Reference< text::XTextDocument > mxTextDocument; + + uno::Reference< container::XEnumeration > getEnumeration() throw (uno::RuntimeException) + { + uno::Reference< container::XEnumerationAccess > xParEnumAccess( mxTextDocument->getText(), uno::UNO_QUERY_THROW ); + return xParEnumAccess->createEnumeration(); + } + +public: + ParagraphCollectionHelper( const uno::Reference< text::XTextDocument >& xDocument ) throw (uno::RuntimeException): mxTextDocument( xDocument ) + { + } + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) { return text::XTextRange::static_type(0); } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) { return sal_True; } + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + sal_Int32 nCount = 0; + uno::Reference< container::XEnumeration > xParEnum = getEnumeration(); + while( xParEnum->hasMoreElements() ) + { + uno::Reference< lang::XServiceInfo > xServiceInfo( xParEnum->nextElement(), uno::UNO_QUERY_THROW ); + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Paragraph") ) ) ) + { + nCount++; + } + } + return nCount; + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException ) + { + if( Index < getCount() ) + { + sal_Int32 nCount = 0; + uno::Reference< container::XEnumeration > xParEnum = getEnumeration(); + while( xParEnum->hasMoreElements() ) + { + uno::Reference< lang::XServiceInfo > xServiceInfo( xParEnum->nextElement(), uno::UNO_QUERY_THROW ); + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Paragraph") ) ) ) + { + if( Index == nCount ) + return uno::makeAny( xServiceInfo ); + nCount++; + } + } + } + throw lang::IndexOutOfBoundsException(); + } + // XEnumerationAccess + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + return getEnumeration(); + } +}; + +SwVbaParagraphs::SwVbaParagraphs( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< text::XTextDocument >& xDocument ) throw (uno::RuntimeException) : SwVbaParagraphs_BASE( xParent, xContext, new ParagraphCollectionHelper( xDocument ) ), mxTextDocument( xDocument ) +{ +} + +// XEnumerationAccess +uno::Type +SwVbaParagraphs::getElementType() throw (uno::RuntimeException) +{ + return word::XParagraph::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaParagraphs::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumerationAccess->createEnumeration(); +} + +uno::Any +SwVbaParagraphs::createCollectionObject( const css::uno::Any& aSource ) +{ + uno::Reference< text::XTextRange > xTextRange( aSource, uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XParagraph >( new SwVbaParagraph( this, mxContext, mxTextDocument, xTextRange ) ) ); +} + +rtl::OUString& +SwVbaParagraphs::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaParagraphs") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaParagraphs::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Paragraphs") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbaparagraph.hxx b/sw/source/ui/vba/vbaparagraph.hxx new file mode 100644 index 000000000000..c1c6298f56e7 --- /dev/null +++ b/sw/source/ui/vba/vbaparagraph.hxx @@ -0,0 +1,84 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_PARAGRAPH_HXX +#define SW_VBA_PARAGRAPH_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XParagraphs.hpp> +#include <ooo/vba/word/XParagraph.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/text/XTextDocument.hpp> + + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XParagraph > SwVbaParagraph_BASE; + +class SwVbaParagraph : public SwVbaParagraph_BASE +{ +private: + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + css::uno::Reference< css::text::XTextRange > mxTextRange; + +public: + SwVbaParagraph( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& xDocument, const css::uno::Reference< css::text::XTextRange >& xTextRange ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaParagraph(); + + // XParagraph + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL getRange() throw ( css::uno::RuntimeException ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + + +/* class SwVbaParagraphs */ +typedef CollTestImplHelper< ooo::vba::word::XParagraphs > SwVbaParagraphs_BASE; + +class SwVbaParagraphs : public SwVbaParagraphs_BASE +{ +private: + css::uno::Reference< css::text::XTextDocument > mxTextDocument; +public: + SwVbaParagraphs( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::text::XTextDocument >& xDocument ) throw (css::uno::RuntimeException); + virtual ~SwVbaParagraphs() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaParagraphs_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_PARAGRAPH_HXX */ diff --git a/sw/source/ui/vba/vbaparagraphformat.cxx b/sw/source/ui/vba/vbaparagraphformat.cxx new file mode 100644 index 000000000000..3bf1fc974b4c --- /dev/null +++ b/sw/source/ui/vba/vbaparagraphformat.cxx @@ -0,0 +1,576 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaparagraphformat.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "wordvbahelper.hxx" +#include <com/sun/star/style/LineSpacingMode.hpp> +#include <ooo/vba/word/WdLineSpacing.hpp> +#include <ooo/vba/word/WdParagraphAlignment.hpp> +#include <ooo/vba/word/WdOutlineLevel.hpp> +#include <com/sun/star/style/ParagraphAdjust.hpp> +#include <com/sun/star/style/BreakType.hpp> + + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +static const sal_Int16 CHARACTER_INDENT_FACTOR = 12; +static const sal_Int16 PERCENT100 = 100; +static const sal_Int16 PERCENT150 = 150; +static const sal_Int16 PERCENT200 = 200; + +SwVbaParagraphFormat::SwVbaParagraphFormat( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< beans::XPropertySet >& rParaProps ) : SwVbaParagraphFormat_BASE( rParent, rContext ), mxTextDocument( rTextDocument ), mxParaProps( rParaProps ) +{ +} + +SwVbaParagraphFormat::~SwVbaParagraphFormat() +{ +} + +sal_Int32 SAL_CALL SwVbaParagraphFormat::getAlignment() throw (uno::RuntimeException) +{ + style::ParagraphAdjust aParaAdjust = style::ParagraphAdjust_LEFT; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaAdjust") ) ) >>= aParaAdjust; + return getMSWordAlignment( aParaAdjust ); +} + +void SAL_CALL SwVbaParagraphFormat::setAlignment( sal_Int32 _alignment ) throw (uno::RuntimeException) +{ + style::ParagraphAdjust aParaAdjust = ( style::ParagraphAdjust ) getOOoAlignment( _alignment ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaAdjust") ), uno::makeAny( aParaAdjust ) ); +} + +float SAL_CALL SwVbaParagraphFormat::getFirstLineIndent() throw (uno::RuntimeException) +{ + sal_Int32 indent = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent") ) ) >>= indent; + return (float)( Millimeter::getInPoints( indent ) ); +} + +void SAL_CALL SwVbaParagraphFormat::setFirstLineIndent( float _firstlineindent ) throw (uno::RuntimeException) +{ + sal_Int32 indent = Millimeter::getInHundredthsOfOneMillimeter( _firstlineindent ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent") ), uno::makeAny( indent ) ); +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getKeepTogether() throw (uno::RuntimeException) +{ + sal_Bool bKeep = sal_False; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether") ) ) >>= bKeep; + return uno::makeAny ( bKeep ); +} + +void SAL_CALL SwVbaParagraphFormat::setKeepTogether( const uno::Any& _keeptogether ) throw (uno::RuntimeException) +{ + sal_Bool bKeep = sal_False; + if( _keeptogether >>= bKeep ) + { + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether") ), uno::makeAny( bKeep ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getKeepWithNext() throw (uno::RuntimeException) +{ + sal_Bool bKeep = sal_False; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaSplit") ) ) >>= bKeep; + return uno::makeAny ( bKeep ); +} + +void SAL_CALL SwVbaParagraphFormat::setKeepWithNext( const uno::Any& _keepwithnext ) throw (uno::RuntimeException) +{ + sal_Bool bKeep = sal_False; + if( _keepwithnext >>= bKeep ) + { + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaSplit") ), uno::makeAny( bKeep ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getHyphenation() throw (uno::RuntimeException) +{ + sal_Bool bHypn = sal_False; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation") ) ) >>= bHypn; + return uno::makeAny ( bHypn ); +} + +void SAL_CALL SwVbaParagraphFormat::setHyphenation( const uno::Any& _hyphenation ) throw (uno::RuntimeException) +{ + sal_Bool bHypn = sal_False; + if( _hyphenation >>= bHypn ) + { + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation") ), uno::makeAny( bHypn ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +float SAL_CALL SwVbaParagraphFormat::getLineSpacing() throw (uno::RuntimeException) +{ + style::LineSpacing aLineSpacing; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; + return getMSWordLineSpacing( aLineSpacing ); +} + +void SAL_CALL SwVbaParagraphFormat::setLineSpacing( float _linespacing ) throw (uno::RuntimeException) +{ + style::LineSpacing aLineSpacing; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; + aLineSpacing = getOOoLineSpacing( _linespacing, aLineSpacing.Mode ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ), uno::makeAny( aLineSpacing ) ); +} + +sal_Int32 SAL_CALL SwVbaParagraphFormat::getLineSpacingRule() throw (uno::RuntimeException) +{ + style::LineSpacing aLineSpacing; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; + return getMSWordLineSpacingRule( aLineSpacing ); +} + +void SAL_CALL SwVbaParagraphFormat::setLineSpacingRule( sal_Int32 _linespacingrule ) throw (uno::RuntimeException) +{ + style::LineSpacing aLineSpacing = getOOoLineSpacingFromRule( _linespacingrule ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ), uno::makeAny( aLineSpacing ) ); +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getNoLineNumber() throw (uno::RuntimeException) +{ + sal_Bool noLineNum = sal_False; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount") ) ) >>= noLineNum; + return uno::makeAny ( noLineNum ); +} + +void SAL_CALL SwVbaParagraphFormat::setNoLineNumber( const uno::Any& _nolinenumber ) throw (uno::RuntimeException) +{ + sal_Bool noLineNum = sal_False; + if( _nolinenumber >>= noLineNum ) + { + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount") ), uno::makeAny( noLineNum ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +sal_Int32 SAL_CALL SwVbaParagraphFormat::getOutlineLevel() throw (uno::RuntimeException) +{ + sal_Int32 nLevel = word::WdOutlineLevel::wdOutlineLevelBodyText; + rtl::OUString aHeading; + const rtl::OUString HEADING = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Heading") ); + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaStyleName") ) ) >>= aHeading; + if( aHeading.indexOf( HEADING ) == 0 ) + { + // get the sub string after "Heading" + nLevel = aHeading.copy( HEADING.getLength() ).toInt32(); + } + return nLevel; +} + +void SAL_CALL SwVbaParagraphFormat::setOutlineLevel( sal_Int32 /*_outlinelevel*/ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getPageBreakBefore() throw (uno::RuntimeException) +{ + style::BreakType aBreakType; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ) ) >>= aBreakType; + sal_Bool bBreakBefore = ( aBreakType == style::BreakType_PAGE_BEFORE || aBreakType == style::BreakType_PAGE_BOTH ); + return uno::makeAny( bBreakBefore ); +} + +void SAL_CALL SwVbaParagraphFormat::setPageBreakBefore( const uno::Any& _breakbefore ) throw (uno::RuntimeException) +{ + sal_Bool bBreakBefore = sal_False; + if( _breakbefore >>= bBreakBefore ) + { + style::BreakType aBreakType; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ) ) >>= aBreakType; + if( bBreakBefore ) + { + if( aBreakType == style::BreakType_NONE ) + aBreakType = style::BreakType_PAGE_BEFORE; + else if ( aBreakType == style::BreakType_PAGE_AFTER ) + aBreakType = style::BreakType_PAGE_BOTH; + } + else + { + if( aBreakType == style::BreakType_PAGE_BOTH ) + aBreakType = style::BreakType_PAGE_AFTER; + else if ( aBreakType == style::BreakType_PAGE_BEFORE ) + aBreakType = style::BreakType_PAGE_AFTER; + } + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ), uno::makeAny( aBreakType ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +float SAL_CALL SwVbaParagraphFormat::getSpaceBefore() throw (uno::RuntimeException) +{ + sal_Int32 nSpace = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin") ) ) >>= nSpace; + return (float)( Millimeter::getInPoints( nSpace ) ); +} + +void SAL_CALL SwVbaParagraphFormat::setSpaceBefore( float _space ) throw (uno::RuntimeException) +{ + sal_Int32 nSpace = Millimeter::getInHundredthsOfOneMillimeter( _space ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin") ), uno::makeAny( nSpace ) ); +} + +float SAL_CALL SwVbaParagraphFormat::getSpaceAfter() throw (uno::RuntimeException) +{ + sal_Int32 nSpace = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin") ) ) >>= nSpace; + return (float)( Millimeter::getInPoints( nSpace ) ); +} + +void SAL_CALL SwVbaParagraphFormat::setSpaceAfter( float _space ) throw (uno::RuntimeException) +{ + sal_Int32 nSpace = Millimeter::getInHundredthsOfOneMillimeter( _space ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin") ), uno::makeAny( nSpace ) ); +} + +float SAL_CALL SwVbaParagraphFormat::getLeftIndent() throw (uno::RuntimeException) +{ + sal_Int32 nIndent = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin") ) ) >>= nIndent; + return (float)( Millimeter::getInPoints( nIndent ) ); +} + +void SAL_CALL SwVbaParagraphFormat::setLeftIndent( float _leftindent ) throw (uno::RuntimeException) +{ + sal_Int32 nIndent = Millimeter::getInHundredthsOfOneMillimeter( _leftindent ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin") ), uno::makeAny( nIndent ) ); +} + +float SAL_CALL SwVbaParagraphFormat::getRightIndent() throw (uno::RuntimeException) +{ + sal_Int32 nIndent = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin") ) ) >>= nIndent; + return (float)( Millimeter::getInPoints( nIndent ) ); +} + +void SAL_CALL SwVbaParagraphFormat::setRightIndent( float _rightindent ) throw (uno::RuntimeException) +{ + sal_Int32 nIndent = Millimeter::getInHundredthsOfOneMillimeter( _rightindent ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin") ), uno::makeAny( nIndent ) ); +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getTabStops() throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +void SAL_CALL SwVbaParagraphFormat::setTabStops( const uno::Any& /*_tabstops*/ ) throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +uno::Any SAL_CALL SwVbaParagraphFormat::getWidowControl() throw (uno::RuntimeException) +{ + sal_Bool bWidow = sal_False; + sal_Int8 nWidow = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaWidows") ) ) >>= nWidow; + sal_Int8 nOrphan = 0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaOrphans") ) ) >>= nOrphan; + // if the amount of single lines on one page > 1 and the same of start and end of the paragraph, + // true is retured. + bWidow = ( nWidow > 1 && nOrphan == nWidow ); + return uno::makeAny( bWidow ); +} + +void SAL_CALL SwVbaParagraphFormat::setWidowControl( const uno::Any& _widowcontrol ) throw (uno::RuntimeException) +{ + // if we get true, the part of the paragraph on one page has to be + // at least two lines + sal_Bool bWidow = sal_False; + if( _widowcontrol >>= bWidow ) + { + sal_Int8 nControl = bWidow? 2:1; + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaWidows") ), uno::makeAny( nControl ) ); + mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaOrphans") ), uno::makeAny( nControl ) ); + } + else + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } +} + +style::LineSpacing SwVbaParagraphFormat::getOOoLineSpacing( float _lineSpace, sal_Int16 mode ) +{ + style::LineSpacing aLineSpacing; + if( mode != style::LineSpacingMode::MINIMUM && mode != style::LineSpacingMode::FIX ) + { + // special behaviour of word: if the space is set to these values, the rule and + // the height are changed accordingly + if( _lineSpace == CHARACTER_INDENT_FACTOR ) + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = PERCENT100; + } + else if( _lineSpace == ( sal_Int16 )( CHARACTER_INDENT_FACTOR * 1.5 ) ) + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = PERCENT150; + } + else if( _lineSpace == ( sal_Int16 )( ( CHARACTER_INDENT_FACTOR ) * 2 ) ) + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = PERCENT200; + } + else + { + aLineSpacing.Mode = style::LineSpacingMode::FIX; + aLineSpacing.Height = ( sal_Int16 )( Millimeter::getInHundredthsOfOneMillimeter( _lineSpace ) ); + } + } + else + { + aLineSpacing.Mode = mode; + aLineSpacing.Height = ( sal_Int16 )( Millimeter::getInHundredthsOfOneMillimeter( _lineSpace ) ); + } + return aLineSpacing; +} + +style::LineSpacing SwVbaParagraphFormat::getOOoLineSpacingFromRule( sal_Int32 _linespacingrule ) +{ + style::LineSpacing aLineSpacing; + switch( _linespacingrule ) + { + case word::WdLineSpacing::wdLineSpace1pt5: + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = PERCENT150; + break; + } + case word::WdLineSpacing::wdLineSpaceAtLeast: + { + aLineSpacing.Mode = style::LineSpacingMode::MINIMUM; + aLineSpacing.Height = getCharHeight(); + break; + } + case word::WdLineSpacing::wdLineSpaceDouble: + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = getCharHeight(); + break; + } + case word::WdLineSpacing::wdLineSpaceExactly: + case word::WdLineSpacing::wdLineSpaceMultiple: + { + aLineSpacing.Mode = style::LineSpacingMode::FIX; + aLineSpacing.Height = getCharHeight(); + break; + } + case word::WdLineSpacing::wdLineSpaceSingle: + { + aLineSpacing.Mode = style::LineSpacingMode::PROP; + aLineSpacing.Height = PERCENT100; + break; + } + default: + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + break; + } + } + return aLineSpacing; +} + +float SwVbaParagraphFormat::getMSWordLineSpacing( style::LineSpacing& rLineSpacing ) +{ + float wdLineSpacing = 0; + if( rLineSpacing.Mode != style::LineSpacingMode::PROP ) + { + wdLineSpacing = (float)( Millimeter::getInPoints( rLineSpacing.Height ) ); + } + else + { + wdLineSpacing = (float)( CHARACTER_INDENT_FACTOR * rLineSpacing.Height ) / PERCENT100; + } + return wdLineSpacing; +} + +sal_Int32 SwVbaParagraphFormat::getMSWordLineSpacingRule( style::LineSpacing& rLineSpacing ) +{ + sal_Int32 wdLineSpacing = word::WdLineSpacing::wdLineSpaceSingle; + switch( rLineSpacing.Mode ) + { + case style::LineSpacingMode::PROP: + { + switch( rLineSpacing.Height ) + { + case PERCENT100: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpaceSingle; + break; + } + case PERCENT150: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpace1pt5; + break; + } + case PERCENT200: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpaceDouble; + break; + } + default: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpaceMultiple; + } + } + break; + } + case style::LineSpacingMode::MINIMUM: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpaceAtLeast; + break; + } + case style::LineSpacingMode::FIX: + case style::LineSpacingMode::LEADING: + { + wdLineSpacing = word::WdLineSpacing::wdLineSpaceExactly; + break; + } + default: + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } + } + return wdLineSpacing; +} + +sal_Int16 SwVbaParagraphFormat::getCharHeight() throw (uno::RuntimeException) +{ + float fCharHeight = 0.0; + mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharHeight") ) ) >>= fCharHeight; + return (sal_Int16)( Millimeter::getInHundredthsOfOneMillimeter( fCharHeight ) ); +} + +sal_Int32 SwVbaParagraphFormat::getOOoAlignment( sal_Int32 _alignment ) +{ + sal_Int32 nParaAjust = style::ParagraphAdjust_LEFT; + switch( _alignment ) + { + case word::WdParagraphAlignment::wdAlignParagraphCenter: + { + nParaAjust = style::ParagraphAdjust_CENTER; + break; + } + case word::WdParagraphAlignment::wdAlignParagraphJustify: + { + nParaAjust = style::ParagraphAdjust_BLOCK; + break; + } + case word::WdParagraphAlignment::wdAlignParagraphLeft: + { + nParaAjust = style::ParagraphAdjust_LEFT; + break; + } + case word::WdParagraphAlignment::wdAlignParagraphRight: + { + nParaAjust = style::ParagraphAdjust_RIGHT; + break; + } + default: + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } + } + return nParaAjust; +} + +sal_Int32 SwVbaParagraphFormat::getMSWordAlignment( sal_Int32 _alignment ) +{ + sal_Int32 wdAlignment = word::WdParagraphAlignment::wdAlignParagraphLeft; + switch( _alignment ) + { + case style::ParagraphAdjust_CENTER: + { + wdAlignment = word::WdParagraphAlignment::wdAlignParagraphCenter; + break; + } + case style::ParagraphAdjust_LEFT: + { + wdAlignment = word::WdParagraphAlignment::wdAlignParagraphLeft; + break; + } + case style::ParagraphAdjust_BLOCK: + { + wdAlignment = word::WdParagraphAlignment::wdAlignParagraphJustify; + break; + } + case style::ParagraphAdjust_RIGHT: + { + wdAlignment = word::WdParagraphAlignment::wdAlignParagraphRight; + break; + } + default: + { + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } + } + return wdAlignment; +} + +rtl::OUString& +SwVbaParagraphFormat::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaParagraphFormat") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaParagraphFormat::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.ParagraphFormat" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbaparagraphformat.hxx b/sw/source/ui/vba/vbaparagraphformat.hxx new file mode 100644 index 000000000000..63ea9a46837f --- /dev/null +++ b/sw/source/ui/vba/vbaparagraphformat.hxx @@ -0,0 +1,98 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_PARAGRAPHFORMAT_HXX +#define SW_VBA_PARAGRAPHFORMAT_HXX + +#include <ooo/vba/word/XParagraphFormat.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/style/LineSpacing.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XParagraphFormat > SwVbaParagraphFormat_BASE; + +class SwVbaParagraphFormat : public SwVbaParagraphFormat_BASE +{ +private: + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + css::uno::Reference< css::beans::XPropertySet > mxParaProps; + +private: + css::style::LineSpacing getOOoLineSpacing( float _lineSpace, sal_Int16 mode ); + css::style::LineSpacing getOOoLineSpacingFromRule( sal_Int32 _linespacingrule ); + float getMSWordLineSpacing( css::style::LineSpacing& rLineSpacing ); + sal_Int32 getMSWordLineSpacingRule( css::style::LineSpacing& rLineSpacing ); + sal_Int16 getCharHeight() throw (css::uno::RuntimeException); + sal_Int32 getOOoAlignment( sal_Int32 _alignment ); + sal_Int32 getMSWordAlignment( sal_Int32 _alignment ); + +public: + SwVbaParagraphFormat( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rTextDocument, const css::uno::Reference< css::beans::XPropertySet >& rParaProps ); + virtual ~SwVbaParagraphFormat(); + + // Attributes + virtual ::sal_Int32 SAL_CALL getAlignment() throw (css::uno::RuntimeException); + virtual void SAL_CALL setAlignment( ::sal_Int32 _alignment ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getFirstLineIndent() throw (css::uno::RuntimeException); + virtual void SAL_CALL setFirstLineIndent( float _firstlineindent ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getKeepTogether() throw (css::uno::RuntimeException); + virtual void SAL_CALL setKeepTogether( const css::uno::Any& _keeptogether ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getKeepWithNext() throw (css::uno::RuntimeException); + virtual void SAL_CALL setKeepWithNext( const css::uno::Any& _keepwithnext ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getHyphenation() throw (css::uno::RuntimeException); + virtual void SAL_CALL setHyphenation( const css::uno::Any& _hyphenation ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getLineSpacing() throw (css::uno::RuntimeException); + virtual void SAL_CALL setLineSpacing( float _linespacing ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getLineSpacingRule() throw (css::uno::RuntimeException); + virtual void SAL_CALL setLineSpacingRule( ::sal_Int32 _linespacingrule ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getNoLineNumber() throw (css::uno::RuntimeException); + virtual void SAL_CALL setNoLineNumber( const css::uno::Any& _nolinenumber ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getOutlineLevel() throw (css::uno::RuntimeException); + virtual void SAL_CALL setOutlineLevel( ::sal_Int32 _outlinelevel ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getPageBreakBefore() throw (css::uno::RuntimeException); + virtual void SAL_CALL setPageBreakBefore( const css::uno::Any& _pagebreakbefore ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getSpaceBefore() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSpaceBefore( float _spacebefore ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getSpaceAfter() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSpaceAfter( float _spaceafter ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getLeftIndent() throw (css::uno::RuntimeException); + virtual void SAL_CALL setLeftIndent( float _leftindent ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getRightIndent() throw (css::uno::RuntimeException); + virtual void SAL_CALL setRightIndent( float _rightindent ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getTabStops() throw (css::uno::RuntimeException); + virtual void SAL_CALL setTabStops( const css::uno::Any& _tabstops ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getWidowControl() throw (css::uno::RuntimeException); + virtual void SAL_CALL setWidowControl( const css::uno::Any& _widowcontrol ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_PARAGRAPHFORMAT_HXX */ diff --git a/sw/source/ui/vba/vbarange.cxx b/sw/source/ui/vba/vbarange.cxx new file mode 100644 index 000000000000..673041ce0c65 --- /dev/null +++ b/sw/source/ui/vba/vbarange.cxx @@ -0,0 +1,348 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbarange.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbarangehelper.hxx" +#include <ooo/vba/word/WdBreakType.hpp> +#include <com/sun/star/style/BreakType.hpp> +#include <com/sun/star/text/ControlCharacter.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include "wordvbahelper.hxx" +#include "vbaparagraphformat.hxx" +#include "vbastyle.hxx" +#include "vbafont.hxx" +#include "vbapalette.hxx" +#include "vbapagesetup.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart, sal_Bool _bMaySpanEndOfDocument ) throw (uno::RuntimeException) : SwVbaRange_BASE( rParent, rContext ), mxTextDocument( rTextDocument ), mbMaySpanEndOfDocument( _bMaySpanEndOfDocument ) +{ + uno::Reference< text::XTextRange > xEnd; + initialize( rStart, xEnd ); +} + +SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd, sal_Bool _bMaySpanEndOfDocument ) throw (uno::RuntimeException) : SwVbaRange_BASE( rParent, rContext ), mxTextDocument( rTextDocument ), mbMaySpanEndOfDocument( _bMaySpanEndOfDocument ) +{ + initialize( rStart, rEnd ); +} + +SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd, const uno::Reference< text::XText >& rText, sal_Bool _bMaySpanEndOfDocument ) throw (uno::RuntimeException) : SwVbaRange_BASE( rParent, rContext ),mxTextDocument( rTextDocument ), mxText( rText ), mbMaySpanEndOfDocument( _bMaySpanEndOfDocument ) +{ + initialize( rStart, rEnd ); +} + +SwVbaRange::~SwVbaRange() +{ +} + +void SwVbaRange::initialize( const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd ) throw (uno::RuntimeException) +{ + if( !mxText.is() ) + { + mxText = mxTextDocument->getText(); + } + + mxTextCursor = SwVbaRangeHelper::initCursor( rStart, mxText ); + mxTextCursor->collapseToStart(); + + if( rEnd.is() ) + mxTextCursor->gotoRange( rEnd, sal_True ); + else + mxTextCursor->gotoEnd( sal_True ); +} + +uno::Reference< text::XTextRange > SAL_CALL +SwVbaRange::getXTextRange() throw (uno::RuntimeException) +{ + uno::Reference< text::XTextRange > xTextRange( mxTextCursor, uno::UNO_QUERY_THROW ); + return xTextRange; +} + +void SwVbaRange::setXTextRange( const uno::Reference< text::XTextRange >& xRange ) throw (uno::RuntimeException) +{ + mxTextCursor->gotoRange( xRange->getStart(), sal_False ); + mxTextCursor->gotoRange( xRange->getEnd(), sal_True ); +} + +/** +* The complexity in this method is because we need to workaround +* an issue that the last paragraph in a document does not have a trailing CRLF. +* @return +*/ +rtl::OUString SAL_CALL +SwVbaRange::getText() throw ( uno::RuntimeException ) +{ + rtl::OUString aText = mxTextCursor->getString(); + sal_Int32 nLen = aText.getLength(); + + // FIXME: should add a line separator if the range includes the last paragraph + if( nLen == 0 ) + { + if( mxTextCursor->isCollapsed() ) + { + mxTextCursor->goRight( 1, sal_True ); + aText = mxTextCursor->getString(); + mxTextCursor->collapseToStart(); + } + else + { + uno::Reference< text::XTextRange > xStart = mxTextCursor->getStart(); + uno::Reference< text::XTextRange > xEnd = mxTextCursor->getEnd(); + mxTextCursor->collapseToEnd(); + mxTextCursor->goRight( 1, sal_True ); + mxTextCursor->gotoRange( xStart, sal_False ); + mxTextCursor->gotoRange( xEnd, sal_True ); + } + } + + return aText; +} + +void SAL_CALL +SwVbaRange::setText( const rtl::OUString& rText ) throw ( uno::RuntimeException ) +{ + if( rText.indexOf( '\n' ) != -1 ) + { + mxTextCursor->setString( rtl::OUString() ); + // process CR in strings + uno::Reference< text::XTextRange > xRange( mxTextCursor, uno::UNO_QUERY_THROW ); + SwVbaRangeHelper::insertString( xRange, mxText, rText, sal_True ); + } + else + { + mxTextCursor->setString( rText ); + } +} + +// FIXME: test is not pass +void SAL_CALL SwVbaRange::InsertBreak( const uno::Any& _breakType ) throw (uno::RuntimeException) +{ + // default type is wdPageBreak; + sal_Int32 nBreakType = word::WdBreakType::wdPageBreak; + if( _breakType.hasValue() ) + _breakType >>= nBreakType; + + style::BreakType eBreakType = style::BreakType_NONE; + switch( nBreakType ) + { + case word::WdBreakType::wdPageBreak: + eBreakType = style::BreakType_PAGE_BEFORE; + break; + case word::WdBreakType::wdColumnBreak: + eBreakType = style::BreakType_COLUMN_AFTER; + break; + case word::WdBreakType::wdLineBreak: + case word::WdBreakType::wdLineBreakClearLeft: + case word::WdBreakType::wdLineBreakClearRight: + case word::WdBreakType::wdSectionBreakContinuous: + case word::WdBreakType::wdSectionBreakEvenPage: + case word::WdBreakType::wdSectionBreakNextPage: + case word::WdBreakType::wdSectionBreakOddPage: + case word::WdBreakType::wdTextWrappingBreak: + DebugHelper::exception( SbERR_NOT_IMPLEMENTED, rtl::OUString() ); + break; + default: + DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); + } + + if( eBreakType != style::BreakType_NONE ) + { + if( !mxTextCursor->isCollapsed() ) + { + mxTextCursor->setString( rtl::OUString() ); + mxTextCursor->collapseToStart(); + } + + uno::Reference< beans::XPropertySet > xProp( mxTextCursor, uno::UNO_QUERY_THROW ); + xProp->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ), uno::makeAny( eBreakType ) ); + } +} + +void SAL_CALL +SwVbaRange::Select() throw ( uno::RuntimeException ) +{ + uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextViewCursor > xTextViewCursor = word::getXTextViewCursor( xModel ); + xTextViewCursor->gotoRange( mxTextCursor->getStart(), sal_False ); + xTextViewCursor->gotoRange( mxTextCursor->getEnd(), sal_True ); +} + +void SAL_CALL +SwVbaRange::InsertParagraph() throw ( uno::RuntimeException ) +{ + mxTextCursor->setString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("") ) ); + InsertParagraphBefore(); +} + +void SAL_CALL +SwVbaRange::InsertParagraphBefore() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xTextRange = mxTextCursor->getStart(); + mxText->insertControlCharacter( xTextRange, text::ControlCharacter::PARAGRAPH_BREAK, sal_True ); + mxTextCursor->gotoRange( xTextRange, sal_True ); +} + +void SAL_CALL +SwVbaRange::InsertParagraphAfter() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xTextRange = mxTextCursor->getEnd(); + mxText->insertControlCharacter( xTextRange, text::ControlCharacter::PARAGRAPH_BREAK, sal_True ); +} + +uno::Reference< word::XParagraphFormat > SAL_CALL +SwVbaRange::getParagraphFormat() throw ( uno::RuntimeException ) +{ + uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW ); + return uno::Reference< word::XParagraphFormat >( new SwVbaParagraphFormat( this, mxContext, mxTextDocument, xParaProps ) ); +} + +void SAL_CALL +SwVbaRange::setParagraphFormat( const uno::Reference< word::XParagraphFormat >& /*rParagraphFormat*/ ) throw ( uno::RuntimeException ) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +uno::Reference< word::XStyle > SAL_CALL +SwVbaRange::getStyle() throw ( uno::RuntimeException ) +{ + rtl::OUString aStyleName; + rtl::OUString aStyleType; + uno::Reference< beans::XPropertySet > xProp( mxTextCursor, uno::UNO_QUERY_THROW ); + if( ( xProp->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharStyleName") ) ) >>= aStyleName ) && aStyleName.getLength() ) + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharacterStyles") ); + } + else if( ( xProp->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaStyleName") ) ) >>= aStyleName ) && aStyleName.getLength() ) + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles") ); + } + if( aStyleType.getLength() == 0 ) + { + DebugHelper::exception( SbERR_INTERNAL_ERROR, rtl::OUString() ); + } + uno::Reference< style::XStyleFamiliesSupplier > xStyleSupplier( mxTextDocument, uno::UNO_QUERY_THROW); + uno::Reference< container::XNameAccess > xStylesAccess( xStyleSupplier->getStyleFamilies()->getByName( aStyleType ), uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xStyleProps( xStylesAccess->getByName( aStyleName ), uno::UNO_QUERY_THROW ); + return uno::Reference< word::XStyle >( new SwVbaStyle( this, mxContext, xStyleProps ) ); +} + +void SAL_CALL +SwVbaRange::setStyle( const uno::Reference< word::XStyle >& rStyle ) throw ( uno::RuntimeException ) +{ + uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW ); + SwVbaStyle::setStyle( xParaProps, rStyle ); +} + +uno::Reference< word::XFont > SAL_CALL +SwVbaRange::getFont() throw ( uno::RuntimeException ) +{ + VbaPalette aColors; + return new SwVbaFont( mxParent, mxContext, aColors.getPalette(), uno::Reference< beans::XPropertySet >( getXTextRange(), uno::UNO_QUERY_THROW ) ); +} + +::sal_Int32 SAL_CALL SwVbaRange::getLanguageID() throw (uno::RuntimeException) +{ + uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW ); + return SwVbaStyle::getLanguageID( xParaProps ); +} + +void SAL_CALL SwVbaRange::setLanguageID( ::sal_Int32 _languageid ) throw (uno::RuntimeException) +{ + uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW ); + SwVbaStyle::setLanguageID( xParaProps, _languageid ); +} + +uno::Any SAL_CALL +SwVbaRange::PageSetup( ) throw (uno::RuntimeException) +{ + uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW ); + uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW ); + rtl::OUString aPageStyleName; + xParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyleName"))) >>= aPageStyleName; + uno::Reference< style::XStyleFamiliesSupplier > xSytleFamSupp( xModel, uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xSytleFamNames( xSytleFamSupp->getStyleFamilies(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xPageStyles( xSytleFamNames->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyles") ) ), uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xPageProps( xPageStyles->getByName( aPageStyleName ), uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XPageSetup >( new SwVbaPageSetup( this, mxContext, xModel, xPageProps ) ) ); +} + +::sal_Int32 SAL_CALL SwVbaRange::getStart() throw (uno::RuntimeException) +{ + uno::Reference< text::XText > xText = mxTextDocument->getText(); + return SwVbaRangeHelper::getPosition( xText, mxTextCursor->getStart() ); +} + +void SAL_CALL SwVbaRange::setStart( ::sal_Int32 _start ) throw (uno::RuntimeException) +{ + uno::Reference< text::XText > xText = mxTextDocument->getText(); + uno::Reference< text::XTextRange > xStart = SwVbaRangeHelper::getRangeByPosition( xText, _start ); + uno::Reference< text::XTextRange > xEnd = mxTextCursor->getEnd(); + + mxTextCursor->gotoRange( xStart, sal_False ); + mxTextCursor->gotoRange( xEnd, sal_True ); +} + +::sal_Int32 SAL_CALL SwVbaRange::getEnd() throw (uno::RuntimeException) +{ + uno::Reference< text::XText > xText = mxTextDocument->getText(); + return SwVbaRangeHelper::getPosition( xText, mxTextCursor->getEnd() ); +} + +void SAL_CALL SwVbaRange::setEnd( ::sal_Int32 _end ) throw (uno::RuntimeException) +{ + uno::Reference< text::XText > xText = mxTextDocument->getText(); + uno::Reference< text::XTextRange > xEnd = SwVbaRangeHelper::getRangeByPosition( xText, _end ); + + mxTextCursor->collapseToStart(); + mxTextCursor->gotoRange( xEnd, sal_True ); +} + +rtl::OUString& +SwVbaRange::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaRange") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaRange::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Range" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbarange.hxx b/sw/source/ui/vba/vbarange.hxx new file mode 100644 index 000000000000..cb16fed4f28f --- /dev/null +++ b/sw/source/ui/vba/vbarange.hxx @@ -0,0 +1,93 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_RANGE_HXX +#define SW_VBA_RANGE_HXX + +#include <ooo/vba/word/XRange.hpp> +#include <ooo/vba/word/XParagraphFormat.hpp> +#include <ooo/vba/word/XFont.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <ooo/vba/word/XStyle.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XRange > SwVbaRange_BASE; + +class SwVbaRange : public SwVbaRange_BASE +{ +private: + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + css::uno::Reference< css::text::XTextCursor > mxTextCursor; + css::uno::Reference< css::text::XText > mxText; + sal_Bool mbMaySpanEndOfDocument; + +private: + void initialize( const css::uno::Reference< css::text::XTextRange >& rStart, const css::uno::Reference< css::text::XTextRange >& rEnd ) throw (css::uno::RuntimeException); +public: + SwVbaRange( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rTextDocument, const css::uno::Reference< css::text::XTextRange >& rStart, sal_Bool _bMaySpanEndOfDocument = sal_False ) throw (css::uno::RuntimeException); + SwVbaRange( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rTextDocument, const css::uno::Reference< css::text::XTextRange >& rStart, const css::uno::Reference< css::text::XTextRange >& rEnd, sal_Bool _bMaySpanEndOfDocument = sal_False ) throw (css::uno::RuntimeException); + SwVbaRange( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rTextDocument, const css::uno::Reference< css::text::XTextRange >& rStart, const css::uno::Reference< css::text::XTextRange >& rEnd, const css::uno::Reference< css::text::XText >& rText, sal_Bool _bMaySpanEndOfDocument = sal_False ) throw (css::uno::RuntimeException); + virtual ~SwVbaRange(); + css::uno::Reference< css::text::XTextDocument > getDocument() { return mxTextDocument; } + + virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getXTextRange() throw (css::uno::RuntimeException); + void setXTextRange( const css::uno::Reference< css::text::XTextRange >& xRange ) throw (css::uno::RuntimeException); + css::uno::Reference< css::text::XText > getXText() { return mxText; } + void setXTextCursor( const css::uno::Reference< css::text::XTextCursor >& xTextCursor ) { mxTextCursor = xTextCursor; } + + // Attribute + virtual rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException); + virtual void SAL_CALL setText( const rtl::OUString& rText ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XParagraphFormat > SAL_CALL getParagraphFormat() throw (css::uno::RuntimeException); + virtual void SAL_CALL setParagraphFormat( const css::uno::Reference< ooo::vba::word::XParagraphFormat >& rParagraphFormat ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XStyle > SAL_CALL getStyle() throw (css::uno::RuntimeException); + virtual void SAL_CALL setStyle( const css::uno::Reference< ooo::vba::word::XStyle >& _xStyle ) throw (css::uno::RuntimeException); + + virtual css::uno::Reference< ooo::vba::word::XFont > SAL_CALL getFont() throw (css::uno::RuntimeException); + // Methods + virtual void SAL_CALL InsertBreak( const css::uno::Any& _breakType ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Select() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraph() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraphBefore() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraphAfter() throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getLanguageID() throw (css::uno::RuntimeException); + virtual void SAL_CALL setLanguageID( ::sal_Int32 _languageid ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL PageSetup() throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getStart() throw (css::uno::RuntimeException); + virtual void SAL_CALL setStart( ::sal_Int32 _start ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getEnd() throw (css::uno::RuntimeException); + virtual void SAL_CALL setEnd( ::sal_Int32 _end ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_RANGE_HXX */ diff --git a/sw/source/ui/vba/vbarangehelper.cxx b/sw/source/ui/vba/vbarangehelper.cxx new file mode 100644 index 000000000000..fad93ec9b0e2 --- /dev/null +++ b/sw/source/ui/vba/vbarangehelper.cxx @@ -0,0 +1,174 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbarangehelper.hxx" +#include <com/sun/star/text/ControlCharacter.hpp> +#include <com/sun/star/text/XTextRangeCompare.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +/** + * get a range in a xText by creating + * a cursor that iterates over the text. If the iterating cursor is + * equal to the desired position, the range equivalent is returned. + * Some special cases are tables that are inside of the text, because the + * position has to be adjusted. + * @param xText a text where a range position is searched + * @param position a position inside o the text + * @return a range for the postion; null is returned if no range can be + * constructed. + */ +uno::Reference< text::XTextRange > SwVbaRangeHelper::getRangeByPosition( const uno::Reference< text::XText >& rText, sal_Int32 _position ) throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xRange; + if( rText.is() ) + { + sal_Int32 nPos = 0; + uno::Reference< text::XTextCursor > xCursor = rText->createTextCursor(); + xCursor->collapseToStart(); + sal_Bool bCanGo = sal_True; + while( !xRange.is() && bCanGo ) + { + if( _position == nPos ) + { + xRange = xCursor->getStart(); + } + else + { + bCanGo = xCursor->goRight( 1, sal_False ); + nPos++; + } + } + } + return xRange; +} + + +void SwVbaRangeHelper::insertString( uno::Reference< text::XTextRange >& rTextRange, uno::Reference< text::XText >& rText, const rtl::OUString& rStr, sal_Bool _bAbsorb ) throw ( uno::RuntimeException ) +{ + sal_Int32 nlastIndex = 0; + sal_Int32 nIndex = 0; + uno::Reference< text::XTextRange > xRange = rTextRange; + + while(( nIndex = rStr.indexOf('\n', nlastIndex)) >= 0 ) + { + xRange = xRange->getEnd(); + if( nlastIndex < ( nIndex - 1 ) ) + { + rText->insertString( xRange, rStr.copy( nlastIndex, ( nIndex - 1 - nlastIndex ) ), _bAbsorb ); + xRange = xRange->getEnd(); + } + + rText->insertControlCharacter( xRange, text::ControlCharacter::PARAGRAPH_BREAK, _bAbsorb ); + nlastIndex = nIndex + 1; + } + + if( nlastIndex < rStr.getLength() ) + { + xRange = xRange->getEnd(); + + rtl::OUString aWatt = rStr.copy( nlastIndex ); + rText->insertString( xRange, aWatt, _bAbsorb ); + } +} + +uno::Reference< text::XTextCursor > SwVbaRangeHelper::initCursor( const uno::Reference< text::XTextRange >& rTextRange, const uno::Reference< text::XText >& rText ) throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextCursor > xTextCursor; + sal_Bool bGotTextCursor = sal_False; + + try + { + xTextCursor = rText->createTextCursorByRange( rTextRange ); + bGotTextCursor = sal_True; + } + catch (uno::Exception& e) + { + DebugHelper::exception(e); + } + + if( !bGotTextCursor ) + { + try + { + uno::Reference< text::XText > xText = rTextRange->getText(); + xTextCursor = xText->createTextCursor(); + bGotTextCursor = sal_True; + } + catch( uno::Exception& e ) + { + DebugHelper::exception(e); + } + } + + if( !bGotTextCursor ) + { + try + { + xTextCursor = rText->createTextCursor(); + bGotTextCursor = sal_True; + } + catch( uno::Exception& e ) + { + DebugHelper::exception(e); + } + } + return xTextCursor; +} + +sal_Int32 SwVbaRangeHelper::getPosition( const uno::Reference< text::XText >& rText, const uno::Reference< text::XTextRange >& rTextRange ) throw ( uno::RuntimeException ) +{ + sal_Int32 nPosition = -1; + if( rText.is() && rTextRange.is() ) + { + nPosition = 0; + uno::Reference< text::XTextCursor > xCursor = rText->createTextCursor(); + xCursor->collapseToStart(); + uno::Reference< text::XTextRangeCompare > xCompare( rText, uno::UNO_QUERY_THROW ); + // compareValue is 0 if the ranges are equal + sal_Int32 nCompareValue = xCompare->compareRegionStarts( xCursor->getStart(), rTextRange ); + sal_Bool canGo = sal_True; + + while( nCompareValue !=0 && canGo ) + { + canGo = xCursor->goRight( 1, sal_False ); + nCompareValue = xCompare->compareRegionStarts( xCursor->getStart(), rTextRange ); + nPosition++; + } + + // check fails: no correct position found + if( !canGo && nCompareValue != 0 ) + { + nPosition = -1; + } + } + + return nPosition; +} diff --git a/sw/source/ui/vba/vbarangehelper.hxx b/sw/source/ui/vba/vbarangehelper.hxx new file mode 100644 index 000000000000..6c0f844c7039 --- /dev/null +++ b/sw/source/ui/vba/vbarangehelper.hxx @@ -0,0 +1,46 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_RANGEHELPER_HXX +#define SW_VBA_RANGEHELPER_HXX + +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XText.hpp> + +class SwVbaRangeHelper +{ +public: + static css::uno::Reference< css::text::XTextRange > getRangeByPosition( const css::uno::Reference< css::text::XText >& rText, sal_Int32 _position )throw ( css::uno::RuntimeException ); + static void insertString( css::uno::Reference< css::text::XTextRange >& rTextRange, css::uno::Reference< css::text::XText >& rText, const rtl::OUString& rStr, sal_Bool _bAbsorb ) throw ( css::uno::RuntimeException ); + static css::uno::Reference< css::text::XTextCursor > initCursor( const css::uno::Reference< css::text::XTextRange >& rTextRange, const css::uno::Reference< css::text::XText >& rText ) throw ( css::uno::RuntimeException ); + static sal_Int32 getPosition( const css::uno::Reference< css::text::XText >& rText, const css::uno::Reference< css::text::XTextRange >& rTextRange ) throw ( css::uno::RuntimeException ); + +}; +#endif /* SW_VBA_RANGEHELPER_HXX */ diff --git a/sw/source/ui/vba/vbareplacement.cxx b/sw/source/ui/vba/vbareplacement.cxx new file mode 100644 index 000000000000..480e8de88005 --- /dev/null +++ b/sw/source/ui/vba/vbareplacement.cxx @@ -0,0 +1,74 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbareplacement.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaReplacement::SwVbaReplacement( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< util::XPropertyReplace >& xPropertyReplace ) throw ( uno::RuntimeException ) : + SwVbaReplacement_BASE( rParent, rContext ), mxPropertyReplace( xPropertyReplace ) +{ +} + +SwVbaReplacement::~SwVbaReplacement() +{ +} + +::rtl::OUString SAL_CALL SwVbaReplacement::getText() throw (uno::RuntimeException) +{ + return mxPropertyReplace->getReplaceString(); +} + +void SAL_CALL SwVbaReplacement::setText( const ::rtl::OUString& _text ) throw (uno::RuntimeException) +{ + mxPropertyReplace->setReplaceString( _text ); +} + +rtl::OUString& +SwVbaReplacement::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaReplacement") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaReplacement::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Replacement" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbareplacement.hxx b/sw/source/ui/vba/vbareplacement.hxx new file mode 100644 index 000000000000..a49d14d0c967 --- /dev/null +++ b/sw/source/ui/vba/vbareplacement.hxx @@ -0,0 +1,57 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_REPLACEMENT_HXX +#define SW_VBA_REPLACEMENT_HXX + +#include <ooo/vba/word/XReplacement.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/util/XPropertyReplace.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XReplacement > SwVbaReplacement_BASE; + +class SwVbaReplacement : public SwVbaReplacement_BASE +{ +private: + css::uno::Reference< css::util::XPropertyReplace> mxPropertyReplace; + +public: + SwVbaReplacement( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::util::XPropertyReplace >& xPropertyReplace ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaReplacement(); + + // Attributes + virtual ::rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException); + virtual void SAL_CALL setText( const ::rtl::OUString& _text ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_REPLACEMENT_HXX */ diff --git a/sw/source/ui/vba/vbasection.cxx b/sw/source/ui/vba/vbasection.cxx new file mode 100644 index 000000000000..f36e5abe50f4 --- /dev/null +++ b/sw/source/ui/vba/vbasection.cxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbasection.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbapagesetup.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaSection::SwVbaSection( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< frame::XModel >& xModel, const uno::Reference< beans::XPropertySet >& xProps ) throw ( uno::RuntimeException ) : + SwVbaSection_BASE( rParent, rContext ), mxModel( xModel ), mxPageProps( xProps ) +{ +} + +SwVbaSection::~SwVbaSection() +{ +} + +::sal_Bool SAL_CALL SwVbaSection::getProtectedForForms() throw (uno::RuntimeException) +{ + return sal_False; +} + +void SAL_CALL SwVbaSection::setProtectedForForms( ::sal_Bool /*_protectedforforms*/ ) throw (uno::RuntimeException) +{ +} + +uno::Any SAL_CALL SwVbaSection::Headers( ) throw (uno::RuntimeException) +{ + return uno::Any(); +} + +uno::Any SAL_CALL SwVbaSection::Footers( ) throw (uno::RuntimeException) +{ + return uno::Any(); +} + +uno::Any SAL_CALL +SwVbaSection::PageSetup( ) throw (uno::RuntimeException) +{ + return uno::makeAny( uno::Reference< word::XPageSetup >( new SwVbaPageSetup( this, mxContext, mxModel, mxPageProps ) ) ); +} + +rtl::OUString& +SwVbaSection::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaSection") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaSection::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Section" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbasection.hxx b/sw/source/ui/vba/vbasection.hxx new file mode 100644 index 000000000000..07e820c212b3 --- /dev/null +++ b/sw/source/ui/vba/vbasection.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_SECTION_HXX +#define SW_VBA_SECTION_HXX + +#include <ooo/vba/word/XSection.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XSection > SwVbaSection_BASE; + +class SwVbaSection : public SwVbaSection_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::beans::XPropertySet > mxPageProps; + +public: + SwVbaSection( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::frame::XModel >& xModel, const css::uno::Reference< css::beans::XPropertySet >& xProps ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaSection(); + + // Attributes + virtual ::sal_Bool SAL_CALL getProtectedForForms() throw (css::uno::RuntimeException); + virtual void SAL_CALL setProtectedForForms( ::sal_Bool _protectedforforms ) throw (css::uno::RuntimeException); + + // Methods + virtual css::uno::Any SAL_CALL Headers( ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Footers( ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL PageSetup( ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_SECTION_HXX */ diff --git a/sw/source/ui/vba/vbasections.cxx b/sw/source/ui/vba/vbasections.cxx new file mode 100644 index 000000000000..3097cc16a47b --- /dev/null +++ b/sw/source/ui/vba/vbasections.cxx @@ -0,0 +1,190 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbasections.hxx" +#include "vbasection.hxx" +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/style/XStyle.hpp> +#include <docsh.hxx> +#include <doc.hxx> +#include "wordvbahelper.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +typedef ::cppu::WeakImplHelper1< container::XEnumeration > SectionEnumeration_BASE; +typedef ::cppu::WeakImplHelper2< container::XIndexAccess, container::XEnumerationAccess > SectionCollectionHelper_Base; +typedef std::vector< uno::Reference< beans::XPropertySet > > XSectionVec; + +class SectionEnumeration : public SectionEnumeration_BASE +{ + XSectionVec mxSections; + XSectionVec::iterator mIt; + +public: + SectionEnumeration( const XSectionVec& rVec ) : mxSections( rVec ), mIt( mxSections.begin() ) {} + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return ( mIt != mxSections.end() ); + } + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( hasMoreElements() ) + return uno::makeAny( *mIt++ ); + throw container::NoSuchElementException(); + } +}; + +// here I regard pagestyle as section +class SectionCollectionHelper : public SectionCollectionHelper_Base +{ +private: + uno::Reference< XHelperInterface > mxParent; + uno::Reference< uno::XComponentContext > mxContext; + uno::Reference< frame::XModel > mxModel; + XSectionVec mxSections; + +public: + SectionCollectionHelper( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) : mxParent( xParent ), mxContext( xContext ), mxModel( xModel ) + { + uno::Reference< style::XStyleFamiliesSupplier > xSytleFamSupp( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xSytleFamNames( xSytleFamSupp->getStyleFamilies(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xPageStyles( xSytleFamNames->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyles") ) ), uno::UNO_QUERY_THROW ); + sal_Int32 nCount = xPageStyles->getCount(); + for( sal_Int32 index = 0; index < nCount; ++index ) + { + uno::Reference< style::XStyle > xStyle( xPageStyles->getByIndex( index ), uno::UNO_QUERY_THROW ); + // only the pagestyles in using are considered + if( xStyle->isInUse( ) ) + { + uno::Reference< beans::XPropertySet > xPageProps( xStyle, uno::UNO_QUERY_THROW ); + mxSections.push_back( xPageProps ); + } + } + } + + ~SectionCollectionHelper(){} + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + return mxSections.size(); + } + virtual uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( Index < 0 || Index >= getCount() ) + throw css::lang::IndexOutOfBoundsException(); + + uno::Reference< beans::XPropertySet > xPageProps( mxSections[ Index ], uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XSection >( new SwVbaSection( mxParent, mxContext, mxModel, xPageProps ) ) ); + } + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) + { + return word::XSection::static_type(0); + } + virtual sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) + { + return sal_True; + } + // XEnumerationAccess + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + return new SectionEnumeration( mxSections ); + } +}; + +class SectionsEnumWrapper : public EnumerationHelperImpl +{ + uno::Reference< frame::XModel > mxModel; + uno::WeakReference< XHelperInterface > mxParent; +public: + SectionsEnumWrapper( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), mxModel( xModel ), mxParent( xParent ) {} + + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + uno::Reference< beans::XPropertySet > xPageProps( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XSection > ( new SwVbaSection( mxParent, m_xContext, mxModel, xPageProps ) ) ); + } +}; + +SwVbaSections::SwVbaSections( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel ): SwVbaSections_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( new SectionCollectionHelper( xParent, xContext, xModel ) ) ), mxModel( xModel ) +{ +} + +uno::Any SAL_CALL +SwVbaSections::PageSetup( ) throw (uno::RuntimeException) +{ + if( m_xIndexAccess->getCount() ) + { + // check if the first section is our want + uno::Reference< word::XSection > xSection( m_xIndexAccess->getByIndex( 0 ), uno::UNO_QUERY_THROW ); + return xSection->PageSetup(); + } + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("There is no section") ), uno::Reference< uno::XInterface >() ); +} + +// XEnumerationAccess +uno::Type SAL_CALL +SwVbaSections::getElementType() throw (uno::RuntimeException) +{ + return word::XSection::static_type(0); +} + +uno::Reference< container::XEnumeration > SAL_CALL +SwVbaSections::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return new SectionsEnumWrapper( this, mxContext, xEnumAccess->createEnumeration(), mxModel ); +} + +uno::Any +SwVbaSections::createCollectionObject( const css::uno::Any& aSource ) +{ + return aSource; +} + +rtl::OUString& +SwVbaSections::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaSections") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaSections::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Sections") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbasections.hxx b/sw/source/ui/vba/vbasections.hxx new file mode 100644 index 000000000000..331395d9a11d --- /dev/null +++ b/sw/source/ui/vba/vbasections.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_SECTIONS_HXX +#define SW_VBA_SECTIONS_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XSections.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <vbahelper/vbahelperinterface.hxx> + +typedef CollTestImplHelper< ooo::vba::word::XSections > SwVbaSections_BASE; + +class SwVbaSections : public SwVbaSections_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + +public: + SwVbaSections( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xModel ); + virtual ~SwVbaSections() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + virtual css::uno::Any SAL_CALL PageSetup( ) throw (css::uno::RuntimeException); + + // SwVbaSections_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif /* SW_VBA_SECTIONS_HXX */ diff --git a/sw/source/ui/vba/vbaselection.cxx b/sw/source/ui/vba/vbaselection.cxx new file mode 100644 index 000000000000..d8394435ed98 --- /dev/null +++ b/sw/source/ui/vba/vbaselection.cxx @@ -0,0 +1,682 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaselection.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include "vbarange.hxx" +#include "vbafind.hxx" +#include "wordvbahelper.hxx" +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/text/XTextTable.hpp> +#include <com/sun/star/text/XTextTableCursor.hpp> +#include <com/sun/star/text/ControlCharacter.hpp> +#include <com/sun/star/table/XCell.hpp> +#include <ooo/vba/word/WdUnits.hpp> +#include <ooo/vba/word/WdMovementType.hpp> +#include <ooo/vba/word/WdGoToItem.hpp> +#include <ooo/vba/word/WdGoToDirection.hpp> +#include <ooo/vba/word/XBookmark.hpp> +#include <ooo/vba/word/XApplication.hpp> +#include <com/sun/star/text/XPageCursor.hpp> +#include "unotbl.hxx" +#include "unocoll.hxx" +#include "vbatable.hxx" +#include <com/sun/star/view/XSelectionSupplier.hpp> +#include <com/sun/star/view/XViewCursor.hpp> +#include <ooo/vba/word/WdInformation.hpp> +#include <ooo/vba/word/WdHeaderFooterIndex.hpp> +#include "vbainformationhelper.hxx" +#include "vbafield.hxx" +#include "vbaheaderfooter.hxx" +#include "vbaheaderfooterhelper.hxx" +#include <vbahelper/vbashaperange.hxx> +#include <com/sun/star/drawing/XDrawPageSupplier.hpp> +#include <com/sun/star/drawing/XDrawPage.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaSelection::SwVbaSelection( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< frame::XModel >& rModel ) throw ( uno::RuntimeException ) : SwVbaSelection_BASE( rParent, rContext ), mxModel( rModel ) +{ + mxTextViewCursor = word::getXTextViewCursor( mxModel ); +} + +SwVbaSelection::~SwVbaSelection() +{ +} + +uno::Reference< text::XTextRange > SwVbaSelection::GetSelectedRange() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xTextRange; + uno::Reference< lang::XServiceInfo > xServiceInfo( mxModel->getCurrentSelection(), uno::UNO_QUERY_THROW ); + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextRanges") ) ) ) + { + uno::Reference< container::XIndexAccess > xTextRanges( xServiceInfo, uno::UNO_QUERY_THROW ); + if( xTextRanges->getCount() > 0 ) + { + // if there are multipul selection, just return the last selected Range. + xTextRange.set( xTextRanges->getByIndex( xTextRanges->getCount()-1 ), uno::UNO_QUERY_THROW ); + } + } + else + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } + return xTextRange; +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaSelection::getRange() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xTextRange = GetSelectedRange(); + uno::Reference< text::XTextDocument > xDocument( mxModel, uno::UNO_QUERY_THROW ); + return uno::Reference< word::XRange >( new SwVbaRange( this, mxContext, xDocument, xTextRange->getStart(), xTextRange->getEnd(), mxTextViewCursor->getText() ) ); +} + +rtl::OUString SAL_CALL +SwVbaSelection::getText() throw ( uno::RuntimeException ) +{ + return getRange()->getText(); +} + +void SAL_CALL +SwVbaSelection::setText( const rtl::OUString& rText ) throw ( uno::RuntimeException ) +{ + getRange()->setText( rText ); +} + +void SAL_CALL +SwVbaSelection::TypeText( const rtl::OUString& rText ) throw ( uno::RuntimeException ) +{ + // FIXME: handle the property Options.ReplaceSelection, the default value is TRUE + setText( rText ); +} + +void SAL_CALL +SwVbaSelection::HomeKey( const uno::Any& _unit, const uno::Any& _extend ) throw ( uno::RuntimeException ) +{ + sal_Int32 nUnit = word::WdUnits::wdLine; + sal_Int32 nExtend = word::WdMovementType::wdMove; + _unit >>= nUnit; + _extend >>= nExtend; + + switch( nUnit ) + { + case word::WdUnits::wdStory: + { + // go to the begin of the document + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoToStartOfDoc")); + dispatchRequests( mxModel,url ); + // If something is selected, it needs to go twice + dispatchRequests( mxModel,url ); + break; + } + case word::WdUnits::wdLine: + { + // go to the begin of the Line + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoToStartOfLine")); + dispatchRequests( mxModel,url ); + break; + } + default: + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + break; + } + } +} + +void SAL_CALL +SwVbaSelection::EndKey( const uno::Any& _unit, const uno::Any& _extend ) throw ( uno::RuntimeException ) +{ + sal_Int32 nUnit = word::WdUnits::wdLine; + sal_Int32 nExtend = word::WdMovementType::wdMove; + _unit >>= nUnit; + _extend >>= nExtend; + + switch( nUnit ) + { + case word::WdUnits::wdStory: + { + // go to the end of the document + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoToEndOfDoc")); + dispatchRequests( mxModel,url ); + // If something is selected, it needs to go twice + dispatchRequests( mxModel,url ); + break; + } + case word::WdUnits::wdLine: + { + // go to the end of the Line + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoToEndOfLine")); + dispatchRequests( mxModel,url ); + break; + } + default: + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + break; + } + } +} + +void SAL_CALL +SwVbaSelection::Delete( const uno::Any& /*_unit*/, const uno::Any& /*_count*/ ) throw ( uno::RuntimeException ) +{ + // FIXME: handle the arguments: _unit and _count + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Delete")); + dispatchRequests( mxModel,url ); +} + +void SwVbaSelection::NextCell( sal_Int32 nCount, E_DIRECTION eDirection ) throw ( uno::RuntimeException ) +{ + uno::Reference< beans::XPropertySet > xCursorProps( mxTextViewCursor, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextTable > xTextTable; + uno::Reference< table::XCell > xCell; + xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextTable") ) ) >>= xTextTable; + xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Cell") ) ) >>= xCell; + if( !xTextTable.is() || !xCell.is() ) + { + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + return; + } + uno::Reference< beans::XPropertySet > xCellProps( xCell, uno::UNO_QUERY_THROW ); + rtl::OUString aCellName; + xCellProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CellName") ) ) >>= aCellName; + uno::Reference< text::XTextTableCursor > xTextTableCursor = xTextTable->createCursorByCellName( aCellName ); + // move the table cursor + switch( eDirection ) + { + case MOVE_LEFT: + { + xTextTableCursor->goLeft( nCount, sal_False ); + break; + } + case MOVE_RIGHT: + { + xTextTableCursor->goRight( nCount, sal_False ); + break; + } + case MOVE_UP: + { + xTextTableCursor->goUp( nCount, sal_False ); + break; + } + case MOVE_DOWN: + { + xTextTableCursor->goDown( nCount, sal_False ); + break; + } + default: + { + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + return; + } + } + // move the view cursor + xCell = xTextTable->getCellByName( xTextTableCursor->getRangeName() ); + mxTextViewCursor->gotoRange( uno::Reference< text::XTextRange >( xCell, uno::UNO_QUERY_THROW ), sal_False ); +} + +void SAL_CALL +SwVbaSelection::MoveRight( const uno::Any& _unit, const uno::Any& _count, const uno::Any& _extend ) throw ( uno::RuntimeException ) +{ + sal_Int32 nUnit = word::WdUnits::wdCharacter; + sal_Int32 nCount = 1; + sal_Int32 nExtend = word::WdMovementType::wdMove; + + if( _unit.hasValue() ) + _unit >>= nUnit; + if( _count.hasValue() ) + _count >>= nCount; + if( _extend.hasValue() ) + _extend >>= nExtend; + + if( nCount == 0 ) + return; + + if( nCount < 0 ) + { + // TODO: call MoveLeft; + MoveLeft( _unit, uno::makeAny( -nCount ), _extend ); + return; + } + + switch( nUnit ) + { + case word::WdUnits::wdCell: + { + if( nExtend == word::WdMovementType::wdExtend ) + { + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + return; + } + NextCell( nCount, MOVE_RIGHT ); + break; + } + default: + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + break; + } + } + +} + +void SAL_CALL +SwVbaSelection::MoveLeft( const uno::Any& _unit, const uno::Any& _count, const uno::Any& _extend ) throw ( uno::RuntimeException ) +{ + sal_Int32 nUnit = word::WdUnits::wdCharacter; + sal_Int32 nCount = 1; + sal_Int32 nExtend = word::WdMovementType::wdMove; + + if( _unit.hasValue() ) + _unit >>= nUnit; + if( _count.hasValue() ) + _count >>= nCount; + if( _extend.hasValue() ) + _extend >>= nExtend; + + if( nCount == 0 ) + return; + + if( nCount < 0 ) + { + MoveRight( _unit, uno::makeAny( -nCount ), _extend ); + return; + } + + switch( nUnit ) + { + case word::WdUnits::wdCell: + { + if( nExtend == word::WdMovementType::wdExtend ) + { + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + return; + } + NextCell( nCount, MOVE_LEFT ); + break; + } + default: + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + break; + } + } + +} + +void SAL_CALL +SwVbaSelection::MoveDown( const uno::Any& _unit, const uno::Any& _count, const uno::Any& _extend ) throw ( uno::RuntimeException ) +{ + sal_Int32 nUnit = word::WdUnits::wdCharacter; + sal_Int32 nCount = 1; + sal_Int32 nExtend = word::WdMovementType::wdMove; + + if( _unit.hasValue() ) + _unit >>= nUnit; + if( _count.hasValue() ) + _count >>= nCount; + if( _extend.hasValue() ) + _extend >>= nExtend; + + if( nCount == 0 ) + return; + + if( nCount < 0 ) + { + // TODO: call MoveLeft; + //MoveUp( _unit, uno::makeAny( -nCount ), _extend ); + return; + } + + switch( nUnit ) + { + case word::WdUnits::wdLine: + { + uno::Reference< view::XViewCursor > xViewCursor( mxTextViewCursor, uno::UNO_QUERY_THROW ); + sal_Bool bExpand = ( nExtend == word::WdMovementType::wdMove ) ? sal_False : sal_True; + xViewCursor->goDown( nCount, bExpand ); + break; + } + default: + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + break; + } + } + +} + +void SAL_CALL +SwVbaSelection::TypeParagraph() throw ( uno::RuntimeException ) +{ + // #FIXME: if the selection is an entire paragraph, it's replaced + // by the new paragraph + sal_Bool isCollapsed = mxTextViewCursor->isCollapsed(); + InsertParagraph(); + if( isCollapsed ) + mxTextViewCursor->collapseToStart(); +} + +void SAL_CALL +SwVbaSelection::InsertParagraph() throw ( uno::RuntimeException ) +{ + // #FIME: the selection should include the new paragraph. + getRange()->InsertParagraph(); +} + +void SAL_CALL +SwVbaSelection::InsertParagraphBefore() throw ( uno::RuntimeException ) +{ + getRange()->InsertParagraphBefore(); +} + +void SAL_CALL +SwVbaSelection::InsertParagraphAfter() throw ( uno::RuntimeException ) +{ + getRange()->InsertParagraphAfter(); +} + +uno::Reference< word::XParagraphFormat > SAL_CALL +SwVbaSelection::getParagraphFormat() throw ( uno::RuntimeException ) +{ + return getRange()->getParagraphFormat(); +} + +void SAL_CALL +SwVbaSelection::setParagraphFormat( const uno::Reference< word::XParagraphFormat >& rParagraphFormat ) throw ( uno::RuntimeException ) +{ + return getRange()->setParagraphFormat( rParagraphFormat ); +} + +uno::Reference< word::XFind > SAL_CALL +SwVbaSelection::getFind() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XTextRange > xTextRange = GetSelectedRange(); + return uno::Reference< word::XFind >( new SwVbaFind( this, mxContext, mxModel, xTextRange ) ); +} + +uno::Reference< word::XStyle > SAL_CALL +SwVbaSelection::getStyle() throw ( uno::RuntimeException ) +{ + return getRange()->getStyle(); +} + +void SAL_CALL +SwVbaSelection::setStyle( const uno::Reference< word::XStyle >& rStyle ) throw ( uno::RuntimeException ) +{ + return getRange()->setStyle( rStyle ); +} + +uno::Reference< word::XFont > SAL_CALL +SwVbaSelection::getFont() throw ( uno::RuntimeException ) +{ + return getRange()->getFont(); +} + +void SAL_CALL +SwVbaSelection::TypeBackspace() throw ( uno::RuntimeException ) +{ + rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:SwBackspace")); + dispatchRequests( mxModel,url ); +} + +uno::Reference< word::XRange > SAL_CALL SwVbaSelection::GoTo( const uno::Any& _what, const uno::Any& _which, const uno::Any& _count, const uno::Any& _name ) throw (uno::RuntimeException) +{ + sal_Int32 nWhat = 0; + if( ( _what >>= nWhat ) != sal_True ) + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + switch( nWhat ) + { + case word::WdGoToItem::wdGoToBookmark: + { + rtl::OUString sName; + uno::Reference< word::XApplication > xApplication( Application(), uno::UNO_QUERY_THROW ); + uno::Reference< word::XBookmark > xBookmark( xApplication->getActiveDocument()->Bookmarks(_name), uno::UNO_QUERY_THROW ); + xBookmark->Select(); + //return uno::Reference< word::XRange >( xBookmark->Range(), uno::UNO_QUERY_THROW ); + break; + } + case word::WdGoToItem::wdGoToPage: + { + uno::Reference< text::XPageCursor > xPageCursor( mxTextViewCursor, uno::UNO_QUERY_THROW ); + sal_Int32 nCurrPage = xPageCursor->getPage(); + sal_Int32 nLastPage = word::getPageCount( mxModel ); + sal_Int32 nCount = 0; + if( _count.hasValue() ) + _count >>= nCount; + sal_Int32 nWhich = 0; + if( _which.hasValue() ) + _which >>= nWhich; + sal_Int32 nPage = 0; + switch( nWhich ) + { + case word::WdGoToDirection::wdGoToLast: + { + nPage = nLastPage; + break; + } + case word::WdGoToDirection::wdGoToNext: + { + nPage = nCurrPage + 1; + break; + } + case word::WdGoToDirection::wdGoToPrevious: + { + nPage = nCurrPage - 1; + break; + } + default: + { + nPage = nCount; + } + } + if( nPage <= 0 ) + nPage = 1; + if( nPage > nLastPage ) + nPage = nLastPage; + xPageCursor->jumpToPage( ( sal_Int16 )( nPage ) ); + break; + } + case word::WdGoToItem::wdGoToSection: + { + // TODO: implement Section object + } + default: + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } + return getRange(); +} + +::sal_Int32 SAL_CALL SwVbaSelection::getLanguageID() throw (uno::RuntimeException) +{ + return getRange()->getLanguageID(); +} + +void SAL_CALL SwVbaSelection::setLanguageID( ::sal_Int32 _languageid ) throw (uno::RuntimeException) +{ + getRange()->setLanguageID( _languageid ); +} + +uno::Any SAL_CALL SwVbaSelection::Information( sal_Int32 _type ) throw (uno::RuntimeException) +{ + uno::Any result; + //uno::Reference< view::XSelectionSupplier > xSel( mxModel->getCurrentController(), uno::UNO_QUERY_THROW ); + //uno::Any aSelectedObject = xSel->getSelection(); + switch( _type ) + { + case word::WdInformation::wdActiveEndPageNumber: + { + result = uno::makeAny( SwVbaInformationHelper::handleWdActiveEndPageNumber( mxTextViewCursor ) ); + break; + } + case word::WdInformation::wdNumberOfPagesInDocument: + { + result = uno::makeAny( SwVbaInformationHelper::handleWdNumberOfPagesInDocument( mxModel ) ); + break; + } + case word::WdInformation::wdVerticalPositionRelativeToPage: + { + result = uno::makeAny( SwVbaInformationHelper::handleWdVerticalPositionRelativeToPage( mxModel, mxTextViewCursor ) ); + break; + } + default: + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } + // This method fails to restore the previouse selection + //xSel->select( aSelectedObject ); + return result; +} + +void SAL_CALL SwVbaSelection::InsertBreak( const uno::Any& _breakType ) throw (uno::RuntimeException) +{ + getRange()->InsertBreak( _breakType ); +} + +uno::Any SAL_CALL +SwVbaSelection::Tables( const uno::Any& aIndex ) throw (uno::RuntimeException) +{ + // Hacky implementation due to missing api ( and lack of knowledge ) + // we can only support a selection that is a single table + if ( !aIndex.hasValue() ) // currently we can't support multiple tables in a selection + throw uno::RuntimeException(); + // if the current selection is a XTextTableCursor and the index is 1 then we can service this request, otherwise we just have to throw + uno::Reference< text::XTextTableCursor > xTextTableCursor( mxModel->getCurrentSelection(), uno::UNO_QUERY ); + + if ( !xTextTableCursor.is() ) + throw uno::RuntimeException(); + + sal_Int32 nIndex = 0; + aIndex >>= nIndex; + + uno::Any aRet; + + if ( nIndex != 1 ) + throw uno::RuntimeException(); + SwXTextTableCursor* pTTCursor = dynamic_cast< SwXTextTableCursor* >( xTextTableCursor.get() ); + if ( pTTCursor ) + { + SwFrmFmt* pFmt = pTTCursor->GetFrmFmt(); + rtl::OUString sTableName; + if ( pFmt ) + { + uno::Reference< text::XTextTable > xTbl = SwXTextTables::GetObject(*pFmt); + uno::Reference< css::text::XTextDocument > xTextDoc( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< word::XTable > xVBATbl = new SwVbaTable( mxParent, mxContext, xTextDoc, xTbl ); + aRet <<= xVBATbl; + } + } + return aRet; + +} + +uno::Any SAL_CALL +SwVbaSelection::Fields( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xCol( new SwVbaFields( mxParent, mxContext, mxModel ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +uno::Reference< word::XHeaderFooter > SAL_CALL +SwVbaSelection::getHeaderFooter() throw ( uno::RuntimeException ) +{ + uno::Reference< text::XText > xCurrentText = word::getXTextViewCursor( mxModel )->getText(); + if( HeaderFooterHelper::isHeader( mxModel, xCurrentText ) || HeaderFooterHelper::isFooter( mxModel, xCurrentText ) ) + { + uno::Reference< beans::XPropertySet > xPageStyleProps( word::getCurrentPageStyle( mxModel ), uno::UNO_QUERY_THROW ); + sal_Int32 nIndex = word::WdHeaderFooterIndex::wdHeaderFooterPrimary; + sal_Bool isHeader = HeaderFooterHelper::isHeader( mxModel, xCurrentText ); + if( HeaderFooterHelper::isEvenPagesHeader( mxModel, xCurrentText ) || HeaderFooterHelper::isEvenPagesFooter( mxModel, xCurrentText ) ) + nIndex = word::WdHeaderFooterIndex::wdHeaderFooterEvenPages; + else if( HeaderFooterHelper::isFirstPageHeader( mxModel, xCurrentText ) || HeaderFooterHelper::isFirstPageFooter( mxModel, xCurrentText ) ) + nIndex = word::WdHeaderFooterIndex::wdHeaderFooterFirstPage; + + return uno::Reference< word::XHeaderFooter >( new SwVbaHeaderFooter( this, mxContext, mxModel, xPageStyleProps, isHeader, nIndex ) ); + + } + return uno::Reference< word::XHeaderFooter >(); +} + +uno::Any SAL_CALL +SwVbaSelection::ShapeRange( ) throw (uno::RuntimeException) +{ + uno::Reference< drawing::XShapes > xShapes( mxModel->getCurrentSelection(), uno::UNO_QUERY ); + + if ( !xShapes.is() ) + throw uno::RuntimeException(); + + uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< drawing::XDrawPage > xDrawPage = xDrawPageSupplier->getDrawPage(); + uno::Reference< container::XIndexAccess > xShapesAccess( xShapes, uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< msforms::XShapeRange >( new ScVbaShapeRange( this, mxContext, xShapesAccess, xDrawPage, mxModel ) ) ); +} + +::sal_Int32 SAL_CALL SwVbaSelection::getStart() throw (uno::RuntimeException) +{ + return getRange()->getStart(); +} + +void SAL_CALL SwVbaSelection::setStart( ::sal_Int32 _start ) throw (uno::RuntimeException) +{ + getRange()->setStart( _start ); +} +::sal_Int32 SAL_CALL SwVbaSelection::getEnd() throw (uno::RuntimeException) +{ + return getRange()->getEnd(); +} + +void SAL_CALL SwVbaSelection::setEnd( ::sal_Int32 _end ) throw (uno::RuntimeException) +{ + getRange()->setEnd( _end ); +} + +rtl::OUString& +SwVbaSelection::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaSelection") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaSelection::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Selection" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbaselection.hxx b/sw/source/ui/vba/vbaselection.hxx new file mode 100644 index 000000000000..f319289f927c --- /dev/null +++ b/sw/source/ui/vba/vbaselection.hxx @@ -0,0 +1,108 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_SELECTION_HXX +#define SW_VBA_SELECTION_HXX + +#include <ooo/vba/word/XSelection.hpp> +#include <ooo/vba/word/XRange.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <ooo/vba/word/XParagraphFormat.hpp> +#include <ooo/vba/word/XFind.hpp> +#include <ooo/vba/word/XStyle.hpp> +#include <ooo/vba/word/XFont.hpp> +#include <ooo/vba/word/XHeaderFooter.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XSelection > SwVbaSelection_BASE; + +class SwVbaSelection : public SwVbaSelection_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::text::XTextViewCursor > mxTextViewCursor; + css::uno::Reference< ooo::vba::word::XRange > mxRange; + + enum E_DIRECTION + { + MOVE_LEFT = 1, + MOVE_RIGHT, + MOVE_UP, + MOVE_DOWN + }; + +private: + void NextCell( sal_Int32 nCount, E_DIRECTION eDirection ) throw ( css::uno::RuntimeException ); + css::uno::Reference< css::text::XTextRange > GetSelectedRange() throw ( css::uno::RuntimeException ); + +public: + SwVbaSelection( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::frame::XModel >& rModel ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaSelection(); + + // Attribute + virtual rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException); + virtual void SAL_CALL setText( const rtl::OUString& rText ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL getRange() throw (css::uno::RuntimeException); + virtual void SAL_CALL HomeKey( const css::uno::Any& _unit, const css::uno::Any& _extend ) throw (css::uno::RuntimeException); + virtual void SAL_CALL EndKey( const css::uno::Any& _unit, const css::uno::Any& _extend ) throw (css::uno::RuntimeException); + virtual void SAL_CALL TypeText( const rtl::OUString& rText ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Delete( const css::uno::Any& _unit, const css::uno::Any& _count ) throw (css::uno::RuntimeException); + virtual void SAL_CALL MoveRight( const css::uno::Any& _unit, const css::uno::Any& _count, const css::uno::Any& _extend ) throw (css::uno::RuntimeException); + virtual void SAL_CALL MoveLeft( const css::uno::Any& _unit, const css::uno::Any& _count, const css::uno::Any& _extend ) throw (css::uno::RuntimeException); + virtual void SAL_CALL MoveDown( const css::uno::Any& _unit, const css::uno::Any& _count, const css::uno::Any& _extend ) throw (css::uno::RuntimeException); + virtual void SAL_CALL TypeParagraph() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraph() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraphBefore() throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertParagraphAfter() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XParagraphFormat > SAL_CALL getParagraphFormat() throw (css::uno::RuntimeException); + virtual void SAL_CALL setParagraphFormat( const css::uno::Reference< ooo::vba::word::XParagraphFormat >& rParagraphFormat ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XFind > SAL_CALL getFind() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XStyle > SAL_CALL getStyle() throw (css::uno::RuntimeException); + virtual void SAL_CALL setStyle( const css::uno::Reference< ooo::vba::word::XStyle >& _xStyle ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XFont > SAL_CALL getFont() throw (css::uno::RuntimeException); + virtual void SAL_CALL TypeBackspace() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XRange > SAL_CALL GoTo( const css::uno::Any& _what, const css::uno::Any& _which, const css::uno::Any& _count, const css::uno::Any& _name ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getLanguageID( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL setLanguageID( ::sal_Int32 _languageid ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Information( sal_Int32 _type ) throw (css::uno::RuntimeException); + virtual void SAL_CALL InsertBreak( const css::uno::Any& _breakType ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Tables( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Fields( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XHeaderFooter > SAL_CALL getHeaderFooter() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL ShapeRange( ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getStart() throw (css::uno::RuntimeException); + virtual void SAL_CALL setStart( ::sal_Int32 _start ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getEnd() throw (css::uno::RuntimeException); + virtual void SAL_CALL setEnd( ::sal_Int32 _end ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_SELECTION_HXX */ diff --git a/sw/source/ui/vba/vbastyle.cxx b/sw/source/ui/vba/vbastyle.cxx new file mode 100644 index 000000000000..7a2c42a7767e --- /dev/null +++ b/sw/source/ui/vba/vbastyle.cxx @@ -0,0 +1,152 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ + +#include "vbastyle.hxx" +#include <ooo/vba/word/WdStyleType.hpp> +#include <com/sun/star/lang/Locale.hpp> +#include <i18npool/mslangid.hxx> +#include "vbafont.hxx" +#include "vbapalette.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + + +SwVbaStyle::SwVbaStyle( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< beans::XPropertySet >& _xPropertySet ) throw ( script::BasicErrorException, uno::RuntimeException ) : SwVbaStyle_BASE( xParent, xContext ) , mxStyleProps( _xPropertySet ) +{ + mxStyle.set( _xPropertySet, uno::UNO_QUERY_THROW ); +} + +void SAL_CALL +SwVbaStyle::setName( const ::rtl::OUString& Name ) throw (uno::RuntimeException) +{ + mxStyle->setName(Name); +} + +::rtl::OUString SAL_CALL +SwVbaStyle::getName() throw (uno::RuntimeException) +{ + return mxStyle->getName(); +} + +sal_Int32 SwVbaStyle::getLanguageID( const uno::Reference< beans::XPropertySet >& xTCProps ) throw (uno::RuntimeException) +{ + lang::Locale aLocale; + xTCProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharLocale") ) ) >>= aLocale; + return MsLangId::convertLocaleToLanguage( aLocale ); +} + +void SwVbaStyle::setLanguageID( const uno::Reference< beans::XPropertySet >& xTCProps, sal_Int32 _languageid ) throw (uno::RuntimeException) +{ + lang::Locale aLocale = MsLangId::convertLanguageToLocale( static_cast<LanguageType>(_languageid) ); + xTCProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharLocale") ), uno::makeAny( aLocale ) ) ; +} + +::sal_Int32 SAL_CALL SwVbaStyle::getLanguageID() throw (uno::RuntimeException) +{ + return getLanguageID( mxStyleProps ); +} + +void SAL_CALL SwVbaStyle::setLanguageID( ::sal_Int32 _languageid ) throw (uno::RuntimeException) +{ + setLanguageID( mxStyleProps, _languageid ); +} + +::sal_Int32 SAL_CALL SwVbaStyle::getType() throw (uno::RuntimeException) +{ + sal_Int32 nType = word::WdStyleType::wdStyleTypeParagraph; + uno::Reference< lang::XServiceInfo > xServiceInfo( mxStyle, uno::UNO_QUERY_THROW ); + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.ParagraphStyle") ) ) ) + nType = word::WdStyleType::wdStyleTypeParagraph; + else if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.CharacterStyle") ) ) ) + nType = word::WdStyleType::wdStyleTypeCharacter; + else // if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.NumberingStyle") ) ) ) + nType = word::WdStyleType::wdStyleTypeList; + return nType; +} + +uno::Reference< word::XFont > SAL_CALL +SwVbaStyle::getFont() throw ( uno::RuntimeException ) +{ + VbaPalette aColors; + return new SwVbaFont( mxParent, mxContext, aColors.getPalette(), mxStyleProps ); +} + +void SwVbaStyle::setStyle( const uno::Reference< beans::XPropertySet >& xTCProps, const uno::Reference< ooo::vba::word::XStyle >& xStyle )throw (uno::RuntimeException) +{ + rtl::OUString aStyleType = getOOoStyleTypeFromMSWord( xStyle->getType() ); + xTCProps->setPropertyValue( aStyleType, uno::makeAny( xStyle->getName() ) ); +} + +rtl::OUString SwVbaStyle::getOOoStyleTypeFromMSWord( sal_Int32 _wdStyleType ) +{ + rtl::OUString aStyleType; + switch( _wdStyleType ) + { + case word::WdStyleType::wdStyleTypeParagraph: + case word::WdStyleType::wdStyleTypeTable: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaStyleName") ); + break; + } + case word::WdStyleType::wdStyleTypeCharacter: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharStyleName") ); + break; + } + case word::WdStyleType::wdStyleTypeList: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberingStyleName") ); + break; + } + default: + DebugHelper::exception( SbERR_INTERNAL_ERROR, rtl::OUString() ); + } + return aStyleType; +} + +rtl::OUString& +SwVbaStyle::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaStyle") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaStyle::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.XStyle" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbastyle.hxx b/sw/source/ui/vba/vbastyle.hxx new file mode 100644 index 000000000000..e0d109be20e8 --- /dev/null +++ b/sw/source/ui/vba/vbastyle.hxx @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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: $ + * $Revision: $ + * + * 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 SW_VBA_STYLE_HXX +#define SW_VBA_STYLE_HXX +#include <ooo/vba/word/XStyle.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/style/XStyle.hpp> +#include <ooo/vba/word/XFont.hpp> + + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XStyle > SwVbaStyle_BASE; + +class SwVbaStyle : public SwVbaStyle_BASE +{ +private: + css::uno::Reference< css::beans::XPropertySet > mxStyleProps; + css::uno::Reference< css::style::XStyle > mxStyle; +public: + SwVbaStyle( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::beans::XPropertySet >& _xPropertySet ) throw ( css::script::BasicErrorException, css::uno::RuntimeException ); + virtual ~SwVbaStyle(){} + + static void setStyle( const css::uno::Reference< css::beans::XPropertySet >& xTCProps, const css::uno::Reference< ooo::vba::word::XStyle >& xStyle ) throw (css::uno::RuntimeException); + static rtl::OUString getOOoStyleTypeFromMSWord( sal_Int32 _wdStyleType ); + static sal_Int32 getLanguageID( const css::uno::Reference< css::beans::XPropertySet >& xTCProps ) throw (css::uno::RuntimeException); + static void setLanguageID( const css::uno::Reference< css::beans::XPropertySet >& xTCProps, sal_Int32 _languageid ) throw (css::uno::RuntimeException); + + // Attributes + virtual rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException); + virtual void SAL_CALL setName( const rtl::OUString& Name ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getLanguageID( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL setLanguageID( ::sal_Int32 _languageid ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< ooo::vba::word::XFont > SAL_CALL getFont() throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif //SW_VBA_AXIS_HXX diff --git a/sw/source/ui/vba/vbastyles.cxx b/sw/source/ui/vba/vbastyles.cxx new file mode 100644 index 000000000000..c13c884feab2 --- /dev/null +++ b/sw/source/ui/vba/vbastyles.cxx @@ -0,0 +1,380 @@ +/************************************************************************* + * + * 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: vbastyles.cxx,v $ + * $Revision: 1.3 $ + * + * 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. + * + ************************************************************************/ +#include "vbastyles.hxx" +#include "vbastyle.hxx" +#include <cppuhelper/implbase3.hxx> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/style/XStyle.hpp> +#include <ooo/vba/word/WdBuiltinStyle.hpp> +#include <ooo/vba/word/WdStyleType.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +struct BuiltinStyleTable +{ + sal_Int32 wdBuiltinStyle; + const sal_Char* pOOoStyleName; + sal_Int32 wdStyleType; +}; + +const BuiltinStyleTable aBuiltinStyleTable[] = +{ + { word::WdBuiltinStyle::wdStyleBlockQuotation, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyText, "Text body", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyText2, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyText3, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyTextFirstIndent, "First line indent", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyTextFirstIndent2, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyTextIndent, "Text body indent", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyTextIndent2, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleBodyTextIndent3, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleCaption, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleClosing, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleCommentReference, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleCommentText, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleDate, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleDefaultParagraphFont, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleEmphasis, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleEndnoteReference, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleEndnoteText, "Endnote", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleEnvelopeAddress, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleEnvelopeReturn, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleFooter, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleFootnoteReference, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleFootnoteText, "Footnote", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeader, "Header", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading1, "Heading 1", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading2, "Heading 2", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading3, "Heading 3", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading4, "Heading 4", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading5, "Heading 5", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading6, "Heading 6", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading7, "Heading 7", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading8, "Heading 8", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHeading9, "Heading 9", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlAcronym, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlAddress, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlCite, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlCode, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlDfn, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlKbd, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlNormal, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlPre, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlSamp, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlTt, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHtmlVar, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHyperlink, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleHyperlinkFollowed, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex1, "Index 1", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex2, "Index 2", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex3, "Index 3", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex4, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex5, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex6, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex7, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex8, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndex9, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleIndexHeading, "Index Heading", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleLineNumber, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleList, "List", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleList2, "List 2", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleList3, "List 3", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleList4, "List 4", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleList5, "List 5", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListBullet, "List 1", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListBullet2, "List 2", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListBullet3, "List 3", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListBullet4, "List 4", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListBullet5, "List 5", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListContinue, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListContinue2, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListContinue3, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListContinue4, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListContinue5, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleListNumber, "Numbering 1", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListNumber2, "Numbering 2", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListNumber3, "Numbering 3", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListNumber4, "Numbering 4", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleListNumber5, "Numbering 5", word::WdStyleType::wdStyleTypeList }, + { word::WdBuiltinStyle::wdStyleMacroText, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleMessageHeader, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleNavPane, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleNormal, "Default", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleNormalIndent, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleNormalTable, "Table", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleNoteHeading, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStylePageNumber, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStylePlainText, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleSalutation, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleSignature, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleStrong, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleSubtitle, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTableOfAuthorities, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTableOfFigures, "", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTitle, "Title", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOAHeading, "Contents Heading", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC1, "Contents 1", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC2, "Contents 2", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC3, "Contents 3", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC4, "Contents 4", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC5, "Contents 5", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC6, "Contents 6", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC7, "Contents 7", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC8, "Contents 8", word::WdStyleType::wdStyleTypeParagraph }, + { word::WdBuiltinStyle::wdStyleTOC9, "Contents 9", word::WdStyleType::wdStyleTypeParagraph }, + { 0, 0, 0 } +}; + + +static uno::Sequence< rtl::OUString > getStyleTypes() +{ + uno::Sequence< rtl::OUString > aRet(3); + rtl::OUString* pArray = aRet.getArray(); + pArray[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles") ); + pArray[1] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharacterStyles") ); + pArray[2] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberingStyles") ); + return aRet; +} + +typedef ::cppu::WeakImplHelper1< container::XEnumeration > StyleEnumeration_BASE; +typedef ::cppu::WeakImplHelper3< container::XNameAccess, container::XIndexAccess, container::XEnumerationAccess > StyleCollectionHelper_BASE; +/* +class StylesEnumeration : public StyleEnumeration_BASE +{ +public: + StylesEnumeration( const SheetMap& sMap ) : mSheetMap( sMap ), mIt( mSheetMap.begin() ) {} + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return ( mIt != mSheetMap.end() ); + } + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasMoreElements() ) + throw container::NoSuchElementException(); + uno::Reference< sheet::XSpreadsheet > xSheet( *mIt++ ); + return uno::makeAny( xSheet ) ; + } +}; +*/ +class StyleCollectionHelper : public StyleCollectionHelper_BASE +{ +private: + uno::Reference< frame::XModel > mxModel; + uno::Reference< container::XNameAccess > mxStyleFamilies; + uno::Reference< container::XNameContainer > mxCurrentStyleFamily; + uno::Any cachePos; +public: + StyleCollectionHelper( const uno::Reference< frame::XModel >& _xModel ) : mxModel( _xModel ) + { + uno::Reference< style::XStyleFamiliesSupplier > xStyleSupplier( _xModel, uno::UNO_QUERY_THROW); + mxStyleFamilies = xStyleSupplier->getStyleFamilies(); + } + uno::Reference< container::XNameContainer > getCurrentStyleFamily(){ return mxCurrentStyleFamily; } + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException) { return style::XStyle::static_type(0); } + virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException) { return getCount() > 0; } + // XNameAcess + virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasByName(aName) ) + throw container::NoSuchElementException(); + return cachePos; + } + virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException) + { + uno::Sequence< rtl::OUString > sNames( getCount() ); + rtl::OUString* pString = sNames.getArray(); + uno::Sequence< rtl::OUString > aStyleTypes = getStyleTypes(); + sal_Int32 nCount = 0; + for( sal_Int32 i = 0; i < aStyleTypes.getLength(); i++ ) + { + uno::Reference< container::XNameAccess > xNameAccess( mxStyleFamilies->getByName( aStyleTypes[i] ), uno::UNO_QUERY_THROW ); + uno::Sequence< rtl::OUString > sElementNames = xNameAccess->getElementNames(); + for( sal_Int32 j = 0; j < sElementNames.getLength(); j++ ) + { + pString[nCount++] = sElementNames[j]; + } + } + return sNames; + } + virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException) + { + uno::Sequence< rtl::OUString > aStyleTypes = getStyleTypes(); + for( sal_Int32 i = 0; i < aStyleTypes.getLength(); i++ ) + { + uno::Reference< container::XNameAccess > xNameAccess( mxStyleFamilies->getByName( aStyleTypes[i] ), uno::UNO_QUERY_THROW ); + if( xNameAccess->hasByName( aName ) ) + { + cachePos = xNameAccess->getByName( aName ); + mxCurrentStyleFamily.set( xNameAccess, uno::UNO_QUERY_THROW ); + return sal_True; + } + } + return sal_False; + } + + // XIndexAccess + virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException) + { + uno::Sequence< rtl::OUString > aStyleTypes = getStyleTypes(); + sal_Int32 nCount = 0; + for( sal_Int32 i = 0; i < aStyleTypes.getLength(); i++ ) + { + uno::Reference< container::XIndexAccess > xIndexAccess( mxStyleFamilies->getByName( aStyleTypes[i] ), uno::UNO_QUERY_THROW ); + nCount += xIndexAccess->getCount(); + } + return nCount; + } + virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException ) + { + if ( Index < 0 || Index >= getCount() ) + throw lang::IndexOutOfBoundsException(); + + // FIXME: need to make a alphabetically sorted list of style names + uno::Sequence< rtl::OUString > aStyleTypes = getStyleTypes(); + for( sal_Int32 i = 0; i < aStyleTypes.getLength(); i++ ) + { + uno::Reference< container::XIndexAccess > xIndexAccess( mxStyleFamilies->getByName( aStyleTypes[i] ), uno::UNO_QUERY_THROW ); + sal_Int32 nCount = xIndexAccess->getCount(); + if( Index >= nCount ) + Index -= nCount; + else + { + mxCurrentStyleFamily.set( xIndexAccess, uno::UNO_QUERY_THROW ); + return xIndexAccess->getByIndex( Index ); + } + } + throw lang::IndexOutOfBoundsException(); + } + // XEnumerationAccess + virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException) + { + // FIXME: + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } +}; + +SwVbaStyles::SwVbaStyles( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< css::uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel ) throw ( script::BasicErrorException ) : SwVbaStyles_BASE( xParent, xContext, uno::Reference< container::XIndexAccess >( new StyleCollectionHelper( xModel ) ) ), mxModel( xModel ) +{ + mxMSF.set( mxModel, uno::UNO_QUERY_THROW ); +} + +uno::Any +SwVbaStyles::createCollectionObject(const uno::Any& aObject) +{ + uno::Reference< beans::XPropertySet > xStyleProp( aObject, uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XStyle >( new SwVbaStyle( this, mxContext, xStyleProp ) ) ); +} + +uno::Type SAL_CALL +SwVbaStyles::getElementType() throw (uno::RuntimeException) +{ + return word::XStyle::static_type(0); +} + +uno::Reference< container::XEnumeration > SAL_CALL +SwVbaStyles::createEnumeration() throw (uno::RuntimeException) +{ + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); +} + +uno::Any SAL_CALL +SwVbaStyles::Item( const uno::Any& Index1, const uno::Any& Index2 ) throw (uno::RuntimeException) +{ + //handle WdBuiltinStyle + sal_Int32 nIndex = 0; + if( ( Index1 >>= nIndex ) && ( nIndex < 0 ) ) + { + for( const BuiltinStyleTable* pTable = aBuiltinStyleTable; pTable != NULL; pTable++ ) + { + if( nIndex == pTable->wdBuiltinStyle ) + { + rtl::OUString aStyleName = rtl::OUString::createFromAscii( pTable->pOOoStyleName ); + if( aStyleName.getLength() > 0 ) + { + rtl::OUString aStyleType = SwVbaStyle::getOOoStyleTypeFromMSWord( pTable->wdStyleType ); + switch( pTable->wdStyleType ) + { + case word::WdStyleType::wdStyleTypeParagraph: + case word::WdStyleType::wdStyleTypeTable: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles") ); + break; + } + case word::WdStyleType::wdStyleTypeCharacter: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharacterStyles") ); + break; + } + case word::WdStyleType::wdStyleTypeList: + { + aStyleType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberingStyles") ); + break; + } + default: + DebugHelper::exception( SbERR_INTERNAL_ERROR, rtl::OUString() ); + } + uno::Reference< style::XStyleFamiliesSupplier > xStyleSupplier( mxModel, uno::UNO_QUERY_THROW); + uno::Reference< container::XNameAccess > xStylesAccess( xStyleSupplier->getStyleFamilies()->getByName( aStyleType ), uno::UNO_QUERY_THROW ); + uno::Reference< beans::XPropertySet > xStyleProps( xStylesAccess->getByName( aStyleName ), uno::UNO_QUERY_THROW ); + return uno::makeAny( uno::Reference< word::XStyle >( new SwVbaStyle( this, mxContext, xStyleProps ) ) ); + } + else + { + OSL_TRACE("SwVbaStyles::Item: the builtin style type is not implemented"); + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); + } + } + } + } + return SwVbaStyles_BASE::Item( Index1, Index2 ); +} + +rtl::OUString& +SwVbaStyles::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaStyles") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaStyles::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.XStyles" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbastyles.hxx b/sw/source/ui/vba/vbastyles.hxx new file mode 100644 index 000000000000..764e74fc8c3f --- /dev/null +++ b/sw/source/ui/vba/vbastyles.hxx @@ -0,0 +1,54 @@ +/************************************************************************* + * + * 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: vbastyles.hxx,v $ + * $Revision: 1.3 $ + * + * 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 SW_VBA_STYLES_HXX +#define SW_VBA_STYLES_HXX + +#include <ooo/vba/word/XStyles.hpp> +#include <vbahelper/vbacollectionimpl.hxx> + +typedef CollTestImplHelper< ooo::vba::word::XStyles > SwVbaStyles_BASE; +class SwVbaStyles: public SwVbaStyles_BASE +{ + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::lang::XMultiServiceFactory > mxMSF; +public: + SwVbaStyles( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xModel ) throw ( css::script::BasicErrorException ); + + virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index1, const css::uno::Any& Index2 ) throw (css::uno::RuntimeException); + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + virtual css::uno::Any createCollectionObject(const css::uno::Any&); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif diff --git a/sw/source/ui/vba/vbasystem.cxx b/sw/source/ui/vba/vbasystem.cxx new file mode 100644 index 000000000000..f3f5cf7c0c02 --- /dev/null +++ b/sw/source/ui/vba/vbasystem.cxx @@ -0,0 +1,195 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbasystem.hxx" +#include <vbahelper/vbahelper.hxx> +#include <ooo/vba/word/WdCursorType.hpp> +#include <tools/diagnose_ex.h> +#include <tools/config.hxx> +#include <tools/string.hxx> +#include <osl/file.hxx> +#include <tools/urlobj.hxx> +#include <tools/string.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +PrivateProfileStringListener::PrivateProfileStringListener( const rtl::OUString& rFileName, const ByteString& rGroupName, const ByteString& rKey ) + :maFileName( rFileName ), maGroupName( rGroupName ), maKey( rKey ) +{ +} + +PrivateProfileStringListener::~PrivateProfileStringListener() +{ +} + +void PrivateProfileStringListener::Initialize( const rtl::OUString& rFileName, const ByteString& rGroupName, const ByteString& rKey ) +{ + maFileName = rFileName; + maGroupName = rGroupName; + maKey = rKey; +} + +uno::Any PrivateProfileStringListener::getValueEvent() +{ + // get the private profile string + Config aCfg( maFileName ); + aCfg.SetGroup( maGroupName ); + rtl::OUString sValue = String( aCfg.ReadKey( maKey ), RTL_TEXTENCODING_DONTKNOW ); + + return uno::makeAny( sValue ); +} + +void PrivateProfileStringListener::setValueEvent( const css::uno::Any& value ) +{ + // set the private profile string + Config aCfg( maFileName ); + aCfg.SetGroup( maGroupName ); + + rtl::OUString aValue; + value >>= aValue; + aCfg.WriteKey( maKey, ByteString( aValue.getStr(), RTL_TEXTENCODING_DONTKNOW ) ); +} + +SwVbaSystem::SwVbaSystem( uno::Reference<uno::XComponentContext >& xContext ): SwVbaSystem_BASE( uno::Reference< XHelperInterface >(), xContext ) +{ +} + +SwVbaSystem::~SwVbaSystem() +{ +} + +sal_Int32 SAL_CALL +SwVbaSystem::getCursor() throw (uno::RuntimeException) +{ + sal_Int32 nPointerStyle = getPointerStyle( getCurrentWordDoc(mxContext) ); + + switch( nPointerStyle ) + { + case POINTER_ARROW: + return word::WdCursorType::wdCursorNorthwestArrow; + case POINTER_NULL: + return word::WdCursorType::wdCursorNormal; + case POINTER_WAIT: + return word::WdCursorType::wdCursorWait; + case POINTER_TEXT: + return word::WdCursorType::wdCursorIBeam; + default: + return word::WdCursorType::wdCursorNormal; + } +} + +void SAL_CALL +SwVbaSystem::setCursor( sal_Int32 _cursor ) throw (uno::RuntimeException) +{ + try + { + switch( _cursor ) + { + case word::WdCursorType::wdCursorNorthwestArrow: + { + const Pointer& rPointer( POINTER_ARROW ); + setCursorHelper( getCurrentWordDoc(mxContext), rPointer, sal_False ); + break; + } + case word::WdCursorType::wdCursorWait: + { + const Pointer& rPointer( static_cast< PointerStyle >( POINTER_WAIT ) ); + //It will set the edit window, toobar and statusbar's mouse pointer. + setCursorHelper( getCurrentWordDoc(mxContext), rPointer, sal_True ); + break; + } + case word::WdCursorType::wdCursorIBeam: + { + const Pointer& rPointer( static_cast< PointerStyle >( POINTER_TEXT ) ); + //It will set the edit window, toobar and statusbar's mouse pointer. + setCursorHelper( getCurrentWordDoc( mxContext ), rPointer, sal_True ); + break; + } + case word::WdCursorType::wdCursorNormal: + { + const Pointer& rPointer( POINTER_NULL ); + setCursorHelper( getCurrentWordDoc( mxContext ), rPointer, sal_False ); + break; + } + default: + throw uno::RuntimeException( rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("Unknown value for Cursor pointer")), uno::Reference< uno::XInterface >() ); + // TODO: isn't this a flaw in the API? It should be allowed to throw an + // IllegalArgumentException, or so + } + } + catch( const uno::Exception& ) + { + DBG_UNHANDLED_EXCEPTION(); + } +} + +uno::Any SAL_CALL +SwVbaSystem::PrivateProfileString( const rtl::OUString& rFilename, const rtl::OUString& rSection, const rtl::OUString& rKey ) throw ( uno::RuntimeException ) +{ + if( rFilename.getLength() == 0 ) + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access document from shell" ) ), uno::Reference< uno::XInterface >() ); + + // FIXME: need to detect whether it is a relative file path + // we need to detect if this is a URL, if not then assume its a file path + rtl::OUString sFileUrl; + INetURLObject aObj; + aObj.SetURL( rFilename ); + bool bIsURL = aObj.GetProtocol() != INET_PROT_NOT_VALID; + if ( bIsURL ) + sFileUrl = rFilename; + else + osl::FileBase::getFileURLFromSystemPath( rFilename, sFileUrl); + + ByteString aGroupName = ByteString( rSection.getStr(), RTL_TEXTENCODING_DONTKNOW); + ByteString aKey = ByteString( rKey.getStr(), RTL_TEXTENCODING_DONTKNOW); + maPrivateProfileStringListener.Initialize( sFileUrl, aGroupName, aKey ); + + return uno::makeAny( uno::Reference< XPropValue > ( new ScVbaPropValue( &maPrivateProfileStringListener ) ) ); +} + +rtl::OUString& +SwVbaSystem::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaSystem") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaSystem::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.System" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbasystem.hxx b/sw/source/ui/vba/vbasystem.hxx new file mode 100644 index 000000000000..f510ed1bae08 --- /dev/null +++ b/sw/source/ui/vba/vbasystem.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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: vbasystem.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_SYSTEM_HXX +#define SW_VBA_SYSTEM_HXX + +#include <ooo/vba/word/XSystem.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <vbahelper/vbapropvalue.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XSystem > SwVbaSystem_BASE; + +class PrivateProfileStringListener : public PropListener +{ +private: + rtl::OUString maFileName; + ByteString maGroupName; + ByteString maKey; +public: + PrivateProfileStringListener(){}; + PrivateProfileStringListener( const rtl::OUString& rFileName, const ByteString& rGroupName, const ByteString& rKey ); + virtual ~PrivateProfileStringListener(); + void Initialize( const rtl::OUString& rFileName, const ByteString& rGroupName, const ByteString& rKey ); + + //PropListener + virtual void setValueEvent( const css::uno::Any& value ); + virtual css::uno::Any getValueEvent(); +}; + +class SwVbaSystem : public SwVbaSystem_BASE +{ +private: + PrivateProfileStringListener maPrivateProfileStringListener; + +public: + SwVbaSystem( css::uno::Reference< css::uno::XComponentContext >& m_xContext ); + virtual ~SwVbaSystem(); + + // XSystem + virtual sal_Int32 SAL_CALL getCursor() throw ( css::uno::RuntimeException ); + virtual void SAL_CALL setCursor( sal_Int32 _cursor ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL PrivateProfileString( const rtl::OUString& rFilename, const rtl::OUString& rSection, const rtl::OUString& rKey ) throw ( css::uno::RuntimeException ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_SYSTEM_HXX */ diff --git a/sw/source/ui/vba/vbatable.cxx b/sw/source/ui/vba/vbatable.cxx new file mode 100644 index 000000000000..11969d6717a0 --- /dev/null +++ b/sw/source/ui/vba/vbatable.cxx @@ -0,0 +1,97 @@ +#include "vbatable.hxx" +#include "vbarange.hxx" +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <com/sun/star/view/XSelectionSupplier.hpp> +#include <com/sun/star/text/XTextTable.hpp> +#include <com/sun/star/text/XTextTablesSupplier.hpp> +#include <com/sun/star/table/XTableRows.hpp> +#include <com/sun/star/container/XNamed.hpp> +#include "vbaborders.hxx" +#include "vbapalette.hxx" + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaTable::SwVbaTable( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rDocument, const uno::Reference< css::text::XTextTable >& xTextTable) throw ( uno::RuntimeException ) : SwVbaTable_BASE( rParent, rContext ), mxTextDocument( rDocument ) +{ + mxTextTable.set( xTextTable, uno::UNO_QUERY_THROW ); +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaTable::Range( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + return new SwVbaRange( mxParent, mxContext, mxTextDocument, mxTextTable->getAnchor() ); +} + +void SAL_CALL +SwVbaTable::Select( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< frame::XController > xController = xModel->getCurrentController(); + + uno::Reference< text::XTextViewCursorSupplier > xViewCursorSupplier( xController, uno::UNO_QUERY_THROW ); + uno::Reference< view::XSelectionSupplier > xSelectionSupplier( xController, uno::UNO_QUERY_THROW ); + + // set the view cursor to the start of the table. + xSelectionSupplier->select( uno::makeAny( mxTextTable ) ); + + // go to the end of the table and span the view + uno::Reference< text::XTextViewCursor > xCursor = xViewCursorSupplier->getViewCursor(); + xCursor->gotoEnd(sal_True); + +} + +void SAL_CALL +SwVbaTable::Delete( ) throw (script::BasicErrorException, uno::RuntimeException) +{ + uno::Reference< table::XTableRows > xRows( mxTextTable->getRows() ); + xRows->removeByIndex( 0, xRows->getCount() ); +} + +uno::Reference< word::XRange > SAL_CALL +SwVbaTable::ConvertToText( const uno::Any& /*Separator*/, const uno::Any& /*NestedTables*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + // #FIXME the helper api uses the dreaded dispatch mechanism, holding off + // implementation while I look for alternative solution + throw uno::RuntimeException(); +} + +rtl::OUString SAL_CALL +SwVbaTable::getName() throw (uno::RuntimeException) +{ + uno::Reference< container::XNamed > xNamed( mxTextTable, uno::UNO_QUERY_THROW ); + return xNamed->getName(); +} + +uno::Any SAL_CALL +SwVbaTable::Borders( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< table::XCellRange > aCellRange( mxTextTable, uno::UNO_QUERY_THROW ); + VbaPalette aPalette; + uno::Reference< XCollection > xCol( new SwVbaBorders( this, mxContext, aCellRange, aPalette ) ); + if ( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +// XHelperInterface +rtl::OUString& +SwVbaTable::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaTable") ); + return sImplName; +} + +uno::Sequence<rtl::OUString> +SwVbaTable::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Table" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbatable.hxx b/sw/source/ui/vba/vbatable.hxx new file mode 100644 index 000000000000..7d913d718895 --- /dev/null +++ b/sw/source/ui/vba/vbatable.hxx @@ -0,0 +1,28 @@ +#ifndef SW_VBA_TABLE_HXX +#define SW_VBA_TABLE_HXX +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextTable.hpp> +#include <ooo/vba/word/XRange.hpp> +#include <ooo/vba/word/XTable.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XTable > SwVbaTable_BASE; + +class SwVbaTable : public SwVbaTable_BASE +{ + css::uno::Reference< css::text::XTextDocument > mxTextDocument; + css::uno::Reference< css::text::XTextTable > mxTextTable; +public: + SwVbaTable( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, const css::uno::Reference< css::text::XTextDocument >& rDocument, const css::uno::Reference< css::text::XTextTable >& xTextTable) throw ( css::uno::RuntimeException); + css::uno::Reference< css::text::XTextDocument > getDocument() { return mxTextDocument; }; + virtual css::uno::Reference< ::ooo::vba::word::XRange > SAL_CALL Range( ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + virtual void SAL_CALL Select( ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + virtual void SAL_CALL Delete( ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + virtual css::uno::Reference< ::ooo::vba::word::XRange > SAL_CALL ConvertToText( const css::uno::Any& Separator, const css::uno::Any& NestedTables ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + virtual rtl::OUString SAL_CALL getName( ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Borders( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif diff --git a/sw/source/ui/vba/vbatables.cxx b/sw/source/ui/vba/vbatables.cxx new file mode 100644 index 000000000000..9a10622400d3 --- /dev/null +++ b/sw/source/ui/vba/vbatables.cxx @@ -0,0 +1,131 @@ +#include "vbatables.hxx" +#include "vbatable.hxx" +#include "vbarange.hxx" +#include <com/sun/star/text/XTextTable.hpp> +#include <com/sun/star/text/XTextTablesSupplier.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <comphelper/componentcontext.hxx> + +using namespace ::ooo::vba; +using namespace css; + +uno::Reference< container::XIndexAccess > lcl_getTables( const uno::Reference< frame::XModel >& xDoc ) +{ + uno::Reference< container::XIndexAccess > xTables; + uno::Reference< text::XTextTablesSupplier > xSupp( xDoc, uno::UNO_QUERY ); + if ( xSupp.is() ) + xTables.set( xSupp->getTextTables(), uno::UNO_QUERY_THROW ); + return xTables; +} + +uno::Any lcl_createTable( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xDocument, const uno::Any& aSource ) +{ + uno::Reference< text::XTextTable > xTextTable( aSource, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextDocument > xTextDocument( xDocument, uno::UNO_QUERY_THROW ); + uno::Reference< word::XTable > xTable( new SwVbaTable( xParent, xContext, xTextDocument, xTextTable ) ); + return uno::makeAny( xTable ); +} + +typedef ::cppu::WeakImplHelper1< css::container::XEnumeration > EnumBase; + +class TableEnumerationImpl : public EnumBase +{ + uno::Reference< XHelperInterface > mxParent; + uno::Reference< uno::XComponentContext > mxContext; + uno::Reference< frame::XModel > mxDocument; + uno::Reference< container::XIndexAccess > mxIndexAccess; + sal_Int32 mnCurIndex; +public: + TableEnumerationImpl( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xDocument, const uno::Reference< container::XIndexAccess >& xIndexAccess ) : mxParent( xParent ), mxContext( xContext ), mxDocument( xDocument ), mxIndexAccess( xIndexAccess ), mnCurIndex(0) + { + } + virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException) + { + return ( mnCurIndex < mxIndexAccess->getCount() ); + } + virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) + { + if ( !hasMoreElements() ) + throw container::NoSuchElementException(); + return lcl_createTable( mxParent, mxContext, mxDocument, mxIndexAccess->getByIndex( mnCurIndex++ ) ); + } + +}; + +SwVbaTables::SwVbaTables( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xDocument ) : SwVbaTables_BASE( xParent, xContext , lcl_getTables( xDocument ) ), mxDocument( xDocument ) +{ +} + + +uno::Reference< word::XTable > SAL_CALL +SwVbaTables::Add( const uno::Reference< word::XRange >& Range, const uno::Any& NumRows, const uno::Any& NumColumns, const uno::Any& /*DefaultTableBehavior*/, const uno::Any& /*AutoFitBehavior*/ ) throw (script::BasicErrorException, uno::RuntimeException) +{ + sal_Int32 nCols = 0; + sal_Int32 nRows = 0; + SwVbaRange* pVbaRange = dynamic_cast< SwVbaRange* >( Range.get() ); + // Preconditions + if ( !( pVbaRange && ( NumRows >>= nRows ) && ( NumColumns >>= nCols ) ) ) + throw uno::RuntimeException(); // #FIXME better exception?? + if ( nCols <= 0 || nRows <= 0 ) + throw uno::RuntimeException(); // #FIXME better exception?? + + uno::Reference< frame::XModel > xModel( pVbaRange->getDocument(), uno::UNO_QUERY_THROW ); + uno::Reference< lang::XMultiServiceFactory > xMsf( xModel, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextRange > xTextRange = pVbaRange->getXTextRange(); + + uno::Reference< text::XTextTable > xTable; + xTable.set( xMsf->createInstance( rtl::OUString::createFromAscii("com.sun.star.text.TextTable") ), uno::UNO_QUERY_THROW ); +/* + comphelper::ComponentContext aCtx( xMsf ); + if ( !aCtx.createComponent( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextTable") ), xTable ) ); + throw uno::RuntimeException(); // #FIXME better exception?? +*/ + xTable->initialize( nRows, nCols ); + uno::Reference< text::XText > xText = xTextRange->getText(); + uno::Reference< text::XTextContent > xContext( xTable, uno::UNO_QUERY_THROW ); + + xText->insertTextContent( xTextRange, xContext, true ); + uno::Reference< word::XTable > xVBATable( new SwVbaTable( mxParent, mxContext, pVbaRange->getDocument(), xTable ) ); + return xVBATable; +} + +uno::Reference< container::XEnumeration > SAL_CALL +SwVbaTables::createEnumeration() throw (uno::RuntimeException) +{ + return new TableEnumerationImpl( mxParent, mxContext, mxDocument, m_xIndexAccess ); +} + +// ScVbaCollectionBaseImpl +uno::Any +SwVbaTables::createCollectionObject( const uno::Any& aSource ) +{ + return lcl_createTable( mxParent, mxContext, mxDocument, aSource ); +} + +// XHelperInterface +rtl::OUString& +SwVbaTables::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaTables") ); + return sImplName; +} + +// XEnumerationAccess +uno::Type SAL_CALL +SwVbaTables::getElementType() throw (uno::RuntimeException) +{ + return word::XTable::static_type(0); +} + +uno::Sequence<rtl::OUString> +SwVbaTables::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Tables" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbatables.hxx b/sw/source/ui/vba/vbatables.hxx new file mode 100644 index 000000000000..a789337a2839 --- /dev/null +++ b/sw/source/ui/vba/vbatables.hxx @@ -0,0 +1,28 @@ +#ifndef SW_VBA_TABLES_HXX +#define SW_VBA_TABLES_HXX + +#include <ooo/vba/word/XTables.hpp> +#include <vbahelper/vbacollectionimpl.hxx> + + +typedef CollTestImplHelper< ov::word::XTables > SwVbaTables_BASE; + +class SwVbaTables : public SwVbaTables_BASE +{ + css::uno::Reference< css::frame::XModel > mxDocument; +public: + SwVbaTables( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::frame::XModel >& xDocument ); + // XTables + virtual css::uno::Reference< ov::word::XTable > SAL_CALL Add( const css::uno::Reference< ::ooo::vba::word::XRange >& Range, const css::uno::Any& NumRows, const css::uno::Any& NumColumns, const css::uno::Any& DefaultTableBehavior, const css::uno::Any& AutoFitBehavior ) throw (css::script::BasicErrorException, css::uno::RuntimeException); + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + // ScVbaCollectionBaseImpl + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif diff --git a/sw/source/ui/vba/vbatemplate.cxx b/sw/source/ui/vba/vbatemplate.cxx new file mode 100644 index 000000000000..630986ed6c81 --- /dev/null +++ b/sw/source/ui/vba/vbatemplate.cxx @@ -0,0 +1,106 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbatemplate.hxx" +#include <vbahelper/vbahelper.hxx> +#include "wordvbahelper.hxx" +#include "vbaautotextentry.hxx" +#include <comphelper/processfactory.hxx> +#include <com/sun/star/text/XAutoTextContainer.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaTemplate::SwVbaTemplate( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const css::uno::Reference< css::frame::XModel >& rModel, const rtl::OUString& rName ) + : SwVbaTemplate_BASE( rParent, rContext ), mxModel( rModel ), msName( rName ) +{ +} + + +SwVbaTemplate::~SwVbaTemplate() +{ +} + +rtl::OUString +SwVbaTemplate::getName() throw ( css::uno::RuntimeException ) +{ + return msName; +} + +uno::Any SAL_CALL +SwVbaTemplate::AutoTextEntries( const uno::Any& index ) throw (uno::RuntimeException) +{ + uno::Reference< lang::XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory(); + uno::Reference< text::XAutoTextContainer > xAutoTextContainer( xMgr->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.AutoTextContainer") ) ), uno::UNO_QUERY_THROW ); + + // the default template is "Normal.dot" in Word. + rtl::OUString sGroup( RTL_CONSTASCII_USTRINGPARAM("Normal") ); + sal_Int32 nIndex = msName.lastIndexOf( sal_Unicode('.') ); + if( nIndex > 0 ) + { + sGroup = msName.copy( 0, msName.lastIndexOf( sal_Unicode('.') ) ); + // OSL_TRACE("SwVbaTemplate::AutoTextEntries: %s", rtl::OUStringToOString( sGroup, RTL_TEXTENCODING_UTF8 ).getStr() ); + } + + uno::Reference< container::XIndexAccess > xGroup; + if( xAutoTextContainer->hasByName( sGroup ) ) + { + xGroup.set( xAutoTextContainer->getByName( sGroup ), uno::UNO_QUERY_THROW ); + } + else + { + throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Auto Text Entry doesn't exist") ), uno::Reference< uno::XInterface >() ); + //xGroup.set( xAutoTextContainer->insertNewByName( sGroup ), uno::UNO_QUERY_THROW ); + } + + uno::Reference< XCollection > xCol( new SwVbaAutoTextEntries( this, mxContext, xGroup ) ); + if( index.hasValue() ) + return xCol->Item( index, uno::Any() ); + return uno::makeAny( xCol ); +} + +rtl::OUString& +SwVbaTemplate::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaTemplate") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaTemplate::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Template" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbatemplate.hxx b/sw/source/ui/vba/vbatemplate.hxx new file mode 100644 index 000000000000..90c06cb2c21e --- /dev/null +++ b/sw/source/ui/vba/vbatemplate.hxx @@ -0,0 +1,55 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_TEMPLATE_HXX +#define SW_VBA_TEMPLATE_HXX + +#include <ooo/vba/word/XTemplate.hpp> +#include <vbahelper/vbahelperinterface.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XTemplate > SwVbaTemplate_BASE; + +class SwVbaTemplate : public SwVbaTemplate_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + rtl::OUString msName; +public: + SwVbaTemplate( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, + const css::uno::Reference< css::frame::XModel >& rModel, const rtl::OUString& ); + virtual ~SwVbaTemplate(); + + // XTemplate + virtual rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL AutoTextEntries( const css::uno::Any& index ) throw (css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_TEMPLATE_HXX */ diff --git a/sw/source/ui/vba/vbavariable.cxx b/sw/source/ui/vba/vbavariable.cxx new file mode 100644 index 000000000000..c5ff127308b9 --- /dev/null +++ b/sw/source/ui/vba/vbavariable.cxx @@ -0,0 +1,108 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbavariable.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +SwVbaVariable::SwVbaVariable( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, + const uno::Reference< beans::XPropertyAccess >& rUserDefined, const rtl::OUString& rName ) throw ( uno::RuntimeException ) : + SwVbaVariable_BASE( rParent, rContext ), mxUserDefined( rUserDefined ), maName( rName ) +{ +} + +SwVbaVariable::~SwVbaVariable() +{ +} + +rtl::OUString SAL_CALL +SwVbaVariable::getName() throw ( css::uno::RuntimeException ) +{ + return maName; +} + +void SAL_CALL +SwVbaVariable::setName( const rtl::OUString& ) throw ( css::uno::RuntimeException ) +{ + throw uno::RuntimeException( rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM(" Fail to set name")), uno::Reference< uno::XInterface >() ); +} + +uno::Any SAL_CALL +SwVbaVariable::getValue() throw ( css::uno::RuntimeException ) +{ + uno::Reference< beans::XPropertySet > xProp( mxUserDefined, uno::UNO_QUERY_THROW ); + return xProp->getPropertyValue( maName ); +} + +void SAL_CALL +SwVbaVariable::setValue( const uno::Any& rValue ) throw ( css::uno::RuntimeException ) +{ + // FIXME: fail to set the value if the new type of vaue is differenct from the original one. + uno::Reference< beans::XPropertySet > xProp( mxUserDefined, uno::UNO_QUERY_THROW ); + xProp->setPropertyValue( maName, rValue ); +} + +sal_Int32 SAL_CALL +SwVbaVariable::getIndex() throw ( css::uno::RuntimeException ) +{ + const uno::Sequence< beans::PropertyValue > props = mxUserDefined->getPropertyValues(); + for (sal_Int32 i = 0; i < props.getLength(); ++i) + { + if( maName.equals( props[i].Name ) ) + return i+1; + } + + return 0; +} + +rtl::OUString& +SwVbaVariable::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaVariable") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaVariable::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Variable" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbavariable.hxx b/sw/source/ui/vba/vbavariable.hxx new file mode 100644 index 000000000000..e8021610f227 --- /dev/null +++ b/sw/source/ui/vba/vbavariable.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_VARIABLE_HXX +#define SW_VBA_VARIABLE_HXX + +#include <ooo/vba/word/XVariable.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/beans/XPropertyAccess.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XVariable > SwVbaVariable_BASE; + +class SwVbaVariable : public SwVbaVariable_BASE +{ +private: + css::uno::Reference< css::beans::XPropertyAccess > mxUserDefined; + rtl::OUString maName; + +public: + SwVbaVariable( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, + const css::uno::Reference< css::beans::XPropertyAccess >& rUserDefined, const rtl::OUString& rName ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaVariable(); + + // XVariable + virtual rtl::OUString SAL_CALL getName() throw ( css::uno::RuntimeException ); + virtual void SAL_CALL setName( const rtl::OUString& ) throw ( css::uno::RuntimeException ); + virtual css::uno::Any SAL_CALL getValue() throw ( css::uno::RuntimeException ); + virtual void SAL_CALL setValue( const css::uno::Any& rValue ) throw ( css::uno::RuntimeException ); + virtual sal_Int32 SAL_CALL getIndex() throw ( css::uno::RuntimeException ); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_VARIABLE_HXX */ diff --git a/sw/source/ui/vba/vbavariables.cxx b/sw/source/ui/vba/vbavariables.cxx new file mode 100644 index 000000000000..fbe046085144 --- /dev/null +++ b/sw/source/ui/vba/vbavariables.cxx @@ -0,0 +1,105 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbavariables.hxx" +#include "vbavariable.hxx" +#include <com/sun/star/beans/XPropertyContainer.hpp> +#include <com/sun/star/beans/PropertyAttribute.hpp> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +uno::Reference< container::XIndexAccess > createVariablesAccess( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< beans::XPropertyAccess >& xUserDefined ) throw ( uno::RuntimeException ) +{ + // FIXME: the performance is poor? + XNamedObjectCollectionHelper< word::XVariable >::XNamedVec mVariables; + const uno::Sequence< beans::PropertyValue > props = xUserDefined->getPropertyValues(); + sal_Int32 nCount = props.getLength(); + mVariables.reserve( nCount ); + for( sal_Int32 i=0; i < nCount; i++ ) + mVariables.push_back( uno::Reference< word::XVariable > ( new SwVbaVariable( xParent, xContext, xUserDefined, props[i].Name ) ) ); + + uno::Reference< container::XIndexAccess > xVariables( new XNamedObjectCollectionHelper< word::XVariable >( mVariables ) ); + return xVariables; +} + +SwVbaVariables::SwVbaVariables( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< beans::XPropertyAccess >& rUserDefined ): SwVbaVariables_BASE( xParent, xContext, createVariablesAccess( xParent, xContext, rUserDefined ) ), mxUserDefined( rUserDefined ) +{ +} +// XEnumerationAccess +uno::Type +SwVbaVariables::getElementType() throw (uno::RuntimeException) +{ + return word::XVariable::static_type(0); +} +uno::Reference< container::XEnumeration > +SwVbaVariables::createEnumeration() throw (uno::RuntimeException) +{ + uno::Reference< container::XEnumerationAccess > xEnumerationAccess( m_xIndexAccess, uno::UNO_QUERY_THROW ); + return xEnumerationAccess->createEnumeration(); +} + +uno::Any +SwVbaVariables::createCollectionObject( const css::uno::Any& aSource ) +{ + return aSource; +} + +uno::Any SAL_CALL +SwVbaVariables::Add( const rtl::OUString& rName, const uno::Any& rValue ) throw (uno::RuntimeException) +{ + uno::Any aValue; + if( rValue.hasValue() ) + aValue = rValue; + else + aValue <<= rtl::OUString(); + uno::Reference< beans::XPropertyContainer > xPropertyContainer( mxUserDefined, uno::UNO_QUERY_THROW ); + xPropertyContainer->addProperty( rName, beans::PropertyAttribute::MAYBEVOID | beans::PropertyAttribute::REMOVEABLE, aValue ); + + return uno::makeAny( uno::Reference< word::XVariable >( new SwVbaVariable( getParent(), mxContext, mxUserDefined, rName ) ) ); +} + +rtl::OUString& +SwVbaVariables::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaVariables") ); + return sImplName; +} + +css::uno::Sequence<rtl::OUString> +SwVbaVariables::getServiceNames() +{ + static uno::Sequence< rtl::OUString > sNames; + if ( sNames.getLength() == 0 ) + { + sNames.realloc( 1 ); + sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Variables") ); + } + return sNames; +} diff --git a/sw/source/ui/vba/vbavariables.hxx b/sw/source/ui/vba/vbavariables.hxx new file mode 100644 index 000000000000..533760abc47b --- /dev/null +++ b/sw/source/ui/vba/vbavariables.hxx @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_VARIABLES_HXX +#define SW_VBA_VARIABLES_HXX + +#include <vbahelper/vbacollectionimpl.hxx> +#include <ooo/vba/word/XVariables.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/beans/XPropertyAccess.hpp> + +typedef CollTestImplHelper< ooo::vba::word::XVariables > SwVbaVariables_BASE; + +class SwVbaVariables : public SwVbaVariables_BASE +{ +private: + css::uno::Reference< css::beans::XPropertyAccess > mxUserDefined; + +public: + SwVbaVariables( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::beans::XPropertyAccess >& rUserDefined ); + virtual ~SwVbaVariables() {} + + // XEnumerationAccess + virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); + + // SwVbaVariables_BASE + virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); + + // XVariables + virtual css::uno::Any SAL_CALL Add( const rtl::OUString& rName, const css::uno::Any& rValue ) throw (css::uno::RuntimeException); +}; + +#endif /* SW_VBA_VARIABLES_HXX */ diff --git a/sw/source/ui/vba/vbaview.cxx b/sw/source/ui/vba/vbaview.cxx new file mode 100644 index 000000000000..157d36c6b8f4 --- /dev/null +++ b/sw/source/ui/vba/vbaview.cxx @@ -0,0 +1,425 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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. + * + ************************************************************************/ +#include "vbaview.hxx" +#include <vbahelper/vbahelper.hxx> +#include <tools/diagnose_ex.h> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/view/XViewSettingsSupplier.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/text/XTextTable.hpp> +#include <com/sun/star/table/XCellRange.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XFootnotesSupplier.hpp> +#include <com/sun/star/text/XEndnotesSupplier.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XEnumeration.hpp> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <ooo/vba/word/WdSpecialPane.hpp> +#include <ooo/vba/word/WdViewType.hpp> +#include <ooo/vba/word/WdSeekView.hpp> + +#include "wordvbahelper.hxx" +#include "vbaheaderfooterhelper.hxx" +#include <view.hxx> + +using namespace ::ooo::vba; +using namespace ::com::sun::star; + +static const sal_Int32 DEFAULT_BODY_DISTANCE = 500; + +SwVbaView::SwVbaView( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, + const uno::Reference< frame::XModel >& rModel ) throw ( uno::RuntimeException ) : + SwVbaView_BASE( rParent, rContext ), mxModel( rModel ) +{ + uno::Reference< frame::XController > xController = mxModel->getCurrentController(); + + uno::Reference< text::XTextViewCursorSupplier > xTextViewCursorSupp( xController, uno::UNO_QUERY_THROW ); + mxViewCursor = xTextViewCursorSupp->getViewCursor(); + + uno::Reference< view::XViewSettingsSupplier > xViewSettingSupp( xController, uno::UNO_QUERY_THROW ); + mxViewSettings.set( xViewSettingSupp->getViewSettings(), uno::UNO_QUERY_THROW ); +} + +SwVbaView::~SwVbaView() +{ +} + +::sal_Int32 SAL_CALL +SwVbaView::getSeekView() throw (css::uno::RuntimeException) +{ + // FIXME: if the view cursor is in table, field, section and frame + // handle if the cursor is in table + uno::Reference< text::XText > xCurrentText = mxViewCursor->getText(); + uno::Reference< beans::XPropertySet > xCursorProps( mxViewCursor, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextContent > xTextContent; + while( xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextTable") ) ) >>= xTextContent ) + { + xCurrentText = xTextContent->getAnchor()->getText(); + xCursorProps.set( xCurrentText->createTextCursor(), uno::UNO_QUERY_THROW ); + } + uno::Reference< lang::XServiceInfo > xServiceInfo( xCurrentText, uno::UNO_QUERY_THROW ); + rtl::OUString aImplName = xServiceInfo->getImplementationName(); + if( aImplName.equalsAscii("SwXBodyText") ) + { + return word::WdSeekView::wdSeekMainDocument; + } + else if( aImplName.equalsAscii("SwXHeadFootText") ) + { + if( HeaderFooterHelper::isHeader( mxModel, xCurrentText ) ) + { + if( HeaderFooterHelper::isFirstPageHeader( mxModel, xCurrentText ) ) + return word::WdSeekView::wdSeekFirstPageHeader; + else if( HeaderFooterHelper::isEvenPagesHeader( mxModel, xCurrentText ) ) + return word::WdSeekView::wdSeekEvenPagesHeader; + else + return word::WdSeekView::wdSeekPrimaryHeader; + } + else + { + if( HeaderFooterHelper::isFirstPageFooter( mxModel, xCurrentText ) ) + return word::WdSeekView::wdSeekFirstPageFooter; + else if( HeaderFooterHelper::isEvenPagesFooter( mxModel, xCurrentText ) ) + return word::WdSeekView::wdSeekEvenPagesFooter; + else + return word::WdSeekView::wdSeekPrimaryFooter; + } + } + else if( aImplName.equalsAscii("SwXFootnote") ) + { + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Endnote") ) ) ) + return word::WdSeekView::wdSeekEndnotes; + else + return word::WdSeekView::wdSeekFootnotes; + } + + return word::WdSeekView::wdSeekMainDocument; +} + +void SAL_CALL +SwVbaView::setSeekView( ::sal_Int32 _seekview ) throw (css::uno::RuntimeException) +{ + // FIXME: save the current cursor position, if the cursor is in the main + // document, so we can jump back to this position, if the macro sets + // the ViewMode back to wdSeekMainDocument + + // if( _seekview == getSeekView() ) + // return; + + switch( _seekview ) + { + case word::WdSeekView::wdSeekFirstPageFooter: + case word::WdSeekView::wdSeekFirstPageHeader: + case word::WdSeekView::wdSeekCurrentPageFooter: + case word::WdSeekView::wdSeekCurrentPageHeader: + case word::WdSeekView::wdSeekPrimaryFooter: + case word::WdSeekView::wdSeekPrimaryHeader: + case word::WdSeekView::wdSeekEvenPagesFooter: + case word::WdSeekView::wdSeekEvenPagesHeader: + { + // need to test + mxViewCursor->gotoRange( getHFTextRange( _seekview ), sal_False ); + break; + } + case word::WdSeekView::wdSeekFootnotes: + { + uno::Reference< text::XFootnotesSupplier > xFootnotesSupp( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xFootnotes( xFootnotesSupp->getFootnotes(), uno::UNO_QUERY_THROW ); + if( xFootnotes->getCount() > 0 ) + { + uno::Reference< text::XText > xText( xFootnotes->getByIndex(0), uno::UNO_QUERY_THROW ); + mxViewCursor->gotoRange( xText->getStart(), sal_False ); + } + else + { + DebugHelper::exception( SbERR_NO_ACTIVE_OBJECT, rtl::OUString() ); + } + break; + } + case word::WdSeekView::wdSeekEndnotes: + { + uno::Reference< text::XEndnotesSupplier > xEndnotesSupp( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< container::XIndexAccess > xEndnotes( xEndnotesSupp->getEndnotes(), uno::UNO_QUERY_THROW ); + if( xEndnotes->getCount() > 0 ) + { + uno::Reference< text::XText > xText( xEndnotes->getByIndex(0), uno::UNO_QUERY_THROW ); + mxViewCursor->gotoRange( xText->getStart(), sal_False ); + } + else + { + DebugHelper::exception( SbERR_NO_ACTIVE_OBJECT, rtl::OUString() ); + } + break; + } + case word::WdSeekView::wdSeekMainDocument: + { + uno::Reference< text::XTextDocument > xTextDocument( mxModel, uno::UNO_QUERY_THROW ); + uno::Reference< text::XText > xText = xTextDocument->getText(); + mxViewCursor->gotoRange( getFirstObjectPosition( xText ), sal_False ); + break; + } + } +} + +::sal_Int32 SAL_CALL +SwVbaView::getSplitSpecial() throw (css::uno::RuntimeException) +{ + return word::WdSpecialPane::wdPaneNone; +} + +void SAL_CALL +SwVbaView::setSplitSpecial( ::sal_Int32/* _splitspecial */) throw (css::uno::RuntimeException) +{ + // not support in Writer +} + +::sal_Bool SAL_CALL +SwVbaView::getTableGridLines() throw (css::uno::RuntimeException) +{ + sal_Bool bShowTableGridLine = sal_False; + mxViewSettings->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShowTableBoundaries"))) >>= bShowTableGridLine; + return bShowTableGridLine; +} + +void SAL_CALL +SwVbaView::setTableGridLines( ::sal_Bool _tablegridlines ) throw (css::uno::RuntimeException) +{ + mxViewSettings->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShowTableBoundaries")), uno::makeAny( _tablegridlines ) ); +} + +::sal_Int32 SAL_CALL +SwVbaView::getType() throw (css::uno::RuntimeException) +{ + // FIXME: handle wdPrintPreview type + sal_Bool bOnlineLayout = sal_False; + mxViewSettings->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShowOnlineLayout"))) >>= bOnlineLayout; + return bOnlineLayout ? word::WdViewType::wdWebView : word::WdViewType::wdPrintView; +} + +void SAL_CALL +SwVbaView::setType( ::sal_Int32 _type ) throw (css::uno::RuntimeException) +{ + // FIXME: handle wdPrintPreview type + switch( _type ) + { + case word::WdViewType::wdPrintView: + case word::WdViewType::wdNormalView: + { + mxViewSettings->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShowOnlineLayout")), uno::makeAny( sal_False ) ); + break; + } + case word::WdViewType::wdWebView: + { + mxViewSettings->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShowOnlineLayout")), uno::makeAny( sal_True ) ); + break; + } + case word::WdViewType::wdPrintPreview: + { + PrintPreviewHelper( uno::Any(),word::getView( mxModel ) ); + break; + } + default: + DebugHelper::exception( SbERR_NOT_IMPLEMENTED, rtl::OUString() ); + + } +} + +uno::Reference< text::XTextRange > SwVbaView::getHFTextRange( sal_Int32 nType ) throw (uno::RuntimeException) +{ + mxModel->lockControllers(); + + rtl::OUString aPropIsOn; + rtl::OUString aPropIsShared; + rtl::OUString aPropBodyDistance; + rtl::OUString aPropText; + + switch( nType ) + { + case word::WdSeekView::wdSeekCurrentPageFooter: + case word::WdSeekView::wdSeekFirstPageFooter: + case word::WdSeekView::wdSeekPrimaryFooter: + case word::WdSeekView::wdSeekEvenPagesFooter: + { + aPropIsOn = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsOn") ); + aPropIsShared = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterIsShared") ); + aPropBodyDistance = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterBodyDistance") ); + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FooterText") ); + break; + } + case word::WdSeekView::wdSeekCurrentPageHeader: + case word::WdSeekView::wdSeekFirstPageHeader: + case word::WdSeekView::wdSeekPrimaryHeader: + case word::WdSeekView::wdSeekEvenPagesHeader: + { + aPropIsOn = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn") ); + aPropIsShared = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderIsShared") ); + aPropBodyDistance = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderBodyDistance") ); + aPropText = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HeaderText") ); + break; + } + } + + uno::Reference< text::XPageCursor > xPageCursor( mxViewCursor, uno::UNO_QUERY_THROW ); + + if( nType == word::WdSeekView::wdSeekFirstPageFooter + || nType == word::WdSeekView::wdSeekFirstPageHeader ) + { + xPageCursor->jumpToFirstPage(); + } + + uno::Reference< style::XStyle > xStyle; + uno::Reference< text::XText > xText; + switch( nType ) + { + case word::WdSeekView::wdSeekPrimaryFooter: + case word::WdSeekView::wdSeekPrimaryHeader: + case word::WdSeekView::wdSeekEvenPagesFooter: + case word::WdSeekView::wdSeekEvenPagesHeader: + { + // The primary header is the first header of the section. + // If the header is not shared between odd and even pages + // the odd page's header is the primary header. If the + // first page's header is different from the rest of the + // document, it is NOT the primary header ( the next primary + // header would be on page 3 ) + // The even pages' header is only available if the header is + // not shared and the current style is applied to a page with + // an even page number + uno::Reference< beans::XPropertySet > xCursorProps( mxViewCursor, uno::UNO_QUERY_THROW ); + rtl::OUString aPageStyleName; + xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyleName"))) >>= aPageStyleName; + if( aPageStyleName.equalsAscii("First Page") ) + { + // go to the beginning of where the next style is used + sal_Bool hasNextPage = sal_False; + xStyle = word::getCurrentPageStyle( mxModel ); + do + { + hasNextPage = xPageCursor->jumpToNextPage(); + } + while( hasNextPage && ( xStyle == word::getCurrentPageStyle( mxModel ) ) ); + + if( !hasNextPage ) + DebugHelper::exception( SbERR_BAD_ACTION, rtl::OUString() ); + } + break; + } + default: + { + break; + } + } + + xStyle = word::getCurrentPageStyle( mxModel ); + uno::Reference< beans::XPropertySet > xPageProps( xStyle, uno::UNO_QUERY_THROW ); + sal_Bool isOn = sal_False; + xPageProps->getPropertyValue( aPropIsOn ) >>= isOn; + sal_Bool isShared = sal_False; + xPageProps->getPropertyValue( aPropIsShared ) >>= isShared; + if( !isOn ) + { + xPageProps->setPropertyValue( aPropIsOn, uno::makeAny( sal_True ) ); + xPageProps->setPropertyValue( aPropBodyDistance, uno::makeAny( DEFAULT_BODY_DISTANCE ) ); + } + if( !isShared ) + { + rtl::OUString aTempPropText = aPropText; + if( nType == word::WdSeekView::wdSeekEvenPagesFooter + || nType == word::WdSeekView::wdSeekEvenPagesHeader ) + { + aTempPropText += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Left") ); + } + else + { + aTempPropText += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Right") ); + } + xText.set( xPageProps->getPropertyValue( aTempPropText), uno::UNO_QUERY_THROW ); + } + else + { + if( nType == word::WdSeekView::wdSeekEvenPagesFooter + || nType == word::WdSeekView::wdSeekEvenPagesHeader ) + { + DebugHelper::exception( SbERR_BAD_ACTION, rtl::OUString() ); + } + xText.set( xPageProps->getPropertyValue( aPropText ), uno::UNO_QUERY_THROW ); + } + + mxModel->unlockControllers(); + if( !xText.is() ) + { + DebugHelper::exception( SbERR_INTERNAL_ERROR, rtl::OUString() ); + } + uno::Reference< text::XTextRange > xTextRange = getFirstObjectPosition( xText ); + return xTextRange; +} + +uno::Reference< text::XTextRange > SwVbaView::getFirstObjectPosition( const uno::Reference< text::XText >& xText ) throw (uno::RuntimeException) +{ + // if the first object is table, get the position of first cell + uno::Reference< text::XTextRange > xTextRange; + uno::Reference< container::XEnumerationAccess > xParaAccess( xText, uno::UNO_QUERY_THROW ); + uno::Reference< container::XEnumeration> xParaEnum = xParaAccess->createEnumeration(); + if( xParaEnum->hasMoreElements() ) + { + uno::Reference< lang::XServiceInfo > xServiceInfo( xParaEnum->nextElement(), uno::UNO_QUERY_THROW ); + if( xServiceInfo->supportsService( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextTable") ) ) ) + { + uno::Reference< table::XCellRange > xCellRange( xServiceInfo, uno::UNO_QUERY_THROW ); + uno::Reference< text::XText> xFirstCellText( xCellRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW ); + xTextRange = xFirstCellText->getStart(); + } + } + if( !xTextRange.is() ) + xTextRange = xText->getStart(); + return xTextRange; +} + +rtl::OUString& +SwVbaView::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaView") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaView::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.View" ) ); + } + return aServiceNames; +} + diff --git a/sw/source/ui/vba/vbaview.hxx b/sw/source/ui/vba/vbaview.hxx new file mode 100644 index 000000000000..c8fb2622f310 --- /dev/null +++ b/sw/source/ui/vba/vbaview.hxx @@ -0,0 +1,71 @@ +/************************************************************************* + * + * 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: + * $Revision: + * + * 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 SW_VBA_VIEW_HXX +#define SW_VBA_VIEW_HXX + +#include <ooo/vba/word/XView.hpp> +#include <vbahelper/vbahelperinterface.hxx> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XTextRange.hpp> +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XView > SwVbaView_BASE; + +class SwVbaView : public SwVbaView_BASE +{ +private: + css::uno::Reference< css::frame::XModel > mxModel; + css::uno::Reference< css::text::XTextViewCursor > mxViewCursor; + css::uno::Reference< css::beans::XPropertySet > mxViewSettings; + + css::uno::Reference< css::text::XTextRange > getHFTextRange( sal_Int32 nType ) throw (css::uno::RuntimeException); + css::uno::Reference< css::text::XTextRange > getFirstObjectPosition( const css::uno::Reference< css::text::XText >& xText ) throw (css::uno::RuntimeException); + +public: + SwVbaView( const css::uno::Reference< ooo::vba::XHelperInterface >& rParent, const css::uno::Reference< css::uno::XComponentContext >& rContext, + const css::uno::Reference< css::frame::XModel >& rModel ) throw ( css::uno::RuntimeException ); + virtual ~SwVbaView(); + + // XView + virtual ::sal_Int32 SAL_CALL getSeekView() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSeekView( ::sal_Int32 _seekview ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getSplitSpecial() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSplitSpecial( ::sal_Int32 _splitspecial ) throw (css::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL getTableGridLines() throw (css::uno::RuntimeException); + virtual void SAL_CALL setTableGridLines( ::sal_Bool _tablegridlines ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getType() throw (css::uno::RuntimeException); + virtual void SAL_CALL setType( ::sal_Int32 _type ) throw (css::uno::RuntimeException); + + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; +#endif /* SW_VBA_VIEW_HXX */ diff --git a/sw/source/ui/vba/vbawindow.cxx b/sw/source/ui/vba/vbawindow.cxx new file mode 100644 index 000000000000..31ac8ac62bea --- /dev/null +++ b/sw/source/ui/vba/vbawindow.cxx @@ -0,0 +1,116 @@ +/************************************************************************* + * + * 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: vbawindow.cxx,v $ + * $Revision: 1.5 $ + * + * 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. + * + ************************************************************************/ +#include <vbahelper/helperdecl.hxx> +#include "vbawindow.hxx" +#include "vbaglobals.hxx" +#include "vbadocument.hxx" +#include "vbaview.hxx" +#include "vbapanes.hxx" +#include "vbapane.hxx" + +using namespace ::com::sun::star; +using namespace ::ooo::vba; + +SwVbaWindow::SwVbaWindow( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ) : WindowImpl_BASE( xParent, xContext, xModel ) +{ +} + +SwVbaWindow::SwVbaWindow( uno::Sequence< uno::Any > const & args, uno::Reference< uno::XComponentContext > const & xContext ) + : WindowImpl_BASE( args, xContext ) +{ +} + +void +SwVbaWindow::Activate() throw (css::uno::RuntimeException) +{ + SwVbaDocument document( uno::Reference< XHelperInterface >( Application(), uno::UNO_QUERY_THROW ), mxContext, m_xModel ); + + document.Activate(); +} + +void +SwVbaWindow::Close( const uno::Any& SaveChanges, const uno::Any& RouteDocument ) throw (uno::RuntimeException) +{ + // FIXME: it is incorrect when there are more than 1 windows + SwVbaDocument document( uno::Reference< XHelperInterface >( Application(), uno::UNO_QUERY_THROW ), mxContext, m_xModel ); + uno::Any FileName; + document.Close(SaveChanges, FileName, RouteDocument ); +} + +uno::Any SAL_CALL +SwVbaWindow::getView() throw (uno::RuntimeException) +{ + return uno::makeAny( uno::Reference< word::XView >( new SwVbaView( this, mxContext, m_xModel ) ) ); +} + +void SAL_CALL SwVbaWindow::setView( const uno::Any& _view ) throw (uno::RuntimeException) +{ + sal_Int32 nType = 0; + if( _view >>= nType ) + { + SwVbaView view( this, mxContext, m_xModel ); + view.setType( nType ); + } +} + +uno::Any SAL_CALL +SwVbaWindow::Panes( const uno::Any& aIndex ) throw (uno::RuntimeException) +{ + uno::Reference< XCollection > xPanes( new SwVbaPanes( this, mxContext, m_xModel ) ); + if( aIndex.getValueTypeClass() == uno::TypeClass_VOID ) + return uno::makeAny( xPanes ); + + return uno::Any( xPanes->Item( aIndex, uno::Any() ) ); +} + +uno::Any SAL_CALL +SwVbaWindow::ActivePane() throw (uno::RuntimeException) +{ + return uno::makeAny( uno::Reference< word::XPane >( new SwVbaPane( this, mxContext, m_xModel ) ) ); +} + +rtl::OUString& +SwVbaWindow::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaWindow") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaWindow::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Window" ) ); + } + return aServiceNames; +} diff --git a/sw/source/ui/vba/vbawindow.hxx b/sw/source/ui/vba/vbawindow.hxx new file mode 100644 index 000000000000..b423ad960423 --- /dev/null +++ b/sw/source/ui/vba/vbawindow.hxx @@ -0,0 +1,61 @@ +/************************************************************************* + * + * 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: vbawindow.hxx,v $ + * $Revision: 1.4 $ + * + * 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 SW_VBA_WINDOW_HXX +#define SW_VBA_WINDOW_HXX +#include <cppuhelper/implbase1.hxx> +#include <ooo/vba/word/XWindow.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> + +#include <vbahelper/vbahelperinterface.hxx> +#include <vbahelper/vbawindowbase.hxx> + +typedef cppu::ImplInheritanceHelper1< VbaWindowBase, ov::word::XWindow > WindowImpl_BASE; + +class SwVbaWindow : public WindowImpl_BASE +{ +public: + SwVbaWindow( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::frame::XModel >& xModel ); + SwVbaWindow( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext > const& xContext ); + + + // Attributes + virtual css::uno::Any SAL_CALL getView() throw (css::uno::RuntimeException); + virtual void SAL_CALL setView( const css::uno::Any& _view ) throw (css::uno::RuntimeException); + // Methods + virtual void SAL_CALL Activate( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL Close( const css::uno::Any& SaveChanges, const css::uno::Any& RouteDocument ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL Panes( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL ActivePane() throw (css::uno::RuntimeException); + // XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif //SW_VBA_WINDOW_HXX diff --git a/sw/source/ui/vba/vbawrapformat.cxx b/sw/source/ui/vba/vbawrapformat.cxx new file mode 100644 index 000000000000..f2b85625ee08 --- /dev/null +++ b/sw/source/ui/vba/vbawrapformat.cxx @@ -0,0 +1,260 @@ +/************************************************************************* + * + * 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: vbawrapformat.cxx,v $ + * $Revision: 1.4 $ + * + * 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. + * + ************************************************************************/ +#include "vbawrapformat.hxx" +#include <ooo/vba/word/WdWrapSideType.hpp> +#include <ooo/vba/word/WdWrapType.hpp> +#include <com/sun/star/text/WrapTextMode.hpp> +#include <vbahelper/vbahelper.hxx> +#include <vbahelper/helperdecl.hxx> + +using namespace ooo::vba; +using namespace com::sun::star; + +SwVbaWrapFormat::SwVbaWrapFormat( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape > xShape ) : SwVbaWrapFormat_BASE( xParent, xContext ), m_xShape( xShape ), mnWrapFormatType( 0 ), mnSide( word::WdWrapSideType::wdWrapBoth ) +{ + m_xPropertySet.set( xShape, uno::UNO_QUERY_THROW ); +} + +SwVbaWrapFormat::SwVbaWrapFormat( uno::Sequence< uno::Any > const& aArgs, uno::Reference< uno::XComponentContext >const& xContext ) : SwVbaWrapFormat_BASE( getXSomethingFromArgs< XHelperInterface >( aArgs, 0 ), xContext ), m_xShape( getXSomethingFromArgs< drawing::XShape >( aArgs, 1, false ) ), mnWrapFormatType( 0 ), mnSide( word::WdWrapSideType::wdWrapBoth ) +{ + m_xPropertySet.set( m_xShape, uno::UNO_QUERY_THROW ); +} + +void SwVbaWrapFormat::makeWrap() throw (uno::RuntimeException) +{ + text::WrapTextMode eTextMode = text::WrapTextMode_NONE; + if( mnSide == word::WdWrapSideType::wdWrapLeft ) + { + eTextMode = text::WrapTextMode_LEFT; + } + else if( mnSide == word::WdWrapSideType::wdWrapRight ) + { + eTextMode = text::WrapTextMode_RIGHT; + } + else if( mnSide == word::WdWrapSideType::wdWrapBoth || + mnSide == word::WdWrapSideType::wdWrapLargest ) + { + switch( mnWrapFormatType ) + { + case word::WdWrapType::wdWrapNone: + case word::WdWrapType::wdWrapThrough: + { + eTextMode = text::WrapTextMode_THROUGHT; + break; + } + case word::WdWrapType::wdWrapInline: + case word::WdWrapType::wdWrapTopBottom: + { + eTextMode = text::WrapTextMode_NONE; + break; + } + case word::WdWrapType::wdWrapSquare: + { + eTextMode = text::WrapTextMode_PARALLEL; + m_xPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SurroundContour") ), uno::makeAny( sal_False ) ); + break; + } + case word::WdWrapType::wdWrapTight: + { + eTextMode = text::WrapTextMode_PARALLEL; + m_xPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SurroundContour") ), uno::makeAny( sal_True ) ); + break; + } + default: + { + DebugHelper::exception(SbERR_BAD_ARGUMENT, rtl::OUString()); + } + } + } + m_xPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextWrap") ), uno::makeAny( eTextMode ) ); +} + +::sal_Int32 SAL_CALL SwVbaWrapFormat::getType() throw (uno::RuntimeException) +{ + sal_Int32 nType = word::WdWrapType::wdWrapSquare; + text::WrapTextMode eTextMode; + m_xPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextWrap") )) >>= eTextMode; + switch( eTextMode ) + { + case text::WrapTextMode_NONE: + { + nType = word::WdWrapType::wdWrapTopBottom; + break; + } + case text::WrapTextMode_THROUGHT: + { + nType = word::WdWrapType::wdWrapNone; + break; + } + case text::WrapTextMode_PARALLEL: + { + sal_Bool bContour = sal_False; + m_xPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SurroundContour") )) >>= bContour; + if( bContour ) + nType = word::WdWrapType::wdWrapTight; + else + nType = word::WdWrapType::wdWrapSquare; + break; + } + case text::WrapTextMode_DYNAMIC: + case text::WrapTextMode_LEFT: + case text::WrapTextMode_RIGHT: + { + nType = word::WdWrapType::wdWrapThrough; + break; + } + default: + { + nType = word::WdWrapType::wdWrapSquare; + } + } + return nType; +} + +void SAL_CALL SwVbaWrapFormat::setType( ::sal_Int32 _type ) throw (uno::RuntimeException) +{ + mnWrapFormatType = _type; + makeWrap(); +} + +::sal_Int32 SAL_CALL SwVbaWrapFormat::getSide() throw (uno::RuntimeException) +{ + sal_Int32 nSide = word::WdWrapSideType::wdWrapBoth; + text::WrapTextMode eTextMode; + m_xPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TextWrap") )) >>= eTextMode; + switch( eTextMode ) + { + case text::WrapTextMode_LEFT: + { + nSide = word::WdWrapSideType::wdWrapLeft; + break; + } + case text::WrapTextMode_RIGHT: + { + nSide = word::WdWrapSideType::wdWrapRight; + break; + } + default: + { + nSide = word::WdWrapSideType::wdWrapBoth; + } + } + return nSide; +} + +void SAL_CALL SwVbaWrapFormat::setSide( ::sal_Int32 _side ) throw (uno::RuntimeException) +{ + mnSide = _side; + makeWrap(); +} + +float SwVbaWrapFormat::getDistance( const rtl::OUString& sName ) throw (uno::RuntimeException) +{ + sal_Int32 nDistance = 0; + m_xPropertySet->getPropertyValue( sName ) >>= nDistance; + return static_cast< float >( Millimeter::getInPoints( nDistance ) ); +} + +void SwVbaWrapFormat::setDistance( const rtl::OUString& sName, float _distance ) throw (uno::RuntimeException) +{ + sal_Int32 nDistance = Millimeter::getInHundredthsOfOneMillimeter( _distance ); + m_xPropertySet->setPropertyValue( sName, uno::makeAny( nDistance ) ); +} + +float SAL_CALL SwVbaWrapFormat::getDistanceTop() throw (uno::RuntimeException) +{ + return getDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin") ) ); +} + +void SAL_CALL SwVbaWrapFormat::setDistanceTop( float _distancetop ) throw (uno::RuntimeException) +{ + setDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopMargin") ), _distancetop ); +} + +float SAL_CALL SwVbaWrapFormat::getDistanceBottom() throw (uno::RuntimeException) +{ + return getDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin") ) ); +} + +void SAL_CALL SwVbaWrapFormat::setDistanceBottom( float _distancebottom ) throw (uno::RuntimeException) +{ + setDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomMargin") ), _distancebottom ); +} + +float SAL_CALL SwVbaWrapFormat::getDistanceLeft() throw (uno::RuntimeException) +{ + return getDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin") ) ); +} + +void SAL_CALL SwVbaWrapFormat::setDistanceLeft( float _distanceleft ) throw (uno::RuntimeException) +{ + setDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftMargin") ), _distanceleft ); +} + +float SAL_CALL SwVbaWrapFormat::getDistanceRight() throw (uno::RuntimeException) +{ + return getDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin") ) ); +} + +void SAL_CALL SwVbaWrapFormat::setDistanceRight( float _distanceright ) throw (uno::RuntimeException) +{ + setDistance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightMargin") ), _distanceright ); +} + +rtl::OUString& +SwVbaWrapFormat::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaWrapFormat") ); + return sImplName; +} + +uno::Sequence< rtl::OUString > +SwVbaWrapFormat::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.WrapFormat" ) ); + } + return aServiceNames; +} + +namespace wrapformat +{ +namespace sdecl = comphelper::service_decl; +sdecl::vba_service_class_<SwVbaWrapFormat, sdecl::with_args<true> > serviceImpl; +extern sdecl::ServiceDecl const serviceDecl( + serviceImpl, + "SwVbaWrapFormat", + "ooo.vba.word.WrapFormat" ); +} + + diff --git a/sw/source/ui/vba/vbawrapformat.hxx b/sw/source/ui/vba/vbawrapformat.hxx new file mode 100644 index 000000000000..e14f031c02a6 --- /dev/null +++ b/sw/source/ui/vba/vbawrapformat.hxx @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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: vbafillformat.hxx,v $ + * $Revision: 1.3 $ + * + * 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 SW_VBA_XWRAPFORMAT_HXX +#define SW_VBA_XWRAPFORMAT_HXX + +#include <com/sun/star/drawing/XShape.hpp> +#include <ooo/vba/word/XWrapFormat.hpp> +#include <vbahelper/vbahelperinterface.hxx> + +typedef InheritedHelperInterfaceImpl1< ooo::vba::word::XWrapFormat > SwVbaWrapFormat_BASE; + +class SwVbaWrapFormat : public SwVbaWrapFormat_BASE +{ +private: + css::uno::Reference< css::drawing::XShape > m_xShape; + css::uno::Reference< css::beans::XPropertySet > m_xPropertySet; + sal_Int32 mnWrapFormatType; + sal_Int32 mnSide; + +private: + void makeWrap() throw (css::uno::RuntimeException); + float getDistance( const rtl::OUString& sName ) throw (css::uno::RuntimeException); + void setDistance( const rtl::OUString& sName, float _distance ) throw (css::uno::RuntimeException); + +public: + SwVbaWrapFormat( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape > xShape ); + SwVbaWrapFormat( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext >const& xContext ); + + virtual ::sal_Int32 SAL_CALL getType() throw (css::uno::RuntimeException); + virtual void SAL_CALL setType( ::sal_Int32 _type ) throw (css::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getSide() throw (css::uno::RuntimeException); + virtual void SAL_CALL setSide( ::sal_Int32 _side ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getDistanceTop() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDistanceTop( float _distancetop ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getDistanceBottom() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDistanceBottom( float _distancebottom ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getDistanceLeft() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDistanceLeft( float _distanceleft ) throw (css::uno::RuntimeException); + virtual float SAL_CALL getDistanceRight() throw (css::uno::RuntimeException); + virtual void SAL_CALL setDistanceRight( float _distanceright ) throw (css::uno::RuntimeException); + + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif//SW_VBA_XWRAPFORMAT_HXX diff --git a/sw/source/ui/vba/wordvbahelper.cxx b/sw/source/ui/vba/wordvbahelper.cxx new file mode 100644 index 000000000000..ed2ffe991a29 --- /dev/null +++ b/sw/source/ui/vba/wordvbahelper.cxx @@ -0,0 +1,95 @@ +/************************************************************************* + * + * 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: vbahelper.cxx,v $ + * $Revision: 1.5.32.1 $ + * + * 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. + * + ************************************************************************/ +#include <docsh.hxx> +#include "wordvbahelper.hxx" +#include <comphelper/processfactory.hxx> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/lang/XUnoTunnel.hpp> +#include <unotxdoc.hxx> +#include <doc.hxx> + +using namespace ::com::sun::star; +using namespace ::ooo::vba; + +#define FIRST_PAGE 1; + +namespace ooo +{ +namespace vba +{ +namespace word +{ + +SwDocShell* getDocShell( const uno::Reference< frame::XModel>& xModel ) +{ + uno::Reference< lang::XUnoTunnel > xTunnel( xModel, uno::UNO_QUERY_THROW ); + SwXTextDocument* pXDoc = reinterpret_cast< SwXTextDocument * >( sal::static_int_cast< sal_IntPtr >(xTunnel->getSomething(SwXTextDocument::getUnoTunnelId()))); + return pXDoc ? pXDoc->GetDocShell() : 0; +} + +SwView* getView( const uno::Reference< frame::XModel>& xModel ) +{ + SwDocShell* pDocShell = getDocShell( xModel ); + return pDocShell? pDocShell->GetView() : 0; +} + +uno::Reference< text::XTextViewCursor > getXTextViewCursor( const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) +{ + uno::Reference< frame::XController > xController = xModel->getCurrentController(); + uno::Reference< text::XTextViewCursorSupplier > xTextViewCursorSupp( xController, uno::UNO_QUERY_THROW ); + uno::Reference< text::XTextViewCursor > xTextViewCursor = xTextViewCursorSupp->getViewCursor(); + return xTextViewCursor; +} + +uno::Reference< style::XStyle > getCurrentPageStyle( const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) +{ + uno::Reference< beans::XPropertySet > xCursorProps( getXTextViewCursor( xModel ), uno::UNO_QUERY_THROW ); + rtl::OUString aPageStyleName; + xCursorProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyleName"))) >>= aPageStyleName; + uno::Reference< style::XStyleFamiliesSupplier > xSytleFamSupp( xModel, uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xSytleFamNames( xSytleFamSupp->getStyleFamilies(), uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xPageStyles( xSytleFamNames->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyles") ) ), uno::UNO_QUERY_THROW ); + uno::Reference< style::XStyle > xStyle( xPageStyles->getByName( aPageStyleName ), uno::UNO_QUERY_THROW ); + + return xStyle; +} + +sal_Int32 getPageCount( const uno::Reference< frame::XModel>& xModel ) throw (uno::RuntimeException) +{ + SwDocShell* pDocShell = getDocShell( xModel ); + return pDocShell ? pDocShell->GetDoc()->GetPageCount() : 0; +} + +} // word +} // +} // diff --git a/sw/source/ui/vba/wordvbahelper.hxx b/sw/source/ui/vba/wordvbahelper.hxx new file mode 100644 index 000000000000..73ed7c31ef24 --- /dev/null +++ b/sw/source/ui/vba/wordvbahelper.hxx @@ -0,0 +1,57 @@ +/************************************************************************* + * + * 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: vbahelper.hxx,v $ + * $Revision: 1.5.32.1 $ + * + * 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 SW_WORD_VBA_HELPER_HXX +#define SW_WORD_VBA_HELPER_HXX + +#include <vbahelper/vbahelper.hxx> +#include <com/sun/star/text/XText.hpp> +#include <com/sun/star/text/XTextViewCursor.hpp> +#include <com/sun/star/text/XPageCursor.hpp> +#include <com/sun/star/style/XStyle.hpp> + +class SwDocShell; +class SwView; +namespace ooo +{ + namespace vba + { + namespace word + { + //css::uno::Reference< css::frame::XModel > getCurrentDocument() throw (css::uno::RuntimeException); + SwDocShell* getDocShell( const css::uno::Reference< css::frame::XModel>& xModel ); + SwView* getView( const css::uno::Reference< css::frame::XModel>& xModel ); + css::uno::Reference< css::text::XTextViewCursor > getXTextViewCursor( const css::uno::Reference< css::frame::XModel >& xModel ) throw (css::uno::RuntimeException); + css::uno::Reference< css::style::XStyle > getCurrentPageStyle( const css::uno::Reference< css::frame::XModel >& xModel ) throw (css::uno::RuntimeException); + sal_Int32 getPageCount( const css::uno::Reference< css::frame::XModel>& xModel ) throw (css::uno::RuntimeException); + +} // word +} // vba +} // ooo +#endif diff --git a/sw/source/ui/wrtsh/select.cxx b/sw/source/ui/wrtsh/select.cxx index b46cbdb3a1a5..c1dd4e2b332c 100644 --- a/sw/source/ui/wrtsh/select.cxx +++ b/sw/source/ui/wrtsh/select.cxx @@ -35,8 +35,8 @@ #include <limits.h> #include <hintids.hxx> #include <sfx2/bindings.hxx> -#include <svtools/eitem.hxx> -#include <svtools/macitem.hxx> +#include <svl/eitem.hxx> +#include <svl/macitem.hxx> #include <unotools/charclass.hxx> #include <svx/scripttypeitem.hxx> #ifndef _CMDID_H @@ -343,7 +343,6 @@ void SwWrtShell::UnSelectFrm() // Rahmenselektion aufheben mit garantiert ungueltiger Position Point aPt(LONG_MIN, LONG_MIN); SelectObj(aPt, 0); - GetView().LeaveDrawCreate(); SwTransferable::ClearSelection( *this ); } diff --git a/sw/source/ui/wrtsh/wrtsh1.cxx b/sw/source/ui/wrtsh/wrtsh1.cxx index cd6bb82739ca..2b924933f1cc 100644 --- a/sw/source/ui/wrtsh/wrtsh1.cxx +++ b/sw/source/ui/wrtsh/wrtsh1.cxx @@ -44,7 +44,7 @@ #include <hintids.hxx> #include <svx/svdview.hxx> #include <sot/factory.hxx> -#include <svtools/itemiter.hxx> +#include <svl/itemiter.hxx> #ifndef _SOUND_HXX //autogen #include <vcl/sound.hxx> #endif @@ -56,7 +56,7 @@ #include <svtools/ehdl.hxx> #include <svtools/soerr.hxx> #include <tools/cachestr.hxx> -#include <svtools/moduleoptions.hxx> +#include <unotools/moduleoptions.hxx> #include <svx/sizeitem.hxx> #include <svx/brkitem.hxx> #include <svx/svxacorr.hxx> diff --git a/sw/source/ui/wrtsh/wrtsh2.cxx b/sw/source/ui/wrtsh/wrtsh2.cxx index 9141279f141b..eb12e1219f58 100644 --- a/sw/source/ui/wrtsh/wrtsh2.cxx +++ b/sw/source/ui/wrtsh/wrtsh2.cxx @@ -32,12 +32,12 @@ #include "precompiled_sw.hxx" #include <hintids.hxx> // define ITEMIDs -#include <svtools/macitem.hxx> +#include <svl/macitem.hxx> #include <sfx2/frame.hxx> #include <vcl/msgbox.hxx> -#include <svtools/urihelper.hxx> -#include <svtools/eitem.hxx> -#include <svtools/stritem.hxx> +#include <svl/urihelper.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> #include <sfx2/docfile.hxx> #include <sfx2/fcontnr.hxx> #include <sfx2/dispatch.hxx> diff --git a/sw/source/ui/wrtsh/wrtundo.cxx b/sw/source/ui/wrtsh/wrtundo.cxx index 9c85b08c2993..8a1a011988b3 100644 --- a/sw/source/ui/wrtsh/wrtundo.cxx +++ b/sw/source/ui/wrtsh/wrtundo.cxx @@ -36,7 +36,7 @@ #define _SVSTDARR_STRINGSDTOR #include <tools/resid.hxx> #include <sfx2/app.hxx> -#include <svtools/slstitm.hxx> +#include <svl/slstitm.hxx> #include <wrtsh.hxx> #include <swundo.hxx> // fuer Undo-Ids #include <swdtflvr.hxx> diff --git a/sw/util/makefile.mk b/sw/util/makefile.mk index 4b3abf042b8e..08afadc10698 100644 --- a/sw/util/makefile.mk +++ b/sw/util/makefile.mk @@ -43,10 +43,6 @@ USE_DEFFILE=TRUE # --- Allgemein ----------------------------------------------------------- -.IF "$(OS)"=="IRIX" -LINKFLAGS+=-Wl,-LD_LAYOUT:lgot_buffer=40 -.ENDIF - sw_res_files= \ $(SRS)$/app.srs \ $(SRS)$/dialog.srs \ @@ -127,6 +123,7 @@ SHL1STDLIBS+= \ $(SALHELPERLIB) \ $(ICUUCLIB) \ $(I18NUTILLIB) \ + $(VBAHELPERLIB) \ $(AVMEDIALIB) .IF "$(GUI)"=="WNT" @@ -148,6 +145,7 @@ DEF2NAME= $(SHL2TARGET) SHL2STDLIBS= \ $(SFX2LIB) \ $(SVTOOLLIB) \ + $(UNOTOOLSLIB) \ $(SVLLIB) \ $(VCLLIB) \ $(SOTLIB) \ @@ -163,7 +161,7 @@ SHL2OBJS= $(SLO)$/swdetect.obj \ $(SLO)$/detreg.obj \ $(SLO)$/iodetect.obj -.IF "$(product)"=="" +.IF "$(dbgutil)"!="" SHL2OBJS+= \ $(SLO)$/errhdl.obj .ENDIF @@ -321,7 +319,7 @@ DEF4NAME=$(SHL4TARGET) SHL4STDLIBS= \ $(ISWLIB) \ $(SVXCORELIB) \ - $(SVXMSFILTERLIB) \ + $(MSFILTERLIB) \ $(SFXLIB) \ $(GOODIESLIB) \ $(BASEGFXLIB) \ @@ -339,6 +337,40 @@ SHL4STDLIBS= \ $(CPPUHELPERLIB) \ $(SALLIB) \ $(ICUUCLIB) \ + $(BASICLIB) \ $(I18NUTILLIB) +#target vba +TARGET_VBA=vbaswobj +SHL5TARGET=$(TARGET_VBA)$(DLLPOSTFIX).uno +SHL5IMPLIB= i$(TARGET_VBA) + +SHL5VERSIONMAP=$(TARGET_VBA).map +SHL5DEF=$(MISC)$/$(SHL5TARGET).def +DEF5NAME=$(SHL5TARGET) +SHL5STDLIBS= \ + $(ISWLIB) \ + $(CPPUHELPERLIB) \ + $(VCLLIB) \ + $(CPPULIB) \ + $(COMPHELPERLIB) \ + $(SVLIB) \ + $(UNOTOOLSLIB) \ + $(TOOLSLIB) \ + $(SALLIB)\ + $(VBAHELPERLIB) \ + $(BASICLIB) \ + $(SFXLIB) \ + $(SVXLIB) \ + $(SVTOOLLIB) \ + $(SVLLIB) \ + $(VCLLIB) \ + $(TKLIB) \ + $(I18NISOLANGLIB) \ + $(SVXCORELIB) \ + $(SVXMSFILTERLIB) \ + +SHL5DEPN=$(SHL1TARGETN) +SHL5LIBS=$(SLB)$/$(TARGET_VBA).lib + .INCLUDE : target.mk diff --git a/sw/util/msword.map b/sw/util/msword.map index 53c3eaf213eb..db60fc5ce8c8 100644..100755 --- a/sw/util/msword.map +++ b/sw/util/msword.map @@ -4,7 +4,8 @@ MSWORD_1_0 { ExportRTF; ImportDOC; ExportDOC; - + SaveOrDelMSVBAStorage_ww8; + GetSaveWarningOfMSVBAStorage_ww8; local: *; }; diff --git a/sw/util/vbaswobj.map b/sw/util/vbaswobj.map new file mode 100644 index 000000000000..737cddbfe3df --- /dev/null +++ b/sw/util/vbaswobj.map @@ -0,0 +1,9 @@ +OOO_1.1 { + global: + component_getImplementationEnvironment; + component_getFactory; + component_writeInfo; + + local: + *; +}; |