You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by cl...@apache.org on 2014/02/28 05:44:43 UTC
svn commit: r1572819 [3/4] - in /openoffice/branches/ooxml/main: ./
filter/inc/filter/msfilter/ filter/source/config/fragments/filters/
filter/source/config/fragments/types/ filter/source/msfilter/
formula/inc/formula/ formula/source/core/api/ oox/inc/...
Modified: openoffice/branches/ooxml/main/sc/source/filter/inc/xestream.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/inc/xestream.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/inc/xestream.hxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/inc/xestream.hxx Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
*
*************************************************************/
-
-
// ============================================================================
#ifndef SC_XESTREAM_HXX
@@ -40,6 +38,8 @@
#include "xestring.hxx"
#include <filter/msfilter/mscodec.hxx>
+#include <i18npool/lang.h>
+#include <formula/grammar.hxx>
#include <vector>
/* ============================================================================
@@ -264,6 +264,7 @@ private:
(s.Len() && s.GetChar( 0 ) != 0 ? XclXmlUtils::ToOString( s ).getStr() : NULL)
class ScAddress;
+class ScDocShell;
class ScDocument;
class ScRange;
class ScRangeList;
@@ -271,6 +272,7 @@ class ScTokenArray;
struct XclAddress;
struct XclFontData;
class XclRangeList;
+class XclRange;
class XclXmlUtils
{
@@ -291,23 +293,31 @@ public:
static ::rtl::OString ToOString( const XclAddress& rAddress );
static ::rtl::OString ToOString( const XclExpString& s );
static ::rtl::OString ToOString( const XclRangeList& rRangeList );
+ static ::rtl::OString ToOString( const XclRange& rRangeList );
static ::rtl::OUString ToOUString( const char* s );
static ::rtl::OUString ToOUString( const ScfUInt16Vec& rBuffer, sal_Int32 nStart = 0, sal_Int32 nLength = -1 );
static ::rtl::OUString ToOUString( const String& s );
static ::rtl::OUString ToOUString( ScDocument& rDocument, const ScAddress& rAddress, ScTokenArray* pTokenArray );
+ static ::rtl::OUString ToOUString( ScDocument& rDocument, const ScAddress& rAddress,
+ ScTokenArray* pTokenArray, ::formula::FormulaGrammar::Grammar eGrammar, LanguageType nLang, bool bIsRecoverable = true);
static ::rtl::OUString ToOUString( const XclExpString& s );
static const char* ToPsz( bool b );
+
+ static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, sal_Int32 nValue );
+ static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, sal_Int64 nValue );
+ static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, const char* sValue );
+
};
class XclExpXmlStream : public oox::core::XmlFilterBase
{
public:
- XclExpXmlStream( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxContext, SvStream& rStrm, const XclExpRoot& rRoot );
+ XclExpXmlStream( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxContext );
virtual ~XclExpXmlStream();
/** Returns the filter root data. */
- inline const XclExpRoot& GetRoot() const { return mrRoot; }
+ inline const XclExpRoot& GetRoot() const { return *mpRoot; }
sax_fastparser::FSHelperPtr& GetCurrentStream();
void PushStream( sax_fastparser::FSHelperPtr aStream );
@@ -341,12 +351,13 @@ public:
private:
virtual ::oox::ole::VbaProject* implCreateVbaProject() const;
virtual ::rtl::OUString implGetImplementationName() const;
+ ScDocShell *getDocShell();
typedef std::map< ::rtl::OUString,
std::pair< ::rtl::OUString,
sax_fastparser::FSHelperPtr > > XclExpXmlPathToStateMap;
- const XclExpRoot& mrRoot; /// Filter root data.
+ const XclExpRoot * mpRoot; /// Filter root data.
std::stack< sax_fastparser::FSHelperPtr > maStreams;
XclExpXmlPathToStateMap maOpenedStreamMap;
};
Modified: openoffice/branches/ooxml/main/sc/source/filter/inc/xestyle.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/inc/xestyle.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/inc/xestyle.hxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/inc/xestyle.hxx Fri Feb 28 04:44:42 2014
@@ -512,6 +512,9 @@ public:
virtual void SaveXml( XclExpXmlStream& rStrm );
+ void SetIsUsed( bool bIsUsed ){ mbIsUsed = bIsUsed; }
+ bool GetIsUsed( ){ return mbIsUsed; }
+
// for buffered FindXF
const SfxItemSet* getItemSet() const { return mpItemSet; }
sal_uInt32 getIndexInXFList() const { return mnIndexInXFList; }
@@ -539,6 +542,7 @@ protected: // access for XclExpDefaultX
private:
using XclXFBase::Equals;
+ bool mbIsUsed:1;
/** Initializes with default values. */
void InitDefault();
Modified: openoffice/branches/ooxml/main/sc/source/filter/inc/xetable.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/inc/xetable.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/inc/xetable.hxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/inc/xetable.hxx Fri Feb 28 04:44:42 2014
@@ -72,6 +72,8 @@ public:
virtual XclTokenArrayRef CreateCellTokenArray( const XclExpRoot& rRoot ) const = 0;
/** Derived classes return true, if the own formula contains volatile functions. */
virtual bool IsVolatile() const = 0;
+ virtual bool IsRecoverable() const = 0;
+ const XclRange& GetXclRange() const {return maXclRange;}
protected:
/** Constructs the record with a single cell. */
@@ -114,6 +116,7 @@ public:
virtual XclTokenArrayRef CreateCellTokenArray( const XclExpRoot& rRoot ) const;
/** Returns true, if the array formula contains volatile functions. */
virtual bool IsVolatile() const;
+ virtual bool IsRecoverable() const;
private:
virtual void WriteBody( XclExpStream& rStrm );
@@ -155,7 +158,7 @@ class XclExpShrfmla : public XclExpRange
{
public:
/** Creates a SHRFMLA record that consists of the passed cell address only. */
- explicit XclExpShrfmla( XclTokenArrayRef xTokArr, const ScAddress& rScPos );
+ explicit XclExpShrfmla( XclTokenArrayRef xTokArr, const ScAddress& rScPos, const sal_uInt32 nIndex );
/** Extends the cell range to include the passed cell address. */
void ExtendRange( const ScAddress& rScPos );
@@ -164,6 +167,8 @@ public:
virtual XclTokenArrayRef CreateCellTokenArray( const XclExpRoot& rRoot ) const;
/** Returns true, if the shared formula contains volatile functions. */
virtual bool IsVolatile() const;
+ virtual bool IsRecoverable() const;
+ const sal_uInt32 GetIndex() const {return mnIndex;}
private:
virtual void WriteBody( XclExpStream& rStrm );
@@ -171,6 +176,7 @@ private:
private:
XclTokenArrayRef mxTokArr; /// The token array of a shared formula.
sal_uInt8 mnUsedCount; /// Number of FORMULA records referring to this record.
+ const sal_uInt32 mnIndex; /// The Nth shared formula in a sheet
};
typedef ScfRef< XclExpShrfmla > XclExpShrfmlaRef;
@@ -195,6 +201,8 @@ public:
private:
typedef ::std::map< const ScTokenArray*, XclExpShrfmlaRef > XclExpShrfmlaMap;
XclExpShrfmlaMap maRecMap; /// Map containing the SHRFMLA records.
+ typedef ::std::map<sal_Int16, sal_uInt32> XclExpShrfmlaIndexMap;
+ XclExpShrfmlaIndexMap mnTabSFIndexMap;///All shared formula are created from its buffer. Here use its buffer to save the last shared formula index for each sheet
};
// Multiple operations ========================================================
@@ -219,8 +227,12 @@ public:
virtual XclTokenArrayRef CreateCellTokenArray( const XclExpRoot& rRoot ) const;
/** Returns true, if the multiple operations range is volatile. */
virtual bool IsVolatile() const;
+ virtual bool IsRecoverable() const;
/** Writes the record if it is valid. */
virtual void Save( XclExpStream& rStrm );
+ const ScAddress& GetRowRef() const {return ScAddress(mnRowInpXclCol, mnRowInpXclRow, mnScTab);}
+ const ScAddress& GetColRef() const {return ScAddress(mnColInpXclCol, mnColInpXclRow, mnScTab);}
+ const sal_uInt8 GetMOType() const {return mnScMode;}
private:
/** Returns true, if the passed cell position can be appended to this record. */
Modified: openoffice/branches/ooxml/main/sc/source/filter/inc/xlformula.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/inc/xlformula.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/inc/xlformula.hxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/inc/xlformula.hxx Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
*
*************************************************************/
-
-
#ifndef SC_XLFORMULA_HXX
#define SC_XLFORMULA_HXX
@@ -371,7 +369,7 @@ public:
/** Creates an empty token array. */
explicit XclTokenArray( bool bVolatile = false );
/** Creates a token array, swaps passed token vector into own data. */
- explicit XclTokenArray( ScfUInt8Vec& rTokVec, bool bVolatile = false );
+ explicit XclTokenArray( ScfUInt8Vec& rTokVec, bool bVolatile = false, bool bRecoverable = true );
/** Creates a token array, swaps passed token vectors into own data. */
explicit XclTokenArray( ScfUInt8Vec& rTokVec, ScfUInt8Vec& rExtDataVec, bool bVolatile = false );
@@ -383,6 +381,7 @@ public:
inline const sal_uInt8* GetData() const { return maTokVec.empty() ? 0 : &maTokVec.front(); }
/** Returns true, if the formula contains a volatile function. */
inline bool IsVolatile() const { return mbVolatile; }
+ inline bool IsRecoverable() const { return mbRecoverable; }
/** Reads the size field of the token array. */
void ReadSize( XclImpStream& rStrm );
@@ -405,6 +404,7 @@ private:
ScfUInt8Vec maTokVec; /// Byte vector containing token data.
ScfUInt8Vec maExtDataVec; /// Byte vector containing extended data (arrays, stacked NLRs).
bool mbVolatile; /// True = Formula contains volatile function.
+ bool mbRecoverable; /// True = The formula is invalid but can be recovered
};
typedef ScfRef< XclTokenArray > XclTokenArrayRef;
@@ -451,10 +451,13 @@ public:
inline const ::formula::FormulaToken& operator*() const { return *Get(); }
XclTokenArrayIterator& operator++();
+ XclTokenArrayIterator& operator--();
private:
void NextRawToken();
+ void PrevRawToken();
void SkipSpaces();
+ void SkipSpacesBack();
private:
const ::formula::FormulaToken*const* mppScTokenBeg; /// Pointer to first token pointer of token array.
Modified: openoffice/branches/ooxml/main/sc/source/filter/inc/xltools.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/inc/xltools.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/inc/xltools.hxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/inc/xltools.hxx Fri Feb 28 04:44:42 2014
@@ -181,6 +181,10 @@ public:
@descr Adds a prefix to the representation returned by GetXclBuiltInDefName().
@param cBuiltIn Excel index of the built-in name. */
static String GetBuiltInDefName( sal_Unicode cBuiltIn );
+ /** Returns the Calc UI representation of a built-in defined name used in NAME records.
+ @descr get built in style name from builtid.
+ @param cBuiltIn Excel index of the built-in name. */
+ static String GetBuiltinStyleNameFromId( sal_Int32 nBuiltinId, sal_Int32 nLevel = 0 );
/** Returns the Excel built-in name index of the passed defined name from Calc.
@descr Ignores any characters following a valid representation of a built-in name.
@param pcBuiltIn (out-param) If not 0, the index of the built-in name will be returned here.
@@ -245,6 +249,7 @@ private:
static const String maCFStyleNamePrefix2; /// Prefix for cond. formatting style names from OOX filter.
static const ::rtl::OUString maSbMacroPrefix; /// Prefix for StarBasic macros.
static const ::rtl::OUString maSbMacroSuffix; /// Suffix for StarBasic macros.
+ static const sal_Int32 snStyleNamesCount;
};
// read/write colors ----------------------------------------------------------
Modified: openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97esc.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97esc.cxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97esc.cxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97esc.cxx Fri Feb 28 04:44:42 2014
@@ -270,7 +270,7 @@ EscherExHostAppData* XclEscherEx::StartS
{
// #107540# ignore permanent note shapes
// #i12190# do not ignore callouts (do not filter by object type ID)
- pCurrXclObj = new XclObjAny( mrObjMgr ); // just a metafile
+ pCurrXclObj = new XclObjAny( mrObjMgr ,rxShape ); // just a metafile
}
}
if ( pCurrXclObj )
Modified: openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97rec.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97rec.cxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97rec.cxx (original)
+++ openoffice/branches/ooxml/main/sc/source/filter/xcl97/xcl97rec.cxx Fri Feb 28 04:44:42 2014
@@ -72,6 +72,10 @@
#include "docoptio.hxx"
#include "patattr.hxx"
#include "tabprotection.hxx"
+#include <oox/export/utils.hxx>
+#include <oox/export/vmlexport.hxx>
+#include <oox/export/shapes.hxx>
+#include "oox/token/tokens.hxx"
using namespace ::oox;
@@ -83,10 +87,23 @@ using ::com::sun::star::uno::UNO_QUERY;
using ::com::sun::star::beans::XPropertySet;
using ::com::sun::star::drawing::XShape;
+using ::oox::drawingml::ShapeExport;
+using ::oox::drawingml::DrawingML;
+
+int XclExpObjList::mnDrawingMLCount=0;
+int XclExpObjList::mnVmlCount=0;
+
+void XclExpObjList::ResetCounters()
+{
+ mnDrawingMLCount = 0;
+ mnVmlCount = 0;
+}
+
// ============================================================================
XclExpObjList::XclExpObjList( const XclExpRoot& rRoot, XclEscherEx& rEscherEx ) :
XclExpRoot( rRoot ),
+ mnScTab( rRoot.GetCurrScTab() ),
mrEscherEx( rEscherEx ),
pSolverContainer( 0 )
{
@@ -114,6 +131,8 @@ sal_uInt16 XclExpObjList::Add( XclObj* p
Insert( pObj, LIST_APPEND );
sal_uInt16 nCnt = (sal_uInt16) Count();
pObj->SetId( nCnt );
+ pObj->SetTab( mnScTab );
+
return nCnt;
}
else
@@ -145,6 +164,69 @@ void XclExpObjList::Save( XclExpStream&
pSolverContainer->Save( rStrm );
}
+static bool IsVmlObject( const XclObj& rObj )
+{
+ switch( rObj.GetObjType() )
+ {
+ case EXC_OBJTYPE_NOTE:
+ return true;
+ default:
+ return false;
+ }
+}
+
+static void SaveDrawingMLObjects( XclExpObjList& rList, XclExpXmlStream& rStrm, int& nDrawingMLCount )
+{
+
+
+ sal_Int32 nDrawing = ++nDrawingMLCount;
+ OUString sId;
+ sax_fastparser::FSHelperPtr pDrawing = rStrm.CreateOutputStream(
+ XclXmlUtils::GetStreamName( "xl/", "drawings/drawing", nDrawing ),
+ XclXmlUtils::GetStreamName( "../", "drawings/drawing", nDrawing ),
+ rStrm.GetCurrentStream()->getOutputStream(),
+ "application/vnd.openxmlformats-officedocument.drawing+xml",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
+ &sId );
+
+ rStrm.GetCurrentStream()->singleElement( XML_drawing,
+ FSNS( XML_r, XML_id ), XclXmlUtils::ToOString( sId ).getStr(),
+ FSEND );
+
+ rStrm.PushStream( pDrawing );
+ pDrawing->startElement( FSNS( XML_xdr, XML_wsDr ),
+ FSNS( XML_xmlns, XML_xdr ), "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
+ FSNS( XML_xmlns, XML_a ), "http://schemas.openxmlformats.org/drawingml/2006/main",
+ FSNS( XML_xmlns, XML_r ), "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
+ FSEND );
+
+ for ( XclObj* p = rList.First(); p; p = rList.Next() )
+ {
+ // if( p->GetObjType() != 0 ) //zhaosz_xml, obj is a group
+ if( IsVmlObject( *p ) || p->GetObjType()==0)
+ continue;
+ p->SaveXml( rStrm );
+ }
+
+ pDrawing->endElement( FSNS( XML_xdr, XML_wsDr ) );
+
+ rStrm.PopStream();
+}
+
+void XclExpObjList::SaveXml( XclExpXmlStream& rStrm )
+{
+
+ if( pSolverContainer )
+ pSolverContainer->SaveXml( rStrm );
+
+ if( Count() == 0 )
+ return;
+
+ SaveDrawingMLObjects( *this, rStrm, mnDrawingMLCount );
+ //SaveVmlObjects( *this, rStrm, mnVmlCount );
+
+}
+
// --- class XclObj --------------------------------------------------
XclObj::XclObj( XclExpObjectManager& rObjMgr, sal_uInt16 nObjType, bool bOwnEscher ) :
@@ -673,6 +755,12 @@ XclObjAny::XclObjAny( XclExpObjectManage
{
}
+XclObjAny::XclObjAny( XclExpObjectManager& rObjMgr,Reference< XShape > xShape ) :
+ XclObj( rObjMgr, EXC_OBJTYPE_UNKNOWN ),
+ mxShape( xShape)
+{
+}
+
XclObjAny::~XclObjAny()
{
}
@@ -694,6 +782,85 @@ void XclObjAny::Save( XclExpStream& rStr
XclObj::Save( rStrm );
}
+static const char* GetEditAs( XclObjAny& rObj )
+{
+ if( const SdrObject* pShape = EscherEx::GetSdrObject( rObj.GetShape() ) )
+ {
+ // OOXTODO: returning "twoCell"
+ switch( ScDrawLayer::GetAnchorType( *pShape ) )
+ {
+ case SCA_CELL: return "oneCell";
+ default: break;
+ }
+ }
+ return "absolute";
+}
+
+void XclObjAny::WriteFromTo( XclExpXmlStream& rStrm, const Reference< XShape >& rShape, SCTAB nTab )
+{
+ sax_fastparser::FSHelperPtr pDrawing = rStrm.GetCurrentStream();
+
+ awt::Point aTopLeft = rShape->getPosition();
+ awt::Size aSize = rShape->getSize();
+ Rectangle aLocation( aTopLeft.X, aTopLeft.Y, aTopLeft.X + aSize.Width, aTopLeft.Y + aSize.Height );
+ ScRange aRange = rStrm.GetRoot().GetDoc().GetRange( nTab, aLocation );
+ Rectangle aRangeRect = rStrm.GetRoot().GetDoc().GetMMRect( aRange.aStart.Col(), aRange.aStart.Row(),
+ aRange.aEnd.Col()-1, aRange.aEnd.Row()-1,
+ nTab );
+
+
+ pDrawing->startElement( FSNS( XML_xdr, XML_from ),
+ FSEND );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_col ), (sal_Int32) aRange.aStart.Col() );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_colOff ),
+ MM100toEMU( aLocation.Left() - aRangeRect.Left() ) );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_row ), (sal_Int32) aRange.aStart.Row() );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_rowOff ),
+ MM100toEMU( aLocation.Top() - aRangeRect.Top() ) );
+ pDrawing->endElement( FSNS( XML_xdr, XML_from ) );
+
+ pDrawing->startElement( FSNS( XML_xdr, XML_to ),
+ FSEND );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_col ), (sal_Int32) aRange.aEnd.Col() );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_colOff ),
+ MM100toEMU( aLocation.Right() - aRangeRect.Right() ) );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_row ), (sal_Int32) aRange.aEnd.Row() );
+ XclXmlUtils::WriteElement( pDrawing, FSNS( XML_xdr, XML_rowOff ),
+ MM100toEMU( aLocation.Bottom() - aRangeRect.Bottom() ) );
+ pDrawing->endElement( FSNS( XML_xdr, XML_to ) );
+}
+
+void XclObjAny::WriteFromTo( XclExpXmlStream& rStrm, const XclObjAny& rObj )
+{
+ WriteFromTo( rStrm, rObj.GetShape(), rObj.GetTab() );
+}
+
+void XclObjAny::SaveXml( XclExpXmlStream& rStrm )
+{
+ if( !mxShape.is() )
+ return;
+
+ sax_fastparser::FSHelperPtr pDrawing = rStrm.GetCurrentStream();
+
+ ShapeExport aDML( XML_xdr, pDrawing, NULL, &rStrm, DrawingML::DOCUMENT_XLSX );
+
+ pDrawing->startElement( FSNS( XML_xdr, XML_twoCellAnchor ), // OOXTODO: oneCellAnchor, absoluteAnchor
+ XML_editAs, GetEditAs( *this ),
+ FSEND );
+ Reference< XPropertySet > xPropSet( mxShape, UNO_QUERY );
+ if (xPropSet.is())
+ {
+ WriteFromTo( rStrm, *this );
+ aDML.WriteShape( mxShape );
+ }
+
+ pDrawing->singleElement( FSNS( XML_xdr, XML_clientData),
+ // OOXTODO: XML_fLocksWithSheet
+ // OOXTODO: XML_fPrintsWithSheet
+ FSEND );
+ pDrawing->endElement( FSNS( XML_xdr, XML_twoCellAnchor ) );
+}
+
// --- class ExcBof8_Base --------------------------------------------
ExcBof8_Base::ExcBof8_Base()
Modified: openoffice/branches/ooxml/main/sc/util/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/util/makefile.mk?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/util/makefile.mk (original)
+++ openoffice/branches/ooxml/main/sc/util/makefile.mk Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
#
#**************************************************************
-
-
PRJ=..
PRJNAME=sc
@@ -49,7 +47,6 @@ RESLIB1LIST=\
$(SRS)$/navipi.srs \
$(SRS)$/cctrl.srs \
-
RESLIB1NAME=sc
RESLIB1IMAGES=\
$(PRJ)$/res \
@@ -330,7 +327,7 @@ SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
ALLTAR: $(MISC)$/linkinc.ls $(COMP)
-ALLTAR : $(MISC)/sc.component $(MISC)/scd.component $(MISC)/vbaobj.component
+ALLTAR : $(MISC)/sc.component $(MISC)/scfilt.component $(MISC)/scd.component $(MISC)/vbaobj.component
$(MISC)/sc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
sc.component
@@ -338,6 +335,12 @@ $(MISC)/sc.component .ERRREMOVE : $(SOLA
'$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
$(SOLARENV)/bin/createcomponent.xslt sc.component
+$(MISC)/scfilt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ scfilt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL6TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt scfilt.component
+
$(MISC)/scd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
scd.component
$(XSLTPROC) --nonet --stringparam uri \
Added: openoffice/branches/ooxml/main/sc/util/scfilt.component
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/util/scfilt.component?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sc/util/scfilt.component (added)
+++ openoffice/branches/ooxml/main/sc/util/scfilt.component Fri Feb 28 04:44:42 2014
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--***********************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ ***********************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Calc.OOXMLExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+</component>
Modified: openoffice/branches/ooxml/main/sc/util/scfilt.map
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sc/util/scfilt.map?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sc/util/scfilt.map (original)
+++ openoffice/branches/ooxml/main/sc/util/scfilt.map Fri Feb 28 04:44:42 2014
@@ -21,6 +21,9 @@
UDK_3_0_0 {
global:
ScFilterCreate;
+ component_getImplementationEnvironment;
+ component_writeInfo;
+ component_getFactory;
local:
*;
};
Modified: openoffice/branches/ooxml/main/scp2/source/ooo/file_library_ooo.scp
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/scp2/source/ooo/file_library_ooo.scp?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/scp2/source/ooo/file_library_ooo.scp (original)
+++ openoffice/branches/ooxml/main/scp2/source/ooo/file_library_ooo.scp Fri Feb 28 04:44:42 2014
@@ -1401,7 +1401,7 @@ STD_LIB_FILE( gid_File_Lib_Sw , sw)
#endif
STD_LIB_FILE( gid_File_Lib_Swui, swui)
-STD_LIB_FILE( gid_File_Lib_Msword, msword )
+STD_UNO_LIB_FILE( gid_File_Lib_Msword, msword )
#if ! defined UNX
File gid_File_Lib_Sysdtrans
Modified: openoffice/branches/ooxml/main/sd/prj/d.lst
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/prj/d.lst?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sd/prj/d.lst (original)
+++ openoffice/branches/ooxml/main/sd/prj/d.lst Fri Feb 28 04:44:42 2014
@@ -57,3 +57,4 @@ mkdir: %_DEST%\inc%_EXT%\sd
..\%__SRC%\misc\sd.component %_DEST%\xml%_EXT%\sd.component
..\%__SRC%\misc\sdd.component %_DEST%\xml%_EXT%\sdd.component
+..\%__SRC%\misc\sdfilt.component %_DEST%\xml%_EXT%\sdfilt.component
Modified: openoffice/branches/ooxml/main/sd/source/filter/eppt/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/source/filter/eppt/makefile.mk?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sd/source/filter/eppt/makefile.mk (original)
+++ openoffice/branches/ooxml/main/sd/source/filter/eppt/makefile.mk Fri Feb 28 04:44:42 2014
@@ -41,7 +41,9 @@ SLOFILES = $(SLO)$/eppt.obj \
$(SLO)$/epptso.obj \
$(SLO)$/escherex.obj \
$(SLO)$/pptexanimations.obj \
- $(SLO)$/pptexsoundcollection.obj
+ $(SLO)$/pptexsoundcollection.obj \
+ $(SLO)$/pptexooxml.obj \
+ $(SLO)$/pptexpbase.obj
# --- Targets --------------------------------------------------------------
Added: openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.cxx?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.cxx (added)
+++ openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.cxx Fri Feb 28 04:44:42 2014
@@ -0,0 +1,300 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#include <rtl/ustrbuf.hxx>
+#include <oox/token/tokens.hxx>
+#include <oox/ole/vbaproject.hxx>
+#include "pptexooxml.hxx"
+#include <cppuhelper/factory.hxx>
+#include <rtl/ustring.hxx>
+#include <sax/fshelper.hxx>
+
+using ::rtl::OString;
+using ::rtl::OUString;
+using ::rtl::OUStringBuffer;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::animations;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::drawing;
+using namespace ::com::sun::star::presentation;
+using namespace ::com::sun::star::uno;
+using namespace ::ppt;
+using namespace ::oox;
+
+using ::com::sun::star::beans::XPropertySet;
+using ::com::sun::star::beans::XPropertySetInfo;
+using ::com::sun::star::lang::XMultiServiceFactory;
+using ::com::sun::star::container::XIndexAccess;
+using ::com::sun::star::frame::XModel;
+using ::com::sun::star::task::XStatusIndicator;
+using ::com::sun::star::text::XSimpleText;
+using ::sax_fastparser::FastSerializerHelper;
+using ::sax_fastparser::FSHelperPtr;
+
+using ::com::sun::star::beans::PropertyValue;
+using ::com::sun::star::embed::XStorage;
+using ::com::sun::star::io::XOutputStream;
+using ::com::sun::star::io::XStream;
+using ::com::sun::star::lang::XComponent;
+using ::com::sun::star::lang::XMultiServiceFactory;
+using ::com::sun::star::lang::XServiceInfo;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::registry::InvalidRegistryException;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::UNO_QUERY;
+using ::com::sun::star::uno::XInterface;
+
+
+// presentation namespaces
+#define PRESENTATIONNASS FSNS( XML_xmlns, XML_a ), "http://schemas.openxmlformats.org/drawingml/2006/main", \
+ FSNS( XML_xmlns, XML_p ), "http://schemas.openxmlformats.org/presentationml/2006/main", \
+ FSNS( XML_xmlns, XML_r ), "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
+
+
+PPTXExport::PPTXExport( const Reference< XComponentContext >& xCtx )
+ : XmlFilterBase( xCtx ),
+ PPTEXPBase(),
+ mnSlideIdMax( 1 << 8 ),
+ mnSlideMasterIdMax( 1 << 31 ),
+ mnAnimationNodeIdMax( 1 )
+{}
+
+PPTXExport::~PPTXExport()
+{
+}
+
+bool PPTXExport::importDocument() throw()
+{
+ return false;
+}
+
+bool PPTXExport::exportDocument() throw()
+{
+ addRelation( CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" ), CREATE_OUSTRING( "ppt/presentation.xml" ) );
+
+ mPresentationFS = openFragmentStreamWithSerializer( CREATE_OUSTRING( "ppt/presentation.xml" ),CREATE_OUSTRING( "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" ) );
+ mPresentationFS->startElementNS( XML_p, XML_presentation, PRESENTATIONNASS, FSEND );
+
+ mXModel.set( getModel(), UNO_QUERY );
+ mXStatusIndicator.set( getStatusIndicator(), UNO_QUERY );
+
+ exportPPT();
+
+ mPresentationFS->endElementNS( XML_p, XML_presentation );
+ mPresentationFS.reset();
+ commitStorage();
+ return true;
+}
+
+sal_Bool PPTXExport::ImplCreateDocument()
+{
+ mbCreateNotes = sal_False;
+
+ for( sal_uInt32 i = 0; i < mnPages; i++ )
+ {
+ if ( !ImplGetPageByIndex( i, NOTICE ) )
+ return sal_False;
+
+ if( ContainsOtherShapeThanPlaceholders( sal_True ) ) {
+ mbCreateNotes = sal_True;
+ break;
+ }
+ }
+
+ return sal_True;
+}
+
+::oox::ole::VbaProject* PPTXExport::implCreateVbaProject() const
+{
+ return new ::oox::ole::VbaProject( getComponentContext(), getModel(), CREATE_OUSTRING( "Impress" ) );
+}
+
+void PPTXExport::ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_uInt16 /* nMode */,
+ sal_Bool bHasBackground, Reference< XPropertySet > aXBackgroundPropSet )
+{
+
+ // slides list
+ if( nPageNum == 0 )
+ mPresentationFS->startElementNS( XML_p, XML_sldIdLst, FSEND );
+
+ // add explicit relation of presentation to this slide
+ OUString sRelId = addRelation( mPresentationFS->getOutputStream(),
+ CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" ),
+ OUStringBuffer()
+ .appendAscii( "slides/slide" )
+ .append( (sal_Int32) nPageNum + 1 )
+ .appendAscii( ".xml" )
+ .makeStringAndClear() );
+
+ mPresentationFS->singleElementNS( XML_p, XML_sldId,
+ XML_id, OString::valueOf( (sal_Int32) GetNewSlideId() ).getStr(),
+ FSNS( XML_r, XML_id ), OUStringToOString( sRelId, RTL_TEXTENCODING_UTF8 ).getStr(),
+ FSEND );
+
+ if( nPageNum == mnPages - 1 )
+ mPresentationFS->endElementNS( XML_p, XML_sldIdLst );
+
+ FSHelperPtr pFS = openFragmentStreamWithSerializer( OUStringBuffer()
+ .appendAscii( "ppt/slides/slide" )
+ .append( (sal_Int32) nPageNum + 1 )
+ .appendAscii( ".xml" )
+ .makeStringAndClear(),
+ CREATE_OUSTRING( "application/vnd.openxmlformats-officedocument.presentationml.slide+xml" ) );
+
+ if( mpSlidesFSArray.size() < mnPages )
+ mpSlidesFSArray.resize( mnPages );
+ mpSlidesFSArray[ nPageNum ] = pFS;
+
+ const char* pShow = NULL;
+
+ if(ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Visible" ) ) ) ) {
+ sal_Bool bShow(sal_False);
+ if( ( mAny >>= bShow ) && !bShow )
+ pShow = "0";
+ }
+
+ pFS->startElementNS( XML_p, XML_sld, PRESENTATIONNASS,
+ XML_show, pShow,
+ FSEND );
+
+ pFS->startElementNS( XML_p, XML_cSld, FSEND );
+
+ // background
+ // if( bHasBackground ) {
+ // ImplWriteBackground( pFS, aXBackgroundPropSet );
+ // }
+
+ // WriteShapeTree( pFS, NORMAL, sal_False );
+
+ pFS->endElementNS( XML_p, XML_cSld );
+
+// WriteTransition( pFS );
+// WriteAnimations( pFS );
+
+ pFS->endElementNS( XML_p, XML_sld );
+}
+
+// UNO stuff so that the filter is registered
+
+#define PPTX_EXPORT_IMPL_NAME "com.sun.star.comp.Impress.OOXMLExporter"
+
+OUString SdOOXMLExport_getImplementationName()
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( PPTX_EXPORT_IMPL_NAME ) );
+}
+::rtl::OUString PPTXExport::implGetImplementationName() const
+{
+ return CREATE_OUSTRING( "TODO" );
+}
+
+Sequence< OUString > SAL_CALL SdOOXMLExport_getSupportedServiceNames() throw()
+{
+ const OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.ExportFilter" ) );
+ const Sequence< OUString > aSeq( &aServiceName, 1 );
+ return aSeq;
+}
+
+Reference< XInterface > SAL_CALL SdOOXMLExport_createInstance(const Reference< XMultiServiceFactory > & rSMgr ) throw( Exception )
+{
+ Reference< XInterface > xRet;
+ Reference< XComponentContext > xCtx;
+ Reference< XPropertySet > const xProps( rSMgr, UNO_QUERY );
+ if ( xProps.is() )
+ {
+ try
+ {
+ xCtx.set( xProps->getPropertyValue( rtl::OUString::createFromAscii( "DefaultContext" ) ), UNO_QUERY );
+ }
+ catch ( UnknownPropertyException & e )
+ {
+ }
+ }
+ if ( xCtx.is() )
+ xRet.set( (cppu::OWeakObject*) new PPTXExport( xCtx ) );
+ return xRet;
+}
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
+ {
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+ }
+
+ SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
+ {
+ sal_Bool bRet = false;
+
+ if ( pRegistryKey )
+ {
+ try
+ {
+ Reference< XRegistryKey > xNewKey1(
+ static_cast< XRegistryKey* >( pRegistryKey )->createKey(
+ OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Impress.OOXMLExporter/UNO/SERVICES/" )) ) );
+ xNewKey1->createKey( SdOOXMLExport_getSupportedServiceNames().getConstArray()[0] );
+
+ bRet = sal_True;
+ }
+ catch ( InvalidRegistryException& )
+ {
+ OSL_ENSURE( false, "### InvalidRegistryException!" );
+ }
+ }
+
+ return bRet;
+ }
+
+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /* pRegistryKey */ )
+{
+ Reference< XSingleServiceFactory > xFactory;
+ void* pRet = 0;
+
+ if ( rtl_str_compare( pImplName, PPTX_EXPORT_IMPL_NAME ) == 0 ) {
+ const OUString aServiceName( OUString::createFromAscii( PPTX_EXPORT_IMPL_NAME ) );
+
+ xFactory = Reference< XSingleServiceFactory >( ::cppu::createSingleFactory(
+ reinterpret_cast< XMultiServiceFactory* >( pServiceManager ),
+ SdOOXMLExport_getImplementationName(),
+ SdOOXMLExport_createInstance,
+ SdOOXMLExport_getSupportedServiceNames() ) );
+ }
+
+ if ( xFactory.is() )
+ {
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+
+ return pRet;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
Added: openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.hxx?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.hxx (added)
+++ openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexooxml.hxx Fri Feb 28 04:44:42 2014
@@ -0,0 +1,126 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#ifndef PPTEXOOXML_EXPORT_HXX
+#define PPTEXOOXML_EXPORT_HXX
+
+#include <oox/core/xmlfilterbase.hxx>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include "pptexpbase.hxx"
+
+namespace com { namespace sun { namespace star {
+ namespace animations {
+ class XAnimate;
+ class XAnimationNode;
+ }
+} } }
+
+class PPTXExport : public oox::core::XmlFilterBase, PPTEXPBase
+{
+public:
+
+ PPTXExport( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& xCtx );
+
+ virtual ~PPTXExport();
+
+ // from FilterBase
+ virtual bool importDocument() throw();
+ virtual bool exportDocument() throw();
+
+
+ virtual sal_Int32 getSchemeClr( sal_Int32 /* nColorSchemeToken */ ) const { return 0; }
+ virtual oox::vml::Drawing* getVmlDrawing() { return NULL; }
+ virtual const oox::drawingml::Theme* getCurrentTheme() const { return NULL; }
+ virtual const oox::drawingml::table::TableStyleListPtr getTableStyles() { return oox::drawingml::table::TableStyleListPtr(); }
+ virtual oox::drawingml::chart::ChartConverter& getChartConverter() { return * (oox::drawingml::chart::ChartConverter*) NULL; }
+
+private:
+ virtual ::rtl::OUString implGetImplementationName() const;
+
+ ::sax_fastparser::FSHelperPtr mPresentationFS;
+
+ static const char* GetSideDirection( sal_uInt8 nDirection );
+ static const char* GetCornerDirection( sal_uInt8 nDirection );
+ static const char* Get8Direction( sal_uInt8 nDirection );
+ static int GetPPTXLayoutId( int nOffset );
+
+ /** Derived classes create a VBA project manager object. */
+ virtual ::oox::ole::VbaProject* implCreateVbaProject() const;
+
+protected:
+
+ virtual void ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_uInt16 nMode,
+ sal_Bool bHasBackground, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet );
+ virtual void ImplWriteNotes( sal_uInt32 nPageNum ){}
+// virtual void ImplWriteSlideMaster( sal_uInt32 nPageNum, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet );
+ virtual void ImplWriteLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum ){}
+ void ImplWritePPTXLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum );
+ void WriteTheme( sal_Int32 nThemeNum );
+ virtual sal_Bool ImplCreateMainNotes(){return sal_True;}
+ virtual sal_Bool ImplCreateDocument();
+// virtual sal_Bool ImplCreateMainNotes();
+ sal_Bool WriteNotesMaster();
+
+ void WriteAnimateTo( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Any aValue, const ::rtl::OUString& rAttributeName );
+ void WriteAnimateValues( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimate >& rXAnimate );
+ void WriteAnimationCondition( ::sax_fastparser::FSHelperPtr pFS, ::com::sun::star::uno::Any& rAny, sal_Bool bWriteEvent, sal_Bool bMainSeqChild );
+ void WriteAnimationCondition( ::sax_fastparser::FSHelperPtr pFS, const char* pDelay, const char* pEvent, double fDelay, sal_Bool bHasFDelay );
+ void WriteAnimations( ::sax_fastparser::FSHelperPtr pFS );
+ void WriteAnimationAttributeName( ::sax_fastparser::FSHelperPtr pFS, const ::rtl::OUString& rAttributeName );
+ void WriteAnimationNode( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Bool bMainSeqChild );
+ void WriteAnimationNodeAnimate( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Int32 nXmlNodeType, sal_Bool bMainSeqChild );
+ void WriteAnimationNodeAnimateInside( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Bool bMainSeqChild, sal_Bool bSimple );
+ void WriteAnimationNodeSeq( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Int32 nXmlNodeType, sal_Bool bMainSeqChild );
+ void WriteAnimationNodeEffect( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Int32 nXmlNodeType, sal_Bool bMainSeqChild );
+ void WriteAnimationNodeCommonPropsStart( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& rXNode, sal_Bool bSingle, sal_Bool bMainSeqChild );
+ void WriteAnimationNodeCommonPropsEnd( ::sax_fastparser::FSHelperPtr pFS );
+ void WriteAnimationProperty( ::sax_fastparser::FSHelperPtr pFS, const ::com::sun::star::uno::Any& rAny );
+ void WriteAnimationTarget( ::sax_fastparser::FSHelperPtr pFS, ::com::sun::star::uno::Any aTarget );
+ void WriteTextStyles( ::sax_fastparser::FSHelperPtr pFS );
+ void WriteTextStyle( ::sax_fastparser::FSHelperPtr pFS, int nInstance, sal_Int32 xmlToken );
+ void WriteTextStyleLevel( ::sax_fastparser::FSHelperPtr pFS, int nInstance, int nLevel );
+ void ImplWriteBackground( ::sax_fastparser::FSHelperPtr pFS, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet );
+ void WriteTransition( ::sax_fastparser::FSHelperPtr pFS );
+
+ sal_Int32 GetLayoutFileId( sal_Int32 nOffset, sal_uInt32 nMasterNum );
+
+ // shapes
+ void WriteShapeTree( ::sax_fastparser::FSHelperPtr pFS, PageType ePageType, sal_Bool bMaster );
+
+ sal_uInt32 GetNewSlideId() { return mnSlideIdMax ++; }
+ sal_uInt32 GetNewSlideMasterId() { return mnSlideMasterIdMax ++; }
+
+private:
+// LayoutInfo mLayoutInfo[EPP_LAYOUT_SIZE];
+ std::vector< ::sax_fastparser::FSHelperPtr > mpSlidesFSArray;
+ std::vector< ::sax_fastparser::FSHelperPtr > mpMasterFSArray;
+// sal_Int32 mnLayoutFileIdMax;
+
+ sal_uInt32 mnSlideIdMax;
+ sal_uInt32 mnSlideMasterIdMax;
+ sal_uInt32 mnAnimationNodeIdMax;
+
+ sal_Bool mbCreateNotes;
+
+ static sal_Int32 nStyleLevelToken[5];
+};
+
+#endif
Added: openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.cxx?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.cxx (added)
+++ openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.cxx Fri Feb 28 04:44:42 2014
@@ -0,0 +1,693 @@
+/**************************************************************
+*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*
+*************************************************************/
+
+#include "pptexpbase.hxx"
+#include "epptdef.hxx"
+#include <vcl/outdev.hxx>
+#include <vcl/virdev.hxx>
+#include <vcl/gradient.hxx>
+
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include <comphelper/extract.hxx>
+#endif
+#ifndef _CPPUHELPER_PROPTYPEHLP_HXX_
+#include <cppuhelper/proptypehlp.hxx>
+#endif
+
+
+#include <com/sun/star/view/PaperOrientation.hpp>
+#include <com/sun/star/view/PaperFormat.hpp>
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+
+#include <com/sun/star/geometry/RealPoint2D.hpp>
+#include <com/sun/star/util/DateTime.hpp>
+#include <com/sun/star/animations/TransitionType.hpp>
+#include <com/sun/star/animations/TransitionSubType.hpp>
+#include <com/sun/star/awt/FontDescriptor.hpp>
+#include <com/sun/star/awt/FontFamily.hpp>
+#include <com/sun/star/awt/FontPitch.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/presentation/XPresentationPage.hpp>
+#include <com/sun/star/text/XSimpleText.hpp>
+#include <com/sun/star/style/XStyle.hpp>
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+
+using namespace com::sun::star;
+
+using namespace ::com::sun::star::animations;
+using namespace ::com::sun::star::awt::FontFamily;
+using namespace ::com::sun::star::awt::FontPitch;
+using namespace ::com::sun::star::presentation;
+
+using ::com::sun::star::awt::FontDescriptor;
+using ::com::sun::star::beans::XPropertySet;
+using ::com::sun::star::container::XNameAccess;
+using ::com::sun::star::container::XNamed;
+using ::com::sun::star::drawing::XDrawPagesSupplier;
+using ::com::sun::star::drawing::XMasterPagesSupplier;
+using ::com::sun::star::drawing::XShapes;
+using ::com::sun::star::drawing::XMasterPageTarget;
+using ::com::sun::star::drawing::XDrawPage;
+using ::com::sun::star::frame::XModel;
+using ::com::sun::star::style::XStyleFamiliesSupplier;
+using ::com::sun::star::style::XStyle;
+using ::com::sun::star::task::XStatusIndicator;
+using ::com::sun::star::text::XSimpleText;
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::UNO_QUERY;
+
+#define PPT_EXPORT_BASE_INIT_VALUES \
+ maFraction ( 1, 576 ), \
+ maMapModeSrc ( MAP_100TH_MM ), \
+ maMapModeDest ( MAP_INCH, Point(), maFraction, maFraction ), \
+ meLatestPageType ( NORMAL )
+
+
+PPTEXPBase::PPTEXPBase() :
+PPT_EXPORT_BASE_INIT_VALUES
+{
+
+}
+
+PPTEXPBase::PPTEXPBase( const Reference< XModel > & rXModel,
+ const Reference< XStatusIndicator > & rXStatInd ) :
+mXModel ( rXModel ),
+mXStatusIndicator ( rXStatInd ),
+mbStatusIndicator ( false ),
+PPT_EXPORT_BASE_INIT_VALUES
+{
+}
+
+// ---------------------------------------------------------------------------------------------
+
+PPTEXPBase::~PPTEXPBase()
+{
+ if ( mbStatusIndicator )
+ mXStatusIndicator->end();
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void PPTEXPBase::exportPPT()
+{
+ if ( !InitUnoModel() )
+ return;
+
+ if ( !ImplGetPageByIndex( 0, NOTICE ) )
+ return;
+ sal_Int32 nWidth = 21000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) )
+ mAny >>= nWidth;
+ sal_Int32 nHeight = 29700;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) )
+ mAny >>= nHeight;
+
+ maNotesPageSize = ImplMapSize( ::com::sun::star::awt::Size( nWidth, nHeight ) );
+
+ if ( !ImplGetPageByIndex( 0, MASTER ) )
+ return;
+ nWidth = 28000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) )
+ mAny >>= nWidth;
+ nHeight = 21000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) )
+ mAny >>= nHeight;
+ maDestPageSize = ImplMapSize( ::com::sun::star::awt::Size( nWidth, nHeight ) );
+
+ exportPPTPre();
+
+ if ( !ImplGetStyleSheets() )
+ return;
+
+ if ( !ImplCreateDocument() )
+ return;
+
+ sal_uInt32 i;
+ for ( i = 0; i < mnPages; i++ )
+ {
+ if ( ImplGetPageByIndex( i, NORMAL ) )
+ {
+ sal_uInt32 nMasterNum = ImplGetMasterIndex( NORMAL );
+ ImplWriteLayout( GetLayoutOffset( mXPagePropSet ), nMasterNum );
+ }
+ }
+
+ for ( i = 0; i < mnMasterPages; i++ )
+ {
+ if ( !ImplCreateSlideMaster( i ) )
+ return;
+ }
+
+ if ( !CreateMainNotes() )
+ return;
+ maTextRuleList.First();
+
+ for ( i = 0; i < mnPages; i++ )
+ {
+
+ if ( !ImplCreateSlide( i ) )
+ return;
+ }
+
+ for ( i = 0; i < mnPages; i++ )
+ {
+ if ( !ImplCreateNotes( i ) )
+ return;
+ }
+
+ exportPPTPost();
+}
+
+sal_Bool PPTEXPBase::InitUnoModel()
+{
+ while( sal_True )
+ {
+ mXDrawPagesSupplier = Reference< XDrawPagesSupplier >( mXModel, UNO_QUERY );
+ if ( !mXDrawPagesSupplier.is() )
+ break;
+
+ mXMasterPagesSupplier = Reference< XMasterPagesSupplier >( mXModel, UNO_QUERY );
+ if ( !mXMasterPagesSupplier.is() )
+ break;
+ mXDrawPages = mXMasterPagesSupplier->getMasterPages();
+ if ( !mXDrawPages.is() )
+ break;
+ mnMasterPages = mXDrawPages->getCount();
+ mXDrawPages = mXDrawPagesSupplier->getDrawPages();
+ if( !mXDrawPages.is() )
+ break;
+ mnPages = mXDrawPages->getCount();
+ if ( !ImplGetPageByIndex( 0, NORMAL ) )
+ break;
+
+ return sal_True;
+ }
+ return sal_False;
+
+}
+sal_Bool PPTEXPBase::ImplCreateSlide( sal_uInt32 nPageNum )
+{
+ Any aAny;
+
+ if ( !ImplGetPageByIndex( nPageNum, NORMAL ) )
+ return sal_False;
+
+ sal_uInt32 nMasterNum = ImplGetMasterIndex( NORMAL );
+ ImplSetCurrentStyleSheet( nMasterNum );
+
+ Reference< XPropertySet > aXBackgroundPropSet;
+ sal_Bool bHasBackground = GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) );
+ if ( bHasBackground )
+ bHasBackground = ( aAny >>= aXBackgroundPropSet );
+
+ sal_uInt16 nMode = 7; // Bit 1: Follow master objects, Bit 2: Follow master scheme, Bit 3: Follow master background
+ if ( bHasBackground )
+ nMode &=~4;
+
+ if ( GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) ) ) )
+ {
+ sal_Bool bBackgroundObjectsVisible = sal_False;
+ if ( aAny >>= bBackgroundObjectsVisible )
+ {
+ if ( !bBackgroundObjectsVisible )
+ nMode &= ~1;
+ }
+ }
+
+ ImplWriteSlide( nPageNum, nMasterNum, nMode, bHasBackground, aXBackgroundPropSet );
+
+ return sal_True;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTEXPBase::ImplCreateNotes( sal_uInt32 nPageNum )
+{
+ if ( !ImplGetPageByIndex( nPageNum, NOTICE ) )
+ return sal_False;
+ ImplSetCurrentStyleSheet( ImplGetMasterIndex( NORMAL ) );
+
+ ImplWriteNotes( nPageNum );
+
+ return sal_True;
+}
+
+
+sal_Bool PPTEXPBase::CreateMainNotes()
+{
+ if ( !ImplGetPageByIndex( 0, NOTICE ) )
+ return sal_False;
+ ImplSetCurrentStyleSheet( 0 );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPageTarget >
+ aXMasterPageTarget( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( !aXMasterPageTarget.is() )
+ return sal_False;
+
+ mXDrawPage = aXMasterPageTarget->getMasterPage();
+ if ( !mXDrawPage.is() )
+ return sal_False;
+
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXPropSet.is() )
+ return sal_False;
+
+ mXShapes = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XShapes >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXShapes.is() )
+ return sal_False;
+
+ return ImplCreateMainNotes();
+}
+
+
+sal_Bool PPTEXPBase::ImplCreateSlideMaster( sal_uInt32 nPageNum )
+{
+ if ( !ImplGetPageByIndex( nPageNum, MASTER ) )
+ return sal_False;
+ ImplSetCurrentStyleSheet( nPageNum );
+
+ if ( !ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) ) )
+ return sal_False;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet;
+ if ( !( mAny >>= aXBackgroundPropSet ) )
+ return sal_False;
+
+ ImplWriteSlideMaster( nPageNum, aXBackgroundPropSet );
+
+ return sal_True;
+}
+
+
+sal_Bool PPTEXPBase::ImplGetPageByIndex( sal_uInt32 nIndex, PageType ePageType )
+{
+ while( true )
+ {
+ if ( ePageType != meLatestPageType )
+ {
+ switch( ePageType )
+ {
+ case NORMAL :
+ case NOTICE :
+ {
+ mXDrawPages = mXDrawPagesSupplier->getDrawPages();
+ if( !mXDrawPages.is() )
+ return sal_False;
+ }
+ break;
+
+ case MASTER :
+ {
+ mXDrawPages = mXMasterPagesSupplier->getMasterPages();
+ if( !mXDrawPages.is() )
+ return sal_False;
+ }
+ break;
+ default:
+ break;
+ }
+ meLatestPageType = ePageType;
+ }
+ ::com::sun::star::uno::Any aAny( mXDrawPages->getByIndex( nIndex ) );
+ aAny >>= mXDrawPage;
+ if ( !mXDrawPage.is() )
+ break;
+ if ( ePageType == NOTICE )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentationPage >
+ aXPresentationPage( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !aXPresentationPage.is() )
+ break;
+ mXDrawPage = aXPresentationPage->getNotesPage();
+ if ( !mXDrawPage.is() )
+ break;
+ }
+ mXPagePropSet = ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXPagePropSet.is() )
+ break;
+
+ mXShapes = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XShapes >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXShapes.is() )
+ break;
+
+ /* try to get the "real" background PropertySet. If the normal page is not supporting this property, it is
+ taken the property from the master */
+ sal_Bool bHasBackground = GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ), sal_True );
+ if ( bHasBackground )
+ bHasBackground = ( aAny >>= mXBackgroundPropSet );
+ if ( !bHasBackground )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPageTarget >
+ aXMasterPageTarget( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXMasterPageTarget.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > aXMasterDrawPage;
+ aXMasterDrawPage = aXMasterPageTarget->getMasterPage();
+ if ( aXMasterDrawPage.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXMasterPagePropSet;
+ aXMasterPagePropSet = ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ ( aXMasterDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXMasterPagePropSet.is() )
+ {
+ sal_Bool bBackground = GetPropertyValue( aAny, aXMasterPagePropSet,
+ String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) );
+ if ( bBackground )
+ {
+ aAny >>= mXBackgroundPropSet;
+ }
+ }
+ }
+ }
+ }
+ return sal_True;
+ }
+ return sal_False;
+}
+
+::com::sun::star::awt::Point PPTEXPBase::ImplMapPoint( const ::com::sun::star::awt::Point& rPoint )
+{
+ Point aRet( OutputDevice::LogicToLogic( Point( rPoint.X, rPoint.Y ), maMapModeSrc, maMapModeDest ) );
+ return ::com::sun::star::awt::Point( aRet.X(), aRet.Y() );
+}
+
+
+::com::sun::star::awt::Size PPTEXPBase::ImplMapSize( const ::com::sun::star::awt::Size& rSize )
+{
+ Size aRetSize( OutputDevice::LogicToLogic( Size( rSize.Width, rSize.Height ), maMapModeSrc, maMapModeDest ) );
+
+ if ( !aRetSize.Width() )
+ aRetSize.Width()++;
+ if ( !aRetSize.Height() )
+ aRetSize.Height()++;
+ return ::com::sun::star::awt::Size( aRetSize.Width(), aRetSize.Height() );
+}
+
+
+Rectangle PPTEXPBase::ImplMapRectangle( const ::com::sun::star::awt::Rectangle& rRect )
+{
+ ::com::sun::star::awt::Point aPoint( rRect.X, rRect.Y );
+ ::com::sun::star::awt::Size aSize( rRect.Width, rRect.Height );
+ ::com::sun::star::awt::Point aP( ImplMapPoint( aPoint ) );
+ ::com::sun::star::awt::Size aS( ImplMapSize( aSize ) );
+ return Rectangle( Point( aP.X, aP.Y ), Size( aS.Width, aS.Height ) );
+}
+
+
+sal_Bool PPTEXPBase::ImplGetStyleSheets()
+{
+ int nInstance, nLevel;
+ sal_Bool bRetValue = sal_False;
+ sal_uInt32 nPageNum;
+
+ for ( nPageNum = 0; nPageNum < mnMasterPages; nPageNum++ )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >
+ aXNamed;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
+ aXNameAccess;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyleFamiliesSupplier >
+ aXStyleFamiliesSupplier( mXModel, ::com::sun::star::uno::UNO_QUERY );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aXPropSet( mXModel, ::com::sun::star::uno::UNO_QUERY );
+
+ sal_uInt16 nDefaultTab = ( aXPropSet.is() && ImplGetPropertyValue( aXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "TabStop" ) ) ) )
+ ? (sal_uInt16)( *(sal_Int32*)mAny.getValue() / 4.40972 )
+ : 1250;
+
+ maStyleSheetList.push_back( new PPTExStyleSheet( nDefaultTab, (PPTExBulletProvider&)*this ) );
+ ImplSetCurrentStyleSheet( nPageNum );
+ if ( ImplGetPageByIndex( nPageNum, MASTER ) )
+ aXNamed = ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXStyleFamiliesSupplier.is() )
+ aXNameAccess = aXStyleFamiliesSupplier->getStyleFamilies();
+
+ bRetValue = aXNamed.is() && aXNameAccess.is() && aXStyleFamiliesSupplier.is();
+ if ( bRetValue )
+ {
+ // Wang Xu Ming -- 4/28/2010
+ // Sym2_6917, Sym2_7468, half body style must be write for PPT table
+ //for ( nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_CenterTitle; nInstance++ )
+ for ( nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_HalfBody; nInstance++ )
+ // End
+ {
+ String aStyle;
+ String aFamily;
+ switch ( nInstance )
+ {
+ case EPP_TEXTTYPE_CenterTitle :
+ case EPP_TEXTTYPE_Title :
+ {
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "title" ) );
+ aFamily = aXNamed->getName();
+ }
+ break;
+ // Wang Xu Ming -- 4/28/2010
+ // Sym2_6917
+ case EPP_TEXTTYPE_Body :
+ case EPP_TEXTTYPE_HalfBody:
+ // End
+ {
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "outline1" ) ); // SD_LT_SEPARATOR
+ aFamily = aXNamed->getName();
+ }
+ break;
+ case EPP_TEXTTYPE_Other :
+ {
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "standard" ) );
+ aFamily = String( RTL_CONSTASCII_USTRINGPARAM( "graphics" ) );
+ }
+ break;
+ case EPP_TEXTTYPE_CenterBody :
+ {
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "subtitle" ) );
+ aFamily = aXNamed->getName();
+ }
+ break;
+ }
+ if ( aStyle.Len() && aFamily.Len() )
+ {
+ try
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >xNameAccess;
+ if ( aXNameAccess->hasByName( aFamily ) )
+ {
+ ::com::sun::star::uno::Any aAny( aXNameAccess->getByName( aFamily ) );
+ if( aAny.getValue() && ::cppu::extractInterface( xNameAccess, aAny ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > aXFamily;
+ if ( aAny >>= aXFamily )
+ {
+ if ( aXFamily->hasByName( aStyle ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > xStyle;
+ aAny = aXFamily->getByName( aStyle );
+ if( aAny.getValue() && ::cppu::extractInterface( xStyle, aAny ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > aXStyle;
+ aAny >>= aXStyle;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ xPropSet( aXStyle, ::com::sun::star::uno::UNO_QUERY );
+ if( xPropSet.is() )
+ mpStyleSheet->SetStyleSheet( xPropSet, maFontCollection, nInstance, 0 );
+ for ( nLevel = 1; nLevel < 5; nLevel++ )
+ {
+ // Wang Xu Ming -- 4/28/2010
+ // Sym2_6917
+ if ( nInstance == EPP_TEXTTYPE_Body || nInstance == EPP_TEXTTYPE_HalfBody )
+ // End
+ {
+ sal_Unicode cTemp = aStyle.GetChar( aStyle.Len() - 1 );
+ aStyle.SetChar( aStyle.Len() - 1, ++cTemp );
+ if ( aXFamily->hasByName( aStyle ) )
+ {
+ aXFamily->getByName( aStyle ) >>= xStyle;
+ if( xStyle.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ xPropertySet( xStyle, ::com::sun::star::uno::UNO_QUERY );
+ if ( xPropertySet.is() )
+ mpStyleSheet->SetStyleSheet( xPropertySet, maFontCollection, nInstance, nLevel );
+ }
+ }
+ }
+ else
+ mpStyleSheet->SetStyleSheet( xPropSet, maFontCollection, nInstance, nLevel );
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ catch( ::com::sun::star::uno::Exception& )
+ {
+ //
+ }
+ }
+ }
+ for ( ; nInstance <= EPP_TEXTTYPE_QuarterBody; nInstance++ )
+ {
+
+ }
+ }
+ }
+ return bRetValue;
+}
+
+sal_Bool PPTEXPBase::ImplSetCurrentStyleSheet( sal_uInt32 nPageNum )
+{
+ sal_Bool bRet = sal_False;
+ if ( nPageNum >= maStyleSheetList.size() )
+ nPageNum = 0;
+ else
+ bRet = sal_True;
+ mpStyleSheet = maStyleSheetList[ nPageNum ];
+ return bRet;
+}
+
+sal_Bool PPTEXPBase::ContainsOtherShapeThanPlaceholders( sal_Bool bForOOMLX )
+{
+ sal_uInt32 nShapes = mXShapes->getCount();
+ sal_Bool bOtherThanPlaceHolders = sal_False;
+
+ if ( nShapes )
+ for ( sal_uInt32 nIndex = 0; ( nIndex < nShapes ) && ( bOtherThanPlaceHolders == sal_False ); nIndex++ ) {
+ if ( ImplGetShapeByIndex( nIndex ) && mType != "drawing.Page" ) {
+ if( bForOOMLX &&
+ ( mType == "presentation.Page" ||
+ mType == "presentation.Notes" ) ) {
+ Reference< XSimpleText > rXText( mXShape, UNO_QUERY );
+
+ if( rXText.is() && rXText->getString().getLength() != 0 )
+ bOtherThanPlaceHolders = sal_True;
+ } else
+ bOtherThanPlaceHolders = sal_True;
+ }
+
+ }
+
+ return bOtherThanPlaceHolders;
+}
+
+sal_Bool PPTEXPBase::ImplGetShapeByIndex( sal_uInt32 nIndex, sal_Bool bGroup )
+{
+ while ( true )
+ {
+ if ( ( bGroup == sal_False ) || ( GetCurrentGroupLevel() == 0 ) )
+ {
+ ::com::sun::star::uno::Any aAny( mXShapes->getByIndex( nIndex ) );
+ aAny >>= mXShape;
+ }
+ else
+ {
+ ::com::sun::star::uno::Any aAny( GetCurrentGroupAccess()->getByIndex( GetCurrentGroupIndex() ) );
+ aAny >>= mXShape;
+ }
+ if ( !mXShape.is() )
+ break;
+
+ ::com::sun::star::uno::Any aAny( mXShape->queryInterface( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >*) 0 ) ));
+ aAny >>= mXPropSet;
+
+ if ( !mXPropSet.is() )
+ break;
+ maPosition = ImplMapPoint( mXShape->getPosition() );
+ maSize = ImplMapSize( mXShape->getSize() );
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+ mType = ByteString( String( mXShape->getShapeType() ), RTL_TEXTENCODING_UTF8 );
+ mType.Erase( 0, 13 ); // "com.sun.star." entfernen
+ sal_uInt16 nPos = mType.Search( (const char*)"Shape" );
+ mType.Erase( nPos, 5 );
+
+ mbPresObj = mbEmptyPresObj = sal_False;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsPresentationObject" ) ) ) )
+ mAny >>= mbPresObj;
+
+ if ( mbPresObj && ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsEmptyPresentationObject" ) ) ) )
+ mAny >>= mbEmptyPresObj;
+
+ mnAngle = ( PropValue::GetPropertyValue( aAny,
+ mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) ), sal_True ) )
+ ? *((sal_Int32*)aAny.getValue() )
+ : 0;
+
+ return sal_True;
+ }
+ return sal_False;
+}
+
+
+sal_uInt32 PPTEXPBase::ImplGetMasterIndex( PageType ePageType )
+{
+ sal_uInt32 nRetValue = 0;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPageTarget >
+ aXMasterPageTarget( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXMasterPageTarget.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >
+ aXDrawPage = aXMasterPageTarget->getMasterPage();
+ if ( aXDrawPage.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aXPropertySet( aXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXPropertySet.is() )
+ {
+ if ( ImplGetPropertyValue( aXPropertySet, String( RTL_CONSTASCII_USTRINGPARAM( "Number" ) ) ) )
+ nRetValue |= *(sal_Int16*)mAny.getValue();
+ if ( nRetValue & 0xffff ) // ueberlauf vermeiden
+ nRetValue--;
+ }
+ }
+ }
+ if ( ePageType == NOTICE )
+ nRetValue += mnMasterPages;
+ return nRetValue;
+
+}
+
+sal_Int32 PPTEXPBase::GetLayoutOffset( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rXPropSet ) const
+{
+ ::com::sun::star::uno::Any aAny;
+ sal_Int32 nLayout = 20;
+ if ( GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Layout" ) ) ), sal_True )
+ aAny >>= nLayout;
+
+ return nLayout;
+}
+
Added: openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.hxx?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.hxx (added)
+++ openoffice/branches/ooxml/main/sd/source/filter/eppt/pptexpbase.hxx Fri Feb 28 04:44:42 2014
@@ -0,0 +1,135 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#ifndef PPTEXP_BASE_HXX
+#define PPTEXP_BASE_HXX
+
+#include "eppt.hxx"
+#include <vector>
+#include <vcl/mapmod.hxx>
+#include <tools/list.hxx>
+#include <tools/string.hxx>
+#include <tools/stream.hxx>
+#include <tools/gen.hxx>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
+#include <com/sun/star/drawing/XMasterPageTarget.hpp>
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+
+class PPTEXPBase : public PropValue, public GroupTable
+{
+protected:
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mXModel;
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > mXStatusIndicator;
+
+ sal_Bool mbStatusIndicator;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPagesSupplier > mXDrawPagesSupplier;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPagesSupplier > mXMasterPagesSupplier;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > mXDrawPages;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > mXDrawPage;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mXPagePropSet;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mXBackgroundPropSet;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > mXShapes;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXShape;
+ ::com::sun::star::awt::Size maSize;
+ ::com::sun::star::awt::Point maPosition;
+ Rectangle maRect;
+ ByteString mType;
+ sal_Bool mbPresObj;
+ sal_Bool mbEmptyPresObj;
+ sal_Int32 mnAngle;
+
+ sal_uInt32 mnPages; // number of Slides ( w/o master pages & notes & handout )
+ sal_uInt32 mnMasterPages;
+
+ Fraction maFraction;
+ MapMode maMapModeSrc;
+ MapMode maMapModeDest;
+ ::com::sun::star::awt::Size maDestPageSize;
+ ::com::sun::star::awt::Size maNotesPageSize;
+
+ PageType meLatestPageType;
+ std::vector< PPTExStyleSheet* > maStyleSheetList;
+ PPTExStyleSheet* mpStyleSheet;
+
+ FontCollection maFontCollection;
+
+ List maTextRuleList; // TextRuleEntry's
+
+ virtual void ImplWriteSlide( sal_uInt32 /* nPageNum */, sal_uInt32 /* nMasterNum */, sal_uInt16 /* nMode */,
+ sal_Bool /* bHasBackground */, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > /* aXBackgroundPropSet */ ) {}
+ virtual void ImplWriteNotes( sal_uInt32 nPageNum ) = 0;
+ virtual void ImplWriteSlideMaster( sal_uInt32 /* nPageNum */, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > /* aXBackgroundPropSet */ ) {}
+ virtual void ImplWriteLayout( sal_Int32 /* nOffset */, sal_uInt32 /* nMasterNum */ ) {}
+
+ virtual void exportPPTPre() {}
+ virtual void exportPPTPost() {}
+
+ virtual sal_Bool ImplCreateDocument()=0;
+ virtual sal_Bool ImplCreateMainNotes()=0;
+
+ sal_Bool ImplGetStyleSheets();
+ sal_Bool ImplGetShapeByIndex( sal_uInt32 nIndex, sal_Bool bGroup = sal_False );
+
+ sal_Bool CreateMainNotes();
+
+ ::com::sun::star::awt::Size ImplMapSize( const ::com::sun::star::awt::Size& );
+ ::com::sun::star::awt::Point ImplMapPoint( const ::com::sun::star::awt::Point& );
+ Rectangle ImplMapRectangle( const ::com::sun::star::awt::Rectangle& );
+
+ sal_Bool ContainsOtherShapeThanPlaceholders( sal_Bool bForOOMLX );
+
+public:
+ PPTEXPBase();
+ PPTEXPBase( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rModel,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rStatInd );
+
+ ~PPTEXPBase();
+
+ sal_Bool InitUnoModel();
+ void exportPPT();
+
+ sal_Bool ImplGetPageByIndex( sal_uInt32 nIndex, PageType );
+ sal_uInt32 ImplGetMasterIndex( PageType ePageType );
+ sal_Bool ImplSetCurrentStyleSheet( sal_uInt32 nPageNum );
+
+ sal_Bool GetPresObj() { return mbPresObj; }
+
+ PHLayout& GetLayout( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rXPropSet ) const;
+ PHLayout& GetLayout( sal_Int32 nOffset ) const;
+ sal_Int32 GetLayoutOffset( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rXPropSet ) const;
+ sal_Int32 GetLayoutOffsetFixed( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rXPropSet ) const;
+
+ sal_Bool ImplCreateSlide( sal_uInt32 nPageNum );
+ sal_Bool ImplCreateSlideMaster( sal_uInt32 nPageNum );
+ sal_Bool ImplCreateNotes( sal_uInt32 nPageNum );
+
+ static sal_Int8 GetTransition( sal_Int16 nTransitionType, sal_Int16 nTransitionSubtype, ::com::sun::star::presentation::FadeEffect eEffect, sal_uInt8& nDirection );
+ static sal_Int8 GetTransition( ::com::sun::star::presentation::FadeEffect eEffect, sal_uInt8& nDirection );
+};
+
+
+#endif
Modified: openoffice/branches/ooxml/main/sd/util/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/util/makefile.mk?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sd/util/makefile.mk (original)
+++ openoffice/branches/ooxml/main/sd/util/makefile.mk Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
#
#**************************************************************
-
-
PRJ=..
PRJNAME=sd
@@ -163,9 +161,9 @@ SHL2STDLIBS= \
$(SVTOOLLIB) \
$(SVLLIB) \
$(VCLLIB) \
- $(SOTLIB) \
+ $(SOTLIB) \
$(TOOLSLIB) \
- $(UNOTOOLSLIB) \
+ $(UNOTOOLSLIB) \
$(UCBHELPERLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
@@ -181,7 +179,7 @@ SHL4TARGET= sdui$(DLLPOSTFIX)
SHL4IMPLIB= sduiimp
SHL4VERSIONMAP= sdui.map
SHL4DEF=$(MISC)$/$(SHL4TARGET).def
-DEF4NAME= $(SHL4TARGET)
+DEF4NAME= $(SHL4TARGET)
SHL4LIBS= $(SLB)$/sdui_all.lib
LIB4TARGET= $(SLB)$/sdui_all.lib
@@ -243,10 +241,10 @@ SHL5LIBS = $(SLB)$/ppt.lib $(SLB)$/
DEF5NAME=$(SHL5TARGET)
-SHL5STDLIBS = $(ISDLIB) \
+SHL5STDLIBS = $(ISDLIB) \
$(EDITENGLIB) \
$(SVXCORELIB) \
- $(MSFILTERLIB) \
+ $(MSFILTERLIB) \
$(SFX2LIB) \
$(SVTOOLLIB) \
$(SOTLIB) \
@@ -260,6 +258,8 @@ SHL5STDLIBS = $(ISDLIB) \
$(CPPULIB) \
$(SALLIB) \
$(COMPHELPERLIB) \
+ $(OOXLIB) \
+ $(SAXLIB) \
$(I18NISOLANGLIB)
# --- Targets -------------------------------------------------------------
@@ -271,7 +271,7 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo Making: $@
@$(TYPE) sd.flt > $@
-ALLTAR : $(MISC)/sd.component $(MISC)/sdd.component
+ALLTAR : $(MISC)/sd.component $(MISC)/sdfilt.component $(MISC)/sdd.component
$(MISC)/sd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
sd.component
@@ -279,6 +279,12 @@ $(MISC)/sd.component .ERRREMOVE : $(SOLA
'$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
$(SOLARENV)/bin/createcomponent.xslt sd.component
+$(MISC)/sdfilt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sdfilt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL5TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sdfilt.component
+
$(MISC)/sdd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
sdd.component
$(XSLTPROC) --nonet --stringparam uri \
Added: openoffice/branches/ooxml/main/sd/util/sdfilt.component
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/util/sdfilt.component?rev=1572819&view=auto
==============================================================================
--- openoffice/branches/ooxml/main/sd/util/sdfilt.component (added)
+++ openoffice/branches/ooxml/main/sd/util/sdfilt.component Fri Feb 28 04:44:42 2014
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--***********************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ ***********************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Impress.OOXMLExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+</component>
Modified: openoffice/branches/ooxml/main/sd/util/sdfilt.map
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sd/util/sdfilt.map?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sd/util/sdfilt.map (original)
+++ openoffice/branches/ooxml/main/sd/util/sdfilt.map Fri Feb 28 04:44:42 2014
@@ -3,6 +3,9 @@ UDK_3_0_0 {
ExportPPT;
ImportPPT;
SaveVBA;
+ component_getImplementationEnvironment;
+ component_writeInfo;
+ component_getFactory;
local:
*;
};
Modified: openoffice/branches/ooxml/main/sw/Library_msword.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sw/Library_msword.mk?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sw/Library_msword.mk (original)
+++ openoffice/branches/ooxml/main/sw/Library_msword.mk Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
#
#**************************************************************
-
-
$(eval $(call gb_Library_Library,msword))
$(eval $(call gb_Library_set_componentfile,msword,sw/util/msword))
@@ -53,16 +51,17 @@ $(eval $(call gb_Library_add_linked_libs
icuuc \
msfilter \
sal \
+ sax \
sfx \
sot \
stl \
svl \
svt \
svx \
- svx \
svxcore \
sw \
ootk \
+ oox \
tl \
ucbhelper \
utl \
@@ -76,6 +75,9 @@ $(eval $(call gb_Library_add_exception_o
sw/source/filter/rtf/rtfnum \
sw/source/filter/rtf/rtftbl \
sw/source/filter/rtf/swparrtf \
+ sw/source/filter/ww8/docxattributeoutput \
+ sw/source/filter/ww8/docxexport \
+ sw/source/filter/ww8/docxexportfilter \
sw/source/filter/ww8/rtfattributeoutput \
sw/source/filter/ww8/rtfexport \
sw/source/filter/ww8/rtfexportfilter \
Modified: openoffice/branches/ooxml/main/sw/source/filter/ww8/WW8TableInfo.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sw/source/filter/ww8/WW8TableInfo.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sw/source/filter/ww8/WW8TableInfo.hxx (original)
+++ openoffice/branches/ooxml/main/sw/source/filter/ww8/WW8TableInfo.hxx Fri Feb 28 04:44:42 2014
@@ -19,8 +19,6 @@
*
*************************************************************/
-
-
#ifndef WW8_TABLE_INFO_HXX
#define WW8_TABLE_INFO_HXX
#include <hash_map>
@@ -31,6 +29,7 @@
#include <boost/shared_ptr.hpp>
#include <sal/types.h>
#include <swrect.hxx>
+#include <set>
class SwTable;
class SwTableLine;
Modified: openoffice/branches/ooxml/main/sw/source/filter/ww8/attributeoutputbase.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml/main/sw/source/filter/ww8/attributeoutputbase.hxx?rev=1572819&r1=1572818&r2=1572819&view=diff
==============================================================================
--- openoffice/branches/ooxml/main/sw/source/filter/ww8/attributeoutputbase.hxx (original)
+++ openoffice/branches/ooxml/main/sw/source/filter/ww8/attributeoutputbase.hxx Fri Feb 28 04:44:42 2014
@@ -327,7 +327,7 @@ public:
sal_Int16 nFirstLineIndex,
sal_Int16 nListTabPos,
const String &rNumberingString ,
- const SvxBrushItem* pBrush = 0) = 0;//For i120928,to export graphic of bullet
+ const SvxBrushItem* pBrush = 0) = 0;//For i120928,to export graphic of bullet
protected: