[Libreoffice-commits] .: 5 commits - binfilter/bf_sw binfilter/inc
Pierre-André Jacquod
pjacquod at kemper.freedesktop.org
Wed Feb 16 13:29:25 PST 2011
binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx | 8
binfilter/bf_sw/source/filter/ascii/makefile.mk | 2
binfilter/bf_sw/source/filter/ascii/sw_ascatr.cxx | 228 --
binfilter/bf_sw/source/filter/ascii/sw_wrtasc.cxx | 121 -
binfilter/bf_sw/source/filter/ascii/wrtasc.hxx | 55
binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx | 353 +---
binfilter/bf_sw/source/filter/inc/fltini.hxx | 10
binfilter/bf_sw/source/filter/inc/wrt_fn.hxx | 76
binfilter/bf_sw/source/filter/inc/wrtswtbl.hxx | 56
binfilter/bf_sw/source/filter/makefile.mk | 1
binfilter/bf_sw/source/filter/w4w/makefile.mk | 8
binfilter/bf_sw/source/filter/w4w/sw_w4watr.cxx | 1499 -------------------
binfilter/bf_sw/source/filter/w4w/sw_wrtgraf.cxx | 50
binfilter/bf_sw/source/filter/w4w/sw_wrtw4w.cxx | 1142 --------------
binfilter/bf_sw/source/filter/w4w/wrtw4w.hxx | 150 -
binfilter/bf_sw/source/filter/writer/makefile.mk | 2
binfilter/bf_sw/source/filter/writer/sw_writer.cxx | 313 ---
binfilter/bf_sw/source/filter/writer/sw_wrt_fn.cxx | 131 -
binfilter/bf_sw/source/filter/writer/sw_wrtswtbl.cxx | 66
binfilter/inc/bf_sw/iodetect.hxx | 43
binfilter/inc/bf_sw/shellio.hxx | 103 -
binfilter/inc/bf_sw/undobj.hxx | 60
22 files changed, 205 insertions(+), 4272 deletions(-)
New commits:
commit 15fb7b908dcfd8b8ef3a15dd451b5e6f6b885734
Author: Pierre-André Jacquod <pjacquod at alumni.ethz.ch>
Date: Sat Jan 29 17:33:45 2011 +0100
cleaning in binfilter/bf_sw of sw_fltini.cxx
the filter initialization has been cleaned. A lot of filter where
initialized there, like Excel, lotus, word filter.
All these filters have been deleted from there, keeping only the
Star Writers filters
diff --git a/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx b/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
index 6e14426..60693c3 100644
--- a/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
+++ b/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
@@ -36,20 +36,15 @@
#include <stdio.h> // sscanf
#include <hintids.hxx>
-
#include <bf_sfx2/fcontnr.hxx>
#include <bf_sfx2/docfile.hxx>
#include <bf_svx/lrspitem.hxx>
#include <bf_svx/tstpitem.hxx>
#include <frmatr.hxx>
-
#include <horiornt.hxx>
-
#include <doc.hxx>
#include <docary.hxx>
-
#include <errhdl.hxx>
-
#include <pam.hxx>
#include <errhdl.hxx>
#include <wdocsh.hxx>
@@ -64,9 +59,7 @@
#include <numrule.hxx>
#include <ndtxt.hxx>
#include <swfltopt.hxx>
-
#include <swerror.h>
-
#include <bf_svtools/moduleoptions.hxx>
namespace binfilter {
@@ -78,64 +71,45 @@ using namespace ::com::sun::star::uno;
SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
ReadHTML = 0, ReadXML = 0;
-/*N*/ inline BOOL IsDocShellRegistered() { return SvtModuleOptions().IsWriter(); }
+inline BOOL IsDocShellRegistered() { return SvtModuleOptions().IsWriter(); }
-/*N*/ IO_DETECT_IMPL1
-/*N*/ IO_DETECT_IMPL2
-/*N*/ IO_DETECT_IMPL3
-/*N*/ IO_DETECT_IMPL4
+IO_DETECT_IMPL1
+IO_DETECT_IMPL2
+IO_DETECT_IMPL3
+IO_DETECT_IMPL4
-/*N*/ inline void _SetFltPtr( USHORT& rPos, SwRead pReader
-/*N*/ , const sal_Char* pNm
+inline void _SetFltPtr( USHORT& rPos, SwRead pReader, const sal_Char* pNm )
/* pNm optimiert der Compiler weg, wird nur in der nicht PRODUCT benoetigt! */
-/*N*/ )
-/*N*/ {
-/*N*/ ASSERT( !strcmp( aReaderWriter[ rPos ].pName, pNm ), "falscher Filter" );
-/*N*/ (void)pNm;
-/*N*/ aReaderWriter[ rPos++ ].pReader = pReader;
-/*N*/ }
-
-/*N*/ void _InitFilter()
-/*N*/ {
-/*N*/ SwRead pRd;
-/*N*/
-/*N*/ USHORT nCnt = 0;
-/*N*/ _SetFltPtr( nCnt, (ReadSw3 = new Sw3Reader), FILTER_SW5 );
-/*N*/ _SetFltPtr( nCnt, ReadSw3, FILTER_SW4 );
-/*N*/ _SetFltPtr( nCnt, ReadSw3, FILTER_SW3 );
-/*N*/ _SetFltPtr( nCnt, (ReadSwg = new SwgReader), FILTER_SWG );
-/*N*/ _SetFltPtr( nCnt, ReadSwg, FILTER_SWGV );
-/*?*/ _SetFltPtr( nCnt, new Sw6Reader, sSwDos );
-/*N*/ _SetFltPtr( nCnt, (ReadAscii = new AsciiReader), FILTER_BAS );
-/*N*/ _SetFltPtr( nCnt, new W4WReader, FILTER_W4W );
-/*N*/ _SetFltPtr( nCnt, ( pRd = new ExcelReader ), sCExcel );
-/*N*/ _SetFltPtr( nCnt, pRd, sExcel );
-/*N*/ _SetFltPtr( nCnt, new LotusReader, sLotusD );
-/*N*/ _SetFltPtr( nCnt, ReadSwg, sSwg1 );
-/*?*/ _SetFltPtr( nCnt, (ReadXML = new XMLReader), FILTER_XML );
-/*N*/
-/*N*/
-/*N*/ _SetFltPtr( nCnt, ReadAscii, FILTER_TEXT );
-/*N*/
-/*N*/ ASSERT( MAXFILTER == nCnt, "Anzahl Filter ungleich der Definierten" );
-/*N*/ }
-
-/*N*/ void _FinitFilter()
-/*N*/ {
-/*N*/ // die Reader vernichten
-/*N*/ for( USHORT n = 0; n < MAXFILTER; ++n )
-/*N*/ {
-/*N*/ SwIoDetect& rIo = aReaderWriter[n];
-/*N*/ if( rIo.bDelReader && rIo.pReader )
-/*N*/ delete rIo.pReader;
-/*N*/ }
-/*N*/ }
-
-
- SwRead SwIoSystem::GetReader( const String& rFltName )
- {
+{
+ ASSERT( !strcmp( aReaderWriter[ rPos ].pName, pNm ), "falscher Filter" );
+ aReaderWriter[ rPos++ ].pReader = pReader;
+}
+
+void _InitFilter()
+{
+ USHORT nCnt = 0;
+ _SetFltPtr( nCnt, (ReadSw3 = new Sw3Reader), FILTER_SW5 );
+ _SetFltPtr( nCnt, ReadSw3, FILTER_SW4 );
+ _SetFltPtr( nCnt, ReadSw3, FILTER_SW3 );
+
+ ASSERT( MAXFILTER == nCnt, "Anzahl Filter ungleich der Definierten" );
+}
+
+void _FinitFilter()
+{
+ // die Reader vernichten
+ for( USHORT n = 0; n < MAXFILTER; ++n )
+ {
+ SwIoDetect& rIo = aReaderWriter[n];
+ if( rIo.bDelReader && rIo.pReader )
+ delete rIo.pReader;
+ }
+}
+
+SwRead SwIoSystem::GetReader( const String& rFltName )
+{
SwRead pRead = 0;
for( USHORT n = 0; n < MAXFILTER; ++n )
if( aReaderWriter[n].IsFilter( rFltName ) )
@@ -146,39 +120,37 @@ SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
break;
}
return pRead;
- }
+}
- // suche ueber den Filtertext den Filtereintrag
-/*N*/ const SfxFilter* SwIoSystem::GetFilterOfFilterTxt( const String& rFilterNm,
-/*N*/ const SfxFactoryFilterContainer* pCnt )
-/*N*/ {
-/*N*/ const SfxFactoryFilterContainer* pFltCnt = pCnt ? pCnt :
-/*N*/ ( IsDocShellRegistered()
-/*N*/ ? SwDocShell::Factory().GetFilterContainer()
-/*N*/ : SwWebDocShell::Factory().GetFilterContainer() );
-/*N*/
-/*N*/ do {
-/*N*/ if( pFltCnt )
-/*N*/ {
-/*N*/ const SfxFilter* pFilter;
-/*N*/ USHORT nCount = pFltCnt->GetFilterCount();
-/*N*/ for( USHORT i = 0; i < nCount; ++i )
-/*N*/ if( ( pFilter = pFltCnt->GetFilter( i ))->GetFilterName() == rFilterNm )
-/*N*/ return pFilter;
-/*N*/ }
-/*?*/ if( pCnt || pFltCnt == SwWebDocShell::Factory().GetFilterContainer())
-/*?*/ break;
-/*?*/ pFltCnt = SwWebDocShell::Factory().GetFilterContainer();
-/*?*/ } while( TRUE );
-/*?*/
-/*?*/ return 0;
-/*N*/ }
+// search the filter entry using the filter text
+const SfxFilter* SwIoSystem::GetFilterOfFilterTxt( const String& rFilterNm,
+ const SfxFactoryFilterContainer* pCnt )
+{
+ const SfxFactoryFilterContainer* pFltCnt = pCnt ? pCnt :
+ ( IsDocShellRegistered() ? SwDocShell::Factory().GetFilterContainer()
+ : SwWebDocShell::Factory().GetFilterContainer() );
+ do
+ {
+ if( pFltCnt )
+ {
+ const SfxFilter* pFilter;
+ USHORT nCount = pFltCnt->GetFilterCount();
+ for( USHORT i = 0; i < nCount; ++i )
+ if( ( pFilter = pFltCnt->GetFilter( i ))->GetFilterName() == rFilterNm )
+ return pFilter;
+ }
+ if( pCnt || pFltCnt == SwWebDocShell::Factory().GetFilterContainer())
+ break;
+ pFltCnt = SwWebDocShell::Factory().GetFilterContainer();
+ } while( TRUE );
+ return 0;
+}
/////////////// die Storage Reader/Writer ////////////////////////////////
- ULONG StgReader::OpenMainStream( SvStorageStreamRef& rRef, USHORT& rBuffSize )
- {
+ULONG StgReader::OpenMainStream( SvStorageStreamRef& rRef, USHORT& rBuffSize )
+{
ULONG nRet = ERR_SWG_READ_ERROR;
ASSERT( pStg, "wo ist mein Storage?" );
const SfxFilter* pFltr = SwIoSystem::GetFilterOfFormat( aFltName );
@@ -201,34 +173,34 @@ SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
}
}
return nRet;
- }
+}
-/*N*/ ULONG Sw3Reader::Read( SwDoc & /*rDoc*/, SwPaM &rPam, const String & )
-/*N*/ {
-/*N*/ ULONG nRet;
-/*N*/ if( pStg && pIO )
-/*N*/ {
-/*N*/ // TRUE: Vorlagen ueberschreiben
-/*N*/ pIO->SetReadOptions( aOpt,TRUE );
-/*N*/ if( !bInsertMode )
-/*N*/ {
-/*N*/ // Im Laden-Modus darf der PaM-Content-Teil nicht
-/*N*/ // in den Textbereich zeigen (Nodes koennen geloescht werden)
-/*N*/ rPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
-/*N*/ rPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
-/*N*/ }
-/*N*/ nRet = pIO->Load( pStg, bInsertMode ? &rPam : 0 );
-/*N*/ aOpt.ResetAllFmtsOnly();
-/*N*/ pIO->SetReadOptions( aOpt, TRUE );
-/*N*/ }
-/*N*/ else
-/*N*/ {
-/*?*/ ASSERT( !this, "Sw3-Read ohne Storage und/oder IO-System" );
-/*?*/ nRet = ERR_SWG_READ_ERROR;
-/*N*/ }
-/*N*/ return nRet;
-/*N*/ }
+ULONG Sw3Reader::Read( SwDoc & /*rDoc*/, SwPaM &rPam, const String & )
+{
+ ULONG nRet;
+ if( pStg && pIO )
+ {
+ // TRUE: Vorlagen ueberschreiben
+ pIO->SetReadOptions( aOpt,TRUE );
+ if( !bInsertMode )
+ {
+ // Im Laden-Modus darf der PaM-Content-Teil nicht
+ // in den Textbereich zeigen (Nodes koennen geloescht werden)
+ rPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
+ rPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
+ }
+ nRet = pIO->Load( pStg, bInsertMode ? &rPam : 0 );
+ aOpt.ResetAllFmtsOnly();
+ pIO->SetReadOptions( aOpt, TRUE );
+ }
+ else
+ {
+ ASSERT( !this, "Sw3-Read ohne Storage und/oder IO-System" );
+ nRet = ERR_SWG_READ_ERROR;
+ }
+ return nRet;
+}
// read the sections of the document, which is equal to the medium.
// returns the count of it
@@ -263,8 +235,8 @@ ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
}
- BOOL SwReader::NeedsPasswd( const Reader& rOptions )
- {
+BOOL SwReader::NeedsPasswd( const Reader& rOptions )
+{
BOOL bRes = FALSE;
if( &rOptions == ReadSwg )
{
@@ -280,11 +252,11 @@ ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
}
}
return bRes;
- }
+}
- BOOL SwReader::CheckPasswd( const String& rPasswd, const Reader& rOptions )
- {
+BOOL SwReader::CheckPasswd( const String& rPasswd, const Reader& rOptions )
+{
BOOL bRes = TRUE;
if( &rOptions == ReadSwg )
{
@@ -300,7 +272,7 @@ ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
}
}
return bRes;
- }
+}
//-----------------------------------------------------------------------
// Filter Flags lesen, wird von WW8 / W4W / EXCEL / LOTUS benutzt.
@@ -341,47 +313,45 @@ ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
</FilterFlags>
*/
-/*N*/ #define FILTER_OPTION_ROOT String::CreateFromAscii( \
-/*N*/ RTL_CONSTASCII_STRINGPARAM( "Office.Writer/FilterFlags" ) )
+#define FILTER_OPTION_ROOT String::CreateFromAscii( \
+ RTL_CONSTASCII_STRINGPARAM( "Office.Writer/FilterFlags" ) )
- SwFilterOptions::SwFilterOptions()
+SwFilterOptions::SwFilterOptions()
: ConfigItem( FILTER_OPTION_ROOT )
- {
- }
+{
+}
-/*N*/ SwFilterOptions::SwFilterOptions( sal_uInt16 nCnt, const sal_Char** ppNames,
-/*N*/ sal_uInt32* pValues )
-/*N*/ : ConfigItem( FILTER_OPTION_ROOT )
-/*N*/ {
-/*N*/ GetValues( nCnt, ppNames, pValues );
-/*N*/ }
-
-/*N*/ void SwFilterOptions::GetValues( sal_uInt16 nCnt, const sal_Char** ppNames,
-/*N*/ sal_uInt32* pValues )
-/*N*/ {
-/*N*/ Sequence<OUString> aNames( nCnt );
-/*N*/ OUString* pNames = aNames.getArray();
- USHORT n=0;
-/*N*/ for( n = 0; n < nCnt; ++n )
-/*N*/ pNames[ n ] = OUString::createFromAscii( ppNames[ n ] );
-/*N*/ Sequence<Any> aValues = GetProperties( aNames );
-/*N*/
-/*N*/ if( nCnt == aValues.getLength() )
-/*N*/ {
-/*N*/ const Any* pAnyValues = aValues.getConstArray();
-/*N*/ for( n = 0; n < nCnt; ++n )
-/*N*/ pValues[ n ] = pAnyValues[ n ].hasValue()
-/*N*/ ? *(sal_uInt32*)pAnyValues[ n ].getValue()
-/*N*/ : 0;
-/*N*/ }
-/*N*/ else
-/*?*/ for( n = 0; n < nCnt; ++n )
-/*?*/ pValues[ n ] = 0;
-/*N*/ }
-
- sal_Bool SwFilterOptions::CheckNodeContentExist( const sal_Char* pNode,
+SwFilterOptions::SwFilterOptions( sal_uInt16 nCnt, const sal_Char** ppNames,
+ sal_uInt32* pValues ) : ConfigItem( FILTER_OPTION_ROOT )
+{
+ GetValues( nCnt, ppNames, pValues );
+}
+
+void SwFilterOptions::GetValues( sal_uInt16 nCnt, const sal_Char** ppNames,
+ sal_uInt32* pValues )
+{
+ Sequence<OUString> aNames( nCnt );
+ OUString* pNames = aNames.getArray();
+ USHORT n=0;
+ for( n = 0; n < nCnt; ++n )
+ pNames[ n ] = OUString::createFromAscii( ppNames[ n ] );
+ Sequence<Any> aValues = GetProperties( aNames );
+
+ if( nCnt == aValues.getLength() )
+ {
+ const Any* pAnyValues = aValues.getConstArray();
+ for( n = 0; n < nCnt; ++n )
+ pValues[ n ] = pAnyValues[ n ].hasValue() ?
+ *(sal_uInt32*)pAnyValues[ n ].getValue() : 0;
+ }
+ else
+ for( n = 0; n < nCnt; ++n )
+ pValues[ n ] = 0;
+}
+
+sal_Bool SwFilterOptions::CheckNodeContentExist( const sal_Char* pNode,
const sal_Char* pCntnt )
- {
+{
Sequence<OUString> aNames( GetNodeNames(
OUString::createFromAscii( pNode )));
sal_Bool bExist = sal_False;
@@ -393,7 +363,7 @@ ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
break;
}
return bExist;
- }
+}
SwRelNumRuleSpaces::SwRelNumRuleSpaces( SwDoc& rDoc, BOOL bNDoc )
: bNewDoc( bNDoc )
@@ -559,17 +529,17 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
}
}
- struct CharSetNameMap
- {
+struct CharSetNameMap
+{
rtl_TextEncoding eCode;
const sal_Char* pName;
- };
+};
- const CharSetNameMap *GetCharSetNameMap()
- {
+const CharSetNameMap *GetCharSetNameMap()
+{
static const CharSetNameMap aMapArr[] =
{
- # define IMPLENTRY(X) { RTL_TEXTENCODING_##X, "" #X "" }
+#define IMPLENTRY(X) { RTL_TEXTENCODING_##X, "" #X "" }
IMPLENTRY(DONTKNOW),
IMPLENTRY(MS_1252),
IMPLENTRY(APPLE_ROMAN),
@@ -664,13 +634,13 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
{0,0} //Last
};
return &aMapArr[0];
- }
+}
/*
Get a rtl_TextEncoding from its name
*/
- rtl_TextEncoding CharSetFromName(const String& rChrSetStr)
- {
+rtl_TextEncoding CharSetFromName(const String& rChrSetStr)
+{
const CharSetNameMap *pStart = GetCharSetNameMap();
rtl_TextEncoding nRet = pStart->eCode;
@@ -686,21 +656,20 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
ASSERT(nRet != pStart->eCode, "TXT: That was an unknown language!");
return nRet;
- }
-
+}
/*
Get the String name of an rtl_TextEncoding
*/
- struct LangNameMap
- {
+struct LangNameMap
+{
LanguageType nId;
const sal_Char* pLanguageNm;
- };
+};
- const LangNameMap *GetLangNameMap()
- {
+const LangNameMap *GetLangNameMap()
+{
static const LangNameMap aMapArr[] =
{
{LANGUAGE_DONTKNOW, "DONTKNOW" },
@@ -894,8 +863,8 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
return &aMapArr[0];
}
- static LanguageType LanguageFromName(const String& rLngStr)
- {
+static LanguageType LanguageFromName(const String& rLngStr)
+{
const LangNameMap *pStart = GetLangNameMap();
LanguageType nRet = pStart->nId;
@@ -907,11 +876,9 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
break;
}
}
-
ASSERT(nRet != pStart->nId, "TXT: That was an unknown language!");
-
return nRet;
- }
+}
// for the automatic conversion (mail/news/...)
@@ -922,10 +889,9 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
// 3. Fontname
// 4. Language
// the delimetercharacter is ","
-//
- void SwAsciiOptions::ReadUserData( const String& rStr )
- {
+void SwAsciiOptions::ReadUserData( const String& rStr )
+{
xub_StrLen nToken = 0;
USHORT nCnt = 0;
String sToken;
@@ -955,7 +921,7 @@ void SwRelNumRuleSpaces::SetNumLSpace( SwTxtNode& rNd, const SwNumRule& rRule )
}
++nCnt;
} while( STRING_NOTFOUND != nToken );
- }
+}
Color ConvertBrushStyle(const Color& rCol, const Color& rFillCol, BYTE nStyle)
{
@@ -1005,8 +971,8 @@ Color ConvertBrushStyle(const Color& rCol, const Color& rFillCol, BYTE nStyle)
return aColor;
}
- void SwFilterOptions::Commit() {}
- void SwFilterOptions::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& /*aPropertyNames*/ ) {}
+void SwFilterOptions::Commit() {}
+void SwFilterOptions::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& /*aPropertyNames*/ ) {}
}
commit 265f89129f628f6f539a142544e1bc873046d35d
Author: Pierre-André Jacquod <pjacquod at alumni.ethz.ch>
Date: Thu Jan 27 22:46:44 2011 +0100
delete comments / cleaning of these files
diff --git a/binfilter/bf_sw/source/filter/inc/wrtswtbl.hxx b/binfilter/bf_sw/source/filter/inc/wrtswtbl.hxx
index 1398bd6..0cdec6b 100644
--- a/binfilter/bf_sw/source/filter/inc/wrtswtbl.hxx
+++ b/binfilter/bf_sw/source/filter/inc/wrtswtbl.hxx
@@ -36,8 +36,8 @@
#include <orntenum.hxx>
#include <horiornt.hxx>
class Color;
-namespace binfilter {
+namespace binfilter {
class SwTableBox;
class SwTableBoxes;
@@ -61,49 +61,26 @@ class SvxBorderLine;
#define ROW_DFLT_HEIGHT (2*ROWFUZZY)+1
-//-----------------------------------------------------------------------
-
-
-
-
-//-----------------------------------------------------------------------
-
-
-
-
-
-
-//-----------------------------------------------------------------------
-
class SwWriteTableCol
{
USHORT nPos; // End Position der Spalte
-
USHORT nWidthOpt;
-
BOOL bRelWidthOpt : 1;
BOOL bOutWidth : 1; // Spaltenbreite ausgeben?
public:
BOOL bLeftBorder : 1; // Welche Umrandungen sind da?
BOOL bRightBorder : 1;
-
SwWriteTableCol( USHORT nPosition );
-
- USHORT GetPos() const { return nPos; }
-
- void SetLeftBorder( BOOL bBorder ) { bLeftBorder = bBorder; }
+ USHORT GetPos() const { return nPos; }
+ void SetLeftBorder( BOOL bBorder ) { bLeftBorder = bBorder; }
BOOL HasLeftBorder() const { return bLeftBorder; }
-
- void SetRightBorder( BOOL bBorder ) { bRightBorder = bBorder; }
+ void SetRightBorder( BOOL bBorder ) { bRightBorder = bBorder; }
BOOL HasRightBorder() const { return bRightBorder; }
-
void SetOutWidth( BOOL bSet ) { bOutWidth = bSet; }
BOOL GetOutWidth() const { return bOutWidth; }
-
inline int operator==( const SwWriteTableCol& rCol ) const;
inline int operator<( const SwWriteTableCol& rCol ) const;
-
void SetWidthOpt( USHORT nWidth, BOOL bRel )
{
nWidthOpt = nWidth; bRelWidthOpt = bRel;
@@ -126,35 +103,16 @@ inline int SwWriteTableCol::operator<( const SwWriteTableCol& rCol ) const
return nPos < rCol.nPos - COLFUZZY;
}
-
-typedef SwWriteTableCol *SwWriteTableColPtr;
+typedef SwWriteTableCol* SwWriteTableColPtr;
SV_DECL_PTRARR_SORT_DEL( SwWriteTableCols, SwWriteTableColPtr, 5, 5 )
-//-----------------------------------------------------------------------
-
class SwWriteTable
{
-
-
-
-
-
-
-
-
-public:
- static long GetBoxWidth( const SwTableBox *pBox );
-
-
-
-
-
-
+ public:
+ static long GetBoxWidth( const SwTableBox *pBox );
};
-
-
} //namespace binfilter
#endif
diff --git a/binfilter/bf_sw/source/filter/writer/sw_wrtswtbl.cxx b/binfilter/bf_sw/source/filter/writer/sw_wrtswtbl.cxx
index c8c1b86..e964ea6 100644
--- a/binfilter/bf_sw/source/filter/writer/sw_wrtswtbl.cxx
+++ b/binfilter/bf_sw/source/filter/writer/sw_wrtswtbl.cxx
@@ -43,61 +43,19 @@
namespace binfilter {
+SwWriteTableCol::SwWriteTableCol( USHORT nPosition )
+ : nPos(nPosition), bLeftBorder(TRUE), bRightBorder(TRUE),
+ nWidthOpt( 0 ), bRelWidthOpt( FALSE ), bOutWidth( TRUE )
+{
+}
-
-//-----------------------------------------------------------------------
-
-
-//-----------------------------------------------------------------------
-
-
-
-
-//-----------------------------------------------------------------------
-
-/*N*/ SwWriteTableCol::SwWriteTableCol( USHORT nPosition )
-/*N*/ : nPos(nPosition),
-/*N*/ bLeftBorder(TRUE), bRightBorder(TRUE),
-/*N*/ nWidthOpt( 0 ), bRelWidthOpt( FALSE ),
-/*N*/ bOutWidth( TRUE )
-/*N*/ {
-/*N*/ }
-
-//-----------------------------------------------------------------------
-
-/*N*/ long SwWriteTable::GetBoxWidth( const SwTableBox *pBox )
-/*N*/ {
-/*N*/ const SwFrmFmt *pFmt = pBox->GetFrmFmt();
-/*N*/ const SwFmtFrmSize& aFrmSize=
-/*N*/ (const SwFmtFrmSize&)pFmt->GetAttr( RES_FRM_SIZE );
-/*N*/
-/*N*/ return aFrmSize.GetSize().Width();
-/*N*/ }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+long SwWriteTable::GetBoxWidth( const SwTableBox *pBox )
+{
+ const SwFrmFmt *pFmt = pBox->GetFrmFmt();
+ const SwFmtFrmSize& aFrmSize=
+ (const SwFmtFrmSize&)pFmt->GetAttr( RES_FRM_SIZE );
+ return aFrmSize.GetSize().Width();
+}
}
commit c08b4d0c5ce2bced1370727d86bd210167e8fcf5
Author: Pierre-André Jacquod <pjacquod at alumni.ethz.ch>
Date: Thu Jan 27 19:26:21 2011 +0100
delet all content of bf_sw/source/filter/writer/sw_writer.cxx
this file is now empty, will be removed soon
diff --git a/binfilter/bf_sw/source/filter/writer/sw_writer.cxx b/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
index cd2be17..aa716eb 100644
--- a/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
+++ b/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
@@ -26,40 +26,8 @@
*
************************************************************************/
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-#include <hintids.hxx>
-
-#define _SVSTDARR_STRINGSSORTDTOR
-
- #ifndef _STREAM_HXX //autogen
- #include <tools/stream.hxx>
- #endif
-#include <bf_svx/fontitem.hxx>
-#include <bf_svx/eeitem.hxx>
-
-#include <shellio.hxx>
-
-#include <horiornt.hxx>
-#include <errhdl.hxx>
-
-#include <pam.hxx>
-#include <doc.hxx>
-#include <docary.hxx>
-#include <bookmrk.hxx> // fuer SwBookmark ...
-#include <numrule.hxx>
-
-#include <swerror.h>
namespace binfilter {
-// Stringbuffer fuer die umgewandelten Zahlen
-static sal_Char aNToABuf[] = "0000000000000000000000000";
-#define NTOABUFLEN (sizeof(aNToABuf))
-
-/*N*/ DECLARE_TABLE( SwBookmarkNodeTable, SvPtrarr* )
-
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit e8a7cb339ed7db1177fd699d476bc21e45ff6ae5
Author: Pierre-André Jacquod <pjacquod at alumni.ethz.ch>
Date: Thu Jan 27 08:05:08 2011 +0100
delete struct Writer_Impl in binfilter/bf_sw
diff --git a/binfilter/bf_sw/source/filter/writer/sw_writer.cxx b/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
index fbdea40..cd2be17 100644
--- a/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
+++ b/binfilter/bf_sw/source/filter/writer/sw_writer.cxx
@@ -60,47 +60,6 @@ static sal_Char aNToABuf[] = "0000000000000000000000000";
/*N*/ DECLARE_TABLE( SwBookmarkNodeTable, SvPtrarr* )
-/*N*/ struct Writer_Impl
-/*N*/ {
-/*N*/ SvStringsSortDtor *pSrcArr, *pDestArr;
-/*N*/ SvPtrarr* pFontRemoveLst, *pBkmkArr;
-/*N*/ SwBookmarkNodeTable* pBkmkNodePos;
-/*N*/
-/*N*/ Writer_Impl( const SwDoc& rDoc );
-/*N*/ ~Writer_Impl();
-/*N*/
-/*N*/ void RemoveFontList( SwDoc& rDoc );
-/*N*/ };
-
-/*N*/ Writer_Impl::Writer_Impl( const SwDoc& /*rDoc*/ )
-/*N*/ : pSrcArr( 0 ), pDestArr( 0 ), pFontRemoveLst( 0 ), pBkmkNodePos( 0 )
-/*N*/ {
-/*N*/ }
-
-/*N*/ Writer_Impl::~Writer_Impl()
-/*N*/ {
-/*N*/ delete pSrcArr;
-/*N*/ delete pDestArr;
-/*N*/ delete pFontRemoveLst;
-/*N*/
-/*N*/ if( pBkmkNodePos )
-/*N*/ {
-/*?*/ for( SvPtrarr* p = pBkmkNodePos->First(); p; p = pBkmkNodePos->Next() )
-/*?*/ delete p;
-/*?*/ delete pBkmkNodePos;
-/*N*/ }
-/*N*/ }
-
-/*N*/ void Writer_Impl::RemoveFontList( SwDoc& rDoc )
-/*N*/ {
-/*N*/ ASSERT( pFontRemoveLst, "wo ist die FontListe?" );
-/*N*/ for( USHORT i = pFontRemoveLst->Count(); i; )
-/*N*/ {
-/*N*/ SvxFontItem* pItem = (SvxFontItem*)(*pFontRemoveLst)[ --i ];
-/*N*/ rDoc.GetAttrPool().Remove( *pItem );
-/*N*/ }
-/*N*/ }
-
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/inc/bf_sw/shellio.hxx b/binfilter/inc/bf_sw/shellio.hxx
index 231b425..f2d29e5 100644
--- a/binfilter/inc/bf_sw/shellio.hxx
+++ b/binfilter/inc/bf_sw/shellio.hxx
@@ -57,7 +57,6 @@ class SwCrsrShell;
class SwDoc;
class SwPaM;
struct SwPosition;
-struct Writer_Impl;
// ab so vielen chars wird ein mit einem ASCII/W4W-Reader eingelesener
// Absatz zwangsweise umgebrochen. Muss immer groesser als 200 sein !!!
commit 6cf829604c9180198f9a018f8ebc4ae13c56899c
Author: Pierre-André Jacquod <pjacquod at alumni.ethz.ch>
Date: Sun Jan 16 17:11:34 2011 +0100
delete class Writer in binfilter/bf_sw
the class Writer is deleted in binfilter/bf_sw and all dependencies
of this class. This includes some other derivated classes.
Some classes or functions (in other classes ) are left behind, needing
now an analysis to see if they are orphean or used by some read classes
diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
index a75257b..9e6f70e 100644
--- a/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
+++ b/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
@@ -284,7 +284,12 @@ void SwXTextCursor::getTextFromPam(SwPaM& aCrsr, OUString& rBuffer)
#else
aStream.SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
#endif
- WriterRef xWrt;
+/* this part is commented out since is not more executable due to the
+ deletion of the Writer class.
+ Investigation needs to be done in order to know if the function can be
+ removed too, or needs to be adapted
+*/
+/* WriterRef xWrt;
SwIoSystem::GetWriter( C2S(FILTER_TEXT_DLG), xWrt );
if( xWrt.Is() )
{
@@ -294,6 +299,7 @@ void SwXTextCursor::getTextFromPam(SwPaM& aCrsr, OUString& rBuffer)
xWrt->SetAsciiOptions( aOpt );
xWrt->bUCS2_WithStartChar = FALSE;
}
+*/
}
void lcl_setCharStyle(SwDoc* pDoc, const uno::Any aValue, SfxItemSet& rSet)
diff --git a/binfilter/bf_sw/source/filter/ascii/makefile.mk b/binfilter/bf_sw/source/filter/ascii/makefile.mk
index 5b57a44..c653997 100644
--- a/binfilter/bf_sw/source/filter/ascii/makefile.mk
+++ b/binfilter/bf_sw/source/filter/ascii/makefile.mk
@@ -42,8 +42,6 @@ INC+= -I$(PRJ)$/inc$/bf_sw
# --- Files --------------------------------------------------------
SLOFILES = \
- $(SLO)$/sw_ascatr.obj \
- $(SLO)$/sw_wrtasc.obj
# --- Tagets -------------------------------------------------------
diff --git a/binfilter/bf_sw/source/filter/ascii/sw_ascatr.cxx b/binfilter/bf_sw/source/filter/ascii/sw_ascatr.cxx
deleted file mode 100644
index 8cdfe89..0000000
--- a/binfilter/bf_sw/source/filter/ascii/sw_ascatr.cxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-#include <hintids.hxx>
-
-#include <tools/stream.hxx>
-#ifndef _SVSTDARR_HXX
-#define _SVSTDARR_USHORTS
-#endif
-
-#include <errhdl.hxx>
-
-#include <pam.hxx>
-
-#include <horiornt.hxx>
-
-#include <doc.hxx>
-#include <ndtxt.hxx>
-#include <wrtasc.hxx>
-#include <txtfld.hxx>
-#include <fmtftn.hxx>
-#include <fmtfld.hxx>
-#include <fldbas.hxx>
-#include <ftninfo.hxx>
-namespace binfilter {
-
-/*
- * Dieses File enthaelt alle Ausgabe-Funktionen des ASCII-Writers;
- * fuer alle Nodes, Attribute, Formate und Chars.
- */
-
-class SwASC_AttrIter
-{
- SwASCWriter& rWrt;
- const SwTxtNode& rNd;
- xub_StrLen nAktSwPos;
-
- xub_StrLen SearchNext( xub_StrLen nStartPos );
-
-public:
- SwASC_AttrIter( SwASCWriter& rWrt, const SwTxtNode& rNd, xub_StrLen nStt );
-
- void NextPos() { nAktSwPos = SearchNext( nAktSwPos + 1 ); }
-
- xub_StrLen WhereNext() const { return nAktSwPos; }
- BOOL OutAttr( xub_StrLen nSwPos );
-};
-
-
-/*N*/ SwASC_AttrIter::SwASC_AttrIter( SwASCWriter& rWr, const SwTxtNode& rTxtNd,
-/*N*/ xub_StrLen nStt )
-/*N*/ : rWrt( rWr ), rNd( rTxtNd ), nAktSwPos( 0 )
-/*N*/ {
-/*N*/ nAktSwPos = SearchNext( nStt + 1 );
-/*N*/ }
-
-
-/*N*/ xub_StrLen SwASC_AttrIter::SearchNext( xub_StrLen nStartPos )
-/*N*/ {
-/*N*/ register xub_StrLen nMinPos = STRING_MAXLEN;
-/*N*/ const SwpHints* pTxtAttrs = rNd.GetpSwpHints();
-/*N*/ if( pTxtAttrs )
-/*N*/ {
-/*?*/ register USHORT i;
-/*?*/ register xub_StrLen nPos;
-/*?*/ const xub_StrLen * pPos;
-/*?*/
-/*?*/ // kann noch optimiert werden, wenn ausgenutzt wird, dass die TxtAttrs
-/*?*/ // nach der Anfangsposition geordnet sind. Dann muessten
-/*?*/ // allerdings noch 2 Indices gemerkt werden
-/*?*/ for( i = 0; i < pTxtAttrs->Count(); i++ )
-/*?*/ {
-/*?*/ const SwTxtAttr* pHt = (*pTxtAttrs)[i];
-/*?*/ nPos = *pHt->GetStart(); // gibt erstes Attr-Zeichen
-/*?*/ pPos = pHt->GetEnd();
-/*?*/ if( !pPos )
-/*?*/ {
-/*?*/ if( nPos >= nStartPos && nPos <= nMinPos )
-/*?*/ nMinPos = nPos;
-/*?*/
-/*?*/ if( ( ++nPos ) >= nStartPos && nPos < nMinPos )
-/*?*/ nMinPos = nPos;
-/*?*/ }
-/*?*/ }
-/*N*/ }
-/*N*/ return nMinPos;
-/*N*/ }
-
-
-/*N*/ BOOL SwASC_AttrIter::OutAttr( xub_StrLen nSwPos )
-/*N*/ {
-/*N*/ BOOL bRet = FALSE;
-/*N*/ const SwpHints* pTxtAttrs = rNd.GetpSwpHints();
-/*N*/ if( pTxtAttrs )
-/*N*/ {
-/*?*/ register USHORT i;
-/*?*/ for( i = 0; i < pTxtAttrs->Count(); i++ )
-/*?*/ {
-/*?*/ const SwTxtAttr* pHt = (*pTxtAttrs)[i];
-/*?*/ const xub_StrLen * pEnd = pHt->GetEnd();
-/*?*/ if( !pEnd && nSwPos == *pHt->GetStart() )
-/*?*/ {
-/*?*/ bRet = TRUE;
-/*?*/ String sOut;
-/*?*/ switch( pHt->Which() )
-/*?*/ {
-/*?*/ case RES_TXTATR_FIELD:
-/*?*/ sOut = ((SwTxtFld*)pHt)->GetFld().GetFld()->Expand();
-/*?*/ break;
-/*?*/
-/*?*/ case RES_TXTATR_HARDBLANK:
- {DBG_BF_ASSERT(0, "STRIP");}
-/*?*/ break;
-/*?*/
-/*?*/ case RES_TXTATR_FTN:
-/*?*/ {
-/*?*/ const SwFmtFtn& rFtn = pHt->GetFtn();
-/*?*/ if( rFtn.GetNumStr().Len() )
-/*?*/ sOut = rFtn.GetNumStr();
-/*?*/ else if( rFtn.IsEndNote() )
-/*?*/ sOut = rWrt.pDoc->GetEndNoteInfo().aFmt.
-/*?*/ GetNumStr( rFtn.GetNumber() );
-/*?*/ else
-/*?*/ sOut = rWrt.pDoc->GetFtnInfo().aFmt.
-/*?*/ GetNumStr( rFtn.GetNumber() );
-/*?*/ }
-/*?*/ break;
-/*?*/ }
-/*?*/ if( sOut.Len() )
-/*?*/ rWrt.Strm().WriteUnicodeOrByteText( sOut );
-/*?*/ }
-/*?*/ else if( nSwPos < *pHt->GetStart() )
-/*?*/ break;
-/*?*/ }
-/*N*/ }
-/*N*/ return bRet;
-/*N*/ }
-
-
-//------------------------
-/* Ausgabe der Nodes */
-//------------------------
-
-/*N*/ static Writer& OutASC_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
-/*N*/ {
-/*N*/ const SwTxtNode& rNd = (SwTxtNode&)rNode;
-/*N*/
-/*N*/ xub_StrLen nStrPos = rWrt.pCurPam->GetPoint()->nContent.GetIndex();
-/*N*/ xub_StrLen nNodeEnde = rNd.Len(), nEnde = nNodeEnde;
-/*N*/ BOOL bLastNd = rWrt.pCurPam->GetPoint()->nNode == rWrt.pCurPam->GetMark()->nNode;
-/*N*/ if( bLastNd )
-/*N*/ nEnde = rWrt.pCurPam->GetMark()->nContent.GetIndex();
-/*N*/
-/*N*/ SwASC_AttrIter aAttrIter( (SwASCWriter&)rWrt, rNd, nStrPos );
-/*N*/
-/*N*/ if( !nStrPos )
-/*N*/ rWrt.Strm().WriteUnicodeOrByteText( rNd.GetNumString() );
-/*N*/
-/*N*/ String aStr( rNd.GetTxt() );
-/*N*/ if( rWrt.bASCII_ParaAsBlanc )
-/*?*/ aStr.SearchAndReplaceAll( 0x0A, ' ' );
-/*N*/
-/*N*/ do {
-/*N*/ xub_StrLen nNextAttr = aAttrIter.WhereNext();
-/*N*/
-/*N*/ if( nNextAttr > nEnde )
-/*N*/ nNextAttr = nEnde;
-/*N*/
-/*N*/ if( !aAttrIter.OutAttr( nStrPos ))
-/*N*/ rWrt.Strm().WriteUnicodeOrByteText(
-/*N*/ aStr.Copy( nStrPos, nNextAttr - nStrPos ));
-/*N*/ nStrPos = nNextAttr;
-/*N*/ aAttrIter.NextPos();
-/*N*/ } while( nStrPos < nEnde );
-/*N*/
-/*N*/ if( !bLastNd ||
-/*N*/ (( !rWrt.bWriteClipboardDoc && !rWrt.bASCII_NoLastLineEnd )
-/*N*/ && !nStrPos && nEnde == nNodeEnde ))
-/*?*/ rWrt.Strm().WriteUnicodeOrByteText( ((SwASCWriter&)rWrt).GetLineEnd());
-/*N*/
-/*N*/ return rWrt;
-/*N*/ }
-
-/*
- * lege hier jetzt die Tabellen fuer die ASCII-Funktions-Pointer auf
- * die Ausgabe-Funktionen an.
- * Es sind lokale Strukturen, die nur innerhalb der ASCII-DLL
- * bekannt sein muessen.
- */
-
-SwNodeFnTab aASCNodeFnTab = {
-/* RES_TXTNODE */ OutASC_SwTxtNode,
-/* RES_GRFNODE */ 0,
-/* RES_OLENODE */ 0
-};
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_sw/source/filter/ascii/sw_wrtasc.cxx b/binfilter/bf_sw/source/filter/ascii/sw_wrtasc.cxx
deleted file mode 100644
index 79a80c1..0000000
--- a/binfilter/bf_sw/source/filter/ascii/sw_wrtasc.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-
-#include <tools/stream.hxx>
-
-#include <errhdl.hxx>
-
-#include <pam.hxx>
-
-#include <horiornt.hxx>
-
-#include <doc.hxx>
-#include <ndtxt.hxx>
-#include <mdiexp.hxx> // ...Percent()
-#include <docary.hxx>
-#include <fmtcntnt.hxx>
-#include <frmfmt.hxx>
-#include <wrtasc.hxx>
-
-#include <statstr.hrc> // ResId fuer Statusleiste
-#include <osl/endian.h>
-namespace binfilter {
-
-//-----------------------------------------------------------------
-
-/*N*/ SwASCWriter::SwASCWriter( const String& rFltNm )
-/*N*/ {
-/*N*/ SwAsciiOptions aNewOpts;
-/*N*/
-/*N*/ switch( 5 <= rFltNm.Len() ? rFltNm.GetChar( 4 ) : 0 )
-/*N*/ {
-/*?*/ case 'D':
-/*?*/ #if !defined(PM2)
-/*?*/ aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_850 );
-/*?*/ aNewOpts.SetParaFlags( LINEEND_CRLF );
-/*?*/ #endif
-/*?*/ if( 5 < rFltNm.Len() )
-/*?*/ switch( rFltNm.Copy( 5 ).ToInt32() )
-/*?*/ {
-/*?*/ case 437: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_437 ); break;
-/*?*/ case 850: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_850 ); break;
-/*?*/ case 860: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_860 ); break;
-/*?*/ case 861: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_861 ); break;
-/*?*/ case 863: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_863 ); break;
-/*?*/ case 865: aNewOpts.SetCharSet( RTL_TEXTENCODING_IBM_865 ); break;
-/*?*/ }
-/*?*/ break;
-/*?*/
-/*?*/ case 'A':
-/*?*/ #if !defined(WIN) && !defined(WNT)
-/*?*/ aNewOpts.SetCharSet( RTL_TEXTENCODING_MS_1252 );
-/*?*/ aNewOpts.SetParaFlags( LINEEND_CRLF );
-/*?*/ #endif
-/*?*/ break;
-/*?*/
-/*?*/ case 'M':
-/*?*/ #if !defined(MAC)
-/*?*/ aNewOpts.SetCharSet( RTL_TEXTENCODING_APPLE_ROMAN );
-/*?*/ aNewOpts.SetParaFlags( LINEEND_CR );
-/*?*/ #endif
-/*?*/ break;
-/*?*/
-/*?*/ case 'X':
-/*?*/ #if !defined(UNX)
-/*?*/ aNewOpts.SetCharSet( RTL_TEXTENCODING_MS_1252 );
-/*?*/ aNewOpts.SetParaFlags( LINEEND_LF );
-/*?*/ #endif
-/*?*/ break;
-/*?*/
-/*N*/ default:
-/*N*/ if( rFltNm.Copy( 4 ).EqualsAscii( "_DLG" ))
-/*N*/ {
-/*N*/ // use the options
-/*N*/ aNewOpts = GetAsciiOptions();
-/*N*/ }
-/*N*/ }
-/*N*/ SetAsciiOptions( aNewOpts );
-/*N*/ }
-
-/*N*/ SwASCWriter::~SwASCWriter() {}
-
-/*N*/ void GetASCWriter( const String& rFltNm, WriterRef& xRet )
-/*N*/ {
-/*N*/ xRet = new SwASCWriter( rFltNm );
-/*N*/ }
-
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_sw/source/filter/ascii/wrtasc.hxx b/binfilter/bf_sw/source/filter/ascii/wrtasc.hxx
deleted file mode 100644
index d38b34c..0000000
--- a/binfilter/bf_sw/source/filter/ascii/wrtasc.hxx
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _WRTASC_HXX
-#define _WRTASC_HXX
-
-#include <shellio.hxx>
-#include <wrt_fn.hxx>
-namespace binfilter {
-
-extern SwNodeFnTab aASCNodeFnTab;
-
-
-// der ASC-Writer
-
-class SwASCWriter : public Writer
-{
- String sLineEnd;
-
-public:
- SwASCWriter( const String& rFilterName );
- virtual ~SwASCWriter();
-
- const String& GetLineEnd() const { return sLineEnd; }
-};
-
-
-} //namespace binfilter
-#endif // _WRTASC_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx b/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
index 6cad38c..6e14426 100644
--- a/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
+++ b/binfilter/bf_sw/source/filter/basflt/sw_fltini.cxx
@@ -134,17 +134,6 @@ SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
/*N*/ }
-/*N*/ void SwIoSystem::GetWriter( const String& rFltName, WriterRef& xRet )
-/*N*/ {
-/*N*/ for( USHORT n = 0; n < MAXFILTER; ++n )
-/*N*/ if( aReaderWriter[n].IsFilter( rFltName ) )
-/*N*/ {
-/*N*/ aReaderWriter[n].GetWriter( rFltName, xRet );
-/*N*/ break;
-/*N*/ }
-/*N*/ }
-
-
SwRead SwIoSystem::GetReader( const String& rFltName )
{
SwRead pRead = 0;
@@ -244,12 +233,6 @@ SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
// read the sections of the document, which is equal to the medium.
// returns the count of it
-
-
- BOOL Writer::IsStgWriter() const { return FALSE; }
- BOOL Writer::IsSw3Writer() const { return FALSE; }
-
-
ULONG SwgReader::Read( SwDoc &rDoc, SwPaM &rPam, const String& rFileName )
{
if( !pStrm )
diff --git a/binfilter/bf_sw/source/filter/inc/fltini.hxx b/binfilter/bf_sw/source/filter/inc/fltini.hxx
index bd71236..150a75d 100644
--- a/binfilter/bf_sw/source/filter/inc/fltini.hxx
+++ b/binfilter/bf_sw/source/filter/inc/fltini.hxx
@@ -88,9 +88,6 @@ class LotusReader : public Reader
public:
};
-
-
-
class XMLReader : public Reader
{
virtual ULONG Read(SwDoc &,SwPaM &,const String &);
@@ -105,17 +102,12 @@ public:
SvStrings& rStrings ) const;
};
-// die speziellen Writer
-
-void GetW4WWriter( const String&, WriterRef& );
-void GetStgWriter( const String&, WriterRef& );
-void GetWWWriter( const String&, WriterRef& );
-
// Umsetzen der LRSpaces im aktuell importierten Doc. Die Fremd-Filter
// liefern immer absolute Werte fuer die Ebenen einer NumRule. Wir
// verarbeiten jetzt aber relative Werte bezogen auf das LR-Space-Item.
// Das hat zur Folge, das bei allen Absaetzen die EInzuege der NumRule vom
// Absatz-Einzug abgezogen werden muss.
+
class SwRelNumRuleSpaces
{
SwNumRuleTbl* pNumRuleTbl; // Liste aller benannten NumRules
diff --git a/binfilter/bf_sw/source/filter/inc/wrt_fn.hxx b/binfilter/bf_sw/source/filter/inc/wrt_fn.hxx
deleted file mode 100644
index ee0125a..0000000
--- a/binfilter/bf_sw/source/filter/inc/wrt_fn.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _WRT_FN_HXX
-#define _WRT_FN_HXX
-
-#include "hintids.hxx" // fuer die Konstanten
-
-namespace binfilter {
-
-class SfxPoolItem;
-class SfxItemSet;
-
-// einige Forward-Deklarationen
-class SwFmt;
-class SwNode;
-class SwCntntNode;
-class Writer;
-
-
-/* Funktionspointer auf die Attribut-Write-Funktionen */
-typedef Writer& (*FnAttrOut)( Writer&, const SfxPoolItem& );
-typedef FnAttrOut SwAttrFnTab[ POOLATTR_END - POOLATTR_BEGIN ];
-
-Writer& Out( const SwAttrFnTab, const SfxPoolItem&, Writer& );
-Writer& Out_SfxItemSet( const SwAttrFnTab, Writer&, const SfxItemSet&,
- BOOL bDeep, BOOL bTstForDefault = TRUE );
-
-
-/* Funktionspointer auf die Node-Write-Funktionen */
-
-enum RES_NODE
-{
-RES_NODE_BEGIN = 0,
- RES_TXTNODE = RES_NODE_BEGIN,
- RES_GRFNODE,
- RES_OLENODE,
-RES_NODE_END
-};
-
-typedef Writer& (*FnNodeOut)( Writer&, SwCntntNode& );
-typedef FnNodeOut SwNodeFnTab[ RES_NODE_END - RES_NODE_BEGIN ];
-
-Writer& Out( const SwNodeFnTab, SwNode&, Writer & rWrt );
-
-
-
-
-} //namespace binfilter
-#endif // _WRT_FN_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_sw/source/filter/makefile.mk b/binfilter/bf_sw/source/filter/makefile.mk
index 971f02d..951cb3e 100644
--- a/binfilter/bf_sw/source/filter/makefile.mk
+++ b/binfilter/bf_sw/source/filter/makefile.mk
@@ -49,7 +49,6 @@ INC+= -I$(PRJ)$/inc$/bf_sw
SUBLIBS= \
- $(SLB)$/sw_ascii.lib \
$(SLB)$/sw_basflt.lib \
$(SLB)$/sw_writer.lib \
$(SLB)$/sw_excel.lib \
diff --git a/binfilter/bf_sw/source/filter/w4w/makefile.mk b/binfilter/bf_sw/source/filter/w4w/makefile.mk
index f33f6f2..af3125a 100644
--- a/binfilter/bf_sw/source/filter/w4w/makefile.mk
+++ b/binfilter/bf_sw/source/filter/w4w/makefile.mk
@@ -54,9 +54,7 @@ CXXFILES = \
sw_w4wpar1.cxx \
sw_w4wpar2.cxx \
sw_w4wpar3.cxx \
- sw_w4wstk.cxx \
- sw_wrtgraf.cxx \
- sw_wrtw4w.cxx
+ sw_w4wstk.cxx
@@ -66,9 +64,7 @@ SLOFILES = \
$(SLO)$/sw_w4wpar1.obj \
$(SLO)$/sw_w4wpar2.obj \
$(SLO)$/sw_w4wpar3.obj \
- $(SLO)$/sw_w4wstk.obj \
- $(SLO)$/sw_wrtgraf.obj \
- $(SLO)$/sw_wrtw4w.obj
+ $(SLO)$/sw_w4wstk.obj
# --- Tagets -------------------------------------------------------
diff --git a/binfilter/bf_sw/source/filter/w4w/sw_w4watr.cxx b/binfilter/bf_sw/source/filter/w4w/sw_w4watr.cxx
index 1a0ec39..c37b11d 100644
--- a/binfilter/bf_sw/source/filter/w4w/sw_w4watr.cxx
+++ b/binfilter/bf_sw/source/filter/w4w/sw_w4watr.cxx
@@ -129,479 +129,28 @@ inline int HI_BYTE( USHORT n ) { return (int)( ( n >> 8 ) & 0xff ); }
inline int LO_BYTE( USHORT n ) { return (int)( n & 0xff ); }
-//-----------------------------------------------------------------------
-// Footnotes
-//
-
-static Writer& OutW4W_SwFtn( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SwFmtFtn& rFtnFmt = (const SwFmtFtn&)rHt;
- const SwTxtFtn& rFtn = *rFtnFmt.GetTxtFtn();
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
-
- do { // middle-check-loop
- if( !rFtn.GetStartNode() )
- break; // es gibt keine Kopf-/Fusszeile/Fussnote
-
- // Hole vom Node und vom letzten Node die Position in der Section
- SwNode* pSttNd = rWrt.pDoc->GetNodes()[ *rFtn.GetStartNode() ];
- ULONG nEnd = pSttNd->EndOfSectionIndex(),
- nStart = rFtn.GetStartNode()->GetIndex()+1;
-
- // kein Bereich also kein gueltiger Node
- if( nStart >= nEnd )
- break;
-
- static sal_Char cFNT[] = "FNT00\x1f"; // FootNote
- if ( rW4WWrt.pDoc->GetFtnInfo().ePos != FTNPOS_PAGE )
- cFNT[ 4 ] = '2'; // EndNote
-
- rWrt.Strm() << sW4W_RECBEGIN << cFNT;
-
- rWrt.OutHex( HI_BYTE(rFtn.GetFtn().GetNumber()) ) << cW4W_TXTERM;
- rWrt.OutHex( LO_BYTE(rFtn.GetFtn().GetNumber()) ) << cW4W_TXTERM;
- rWrt.Strm() << "00" << cW4W_TXTERM << "01" << cW4W_TXTERM << // gemogelt: # of lines
- "00" << cW4W_TXTERM << "01" << cW4W_TXTERM << // Old lines / lines in page
- "01" << cW4W_TXTERM << "FF" << cW4W_TXTERM << // const ( muss so sein )
- "13" << cW4W_TXTERM << "104" << cW4W_TXTERM << // gemogelte Raender
- "8D" << sW4W_TERMEND; // const
-
- W4WSaveData aSaveData( rW4WWrt, nStart, nEnd );
- rW4WWrt.pCurPam->GetMark()->nNode++;
- rW4WWrt.Out_SwDoc( rW4WWrt.pCurPam, FALSE );
-
- rWrt.Strm() << sW4W_RECBEGIN << "EFN" << cW4W_RED;
-
- } while( FALSE );
- return rWrt;
-}
-
-
-//-----------------------------------------------------------------------
// PageDescs
//
-void OutW4W_SwFmtPageDesc1( SwW4WWriter& rW4WWrt, const SwPageDesc* pPg )
+void OutW4W_SwFmtPageDesc1( const SwPageDesc* pPg )
{
- if ( rW4WWrt.bStyleDef // Was soll denn dieser Schwachsinn ???
- // Ignorieren, sonst verschluckt sich W4W
- || rW4WWrt.bHdFt ) // hier ignorieren ( mag WW2 nicht )
- return;
-
- if ( ( ( rW4WWrt.GetFilter() != 1 ) // Keiner (?) will ^L im Ascii-Text
- || ( rW4WWrt.GetIniFlags() & 0x10000 )
- )
- && rW4WWrt.bIsTxtInPgDesc
- )
- rW4WWrt.Strm() << sW4W_RECBEGIN << "HNP" << cW4W_RED;
-
- rW4WWrt.pPgDsc2 = pPg;
- const SwFrmFmt *pFrm = &(pPg->GetMaster()); //!!! GetLeft()
-#if OSL_DEBUG_LEVEL > 1
- rW4WWrt.Strm() << sW4W_RECBEGIN << "NOP_Pagedesc_Inhalt" << sW4W_TERMEND;
-#endif
- BOOL bOldPg = rW4WWrt.bPageDesc;
- rW4WWrt.bPageDesc = TRUE;
-
- OutW4W_SwFmt( rW4WWrt, *pFrm );
-
- rW4WWrt.bPageDesc = bOldPg;
-#if OSL_DEBUG_LEVEL > 1
- rW4WWrt.Strm() << sW4W_RECBEGIN << "NOP_Pagedesc_Inhalt_Ende" << sW4W_TERMEND ;//!!!
-#endif
- rW4WWrt.bIsTxtInPgDesc = FALSE;
return;
}
-static Writer& OutW4W_SwFmtPageDesc( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SwPageDesc* pPg = ((SwFmtPageDesc&)rHt).GetPageDesc();
-
- if( pPg ) // pPg == 0 : So was kommt vor
- OutW4W_SwFmtPageDesc1( (SwW4WWriter&)rWrt, pPg );
-
- return rWrt;
-}
-
-
-static BOOL OutW4W_SwFmtHeader1( SwW4WWriter& rWrt, const SwFmtHeader& rHd,
- const SwPageDesc * pPg, BOOL bFollow )
-{
- BOOL bHasFollow = FALSE;
-
- if( !rHd.IsActive() ) // nicht aktiv, dann nichts weiter ausgeben
- return FALSE;
-
- // hole einen Node zu dem Request
- SwCntntNode *pNode = 0;
- const SwFmtCntnt& rCntnt = rHd.GetHeaderFmt()->GetCntnt();
- if( rCntnt.GetCntntIdx() )
- pNode = rWrt.pDoc->GetNodes()[ rCntnt.GetCntntIdx()->GetIndex()+ 1 ]
- ->GetCntntNode();
-
- do { // middle-check-loop
- if( !pNode )
- break; // es gibt keine Kopf-/Fusszeile/Fussnote
-
- // Hole vom Node und vom letzten Node die Position in der Section
- ULONG nStart = pNode->StartOfSectionIndex()+1,
- nEnd = pNode->EndOfSectionIndex();
-
- // kein Bereich also kein gueltiger Node
- if( nStart >= nEnd )
- break;
- ASSERT( pPg, "Header-Attribut ohne PageDesc" );
-
- BYTE nFirst = 3; // Default: First and all Pages
- BYTE nDef = 0;
- // wird nicht die PageDesc-Tabelle ausgegeben und gibt es einen
- // Nachfolger, dann handelt es sich um die "1.Seite".
-
- if( !bFollow && pPg->GetFollow() && pPg->GetFollow() != pPg ){
- bHasFollow = TRUE;
- nFirst = 1;
- }
- else if( !pPg->IsHeaderShared() )
- {
- if( pPg->GetLeftFmt() &&
- rHd.GetHeaderFmt() == pPg->GetLeftFmt() )
- nDef |= 0x10; // Even Pages
- else if( pPg->GetRightFmt() &&
- rHd.GetHeaderFmt() == pPg->GetRightFmt() )
- nDef |= 0x8; // Odd Pages (Header1/Header2 ???)
- }
- else
- nDef |= 0x4; // All Pages
-
- if ( nDef == 0 ) nDef |= 0x4; // Default: odd + even pages
- if ( bHasFollow ) nDef |= 1; // 1. Seite -> "Header 2"
- if ( bFollow ) nFirst = 2; // 2 = Non-first page
-
- // hole erstmal die Ober-/Unterkanten vom Header/Footer
- const SvxULSpaceItem& rUL = rHd.GetHeaderFmt()->GetULSpace();
- const SvxLRSpaceItem& rLR = rHd.GetHeaderFmt()->GetLRSpace();
- const SvxLRSpaceItem& rPgLR = pPg->GetMaster().GetLRSpace();
-
- USHORT nNewLeft = rPgLR.GetLeft() + rLR.GetLeft();
- USHORT nNewRight = USHORT(pPg->GetMaster().GetFrmSize().GetWidth()
- - rPgLR.GetRight() - rLR.GetRight());
- if ( nNewRight - nNewLeft < 288 )
- nNewRight = nNewLeft + 288 ;
-
- rWrt.Strm() << sW4W_RECBEGIN << "HF200" << cW4W_TXTERM
- << '0' << cW4W_TXTERM;
- rWrt.OutULong( nNewLeft / 144 ) << cW4W_TXTERM;
- rWrt.OutULong( nNewRight / 144 )
- << cW4W_TXTERM << '1', cW4W_TXTERM;
- rWrt.OutULong( rUL.GetUpper() / 240 ) << sW4W_TERMEND;
-
- BOOL bOldHdFt = rWrt.bHdFt;
- rWrt.bHdFt = TRUE;
- {
- W4WSaveData aSaveData( rWrt, nStart, nEnd );
- rWrt.Out_SwDoc( rWrt.pCurPam, FALSE );
- }
- rWrt.bHdFt = bOldHdFt;
- rWrt.Strm() << sW4W_RECBEGIN << "HFX2" << cW4W_TXTERM; // # of Lines (hoffentlich egal)
- rWrt.OutHex( nDef )
- << cW4W_TXTERM // Definition Byte
- << '0' << cW4W_TXTERM; // Auto Height
- rWrt.OutULong( nFirst ) << sW4W_TERMEND; // First/NonFirst/All
-
- } while( FALSE );
- return bHasFollow;
-}
-
-// Header-Footer werden auch vom -Writer direkt gerufen, also kein static!
-
-Writer& OutW4W_SwFmtHeader( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- BOOL bFollow = OutW4W_SwFmtHeader1( rW4WWrt, (const SwFmtHeader&) rHt,
- rW4WWrt.pPgDsc2, FALSE );
- if ( bFollow )
- OutW4W_SwFmtHeader1( rW4WWrt,
- rW4WWrt.pPgDsc2->GetFollow()->GetMaster().GetHeader(), //!!! GetLeft()
- rW4WWrt.pPgDsc2->GetFollow(), TRUE );
- return rWrt;
-}
-
-static BOOL OutW4W_SwFmtFooter1( SwW4WWriter& rWrt, const SwFmtFooter& rHd,
- const SwPageDesc * pPg, BOOL bFollow )
-{
- BOOL bHasFollow = FALSE;
-
- if( !rHd.IsActive() ) // nicht aktiv, dann nichts weiter ausgeben
- return FALSE;
-
- // hole einen Node zu dem Request
- SwCntntNode *pNode = 0;
- const SwFmtCntnt& rCntnt = rHd.GetFooterFmt()->GetCntnt();
- if( rCntnt.GetCntntIdx() )
- pNode = rWrt.pDoc->GetNodes()[ rCntnt.GetCntntIdx()->GetIndex()+ 1 ]->
- GetCntntNode();
- do { // middle-check-loop
- if( !pNode )
- break; // es gibt keine Kopf-/Fusszeile/Fussnote
-
- // Hole vom Node und vom letzten Node die Position in der Section
- ULONG nStart = pNode->StartOfSectionIndex()+1,
- nEnd = pNode->EndOfSectionIndex();
-
- // kein Bereich also kein gueltiger Node
- if( nStart >= nEnd )
- break;
- ASSERT( pPg, "Footer-Attribut ohne PageDesc" );
-
- BYTE nFirst = 3; // Default: First and all Pages
- BYTE nDef = 2; // Default: Footer
- // wird nicht die PageDesc-Tabelle ausgegeben und gibt es einen
- // Nachfolger, dann handelt es sich um die "1.Seite" nach RTF.
-
- if( !bFollow && pPg->GetFollow() && pPg->GetFollow() != pPg ){
- bHasFollow = TRUE;
- nFirst = 1;
- }
- else if( !pPg->IsFooterShared() )
- {
- if( pPg->GetLeftFmt() &&
- rHd.GetFooterFmt() == pPg->GetLeftFmt() )
- nDef |= 0x10; // Even Pages
- else if( pPg->GetRightFmt() &&
- rHd.GetFooterFmt() == pPg->GetRightFmt() )
- nDef |= 0x8; // Odd Pages (Footer1/Footer2 ???)
- }
- else
- nDef |= 0x4; // All Pages
-
- if ( nDef == 2 ) nDef |= 0x4; // Default: odd + even pages
- if ( bHasFollow ) nDef |= 1; // 1. Seite -> "Footer 2"
- if ( bFollow ) nFirst = 2; // 2 = Non-first page
-
- // hole erstmal die Ober-/Unterkanten vom Header/Footer
- const SvxULSpaceItem& rUL = rHd.GetFooterFmt()->GetULSpace();
- const SvxLRSpaceItem& rLR = rHd.GetFooterFmt()->GetLRSpace();
- const SvxLRSpaceItem& rPgLR = pPg->GetMaster().GetLRSpace();
-
- USHORT nNewLeft = rPgLR.GetLeft() + rLR.GetLeft();
- USHORT nNewRight = USHORT(pPg->GetMaster().GetFrmSize().GetWidth()
- - rPgLR.GetRight() - rLR.GetRight());
- if ( nNewRight - nNewLeft < 288 )
- nNewRight = nNewLeft + 288 ;
-
- rWrt.Strm() << sW4W_RECBEGIN << "HF100" << cW4W_TXTERM
- << '0', cW4W_TXTERM;
- rWrt.OutULong( nNewLeft / 144 ) << cW4W_TXTERM;
- rWrt.OutULong( nNewRight / 144 )
- << cW4W_TXTERM << '1' << cW4W_TXTERM;
- rWrt.OutULong( 55 - rUL.GetUpper() / 240 ) << sW4W_TERMEND;
-
- BOOL bOldHdFt = rWrt.bHdFt;
- rWrt.bHdFt = TRUE;
- {
- W4WSaveData aSaveData( rWrt, nStart, nEnd );
- rWrt.Out_SwDoc( rWrt.pCurPam, FALSE );
- }
- rWrt.bHdFt = bOldHdFt;
- rWrt.Strm() << sW4W_RECBEGIN << "HFX2" << cW4W_TXTERM; // # of Lines (hoffentlich egal)
- rWrt.OutHex( nDef )
- << cW4W_TXTERM // Definition Byte
- << '0' << cW4W_TXTERM; // Auto Height
- rWrt.OutULong( nFirst ) << sW4W_TERMEND; // First/NonFirst/All
-
- } while( FALSE );
- return bHasFollow;
-}
-
-// Header-Footer werden auch vom -Writer direkt gerufen, also kein static!
-
-Writer& OutW4W_SwFmtFooter( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- BOOL bFollow = OutW4W_SwFmtFooter1( rW4WWrt, (const SwFmtFooter&) rHt,
- rW4WWrt.pPgDsc2, FALSE );
- if ( bFollow )
- OutW4W_SwFmtFooter1( rW4WWrt,
- rW4WWrt.pPgDsc2->GetFollow()->GetMaster().GetFooter(), //!!! GetLeft()
- rW4WWrt.pPgDsc2->GetFollow(), TRUE );
- return rWrt;
-}
-
-//--------------------------------------------------------------------
-
-
-
-static Writer& OutW4W_SwFmtBox( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- const SvxBoxItem& rBox = (const SvxBoxItem&)rHt;
- USHORT nBorder;
-
- rW4WWrt.OutW4W_GetBorder( &rBox, nBorder );
-
- rWrt.Strm() << sW4W_RECBEGIN << "PBC";
- rWrt.OutHex4( nBorder ) << sW4W_TERMEND;
-
- if ( rW4WWrt.bStyleDef || rW4WWrt.bStyleOnOff )
- rW4WWrt.GetStrm() << sW4W_RECBEGIN << "PBC0000" << sW4W_TERMEND;
- else
- rW4WWrt.GetNlStrm() << sW4W_RECBEGIN << "PBC0000" << sW4W_TERMEND;
-
- return rWrt;
-}
-
-
-
-Writer& OutW4W_SwChar( Writer& rWrt, sal_Unicode c, BOOL bRaw )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if ( bRaw )
- {
- sal_Char cOut = ByteString::ConvertFromUnicode( c, rW4WWrt.eTargCharSet );
- if( !cOut )
- cOut = c;
- rWrt.Strm() << cOut;
- return rWrt;
- }
-
- do { // block, damit aus diesem gesprungen werden kann !
- if( '\t' == c )
- rWrt.Strm() << sW4W_RECBEGIN << "TAB0" << sW4W_TERMEND;
- else if( '\n' == c )
- rWrt.Strm() << sW4W_RECBEGIN << "SNL" << cW4W_RED;
- else if( ' ' <= c && '~' >= c )
- rWrt.Strm() << (sal_Char)c;
- else if( CH_TXTATR_BREAKWORD == c || CH_TXTATR_INWORD == c )
- return rWrt;
- else
- break;
- return rWrt;
- } while( FALSE );
-
- rtl_TextEncoding eTargCSet = rW4WWrt.eTargCharSet;
-
- // der CodeSet fuer HEX / UCS
- sal_Char cPcCode = ByteString::ConvertFromUnicode( c, RTL_TEXTENCODING_IBM_850 );
- if( !cPcCode )
- cPcCode = '@'; /***** ?????? *******/
-
- sal_Char cTargCode = cPcCode;
- if( RTL_TEXTENCODING_IBM_850 != eTargCSet )
- {
- cTargCode = ByteString::ConvertFromUnicode( c, eTargCSet );
- if( !cTargCode )
- cTargCode = '@'; /***** ?????? *******/
- }
-
- if( '~' < cTargCode )
- {
- if( RTL_TEXTENCODING_MS_1252 == eTargCSet )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "XCS819" << cW4W_TXTERM; // ANSI
- rWrt.OutHex( cTargCode & 0xff ) << cW4W_RED;
- }
- else
- {
- rWrt.Strm() << sW4W_RECBEGIN << "XCS850" << cW4W_TXTERM; // IBMPC850
- rWrt.OutHex( cPcCode & 0xff ) << cW4W_RED;
- }
- rWrt.Strm() << sW4W_RECBEGIN << "UCS";
- rWrt.OutHex( cPcCode & 0xff ) << sW4W_TERMEND;
- }
- else if( ' ' > cPcCode )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "HEX";
- rWrt.OutHex( cPcCode & 0xff ) << cW4W_RED;
- }
- else
- rWrt.Strm() << (sal_Char)cTargCode;
- return rWrt;
-}
-Writer& OutW4W_String( Writer& rWrt, const String& rStr )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- BOOL bRaw = 0x40000 & rW4WWrt.GetIniFlags(); // 1: no XCS in struct names
- for( xub_StrLen n = 0; n < rStr.Len(); ++n )
- OutW4W_SwChar( rWrt, rStr.GetChar( n ), bRaw );
- return rWrt;
-}
-static void CalcFontSize( SwW4WWriter & rW4WWrt, const SwFmt& rFmt,
+static void CalcFontSize( const SwFmt& rFmt,
USHORT& rFontId, USHORT& rFontHeight )
{
- UINT32 nFontHeight = rFmt.GetSize().GetHeight();
+/* UINT32 nFontHeight = rFmt.GetSize().GetHeight();
rFontHeight = ( nFontHeight > USHRT_MAX ) ? USHRT_MAX : (USHORT)nFontHeight;
rFontId = rW4WWrt.GetId( rFmt.GetFont() );
+*/
}
-/*
- * Format wie folgt ausgeben:
- * - gebe die Attribute aus; ohne Parents!
- */
-
-Writer& OutW4W_SwFmt( Writer& rWrt, const SwFmt& rFmt )
-{
- SwW4WWriter & rW4WWrt = (SwW4WWriter&)rWrt;
-
- switch( rFmt.Which() )
- {
- case RES_CONDTXTFMTCOLL:
- case RES_TXTFMTCOLL:
- {
- USHORT nFontHeight, nFontId;
- CalcFontSize( rW4WWrt, rFmt, nFontId, nFontHeight );
-
- // dann gebe mal das "W4W"-FontAttribut aus
- rW4WWrt.Strm() << sW4W_RECBEGIN << "SPF10" << cW4W_TXTERM
- << '0' << cW4W_TXTERM << "10" << cW4W_TXTERM;
- rWrt.OutULong( nFontId ) << cW4W_TXTERM;
- rWrt.OutULong( nFontHeight ) << cW4W_TXTERM;
- OutW4W_String( rWrt, rW4WWrt.GetFont( nFontId ).GetFamilyName() ).Strm()
- << sW4W_TERMEND;
-
- // akt. Collection-Pointer am Writer setzen
- rW4WWrt.pNdFmt = &rFmt;
-
- const SfxItemSet& rSet = rFmt.GetAttrSet();
- if( rSet.Count() )
- {
- const SfxItemPool& rPool = *rSet.GetPool();
- const SfxPoolItem* pItem;
- SfxWhichIter aIter( rSet );
- register USHORT nWhich = aIter.FirstWhich();
- while( nWhich )
- {
- switch( nWhich )
- {
- case RES_CHRATR_FONT:
- case RES_CHRATR_PROPORTIONALFONTSIZE:
- case RES_CHRATR_FONTSIZE:
- break;
- default:
- if( SFX_ITEM_SET == rSet.GetItemState( nWhich,
- TRUE, &pItem ) &&
- *pItem != rPool.GetDefaultItem( nWhich ) )
- Out( aW4WAttrFnTab, *pItem, rWrt );
- }
- nWhich = aIter.NextWhich();
- }
- }
- }
- break;
-
- default:
- Out_SfxItemSet( aW4WAttrFnTab, rWrt, rFmt.GetAttrSet(), TRUE );
- break;
- }
-
- return rWrt;
-}
-
-
/* Ausgabe der Nodes */
@@ -659,7 +208,7 @@ public:
{ return _W4WEndPosLst::operator[]( nPos ); }
USHORT Count()
{ return _W4WEndPosLst::Count(); }
- void OutAttr( SwW4WWriter & rWrt, USHORT nStrPos, USHORT nEnde );
+// void OutAttr( SwW4WWriter & rWrt, USHORT nStrPos, USHORT nEnde );
};
BOOL W4WEndPosLst::Insert( W4WSttEndPos & aNew )
@@ -678,798 +227,6 @@ BOOL W4WEndPosLst::Insert( W4WSttEndPos & aNew )
return TRUE;
}
-void W4WEndPosLst::OutAttr( SwW4WWriter & rWrt, USHORT nStrPos, USHORT nEnde )
-{
- rWrt.bAttrOnOff = FALSE;
- USHORT nWhch;
- while( 0 != Count() && ( nStrPos >= nEnde ||
- *operator[]( 0 ).pTxtAttr->GetEnd() == nStrPos ))
- {
- // das setzen der alten Attribut-Werte erfolgt nur durch die
- // entsprechenden Attribute !!
- const W4WSttEndPos& rSTPos = *GetData();
- if( ( nWhch = rSTPos.pTxtAttr->Which()) == RES_CHRATR_FONTSIZE ||
- nWhch == RES_CHRATR_PROPORTIONALFONTSIZE )
- rWrt.nFontHeight = rSTPos.nFontSize;
- else if( nWhch == RES_CHRATR_FONT )
- rWrt.nFontId = rSTPos.nFontId;
- Out( aW4WAttrFnTab, rSTPos.pTxtAttr->GetAttr(), rWrt );
- Delete();
- }
-}
-
-
-static Writer& OutW4W_SwTxtNode( Writer& rWrt, SwCntntNode & rNode )
-{
- SwTxtNode * pNd = &((SwTxtNode&)rNode);
- SwW4WWriter & rW4WWrt = (SwW4WWriter&)rWrt;
- W4WEndPosLst aW4WEndPosLst;
- xub_StrLen nAttrPos = 0;
- xub_StrLen nStrPos = rW4WWrt.pCurPam->GetPoint()->nContent.GetIndex();
-
- const String& rStr = pNd->GetTxt();
- xub_StrLen nEnde = rStr.Len();
- if( rW4WWrt.pCurPam->GetPoint()->nNode == rW4WWrt.pCurPam->GetMark()->nNode )
- nEnde = rW4WWrt.pCurPam->GetMark()->nContent.GetIndex();
-
- BOOL bLastPara = ( !rW4WWrt.bLastPg
- && ( rW4WWrt.pCurPam->GetPoint()->nNode >= rW4WWrt.pNxtPg->nNode ) );
-
- // akt. Collection-Pointer am Writer setzen
- rW4WWrt.pNdFmt = &pNd->GetAnyFmtColl();
-
- // bestimme die aktuelle FontSize aus der Collection
- CalcFontSize( rW4WWrt, *rW4WWrt.pNdFmt, rW4WWrt.nFontId, rW4WWrt.nFontHeight );
-
- if( rW4WWrt.bWriteAll || rW4WWrt.bTable )
- rW4WWrt.Out_SwTxtColl_OnOff( (SwTxtFmtColl&)*rW4WWrt.pNdFmt,
- pNd->GetpSwAttrSet(), TRUE );
- // erste Zeile und nur Teilweise ausgeben
-
- // ist der aktuelle Absatz in einem freifliegenden Rahmen ? Dann
- // muessen noch die Attribute dafuer ausgegeben werden.
- if( rW4WWrt.pFlyFmt )
- Out_SfxItemSet( aW4WAttrFnTab, rW4WWrt, rW4WWrt.pFlyFmt->GetAttrSet(), TRUE );
-
- // erstmal den Start berichtigen. D.h. wird nur ein Teil vom Satz
- // ausgegeben, so muessen auch da die Attribute stimmen!!
- const SwTxtAttr* pHt = 0;
- USHORT nCntAttr = pNd->HasHints() ? pNd->GetSwpHints().Count() : 0;
- if( nCntAttr && nStrPos > *( pHt = pNd->GetSwpHints()[ 0 ] )->GetStart() )
- {
- // Ok, es gibt vorher Attribute, die ausgegeben werden muessen
- rW4WWrt.bTxtAttr = rW4WWrt.bAttrOnOff = TRUE;
- do {
- nAttrPos++;
- if( RES_TXTATR_FIELD == pHt->Which() ) // Felder nicht
- continue; // ausgeben
-
- if( pHt->GetEnd() )
- if( *pHt->GetEnd() != *pHt->GetStart() )
- {
- W4WSttEndPos aW4WSttEndPos( pHt,rW4WWrt.nFontHeight,
- rW4WWrt.nFontId );
- aW4WEndPosLst.Insert( aW4WSttEndPos );
- }
- Out( aW4WAttrFnTab, pHt->GetAttr(), rW4WWrt );
- } while( nAttrPos < nCntAttr && nStrPos >
- *( pHt = pNd->GetSwpHints()[ nAttrPos ] )->GetStart() );
- rW4WWrt.bTxtAttr = FALSE;
- }
-
- if( !rW4WWrt.bWriteAll && rW4WWrt.bFirstLine )
- {
- ASSERT( !&rWrt, "Teilausgabe der Dokuments nicht implementiert" );
- }
-
-
- for( ; nStrPos <= nEnde; nStrPos++ )
- {
- rW4WWrt.bTxtAttr = TRUE;
- aW4WEndPosLst.OutAttr( rW4WWrt, nStrPos, nEnde );
- rW4WWrt.bAttrOnOff = TRUE;
- if( nAttrPos < nCntAttr && *pHt->GetStart() == nStrPos
- && nStrPos != nEnde )
- {
- do {
- if( pHt->GetEnd() )
- {
- if( *pHt->GetEnd() != nStrPos )
- {
- W4WSttEndPos aW4WSttEndPos( pHt, rW4WWrt.nFontHeight,
- rW4WWrt.nFontId );
- aW4WEndPosLst.Insert( aW4WSttEndPos );
- Out( aW4WAttrFnTab, pHt->GetAttr(), rW4WWrt );
- }
- }
- else
- Out( aW4WAttrFnTab, pHt->GetAttr(), rW4WWrt );
- nAttrPos++;
- } while( nAttrPos < nCntAttr && nStrPos ==
- *( pHt = pNd->GetSwpHints()[ nAttrPos ] )->GetStart() );
- }
-
- if ( bLastPara
- && ( nStrPos >= rW4WWrt.pNxtPg->nContent.GetIndex() ))
- {
- rW4WWrt.Strm() << sW4W_RECBEGIN << "SNP" << cW4W_RED;
-
- ASSERT( rW4WWrt.pIter->GetPageDesc(), "PageDesc weg");
- rW4WWrt.pPageDesc = rW4WWrt.pIter->GetPageDesc();
- rW4WWrt.pPgFrm = (SwFrmFmt*)&(rW4WWrt.pPgDsc2->GetMaster()); //!!! GetLeft()
- rW4WWrt.bEvenPage = !rW4WWrt.bEvenPage;
-
- rW4WWrt.pIter->NextPage();
- rW4WWrt.bLastPg = !(rW4WWrt.pIter->GetPosition( *rW4WWrt.pNxtPg ));
-
- bLastPara = ( !rW4WWrt.bLastPg &&
- (rW4WWrt.pCurPam->GetPoint()->nNode >= rW4WWrt.pNxtPg->nNode ));
- }
- if( nStrPos != nEnde ) // eigentliche Buchstaben ausgeben
- OutW4W_SwChar( rW4WWrt, rStr.GetChar( nStrPos ), FALSE );
- rW4WWrt.bTxtAttr = FALSE;
- }
- // wenn bis zum Ende vom Node, dann auch das AbsatzEnde ausgeben
-
- if( rW4WWrt.pCurPam->GetMark()->nNode.GetIndex() !=
- rW4WWrt.pCurPam->GetPoint()->nNode.GetIndex()
- || pNd->Len() == rW4WWrt.pCurPam->GetMark()->nContent.GetIndex()
- && !rW4WWrt.bTable ){
-
- rW4WWrt.Out_SwTxtColl_OnOff( (SwTxtFmtColl&)pNd->GetAnyFmtColl(),
- 0, FALSE ); // STF
-
- rW4WWrt.Strm() << sW4W_RECBEGIN << "HNL" << cW4W_RED;
-
- if ( rW4WWrt.pPostNlStrm)
- {
- // gebe die Sachen aus, die hinter HNL
- // kommen muessen (RSP, SAF, SBF)
- rW4WWrt.pPostNlStrm->Seek( 0L );
- rW4WWrt.Strm() << *rW4WWrt.pPostNlStrm;
- DELETEZ( rW4WWrt.pPostNlStrm );
- }
- }
- else if( rW4WWrt.bTable )
- rW4WWrt.Out_SwTxtColl_OnOff( (SwTxtFmtColl&)pNd->GetAnyFmtColl(), 0, FALSE );
-
- rW4WWrt.bIsTxtInPgDesc = TRUE;
- return rW4WWrt;
-}
-
-
-static Writer& OutW4W_SwGrfNode( Writer& rWrt, SwCntntNode & rNode )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- rW4WWrt.OutW4W_Grf( rNode.GetGrfNode() );
- return rWrt;
-}
-
-static Writer& OutW4W_SwOLENode( Writer& rWrt, SwCntntNode& /*rNode*/ )
-{
- rWrt.Strm() << sW4W_RECBEGIN << "HNL" << cW4W_RED;
- return rWrt;
-}
-
-
-/* File CHRATR.HXX: */
-
-static Writer& OutW4W_SwFont( Writer& rWrt, const SfxPoolItem& rHt )
-{
- /* trage den Font in die Font-Liste vom Writer ein und gebe hier nur
- * die entsprechende Nummer aus. Der Font wird spaeter ueber diese
- * Tabelle im W4W-Dokument referenziert.
- */
- const SvxFontItem& rFont = (const SvxFontItem&)rHt;
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( rW4WWrt.bAttrOnOff )
- rW4WWrt.nFontId = rW4WWrt.GetId( rFont );
-
- rWrt.Strm() << sW4W_RECBEGIN << "SPF10" << cW4W_TXTERM << '0' << cW4W_TXTERM
- << "10" << cW4W_TXTERM;
- rWrt.OutULong( rW4WWrt.nFontId ) << cW4W_TXTERM;
- rWrt.OutULong( rW4WWrt.nFontHeight ) << cW4W_TXTERM;
- OutW4W_String( rWrt, rW4WWrt.GetFont( rW4WWrt.nFontId ).GetFamilyName())
- .Strm() << sW4W_TERMEND;
- return rWrt;
-}
-
-static Writer& OutW4W_SwPosture( Writer& rWrt, const SfxPoolItem& rHt )
-{
- if( ITALIC_NONE != ((const SvxPostureItem&)rHt).GetPosture() )
- {
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), "ITO" );
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr), "ITF" );
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwWeight( Writer& rWrt, const SfxPoolItem& rHt )
-{
- if( WEIGHT_BOLD == ((const SvxWeightItem&)rHt).GetWeight() )
- {
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), "BBT" );
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr), "EBT" );
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwShadowed( Writer& rWrt, const SfxPoolItem& rHt )
-{
- if( ((const SvxShadowedItem&)rHt).GetValue() )
- {
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), "BSP" );
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "ESP" );
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwContour( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwKerning( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxKerningItem& rKern = (const SvxKerningItem&)rHt;
-
- long nDist = 0;
- long nPos = 1;
-
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rKern.GetValue() )
- {
- OUTRECORD( ((SwW4WWriter&)rWrt).Strm(), "EKR" );
- return rWrt;
- }
-
-#ifdef JP_NEWCORE
- // JP 23.09.94, wie nun ?????
- Fraction aTmp( 20, 1 );
- aTmp += rKern.frKern;
- nDist = (long)aTmp; // in Twips umrechnen
- if( nDist < 0 )
- {
- nDist = -nDist;
- nPos = 0;
- }
-#endif
-
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "KER";
- rWrt.OutLong( nPos ) << cW4W_TXTERM;
- rWrt.OutLong( nDist ) << sW4W_TERMEND;
- }
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "EKR" );
-
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwCrossedOut( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxCrossedOutItem& rCrossOut = (const SvxCrossedOutItem&)rHt;
- if( STRIKEOUT_SINGLE == rCrossOut.GetStrikeout() )
- {
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "BSO";
- OutW4W_SwChar( rWrt, rCrossOut.GetStrikeout(), TRUE ).Strm()
- << sW4W_TERMEND;
- }
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "ESO" );
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwCaseMap( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( SVX_CASEMAP_KAPITAELCHEN == ((const SvxCaseMapItem&)rHt).GetValue() )
- {
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), "BCS" );
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "ECS" );
- }
- else if( SVX_CASEMAP_VERSALIEN == ((const SvxCaseMapItem&)rHt).GetValue() )
- {
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), "BCU" );
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "ECU" );
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwUnderline( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxUnderlineItem & rULine = (const SvxUnderlineItem&)rHt;
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- const sal_Char *pSttStr, *pEndStr;
- if( UNDERLINE_SINGLE == rULine.GetUnderline() )
- {
- pSttStr = "BUL";
- pEndStr = "EUL";
-
- }
- else if( UNDERLINE_DOUBLE == rULine.GetUnderline() )
- {
- pSttStr = "BDU";
- pEndStr = "EDU";
- }
- else if( UNDERLINE_NONE == rULine.GetUnderline() )
- {
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "EUL" );
- return rWrt;
- }
- else
- return rWrt;
-
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), pSttStr );
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), pEndStr );
-
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwLanguage( Writer& rWrt, const SfxPoolItem& rHt )
-{
- // die Werte des Enums sind mit den Werten fuer W4W identisch
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- {
- USHORT nLang = ((const SvxLanguageItem&)rHt).GetValue();
- if( LANGUAGE_DONTKNOW == nLang )
- nLang = 0;
- rWrt.Strm() << sW4W_RECBEGIN << "SLG";
- rWrt.OutULong( nLang ) << sW4W_TERMEND;
- }
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "SLG";
- rWrt.OutULong( LANGUAGE_DONTKNOW == rW4WWrt.nDefLanguage
- ? 0 : rW4WWrt.nDefLanguage ) << sW4W_TERMEND;
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwEscapement( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxEscapementItem & rEsc = (const SvxEscapementItem&)rHt;
- const sal_Char *pSttStr, *pEndStr;
-
- if( 0 < rEsc.GetEsc() )
- {
- pSttStr = "SPS";
- pEndStr = "EPS";
- }
- else if( 0 > rEsc.GetEsc() )
- {
- pSttStr = "SBS";
- pEndStr = "EBS";
- }
- else
- return rWrt;
-
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff )
- OUTRECORD( rWrt.Strm(), pSttStr );
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), pEndStr );
-
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwSize( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxFontHeightItem& rSize = (const SvxFontHeightItem&)rHt;
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
-
- if( rW4WWrt.bAttrOnOff )
- rW4WWrt.nFontHeight = (USHORT)rSize.GetHeight();
-
- rWrt.Strm() << sW4W_RECBEGIN << "SPF10" << cW4W_TXTERM << '0' << cW4W_TXTERM
- << "10" << cW4W_TXTERM;
- rWrt.OutULong( rW4WWrt.nFontId ) << cW4W_TXTERM;
- rWrt.OutULong( rW4WWrt.nFontHeight) << cW4W_TXTERM;
- OutW4W_String( rWrt, rW4WWrt.GetFont( rW4WWrt.nFontId ).GetFamilyName() )
- .Strm() << sW4W_TERMEND;
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwColor( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( rW4WWrt.bStyleDef && ( rW4WWrt.GetFilter() == 44 || rW4WWrt.GetFilter() == 49 ) )
- return rWrt; //!! umpopel W4W-Bug: Farbe in Style -> Farbe immer
-
-
- if( !rW4WWrt.bTxtAttr || !rW4WWrt.bAttrOnOff )
- OUTRECORD( rW4WWrt.GetStrm( !rW4WWrt.bTxtAttr ), "ECL" );
-
- if( !(!rW4WWrt.bTxtAttr || rW4WWrt.bAttrOnOff ))
- return rWrt;
-
- const SvxColorItem& rCol = (const SvxColorItem&)rHt;
- USHORT nCol = 0;
- if( rCol.GetValue().GetRed() )
- nCol |= rCol.GetValue().GetRed() & 0x80 ? 0x0C : 0x04;
- if( rCol.GetValue().GetGreen())
- nCol |= rCol.GetValue().GetGreen() & 0x80 ? 0x0A : 0x02;
- if( rCol.GetValue().GetBlue() )
- nCol |= rCol.GetValue().GetBlue() & 0x80 ? 0x09 : 0x01;
-
-// laut Spec hex, laut output dec ?? rWrt.OutHex( nCol )
- rWrt.Strm() << sW4W_RECBEGIN << "BCL";
- rWrt.OutULong( nCol) << cW4W_TXTERM;
- rWrt.OutULong( rCol.GetValue().GetRed() ) << cW4W_TXTERM;
- rWrt.OutULong( rCol.GetValue().GetGreen() ) << cW4W_TXTERM;
- rWrt.OutULong( rCol.GetValue().GetBlue() ) << sW4W_TERMEND;
-
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwField( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SwField* pFld = ((SwFmtFld&)rHt).GetFld();
-
- switch( pFld->GetTyp()->Which() )
- {
- case RES_PAGENUMBERFLD: rWrt.Strm() << sW4W_RECBEGIN << "PPN";
- break;
- case RES_DOCSTATFLD: rWrt.Strm() << sW4W_RECBEGIN << "PLN";
- break;
- default: // nicht unterstuetztes Feld
-#if OSL_DEBUG_LEVEL > 1
- rWrt.Strm() << sW4W_RECBEGIN
- << "NOP_Unsupported_Field" << cW4W_RED;
- break;
-#else
- return rWrt; // Nix ausgeben
-#endif
- }
- rWrt.Strm() << cW4W_RED;
- return rWrt;
-}
-
-
-
-/* File FRMATR.HXX */
-
-static Writer& OutW4W_SwFrmSize( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwFillOrder( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwBreak( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter & rW4WWrt = (SwW4WWriter&)rWrt;
-
- if ( rW4WWrt.bHdFt ) // hier ignorieren ( mag WW2 nicht )
- return rWrt;
- const SvxFmtBreakItem &rBreak = (const SvxFmtBreakItem&)rHt;
-
-#ifdef JP_NEWCORE
- was ist mit Column-Break ???
- - ist das 1. If ohne Block so richtig ???
- der String No_PageBreak wird immer ausgegeben !!!!
-#endif
-
- if( SVX_BREAK_NONE != rBreak.GetBreak() )
-
- if ( ( rW4WWrt.GetFilter() != 1 ) // Keiner (?) will ^L im Ascii-Text
- || ( rW4WWrt.GetIniFlags() & 0x10000)
- )
- OUTRECORD( rWrt.Strm(), "HNP" );
-
- rWrt.Strm() << sW4W_RECBEGIN << "NOP_PageBreak" << sW4W_TERMEND;//!!!
- //!!! PAGEBREAK_AFTER stimmt nicht
-
- return rWrt;
-}
-
-static Writer& OutW4W_SwPaperBin( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwFmtLRSpace( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter & rW4WWrt = (SwW4WWriter&)rWrt;
-
- // hole erstmal die Seitenangaben
- const SwFrmFmt* pFmtPage = rW4WWrt.pPgFrm;
- const SvxLRSpaceItem& rPageLR = pFmtPage->GetLRSpace();
- const SwFmtFrmSize& rSz = pFmtPage->GetFrmSize();
- const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&)rHt;
-
- USHORT nLeft = (USHORT)rLR.GetTxtLeft();
- USHORT n1st = nLeft + (USHORT)rLR.GetTxtFirstLineOfst();
- USHORT nRight = (USHORT)(rSz.GetWidth() - rLR.GetRight() );
- if ( !rW4WWrt.bPageDesc )
- {
- nLeft += (USHORT)rPageLR.GetLeft();
- n1st += (USHORT)rPageLR.GetLeft();
- nRight -= (USHORT)rPageLR.GetRight();
- }
-#ifdef NIE // Besser ist IPS statt RSM/STM
- rWrt.Strm() << W4W_RECBEGIN << "RSM0" << W4W_TXTERM
- << '0' << W4W_TXTERM
- << String((long)Fraction( nLeft, 144 )).GetStr() << W4W_TXTERM
- << String((long)Fraction( nRight, 144 )).GetStr()
- << W4W_TXTERM
- << String(nLeft).GetStr() << W4W_TXTERM
- << String(nRight).GetStr() << W4W_TXTERM
- << W4W_RED;
-#endif //NIE
- // Benutze IPS fuer links, 1.Zeile, rechts
-
- rWrt.Strm() << sW4W_RECBEGIN << "IPS";
- rWrt.OutLong( nLeft / 144 ) << cW4W_TXTERM;
- rWrt.OutLong( n1st / 144 ) << cW4W_TXTERM;
- rWrt.OutLong( nLeft ) << cW4W_TXTERM;
- rWrt.OutLong( n1st ) << cW4W_TXTERM;
- rWrt.OutLong( nRight ) << sW4W_TERMEND;
-
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtULSpace( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if ( rW4WWrt.bPageDesc ) // SBF/SAF geht nur fuer Absaetze, fuer
- return rWrt; // Pagedesc sollte STP/SBP sein oder ignorieren
-
- const SvxULSpaceItem & rUL = (const SvxULSpaceItem&)rHt;
-
- if( 0 != rUL.GetUpper() )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "SBF";
- rWrt.OutLong( rUL.GetUpper() ) << cW4W_TXTERM
- << '0' << sW4W_TERMEND; // WW2-Hack: Wenn nLines != 0 ist,
- // muessen nLines HNL1 folgen, sonst
- // wird HNL ignoriert. Es duerfen aber auch
- // nicht zu viele HNL1 da sein, da sie sonst
- // als HNL interpretiert werden. Deshalb behaupte
- // ich, dass nLines = 0 statt nLines = GetUpper()/240.
- // Das SBF duerfte daher bei zeilenorientierten
- // Formaten verloren gehen.
-
- if ( rW4WWrt.bStyleDef || rW4WWrt.bStyleOnOff )
- rW4WWrt.GetStrm() << sW4W_RECBEGIN << "SBF" << '0' << cW4W_TXTERM
- << '0' << sW4W_TERMEND;
- else
- rW4WWrt.GetNlStrm() << sW4W_RECBEGIN << "SBF" << '0' << cW4W_TXTERM
- << '0' << sW4W_TERMEND; // Wieder zurueckstellen ??
- }
- if( 0 != rUL.GetLower() )
- {
- rWrt.Strm() << sW4W_RECBEGIN << "SAF";
- rWrt.OutLong( rUL.GetLower() ) << cW4W_TXTERM
- << '0' << sW4W_TERMEND; // WW2-Hack, siehe oben. Erschwerend
- // kommt hinzu, dass hier die HNL1 *vor*
- // dem HNL stehen muessen....
-
- if ( rW4WWrt.bStyleDef || rW4WWrt.bStyleOnOff )
- rW4WWrt.GetStrm() << sW4W_RECBEGIN << "SAF" << '0' << cW4W_TXTERM
- << '0' << sW4W_TERMEND; // Wieder zurueckstellen ??
- else
- rW4WWrt.GetNlStrm() << sW4W_RECBEGIN << "SAF" << '0' << cW4W_TXTERM
- << '0' << sW4W_TERMEND;
- }
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtPrint( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtOpaque( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtProtect( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtSurround( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtVertOrient( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwFmtHoriOrient( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-/* File GRFATR.HXX */
-
-static Writer& OutW4W_SwMirrorGrf( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-static Writer& OutW4W_SwCropGrf( Writer& rWrt, const SfxPoolItem& /*rHt*/ )
-{
- return rWrt;
-}
-
-
-/* File PARATR.HXX */
-
-static Writer& OutW4W_SwLineSpacing( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxLineSpacingItem &rLs = (const SvxLineSpacingItem&)rHt;
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
-
- switch( rLs.GetLineSpaceRule() )
- {
- case SVX_LINE_SPACE_AUTO:
- case SVX_LINE_SPACE_FIX:
- case SVX_LINE_SPACE_MIN:
- {
-
- short nLsp = 0;
-
- switch( rLs.GetInterLineSpaceRule() )
- {
- case SVX_INTER_LINE_SPACE_FIX: // Durchschuss
- nLsp = 240 + rLs.GetInterLineSpace();
- break;
- case SVX_INTER_LINE_SPACE_PROP: // 1.5, 2-zeilig, Prop
- {
- long nTmp = 240;
- nTmp *= rLs.GetPropLineSpace();
- nLsp = (short)nTmp;
- }
- break;
- default: // z.B. Minimum
- nLsp = rLs.GetLineHeight();
- break;
- }
- if ( nLsp < 60 ) nLsp = 60; // keine sinnlosen Werte
- rW4WWrt.Strm() << sW4W_RECBEGIN
- << "RSP2" << cW4W_TXTERM; // old Spacing 1-zeilig
- rWrt.OutLong( ( nLsp + 60 ) / 120 ) << cW4W_TXTERM; // new in 1/2 zeilen
- rWrt.OutLong( nLsp ) << sW4W_TERMEND; // dito in Twips
-
- if ( rW4WWrt.bStyleDef || rW4WWrt.bStyleOnOff )
- rW4WWrt.GetStrm() << sW4W_RECBEGIN // RSP per StylePostNlStrm
- << "RSP2" << cW4W_TXTERM // wieder ausschalten
- << '2' << cW4W_TXTERM
- << "240" << sW4W_TERMEND;
- else
- rW4WWrt.GetNlStrm() << sW4W_RECBEGIN // RSP per StylePostNlStrm
- << "RSP2" << cW4W_TXTERM // wieder ausschalten
- << '2' << cW4W_TXTERM
- << "240" << sW4W_TERMEND;
- }
- break;
- default:
- break;
- }
- return rWrt;
-}
-
-static Writer& OutW4W_SwAdjust( Writer& rWrt, const SfxPoolItem& rHt )
-{
- const SvxAdjustItem & rAdjust = ((const SvxAdjustItem&)rHt);
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
-
- switch( rAdjust.GetAdjust() )
- {
- case SVX_ADJUST_RIGHT:
- {
- rW4WWrt.Strm() << sW4W_RECBEGIN << "AFR10" << cW4W_TXTERM
- << "10" << cW4W_TXTERM
- << '0' << sW4W_TERMEND;
- OUTRECORD( rW4WWrt.GetStrm(), "EAT" );
- }
- break;
- case SVX_ADJUST_BLOCK:
- case SVX_ADJUST_BLOCKLINE:
- {
- OUTRECORD( rW4WWrt.Strm(), "BRJ" );
- OUTRECORD( rW4WWrt.GetStrm(), "ERJ" );
- }
- break;
-
- case SVX_ADJUST_CENTER:
- {
- rW4WWrt.Strm() << sW4W_RECBEGIN << "CTX0" << cW4W_TXTERM
- << '0' << cW4W_TXTERM
- << '0' << sW4W_TERMEND;
- OUTRECORD( rW4WWrt.GetStrm(), "ECT" );
- }
- break;
- default:
- break;
- }
- return rWrt;
-}
-
-
-static Writer& OutW4W_SwSplit( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- if( !((SvxFmtSplitItem&)rHt).GetValue() )
- OUTRECORD( rW4WWrt.GetStrm(), "KEP" );
- return rWrt;
-}
-
-static Writer& OutW4W_SwWidows( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- const SvxWidowsItem& rWid = (const SvxWidowsItem&)rHt;
-
- rW4WWrt.Strm() << sW4W_RECBEGIN << "WON";
- rWrt.OutLong( rWid.GetValue() ) << sW4W_TERMEND;
- OUTRECORD( rW4WWrt.GetStrm(), "WOY" );
-
- return rWrt;
-}
-
-static Writer& OutW4W_SwOrphans( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- const SvxOrphansItem& rOr = (const SvxOrphansItem&)rHt;
-
- rW4WWrt.Strm() << sW4W_RECBEGIN << "WON";
- rWrt.OutLong( rOr.GetValue() ) << sW4W_TERMEND;
- OUTRECORD( rW4WWrt.GetStrm(), "WOY" );
- return rWrt;
-}
-
#define MAX_TAB_OVER 1000 // soviel twips ueberhaengen ist ok
@@ -1480,252 +237,6 @@ static Writer& OutW4W_SwOrphans( Writer& rWrt, const SfxPoolItem& rHt )
// werden, ist ok, da WW2 dann die Tabs immer noch anerkennt
-static Writer& OutW4W_SwTabStop( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
-
- const SvxTabStopItem & rTStops = (const SvxTabStopItem&)rHt;
- SwTwips nLeftMargin, nWidth;
- rW4WWrt.GetMargins( nLeftMargin, nWidth );
-
- BYTE aTabPosArr[ 32 ];
- BYTE aTabTypesArr[ 20 ];
- BYTE aTabLeadingArr[ 40 ];
-
- memset( aTabPosArr, 0, 32 );
- memset( aTabTypesArr, 0, 20 );
- memset( aTabLeadingArr, 0, 40 );
- // Umsetzungtabelle fuer das Adjustment
- static BYTE const aAdjustArr[ SVX_TAB_ADJUST_DEFAULT - SVX_TAB_ADJUST_LEFT +1 ] = {
- /* SVX_TAB_ADJUST_LEFT */ 0,
- /* SVX_TAB_ADJUST_RIGHT */ 2,
- /* SVX_TAB_ADJUST_DECIMAL */ 3,
- /* SVX_TAB_ADJUST_CENTER */ 1,
- /* SVX_TAB_ADJUST_DEFAULT */ 0
- };
-
- USHORT n;
- for( n = 0; n < rTStops.Count() && n < 40; n++ )
- {
- const SvxTabStop & rTS = rTStops[ n ]; // in 1/10 Inch
- SwTwips nTabRel = rTS.GetTabPos();
- if ( nTabRel > nWidth + MAX_TAB_OVER ) // teste auf Sinn der Positionen
- continue; // Tab out of SRange
- if ( nTabRel > nWidth )
- nTabRel = nWidth; // Tab nur wenig out of SRange
-
- USHORT nSize = (USHORT)( ((long)(nLeftMargin + nTabRel)) / 144 );
- if ( nSize / 8 >= 32 ) // Stuss-Werte -> ignorieren
- continue;
- aTabPosArr[ nSize / 8 ] |= ( 0x80 >> ( nSize % 8 ));
- aTabTypesArr[ n / 2 ] |= ( n & 1 ? aAdjustArr[ rTS.GetAdjustment() ] :
- aAdjustArr[ rTS.GetAdjustment() ] << 4 );
- if( cDfltFillChar != rTS.GetFill() )
- aTabLeadingArr[ n ] = rTS.GetFill();
- }
-
- rWrt.Strm() << sW4W_RECBEGIN << "NTB";
- for( n = 0; n < 32; ++n )
- rWrt.OutHex( aTabPosArr[ n ] ) << cW4W_TXTERM;
- for( n = 0; n < 20; ++n )
- rWrt.OutHex( aTabTypesArr[ n ] ) << cW4W_TXTERM;
- for( n = 0; n < 40; ++n )
- rWrt.OutHex( aTabLeadingArr[ n ] ) << cW4W_TXTERM;
-
- rWrt.OutLong( rTStops.Count() ) << cW4W_TXTERM;
-
- for( n = 0; n < rTStops.Count() && n < 40; n++ )
- {
- SwTwips nTabRel = rTStops[ n ].GetTabPos();
- if ( nTabRel > nWidth + MAX_TAB_OVER ) // teste auf Sinn der Positionen
- continue; // Tab out of SRange
- if ( nTabRel > nWidth )
- nTabRel = nWidth; // Tab nur wenig out of SRange
- rWrt.OutLong( nLeftMargin + nTabRel ) << cW4W_TXTERM;
- }
-
- rWrt.Strm() << cW4W_RED;
- return rWrt;
-}
-
-static Writer& OutW4W_SwHyphenZone( Writer& rWrt, const SfxPoolItem& rHt )
-{
- SwW4WWriter& rW4WWrt = (SwW4WWriter&)rWrt;
- const SvxHyphenZoneItem& rAttr = (const SvxHyphenZoneItem&)rHt;
-
- if ( rW4WWrt.GetFilter() == 48 ) //!!! Bug WP6.0-Filter
- return rWrt; // fuehrt zu Absturz WP6
-
- if ( !rAttr.IsHyphen() )
- {
- OUTRECORD( rW4WWrt.Strm(), "EHP" );
- return rWrt;
- }
- OUTRECORD( rW4WWrt.Strm(), "BHP" );
- OUTRECORD( rW4WWrt.GetStrm(), "EHP" );
-
- // Nach Angabe der W4W-Doku gibt es auch den
- // RHZ-Befehl, der sagt, wie getrennt werden soll.
- // Bei WP6 scheint er aber zumindest
- // beim Import nicht zu funktionieren.
- // In WW2 gibt es diese Einstellmoeglichkeit
- // anscheinend nicht.
- return rWrt;
-}
-
-/*
- * lege hier die Tabellen fuer die W4W-Funktions-Pointer auf
- * die Ausgabe-Funktionen an.
- * Es sind lokale Strukturen, die nur innerhalb der W4W-DLL
- * bekannt sein muessen.
- */
-
-SwAttrFnTab aW4WAttrFnTab = {
-/* RES_CHRATR_CASEMAP */ OutW4W_SwCaseMap,
-/* RES_CHRATR_CHARSETCOLOR */ 0,
-/* RES_CHRATR_COLOR */ OutW4W_SwColor,
-/* RES_CHRATR_CONTOUR */ OutW4W_SwContour,
-/* RES_CHRATR_CROSSEDOUT */ OutW4W_SwCrossedOut,
-/* RES_CHRATR_ESCAPEMENT */ OutW4W_SwEscapement,
-/* RES_CHRATR_FONT */ OutW4W_SwFont,
-/* RES_CHRATR_FONTSIZE */ OutW4W_SwSize,
-/* RES_CHRATR_KERNING */ OutW4W_SwKerning,
-/* RES_CHRATR_LANGUAGE */ OutW4W_SwLanguage,
-/* RES_CHRATR_POSTURE */ OutW4W_SwPosture,
-/* RES_CHRATR_PROPORTIONALFONTSIZE*/0,
-/* RES_CHRATR_SHADOWED */ OutW4W_SwShadowed,
-/* RES_CHRATR_UNDERLINE */ OutW4W_SwUnderline,
-/* RES_CHRATR_WEIGHT */ OutW4W_SwWeight,
-/* RES_CHRATR_WORDLINEMODE */ 0, // AMA 14.10.94: NEU
-/* RES_CHRATR_AUTOKERN */ 0, // AMA 27.01.95: NEU
-/* RES_CHRATR_BLINK */ 0,
-/* RES_CHRATR_NOHYPHEN */ 0, // Neu: nicht trennen
-/* RES_CHRATR_NOLINEBREAK */ 0, // Neu: nicht umbrechen
-/* RES_CHRATR_BACKGROUND */ 0, // Neu: Zeichenhintergrund
-/* RES_CHRATR_CJK_FONT */ 0,
-/* RES_CHRATR_CJK_FONTSIZE */ 0,
-/* RES_CHRATR_CJK_LANGUAGE */ 0,
-/* RES_CHRATR_CJK_POSTURE */ 0,
-/* RES_CHRATR_CJK_WEIGHT */ 0,
-/* RES_CHRATR_CTL_FONT */ 0,
-/* RES_CHRATR_CTL_FONTSIZE */ 0,
-/* RES_CHRATR_CTL_LANGUAGE */ 0,
-/* RES_CHRATR_CTL_POSTURE */ 0,
-/* RES_CHRATR_CTL_WEIGHT */ 0,
-/* RES_CHRATR_WRITING_DIRECTION */ 0,
-/* RES_CHRATR_DUMMY2 */ 0,
-/* RES_CHRATR_DUMMY3 */ 0,
-/* RES_CHRATR_DUMMY4 */ 0,
-/* RES_CHRATR_DUMMY5 */ 0,
-/* RES_CHRATR_DUMMY1 */ 0, // Dummy:
-
-/* RES_TXTATR_NOLINEBREAK */ 0,
-/* RES_TXTATR_NOHYPHEN */ 0,
-/* RES_TXTATR_REFMARK */ 0, /* OutW4W_RefMark */
-/* RES_TXTATR_TOXMARK */ 0, /* OutW4W_SwTxtTOXMark */
-/* RES_TXTATR_CHARFMT */ 0,
-/* RES_TXTATR_TWO_LINES */ 0,
-/* RES_TXTATR_CJK_RUBY */ 0,
-/* RES_TXTATR_UNKNOWN_CONTAINER */ 0,
-/* RES_TXTATR_DUMMY5 */ 0,
-/* RES_TXTATR_DUMMY6 */ 0,
-
-/* RES_TXTATR_FIELD */ OutW4W_SwField,
-/* RES_TXTATR_FLYCNT */ 0, /* OutW4W_SwFlyCntnt */
-/* RES_TXTATR_FTN */ OutW4W_SwFtn,
-/* RES_TXTATR_SOFTHYPH */ 0, /* OutW4W_SwSoftHyph */
-/* RES_TXTATR_HARDBLANK */ 0, /* OutW4W_HardBlank */
-/* RES_TXTATR_DUMMY1 */ 0, // Dummy:
-/* RES_TXTATR_DUMMY2 */ 0, // Dummy:
-
-/* RES_PARATR_LINESPACING */ OutW4W_SwLineSpacing,
-/* RES_PARATR_ADJUST */ OutW4W_SwAdjust,
-/* RES_PARATR_SPLIT */ OutW4W_SwSplit,
-/* RES_PARATR_WIDOWS */ OutW4W_SwWidows,
-/* RES_PARATR_ORPHANS */ OutW4W_SwOrphans,
-/* RES_PARATR_TABSTOP */ OutW4W_SwTabStop,
-/* RES_PARATR_HYPHENZONE*/ OutW4W_SwHyphenZone,
-/* RES_PARATR_DROP */ 0,
-/* RES_PARATR_REGISTER */ 0, // neu: Registerhaltigkeit
-/* RES_PARATR_NUMRULE */ 0, // NumRule
-/* RES_PARATR_SCRIPTSPACE */ 0, // Dummy:
-/* RES_PARATR_HANGINGPUNCTUATION */ 0, // Dummy:
-/* RES_PARATR_DUMMY1 */ 0, // Dummy:
-/* RES_PARATR_DUMMY2 */ 0, // Dummy:
-/* RES_PARATR_DUMMY3 */ 0, // Dummy:
-/* RES_PARATR_DUMMY4 */ 0, // Dummy:
-/* RES_PARATR_DUMMY5 */ 0, // Dummy:
-/* RES_PARATR_DUMMY6 */ 0, // Dummy:
-/* RES_PARATR_DUMMY7 */ 0, // Dummy:
-/* RES_PARATR_DUMMY8 */ 0, // Dummy:
-
-/* RES_FILL_ORDER */ OutW4W_SwFillOrder,
-/* RES_FRM_SIZE */ OutW4W_SwFrmSize,
-/* RES_PAPER_BIN */ OutW4W_SwPaperBin,
-/* RES_LR_SPACE */ OutW4W_SwFmtLRSpace,
-/* RES_UL_SPACE */ OutW4W_SwFmtULSpace,
-/* RES_PAGEDESC */ OutW4W_SwFmtPageDesc,
-/* RES_BREAK */ OutW4W_SwBreak,
-/* RES_CNTNT */ 0, /* OutW4W_??? */
-/* RES_HEADER */ OutW4W_SwFmtHeader,
-/* RES_FOOTER */ OutW4W_SwFmtFooter,
-/* RES_PRINT */ OutW4W_SwFmtPrint,
-/* RES_OPAQUE */ OutW4W_SwFmtOpaque,
-/* RES_PROTECT */ OutW4W_SwFmtProtect,
-/* RES_SURROUND */ OutW4W_SwFmtSurround,
-/* RES_VERT_ORIENT */ OutW4W_SwFmtVertOrient,
-/* RES_HORI_ORIENT */ OutW4W_SwFmtHoriOrient,
-/* RES_ANCHOR */ 0, /* OutW4W_??? */
-/* RES_BACKGROUND */ 0, /* OutW4W_??? */
-/* RES_BOX */ OutW4W_SwFmtBox,
-/* RES_SHADOW */ 0, /* OutW4W_??? */
-/* RES_FRMMACRO */ 0, /* OutW4W_??? */
-/* RES_COL */ 0, /* OutW4W_??? */
-/* RES_KEEP */ 0, /* OutW4W_??? */
-/* RES_URL */ 0, // URL:
-/* RES_EDIT_IN_READONLY */ 0,
-/* RES_LAYOUT_SPLIT */ 0,
-/* RES_FRMATR_DUMMY1 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY2 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY3 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY4 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY5 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY6 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY7 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY8 */ 0, // Dummy:
-/* RES_FRMATR_DUMMY9 */ 0, // Dummy:
-
-/* RES_GRFATR_MIRRORGRF */ OutW4W_SwMirrorGrf,
-/* RES_GRFATR_CROPGRF */ OutW4W_SwCropGrf,
-/* RES_GRFATR_ROTATION */ 0,
-/* RES_GRFATR_LUMINANCE */ 0,
-/* RES_GRFATR_CONTRAST */ 0,
-/* RES_GRFATR_CHANNELR */ 0,
-/* RES_GRFATR_CHANNELG */ 0,
-/* RES_GRFATR_CHANNELB */ 0,
-/* RES_GRFATR_GAMMA */ 0,
-/* RES_GRFATR_INVERT */ 0,
-/* RES_GRFATR_TRANSPARENCY */ 0,
-/* RES_GRFATR_DRWAMODE */ 0,
-/* RES_GRFATR_DUMMY1 */ 0,
-/* RES_GRFATR_DUMMY2 */ 0,
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list