[Libreoffice-commits] .: filter/inc filter/source sw/source
Noel Power
noelp at kemper.freedesktop.org
Wed Aug 24 11:45:16 PDT 2011
filter/inc/filter/msfilter/msocximex.hxx | 342 --
filter/inc/filter/msfilter/svxmsbas.hxx | 13
filter/source/msfilter/makefile.mk | 1
filter/source/msfilter/msocximex.cxx | 3603 -------------------------------
filter/source/msfilter/msvbasic.cxx | 1461 ------------
filter/source/msfilter/msvbasic.hxx | 127 -
filter/source/msfilter/svxmsbas.cxx | 479 ----
sw/source/filter/ww8/ww8par.hxx | 15
8 files changed, 11 insertions(+), 6030 deletions(-)
New commits:
commit cecb746a3d8132998711c429163874d39ff5b2ff
Author: Noel Power <noel.power at novell.com>
Date: Wed Aug 24 19:45:40 2011 +0100
kill old vba and ole control filter(s) for import at least
diff --git a/filter/inc/filter/msfilter/msocximex.hxx b/filter/inc/filter/msfilter/msocximex.hxx
index 31b3732..98c2f67 100644
--- a/filter/inc/filter/msfilter/msocximex.hxx
+++ b/filter/inc/filter/msfilter/msocximex.hxx
@@ -76,19 +76,6 @@ class OCX_Control;
class SfxObjectShell;
class SwPaM;
-class TypeName
-{
-public:
- String msName;
- sal_uInt16 mnType;
- sal_Int32 mnLeft;
- sal_Int32 mnTop;
- sal_Int32 mnStoreId;
- TypeName(sal_Char *pName, sal_uInt32 nStoreId, sal_uInt32 nLen, sal_uInt16 nType,
- sal_Int32 nLeft, sal_Int32 nTop);
-};
-
-
class MSFILTER_DLLPUBLIC SvxMSConvertOCXControls
{
public:
@@ -178,9 +165,6 @@ public:
if (pFontName)
delete [] pFontName;
}
- sal_Bool Read(SotStorageStream *pS);
- void Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet > &rPropSet);
sal_Bool Export(SotStorageStreamRef &rContent,
const com::sun::star::uno::Reference<
@@ -213,7 +197,6 @@ public:
protected:
static sal_uInt16 nStandardId;
sal_uInt8 ExportAlign(sal_Int16 nAlign) const;
- sal_Int16 ImportAlign(sal_uInt8 nJustification) const;
private:
sal_Bool bHasAlign;
sal_Bool bHasFont;
@@ -225,23 +208,6 @@ public:
OCX_Control(UniString sN, OCX_Control* parent = NULL ) : nWidth( 0 ), nHeight( 0 ), mnLeft(0), mnTop(0),
mnStep(0), mnBackColor(0x8000000FL), mnForeColor(0), mnTabPos(0), mbVisible(true), sName(sN), pDocSh(0),
bSetInDialog(sal_False), mpParent( parent ) {}
- sal_Bool FullRead(SotStorageStream *pS)
- {
- return Read(pS) && ReadFontData(pS);
- };
- virtual sal_Bool Read(SotStorageStream *pS);
- virtual sal_Bool ReadFontData(SotStorageStream *pS);
- virtual sal_Bool Import(const com::sun::star::uno::Reference<
- com::sun::star::lang::XMultiServiceFactory > &rServiceFactory,
- com::sun::star::uno::Reference<
- com::sun::star::form::XFormComponent > &rFComp,
- com::sun::star::awt::Size &rSz);
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer>
- &rDialog);
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet>& /*rPropSet*/)
- {return sal_False;}
//Export exports a control as an OLE style storage stream tree
virtual sal_Bool Export(SotStorageRef& /*rObj*/,
const com::sun::star::uno::Reference<
@@ -257,17 +223,6 @@ public:
void SetInDialog(bool bState) { bSetInDialog = bState; }
bool GetInDialog() { return bSetInDialog; }
- sal_Bool ReadAndImport(SotStorageStream *pS,
- com::sun::star::uno::Reference<
- com::sun::star::lang::XMultiServiceFactory > &rSF,
- com::sun::star::uno::Reference<
- com::sun::star::form::XFormComponent > &rFComp,
- com::sun::star::awt::Size &rSz)
- {
- if (Read(pS))
- return Import(rSF,rFComp,rSz);
- return sal_False;
- }
virtual ~OCX_Control() {}
static void FillSystemColors();
@@ -292,14 +247,10 @@ public:
com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj;
protected:
- sal_uInt32 ImportColor(sal_uInt32 nColorCode) const;
sal_uInt32 ExportColor(sal_uInt32 nColorCode) const;
sal_uInt32 SwapColor(sal_uInt32 nColorCode) const;
- sal_Int16 ImportBorder(sal_uInt16 nSpecialEffect,sal_uInt16 nBorderStyle)
- const;
sal_uInt8 ExportBorder(sal_uInt16 nBorder,sal_uInt8 &rBorderStyle) const;
bool bSetInDialog;
- sal_Int16 ImportSpecEffect( sal_uInt8 nSpecialEffect ) const;
sal_uInt8 ExportSpecEffect( sal_Int16 nApiEffect ) const;
static sal_uInt16 nStandardId;
static sal_uInt8 const aObjInfo[4];
@@ -333,8 +284,6 @@ public:
if (pGroupName) delete[] pGroupName;
if (pIcon) delete[] pIcon;
}
- sal_Bool Read(SotStorageStream *pS);
-
/*sal_uInt8 for sal_uInt8 Word Struct*/
sal_uInt16 nIdentifier;
@@ -415,22 +364,6 @@ public:
};
-class OCX_TabStrip : public OCX_Control
-{
-public:
- OCX_TabStrip() : OCX_Control( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TabStrip" ))), nIdentifier(0), nFixedAreaLen(0), nNumTabs(0), bHasTabs(true) {}
-
- virtual sal_Bool ReadFontData(SotStorageStream *pS);
- virtual sal_Bool Read(SotStorageStream *pS);
-
- std::vector< rtl::OUString > msItems;
- sal_uInt16 nIdentifier;
- sal_uInt16 nFixedAreaLen;
- sal_uInt8 pBlockFlags[4];
- sal_Int32 nNumTabs;
- bool bHasTabs;
-};
-
class OCX_Image : public OCX_Control
{
public:
@@ -462,11 +395,6 @@ public:
sal_uInt8 nSpecialEffect;
bool bAutoSize;
- sal_Bool Read(SotStorageStream *pS);
-
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet>& rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -475,215 +403,11 @@ public:
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
const com::sun::star::awt::Size& rSize);
- // No Font record
- virtual sal_Bool ReadFontData(SvStorageStream* /*pS*/) { return sal_True; }
static OCX_Control *Create() { return new OCX_Image;}
};
-struct ContainerRecord
-{
- ContainerRecord():nTop(0), nLeft(0), nSubStorageId(0), nSubStreamLen(0), nTabPos(0), nTypeIdent(0), bVisible( true ), bTabStop( true ) {}
- ::rtl::OUString cName;
- ::rtl::OUString controlTip;
- ::rtl::OUString sCtrlSource;
- ::rtl::OUString sRowSource;
-
- sal_uInt32 nTop;
- sal_uInt32 nLeft;
- sal_uInt32 nSubStorageId;
- sal_uInt32 nSubStreamLen;
- sal_uInt16 nTabPos;
- sal_uInt16 nTypeIdent;
- bool bVisible;
- bool bTabStop;
-};
-
-typedef std::vector<OCX_Control*>::iterator CtrlIterator;
-typedef std::vector<OCX_Control*>::const_iterator CtrlIteratorConst;
-typedef std::vector<OCX_Control*> CtrlList;
-
class OCX_OptionButton;
-class OCX_ParentControl : public OCX_Control
-{
-public:
- virtual sal_Bool Read(SvStorageStream *pS);
- virtual sal_Bool ReadFontData(SvStorageStream* /*pS*/) { return sal_True; }
-
- using OCX_Control::Import; // to not hide the other two import methods
-
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-
- SotStorageStreamRef getContainerStream() { return mContainerStream; }
-
- SotStorageStreamRef getOStream() { return mContainedControlsStream; }
- virtual void ProcessControl( OCX_Control* pControl, SvStorageStream* pS, ContainerRecord& rec );
- bool createFromContainerRecord( const ContainerRecord& record,
- OCX_Control*& );
- SotStorageStreamRef getContainedControlsStream(){ return mContainedControlsStream; }
-protected:
- OCX_ParentControl( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > &rDialog,
- OCX_Control* pParent = NULL );
- ~OCX_ParentControl();
-
- com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > mxParent;
- std::vector<OCX_Control*> mpControls;
- boost::unordered_map<sal_uInt16, sal_uInt16> mActiveXIDMap;
- SotStorageRef mContainerStorage;
- SotStorageStreamRef mContainerStream;
- SotStorageStreamRef mContainedControlsStream;
- sal_uInt16 nIdentifier;
- sal_uInt16 nFixedAreaLen;
- sal_uInt8 pBlockFlags[4];
-
- sal_uInt32 nChildrenA;
- sal_uInt32 nNextAvailableID;
- sal_uInt32 nBooleanProperties;
- sal_uInt32 nGroupCnt;
- sal_uInt32 nZoom;
-
- sal_uInt8 fUnknown1:1;
- sal_uInt8 fEnabled:1;
- sal_uInt8 fLocked:1;
- sal_uInt8 fBackStyle:1;
- sal_uInt8 fUnknown2:4;
-
- sal_uInt8 fUnknown3:8;
-
- sal_uInt8 fUnknown4:7;
- sal_uInt8 fWordWrap:1;
-
- sal_uInt8 fUnknown5:4;
- sal_uInt8 fAutoSize:1;
- sal_uInt8 fUnknown6:3;
-
- sal_uInt32 nCaptionLen;
- sal_uInt16 nVertPos;
- sal_uInt16 nHorzPos;
- sal_uInt32 nBorderColor;
- sal_uInt32 nDrawBuffer;
- sal_uInt32 nShapeCookie;
- sal_uInt8 nKeepScrollBarsVisible;
- sal_uInt8 nCycle;
- sal_uInt8 nBorderStyle;
- sal_uInt8 nMousePointer;
- sal_uInt8 nSpecialEffect;
- sal_uInt16 nPicture;
- sal_uInt8 nPictureAlignment;
- sal_uInt8 nPictureSizeMode;
- bool bPictureTiling;
- sal_uInt16 nAccelerator;
- sal_uInt16 nIcon;
- sal_uInt16 fUnknown7;
-
- char *pCaption;
-
- sal_uInt32 nScrollWidth;
- sal_uInt32 nScrollHeight;
- sal_uInt32 nScrollLeft;
- sal_uInt32 nScrollTop;
-
- sal_uInt8 pIconHeader[20];
- sal_uInt32 nIconLen;
- sal_uInt8 *pIcon;
-
- sal_uInt8 pPictureHeader[20];
- sal_uInt32 nPictureLen;
-private:
- OCX_ParentControl(); // not implemented
- OCX_ParentControl(const OCX_ParentControl&); // not implemented
-
-};
-
-class OCX_Page;
-class OCX_MultiPage : public OCX_ParentControl
-{
-public:
- OCX_MultiPage( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > &rDialog, OCX_Control* pParent = NULL);
-
- virtual sal_Bool Read(SvStorageStream *pS);
-
- using OCX_ParentControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
- virtual void ProcessControl( OCX_Control* pControl, SvStorageStream* pS, ContainerRecord& rec );
-private:
- sal_Int32 nActiveTab;
- SotStorageStreamRef mXStream;
- bool bHasTabs;
- std::vector< rtl::OUString > sCaptions;
- // order of Ids corrosponds to the order of captions above
- std::vector< sal_Int32 > mPageIds;
- boost::unordered_map< sal_Int32, OCX_Page* > idToPage;
-};
-
-
-class OCX_Page : public OCX_ParentControl
-{
-public:
- OCX_Page( SotStorageRef& parentStorage,
- sal_Int32 nID,
- const ::rtl::OUString& sN,
- const com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > &rDialog, OCX_Control* parent = NULL);
- virtual sal_Bool Read(SvStorageStream *pS);
-
- using OCX_ParentControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
- rtl::OUString msTitle; // #FIXME we should use the existing caption
- sal_Int32 mnID;
-private:
-};
-
-
-class OCX_Frame : public OCX_ParentControl
-{
-public:
- OCX_Frame( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > &rDialog, OCX_Control* pParent = NULL);
- virtual sal_Bool Read(SvStorageStream *pS);
-
- using OCX_ParentControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-};
-
-
-class OCX_UserForm : public OCX_ParentControl
-{
-public:
- OCX_UserForm( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer > &rDialog,
- const com::sun::star::uno::Reference<
- com::sun::star::lang::XMultiServiceFactory >& rMsf);
- using OCX_ParentControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import( com::sun::star::uno::Reference<
- com::sun::star::container::XNameContainer>
- &rDialog);
-private:
- com::sun::star::uno::Reference<
- com::sun::star::uno::XComponentContext> mxCtx;
-};
-
-
-
class OCX_CheckBox : public OCX_ModernControl
{
public:
@@ -695,9 +419,6 @@ public:
aFontData.SetHasAlign(sal_True);
}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -722,9 +443,6 @@ public:
aFontData.SetHasAlign(sal_True);
}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -750,10 +468,6 @@ public:
aFontData.SetHasAlign(sal_True);
}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -799,9 +513,6 @@ public:
}
static OCX_Control *Create() { return new OCX_ToggleButton;}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SvStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -824,9 +535,6 @@ public:
aFontData.SetHasAlign(sal_True);
}
static OCX_Control *Create() { return new OCX_ComboBox;}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -850,9 +558,6 @@ public:
aFontData.SetHasAlign(sal_True);
}
static OCX_Control *Create() { return new OCX_ListBox;}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -883,7 +588,6 @@ public:
if (pCaption) delete[] pCaption;
if (pIcon) delete[] pIcon;
}
- sal_Bool Read(SotStorageStream *pS);
/*sal_uInt8 for sal_uInt8 Word Struct*/
sal_uInt16 nIdentifier;
@@ -928,9 +632,6 @@ public:
bool mbTakeFocus;
static OCX_Control *Create() { return new OCX_CommandButton;}
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -998,7 +699,6 @@ public:
if (pCaption) delete[] pCaption;
if (pIcon) delete[] pIcon;
}
- sal_Bool Read(SotStorageStream *pS);
/*sal_uInt8 for sal_uInt8 Word Struct*/
sal_uInt16 nIdentifier;
@@ -1043,10 +743,6 @@ public:
static OCX_Control *Create() { return new OCX_Label;}
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-
sal_Bool Export(SotStorageRef &rObj,
const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet> &rPropSet,
@@ -1066,12 +762,6 @@ public:
static OCX_Control* Create();
- virtual sal_Bool Read( SvStorageStream *pS );
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
- // No Font record
- virtual sal_Bool ReadFontData(SvStorageStream* /*pS*/) { return sal_True; }
private:
sal_Int32 nMin;
sal_Int32 nMax;
@@ -1087,13 +777,6 @@ public:
static OCX_Control* Create();
- virtual sal_Bool Read( SvStorageStream *pS );
-
- virtual sal_Bool ReadFontData( SvStorageStream *pS );
-
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
//Export exports a control as an OLE style storage stream tree
virtual sal_Bool Export( SvStorageRef &rObj,
const com::sun::star::uno::Reference<
@@ -1153,10 +836,6 @@ public:
static OCX_Control* Create();
- using OCX_Control::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-
//Export exports a control as an OLE style storage stream tree
virtual sal_Bool Export( SvStorageRef &rObj,
const com::sun::star::uno::Reference<
@@ -1185,14 +864,8 @@ public:
nMultiState =false;
}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
-
static OCX_Control *Create() { return new HTML_Select;}
- virtual sal_Bool Read(SotStorageStream *pS);
- virtual sal_Bool ReadFontData(SotStorageStream *pS);
com::sun::star::uno::Sequence< rtl::OUString > msListData;
com::sun::star::uno::Sequence< sal_Int16 > msIndices;
};
@@ -1209,23 +882,8 @@ public:
aFontData.SetHasAlign(sal_True);
}
- using OCX_ModernControl::Import; // to not hide the other two import methods
- virtual sal_Bool Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet);
- /*
- sal_Bool Export(SotStorageRef &rObj,
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet,
- const com::sun::star::awt::Size& rSize);
- sal_Bool WriteContents(SotStorageStreamRef &rObj,
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet,
- const com::sun::star::awt::Size& rSize);
- */
static OCX_Control *Create() { return new HTML_TextBox;}
- virtual sal_Bool Read(SotStorageStream *pS);
- virtual sal_Bool ReadFontData(SotStorageStream *pS);
};
diff --git a/filter/inc/filter/msfilter/svxmsbas.hxx b/filter/inc/filter/msfilter/svxmsbas.hxx
index e2aa734..f04a83b 100644
--- a/filter/inc/filter/msfilter/svxmsbas.hxx
+++ b/filter/inc/filter/msfilter/svxmsbas.hxx
@@ -67,16 +67,6 @@ public:
: xRoot(&rRoot), rDocSh(rDocS),
bImport(bImportCode), bCopy(bCopyStorage)
{}
- // returns the status of import:
- // 0 - nothing has done
- // bit 0 = 1 -> any code is imported to the SO-Basic
- // bit 1 = 1 -> the VBA - storage is copy to the ObjectShell storage
- int Import( const String& rStorageName, const String &rSubStorageName,
- sal_Bool bAsComment=sal_True, sal_Bool bStripped=sal_True );
- int Import( const String& rStorageName, const String &rSubStorageName,
- const std::vector< String >& codeNames,
- sal_Bool bAsComment=sal_True, sal_Bool bStripped=sal_True );
-
// only for the export - copy or delete the saved VBA-macro-storage
// form the ObjectShell
// - returns a warning code if a modified basic exist, in all other
@@ -102,13 +92,10 @@ private:
const String &rSubStorageName,
const std::vector< String >& codeNames,
sal_Bool bAsComment, sal_Bool bStripped);
- MSFILTER_DLLPRIVATE bool ImportForms_Impl(const String& rStorageName,
- const String &rSubStorageName, sal_Bool bVBAMode);
MSFILTER_DLLPRIVATE sal_Bool CopyStorage_Impl( const String& rStorageName,
const String &rSubStorageName);
rtl::OUString msProjectName;
MSFILTER_DLLPRIVATE sal_Bool ImportCode_Impl( VBA_Impl&, const std::vector< String >&, sal_Bool, sal_Bool );
- MSFILTER_DLLPRIVATE bool ImportForms_Impl( VBA_Impl&, const String&, const String&, sal_Bool);
};
#endif
diff --git a/filter/source/msfilter/makefile.mk b/filter/source/msfilter/makefile.mk
index 8070bc4..142e28f 100644
--- a/filter/source/msfilter/makefile.mk
+++ b/filter/source/msfilter/makefile.mk
@@ -50,7 +50,6 @@ SLOFILES= \
$(SLO)$/msocximex.obj \
$(SLO)$/msoleexp.obj \
$(SLO)$/msvbahelper.obj \
- $(SLO)$/msvbasic.obj \
$(SLO)$/services.obj \
$(SLO)$/svdfppt.obj \
$(SLO)$/svxmsbas.obj \
diff --git a/filter/source/msfilter/msocximex.cxx b/filter/source/msfilter/msocximex.cxx
index 6c79d1b..2bc0015 100644
--- a/filter/source/msfilter/msocximex.cxx
+++ b/filter/source/msfilter/msocximex.cxx
@@ -106,281 +106,11 @@ using namespace cppu;
#define WW8_ASCII2STR(s) String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(s))
-#define GRAPHOBJ_URLPREFIX "vnd.sun.star.GraphicObject:"
-
-
-// #FIXME remove when oox is used for control import
-// convertion class lifted from oox ( yes, duplication I know but
-// should be very short term )
-class GraphicHelper
-{
-public:
- GraphicHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel );
- ~GraphicHelper();
-
- /** Returns information about the output device. */
- const ::com::sun::star::awt::DeviceInfo& getDeviceInfo() const;
-
- /** Converts the passed value from horizontal screen pixels to 1/100 mm. */
- sal_Int32 convertScreenPixelXToHmm( double fPixelX ) const;
- /** Converts the passed value from vertical screen pixels to 1/100 mm. */
- sal_Int32 convertScreenPixelYToHmm( double fPixelY ) const;
- /** Converts the passed point from screen pixels to 1/100 mm. */
- ::com::sun::star::awt::Point convertScreenPixelToHmm( const ::com::sun::star::awt::Point& rPixel ) const;
- /** Converts the passed size from screen pixels to 1/100 mm. */
- ::com::sun::star::awt::Size convertScreenPixelToHmm( const ::com::sun::star::awt::Size& rPixel ) const;
-
- /** Converts the passed value from 1/100 mm to horizontal screen pixels. */
- double convertHmmToScreenPixelX( sal_Int32 nHmmX ) const;
- /** Converts the passed value from 1/100 mm to vertical screen pixels. */
- double convertHmmToScreenPixelY( sal_Int32 nHmmY ) const;
- /** Converts the passed point from 1/100 mm to screen pixels. */
- ::com::sun::star::awt::Point convertHmmToScreenPixel( const ::com::sun::star::awt::Point& rHmm ) const;
- /** Converts the passed size from 1/100 mm to screen pixels. */
- ::com::sun::star::awt::Size convertHmmToScreenPixel( const ::com::sun::star::awt::Size& rHmm ) const;
-
- /** Converts the passed point from AppFont units to 1/100 mm. */
- ::com::sun::star::awt::Point convertAppFontToHmm( const ::com::sun::star::awt::Point& rAppFont ) const;
- /** Converts the passed point from AppFont units to 1/100 mm. */
- ::com::sun::star::awt::Size convertAppFontToHmm( const ::com::sun::star::awt::Size& rAppFont ) const;
-
- /** Converts the passed point from 1/100 mm to AppFont units. */
- ::com::sun::star::awt::Point convertHmmToAppFont( const ::com::sun::star::awt::Point& rHmm ) const;
- /** Converts the passed size from 1/100 mm to AppFont units. */
- ::com::sun::star::awt::Size convertHmmToAppFont( const ::com::sun::star::awt::Size& rHmm ) const;
-
-private:
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxGlobalFactory;
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxCompContext;
- ::com::sun::star::uno::Reference< ::com::sun::star::awt::XUnitConversion > mxUnitConversion;
- ::com::sun::star::awt::DeviceInfo maDeviceInfo; /// Current output device info.
- double mfPixelPerHmmX; /// Number of screen pixels per 1/100 mm in X direction.
- double mfPixelPerHmmY; /// Number of screen pixels per 1/100 mm in Y direction.
-};
-
-inline sal_Int32 lclConvertScreenPixelToHmm( double fPixel, double fPixelPerHmm )
-{
- return static_cast< sal_Int32 >( (fPixelPerHmm > 0.0) ? (fPixel / fPixelPerHmm + 0.5) : 0.0 );
-}
-
-GraphicHelper::GraphicHelper( const uno::Reference< frame::XModel >& rxModel )
-{
- mxGlobalFactory = comphelper::getProcessServiceFactory();
- ::comphelper::ComponentContext aContext( mxGlobalFactory );
- mxCompContext = aContext.getUNOContext();
-
- // if no target frame has been passed (e.g. OLE objects), try to fallback to the active frame
- // TODO: we need some mechanism to keep and pass the parent frame
- uno::Reference< frame::XFrame > xFrame;
- if ( rxModel.is() )
- {
- uno::Reference< frame::XController > xController = rxModel->getCurrentController();
- xFrame = xController.is() ? xController->getFrame() : NULL;
- }
- if( !xFrame.is() && mxGlobalFactory.is() ) try
- {
- uno::Reference< frame::XFramesSupplier > xFramesSupp( mxGlobalFactory->createInstance( WW8_ASCII2STR( "com.sun.star.frame.Desktop" ) ), uno::UNO_QUERY_THROW );
- xFrame = xFramesSupp->getActiveFrame();
- }
- catch( uno::Exception& )
- {
- }
-
- // get the metric of the output device
- OSL_ENSURE( xFrame.is(), "GraphicHelper::GraphicHelper - cannot get target frame" );
- maDeviceInfo.PixelPerMeterX = maDeviceInfo.PixelPerMeterY = 3500.0; // some default just in case
- if( xFrame.is() ) try
- {
- uno::Reference< awt::XDevice > xDevice( xFrame->getContainerWindow(), uno::UNO_QUERY_THROW );
- mxUnitConversion.set( xDevice, uno::UNO_QUERY );
- OSL_ENSURE( mxUnitConversion.is(), "GraphicHelper::GraphicHelper - cannot get unit converter" );
- maDeviceInfo = xDevice->getInfo();
- }
- catch( uno::Exception& )
- {
- OSL_FAIL( "GraphicHelper::GraphicHelper - cannot get output device info" );
- }
- mfPixelPerHmmX = maDeviceInfo.PixelPerMeterX / 100000.0;
- mfPixelPerHmmY = maDeviceInfo.PixelPerMeterY / 100000.0;
-}
-
-GraphicHelper::~GraphicHelper()
-{
-}
-
-// Device info and device dependent unit conversion ---------------------------
-
-const awt::DeviceInfo& GraphicHelper::getDeviceInfo() const
-{
- return maDeviceInfo;
-}
-
-sal_Int32 GraphicHelper::convertScreenPixelXToHmm( double fPixelX ) const
-{
- return lclConvertScreenPixelToHmm( fPixelX, mfPixelPerHmmX );
-}
-
-sal_Int32 GraphicHelper::convertScreenPixelYToHmm( double fPixelY ) const
-{
- return lclConvertScreenPixelToHmm( fPixelY, mfPixelPerHmmY );
-}
-
-awt::Point GraphicHelper::convertScreenPixelToHmm( const awt::Point& rPixel ) const
-{
- return awt::Point( convertScreenPixelXToHmm( rPixel.X ), convertScreenPixelYToHmm( rPixel.Y ) );
-}
-
-awt::Size GraphicHelper::convertScreenPixelToHmm( const awt::Size& rPixel ) const
-{
- return awt::Size( convertScreenPixelXToHmm( rPixel.Width ), convertScreenPixelYToHmm( rPixel.Height ) );
-}
-
-double GraphicHelper::convertHmmToScreenPixelX( sal_Int32 nHmmX ) const
-{
- return nHmmX * mfPixelPerHmmX;
-}
-
-double GraphicHelper::convertHmmToScreenPixelY( sal_Int32 nHmmY ) const
-{
- return nHmmY * mfPixelPerHmmY;
-}
-
-awt::Point GraphicHelper::convertHmmToScreenPixel( const awt::Point& rHmm ) const
-{
- return awt::Point(
- static_cast< sal_Int32 >( convertHmmToScreenPixelX( rHmm.X ) + 0.5 ),
- static_cast< sal_Int32 >( convertHmmToScreenPixelY( rHmm.Y ) + 0.5 ) );
-}
-
-awt::Size GraphicHelper::convertHmmToScreenPixel( const awt::Size& rHmm ) const
-{
- return awt::Size(
- static_cast< sal_Int32 >( convertHmmToScreenPixelX( rHmm.Width ) + 0.5 ),
- static_cast< sal_Int32 >( convertHmmToScreenPixelY( rHmm.Height ) + 0.5 ) );
-}
-
-awt::Point GraphicHelper::convertAppFontToHmm( const awt::Point& rAppFont ) const
-{
- if( mxUnitConversion.is() ) try
- {
- awt::Point aPixel = mxUnitConversion->convertPointToPixel( rAppFont, ::com::sun::star::util::MeasureUnit::APPFONT );
- return convertScreenPixelToHmm( aPixel );
- }
- catch( uno::Exception& )
- {
- }
- return awt::Point( 0, 0 );
-}
-
-awt::Size GraphicHelper::convertAppFontToHmm( const awt::Size& rAppFont ) const
-{
- if( mxUnitConversion.is() ) try
- {
- awt::Size aPixel = mxUnitConversion->convertSizeToPixel( rAppFont, ::com::sun::star::util::MeasureUnit::APPFONT );
- return convertScreenPixelToHmm( aPixel );
- }
- catch( uno::Exception& )
- {
- }
- return awt::Size( 0, 0 );
-}
-
-awt::Point GraphicHelper::convertHmmToAppFont( const awt::Point& rHmm ) const
-{
- if( mxUnitConversion.is() ) try
- {
- awt::Point aPixel = convertHmmToScreenPixel( rHmm );
- return mxUnitConversion->convertPointToLogic( aPixel, ::com::sun::star::util::MeasureUnit::APPFONT );
- }
- catch( uno::Exception& )
- {
- }
- return awt::Point( 0, 0 );
-}
-
-awt::Size GraphicHelper::convertHmmToAppFont( const awt::Size& rHmm ) const
-{
- if( mxUnitConversion.is() ) try
- {
- awt::Size aPixel = convertHmmToScreenPixel( rHmm );
- return mxUnitConversion->convertSizeToLogic( aPixel, ::com::sun::star::util::MeasureUnit::APPFONT );
- }
- catch( uno::Exception& )
- {
- }
- return awt::Size( 0, 0 );
-}
-
static char sWW8_form[] = "WW-Standard";
-
-struct SortOrderByTabPos
-{
- bool operator()( const OCX_Control* a, const OCX_Control* b )
- {
- return a->mnTabPos < b->mnTabPos;
- }
-};
-
-
sal_uInt8 const OCX_Control::aObjInfo[4] = { 0x00, 0x12, 0x03, 0x00 };
-long ReadAlign(SvStorageStream *pS, long nPos, int nAmount)
-{
- if (long nAlign = nPos % nAmount)
- {
-
- long nLen = nAmount - nAlign;
- pS->SeekRel(nLen);
- return nLen;
- }
- return 0;
-}
-
-// NP - Images in controls in OO2.0/SO8 exist as links, e.g. they are not part of the document so are
-// referenced externally. On import from ms document try to save images for controls here.
-// Images are stored in directory called temp in the user installation directory. Next version of OO/SO
-// hopefully will address this issue and allow a choice e.g. images for controls to be stored as links
-// or embeded in the document.
-uno::Reference< graphic::XGraphicObject> lcl_readGraphicObject( SotStorageStream *pS )
-{
- uno::Reference< graphic::XGraphicObject > xGrfObj;
- uno::Reference< lang::XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
- if( xServiceManager.is() )
- {
- try
- {
- // use the GraphicProvider service to get the XGraphic
- uno::Reference< graphic::XGraphicProvider > xGraphProvider(
- xServiceManager->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.graphic.GraphicProvider" )) ), uno::UNO_QUERY );
- if( xGraphProvider.is() )
- {
- uno::Reference< io::XInputStream > xStream( new utl::OInputStreamWrapper( *pS ) );
- if( xStream.is() )
- {
- uno::Sequence< beans::PropertyValue > aMediaProps( 1 );
- aMediaProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InputStream" ));
- aMediaProps[0].Value <<= xStream;
- uno::Reference< graphic::XGraphic > xGraphic = xGraphProvider->queryGraphic( aMediaProps );
- if( xGraphic.is() )
- {
- // create an XGraphicObject
- ::comphelper::ComponentContext aContext( xServiceManager );
- xGrfObj = graphic::GraphicObject::create( aContext.getUNOContext() );
- xGrfObj->setGraphic(xGraphic);
- }
- }
- }
- }
- catch( uno::Exception& )
- {
- }
- }
- return xGrfObj;
-}
-
-
long WriteAlign(SvStorageStream *pS, int nAmount)
{
if (long nAlign = pS->Tell() % nAmount)
@@ -416,52 +146,6 @@ bool writeOCXNAME( const OUString& sOCXName, SvStorageStream* pStream )
}
-bool readOCXNAME( OUString& sCName, SvStorageStream* pStream )
-{
- /*
- * Read uniCode until no data or 0 encountered
- */
- OUStringBuffer buf(40);
- do
- {
- sal_uInt16 ch = 0;
- *pStream >> ch;
- sal_Unicode uni = static_cast< sal_Unicode >( ch );
- if ( uni == 0 )
- {
- break;
- }
- buf.append( &uni, 1 );
-
- } while ( !pStream->IsEof() );
-
- sCName = buf.makeStringAndClear();
- return ( SVSTREAM_OK == pStream->GetError() );
-}
-
-
-/* ** Import of Unicode strings in form controls **
-
- Strings may be stored either as compressed or uncompressed Unicode
- character array. There are no encoded byte strings anywhere.
-
- The string length field stores the length of the character array (not the
- character count of the string) in the lower 31 bits, and the compression
- state in the highest bit.
-
- A set bit means the character array is compressed. This means all Unicode
- characters are <=0xFF. Therefore the high bytes of all characters are left
- out, and the character array size is equal to the string length.
-
- A cleared bit means the character array is not compressed. The buffer
- contains Little-Endian Unicode characters, and the resulting string length
- is half the buffer size.
-
- TODO: This implementation of the new string import is a hack to keep
- msocximex.hxx unchanged. A better implementation would replace the char*
- members of all classes by something more reasonable.
- */
-
namespace {
const sal_uInt32 SVX_MSOCX_SIZEMASK = 0x7FFFFFFF; /// Mask for character buffer size.
@@ -484,104 +168,6 @@ inline sal_uInt32 lclGetBufferSize( sal_uInt32 nLenFld )
return nLenFld & SVX_MSOCX_SIZEMASK;
}
-
-// import ---------------------------------------------------------------------
-
-/** Reads the character array of a string in a form control.
-
- Creates a new character array containing the character data.
- The length field must be read before and passed to this function.
- Aligns stream position to multiple of 4 before.
-
- @param rStrm
- The input stream.
-
- @param rpcCharArr
- (out-param) Will point to the created character array,
- or will be 0 if string is empty. The array is NOT null-terminated.
- If the passed pointer points to an old existing array, it will be
- deleted before. Caller must delete the returned array.
-
- @param nLenFld
- The corresponding string length field read somewhere before.
- */
-void lclReadCharArray( SvStorageStream& rStrm, char*& rpcCharArr, sal_uInt32 nLenFld, long nPos )
-{
- delete[] rpcCharArr;
- rpcCharArr = 0;
- sal_uInt32 nBufSize = lclGetBufferSize( nLenFld );
- DBG_ASSERT( nBufSize <= 0xFFFF, "lclReadCharArray - possible read error: char array is too big" );
- if( nBufSize && nBufSize <= 0xFFFF )
- {
- rpcCharArr = new char[ nBufSize ];
- if( rpcCharArr )
- {
- ReadAlign( &rStrm, nPos, 4 );
- rStrm.Read( rpcCharArr, nBufSize );
- }
- }
-}
-
-/** Creates an OUString from a character array created with lclReadCharArray().
-
- The passed parameters must match, that means the length field must be the
- same used to create the passed character array.
-
- @param pcCharArr
- The character array returned by lclReadCharArray(). May be compressed
- or uncompressed, next parameter nLenFld will specify this.
-
- @param nLenFld
- MUST be the same string length field that has been passed to
- lclReadCharArray() to create the character array in previous parameter
- pcCharArr.
-
- @return
- An OUString containing the decoded string data. Will be empty if
- pcCharArr is 0.
- */
-OUString lclCreateOUString( const char* pcCharArr, sal_uInt32 nLenFld )
-{
- sal_uInt32 nBufSize = lclGetBufferSize( nLenFld );
- if( lclIsCompressed( nLenFld ) )
- return svt::BinFilterUtils::CreateOUStringFromStringArray( pcCharArr, nBufSize );
-
- return svt::BinFilterUtils::CreateOUStringFromUniStringArray( pcCharArr, nBufSize );
-}
-
-void readArrayString( SotStorageStream *pS, std::vector< rtl::OUString >& sStringsOut, sal_Int32 nSize, long nStart )
-{
- unsigned long nFinish = pS->Tell() + nSize;
- while ( pS->Tell() < nFinish )
- {
- sal_Int32 nStringLen = 0;
- *pS >> nStringLen;
- sal_uInt32 nStringSize = lclGetBufferSize( nStringLen );
- sal_Char* pString = new sal_Char[ nStringSize ];
- pS->Read( pString, nStringSize );
- rtl::OUString sString = lclCreateOUString( pString, nStringLen );
- delete[] pString;
- sStringsOut.push_back( sString );
- ReadAlign(pS, pS->Tell() - nStart, 4);
- }
-}
-
-OUString createSubStreamName( const sal_uInt32& subStorageId )
-{
- static OUString sI( RTL_CONSTASCII_USTRINGPARAM( "i" ));
- static OUString sZero( RTL_CONSTASCII_USTRINGPARAM( "0" ));
- OUStringBuffer buf( 6 );
- buf.append( sI );
- // for subStorage id < 10 stream name has leading '0'
- // eg "i07"
- if ( subStorageId < 10 )
- {
- buf.append( sZero );
- }
- buf.append( OUString::valueOf( (sal_Int32)subStorageId ) );
- return buf.makeStringAndClear();
-}
-
// export ---------------------------------------------------------------------
/** This class implements writing a character array from a Unicode string.
@@ -674,518 +260,6 @@ void SvxOcxString::WriteCharArray( SvStorageStream& rStrm ) const
}
}
-class MultiPageProps
-{
-public:
- sal_uInt16 nIdentifier; // major & minor version
- sal_uInt16 nFixedAreaLen; // size of record
- sal_uInt8 pBlockFlags[4]; // size of record
- sal_Int32 mnPageCount;
- sal_Int32 mnID;
- bool mbEnabled;
- std::vector< sal_Int32 > mnIDs;
-
- MultiPageProps();
- bool Read(SotStorageStream *pS);
-};
-
-MultiPageProps::MultiPageProps() : nIdentifier(0), nFixedAreaLen(0), mnPageCount(0), mnID(0), mbEnabled( true )
-{
-}
-
-bool MultiPageProps::Read(SotStorageStream *pS)
-{
- *pS >> nIdentifier >> nFixedAreaLen;
- pS->Read( pBlockFlags, sizeof( pBlockFlags ) );
- if ( pBlockFlags[ 0 ] & 0x02 )
- *pS >> mnPageCount;
- if ( pBlockFlags[ 0 ] & 0x04 )
- *pS >> mnID;
- if ( pBlockFlags[ 0 ] & 0x08 )
- mbEnabled = false;
- for ( sal_Int32 i=0; i<mnPageCount; ++i )
- {
- sal_Int32 nID(0);
- *pS >> nID;
- mnIDs.push_back( nID );
- }
- return true;
-}
-
-const sal_uInt16 USERFORM = (sal_uInt16)0xFF;
-const sal_uInt16 STDCONTAINER = (sal_uInt16)0xFE;
-
-const sal_uInt16 PAGE = (sal_uInt16)0x07;
-
-const sal_uInt16 IMAGE = (sal_uInt16)0x0C;
-const sal_uInt16 FRAME = (sal_uInt16)0x0E;
-
-const sal_uInt16 SPINBUTTON = (sal_uInt16)0x10;
-const sal_uInt16 CMDBUTTON = (sal_uInt16)0x11;
-const sal_uInt16 TABSTRIP = (sal_uInt16)0x12;
-
-const sal_uInt16 LABEL = (sal_uInt16)0x15;
-
-const sal_uInt16 TEXTBOX = (sal_uInt16)0x17;
-const sal_uInt16 LISTBOX = (sal_uInt16)0x18;
-const sal_uInt16 COMBOBOX = (sal_uInt16)0x19;
-const sal_uInt16 CHECKBOX = (sal_uInt16)0x1A;
-
-const sal_uInt16 OPTIONBUTTON = (sal_uInt16)0x1B;
-const sal_uInt16 TOGGLEBUTTON = (sal_uInt16)0x1C;
-
-const sal_uInt16 SCROLLBAR = (sal_uInt16)0x2F;
-
-const sal_uInt16 MULTIPAGE = (sal_uInt16)0x39;
-
-const sal_uInt16 UNKNOWNCTRL = (sal_uInt16)0x7FFF;
-const sal_uInt16 PROGRESSBAR = (sal_uInt16)0x8000;
-
-// following ActiveX controls are just for reference ( are NOT supported )
-const sal_uInt16 REFEDIT = (sal_uInt16)0x8001;
-const sal_uInt16 CALENDAR = (sal_uInt16)0x8002;
-const sal_uInt16 IMAGECOMBO = (sal_uInt16)0x8003;
-const sal_uInt16 IMAGELIST = (sal_uInt16)0x8004;
-const sal_uInt16 SLIDER = (sal_uInt16)0x8005;
-const sal_uInt16 STATUSBAR = (sal_uInt16)0x8006;
-const sal_uInt16 CHARTSPACE = (sal_uInt16)0x8007;
-
-// A set of common CLSIDs
-// there are to identify the following ActiveX controls ( that appear in the ClassTable records )
-// Currently we only can process ( in a limited way ) the ProgressBar
-// the other ID's are for reference ( & future )
-
-// Microsoft ProgressBar Control, version 6.0 {35053A22-8589-11D1-B16A-00C0F0283628}
-const sal_uInt8 aProgressID[] =
-{
-0x22, 0x3a, 0x05, 0x35, 0x89, 0x85, 0xd1, 0x11, 0xb1, 0x6a, 0x00, 0xc0, 0xf0, 0x28, 0x36, 0x28,
-};
-
-// RefEdit control {00024512-0000-0000-c000-000000000046}
-const sal_uInt8 aRefEditID[] =
-{
-0x12, 0x45, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46,
-};
-
-// Calendar Control 10.0
-const sal_uInt8 aCalendarID[] =
-{
-0x2b, 0xc9, 0x27, 0x8e, 0x64, 0x12, 0x1c, 0x10, 0x8a, 0x2f, 0x04, 0x02, 0x24, 0x00, 0x9c, 0x02,
-};
-
-// Microsoft ImageComboxBox Control, version 6.0 {DD9DA666-8594-11D1-B16A-00C0F0283628}
-const sal_uInt8 aImageComboID[] =
-{
-0x66, 0xa6, 0x9d, 0xdd, 0x94, 0x85, 0xd1, 0x11, 0xb1, 0x6a, 0x00, 0xc0, 0xf0, 0x28, 0x36, 0x28,
-};
-
-// Microsoft ImageList Control, version 6.0 {2C247F23-8591-11D1-B16A-00C0F0283628}
-const sal_uInt8 aImageListID[] =
-{
-0x23, 0x7f, 0x24, 0x2c, 0x91, 0x85, 0xd1, 0x11, 0xb1, 0x6a, 0x00, 0xc0, 0xf0, 0x28, 0x36, 0x28,
-};
-
-// Microsoft Slider Control, version 6.0 {F08DF954-8592-11D1-B16A-00C0F0283628}
-const sal_uInt8 aSliderID[] =
-{
-0x54, 0xf9, 0x8d, 0xf0, 0x92, 0x85, 0xd1, 0x11, 0xb1, 0x6a, 0x00, 0xc0, 0xf0, 0x28, 0x36, 0x28,
-};
-
-// Microsoft StatusBar Control, version 6.0 {8E3867A3-8586-11D1-B16A-00C0F0283628}
-const sal_uInt8 aStatusBarID[] =
-{
-0xa3, 0x67, 0x38, 0x8e, 0x86, 0x85, 0xd1, 0x11, 0xb1, 0x6a, 0x00, 0xc0, 0xf0, 0x28, 0x36, 0x28,
-};
-
-// Microsoft Office Chart 10.0
-const sal_uInt8 aChartSpaceID[] =
-{
-0x46, 0xe5, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46,
-};
-
-const sal_uInt8 nSizeOfClsid = sizeof( aProgressID );
-
-struct ClsIdTypeIDPair
-{
-// ClsIdTypeIDPair() : pClsID( NULL ), nTypeID( UNKNOWNCTRL ) {}
- const sal_uInt8* pClsID;
- const sal_uInt16 nTypeID;
-};
-
-ClsIdTypeIDPair ClsidList[] = { { aProgressID, PROGRESSBAR },
-// unsupported common activex controls
-#ifdef DEBUG
- { aRefEditID, REFEDIT },
- { aCalendarID, CALENDAR },
- { aImageComboID, IMAGECOMBO },
- { aImageListID, IMAGELIST },
- { aSliderID, SLIDER },
- { aStatusBarID, STATUSBAR },
- { aChartSpaceID, CHARTSPACE },
-#endif
-};
-
-typedef std::vector< ContainerRecord > ContainerRecordList;
-
-class FormObjectDepthTypeCount
-{
- public:
- sal_uInt8 depth;
- sal_uInt8 TypeOrCount;
- std::auto_ptr< sal_uInt8 > OptionalType;
- FormObjectDepthTypeCount() : depth(0), TypeOrCount(0) {}
- bool Read( SvStorageStream* pS )
- {
- *pS >> depth >> TypeOrCount;
- if ( TypeOrCount & 0x80 )
- {
- OptionalType.reset( new sal_uInt8 );
- *pS >> *OptionalType;
- }
- TypeOrCount = ( TypeOrCount >> 1 );
- return true;
- }
-};
-
-class ClassTable
-{
- sal_uInt16 nIdentifier;
- sal_uInt16 nFixedAreaLen;
- sal_uInt32 nContentFlags;
- sal_uInt16 nClassTableFlags;
- sal_uInt16 nVarFlags;
- sal_Int32 nCountOfMethods;
- sal_Int32 nDispidBind;
- sal_uInt16 nGetBindIndex;
- sal_uInt16 nPutBindIndex;
- sal_uInt16 nBindType;
- sal_uInt16 nGetValueIndex;
- sal_uInt16 nPutValueIndex;
- sal_uInt16 nValueType;
- sal_uInt32 nDisidRowset;
- sal_uInt16 nSetRowset;
- sal_uInt8 pClsId[16];
- sal_uInt8 pDispEvent[16];
- sal_uInt8 pDefaultProg[16];
- sal_uInt16 nTypeId;
-public:
- ClassTable() : nIdentifier( 0 )
- ,nFixedAreaLen( 0 )
- ,nContentFlags(0)
- ,nClassTableFlags(0)
- ,nVarFlags(0)
- ,nCountOfMethods(0)
- ,nDispidBind(0)
- ,nGetBindIndex(0)
- ,nPutBindIndex(0)
- ,nBindType(0)
- ,nGetValueIndex(0)
- ,nPutValueIndex(0)
- ,nValueType(0)
- ,nDisidRowset(0)
- ,nSetRowset(0)
- ,nTypeId(UNKNOWNCTRL)
-
- {
- memset( pClsId, 0, sizeof( pClsId ) );
- memset( pDispEvent, 0, sizeof( pDispEvent ) );
- memset( pDefaultProg, 0, sizeof( pDefaultProg ) );
- }
- bool Read( SvStorageStream* pS )
- {
- long nStartPos = pS->Tell();
- *pS >> nIdentifier >> nFixedAreaLen >> nContentFlags;
- bool bClsID( false );
- bool bDispEvent( false );
- bool bDefaultProg( false );
- if ( nContentFlags & 0x00000001 )
- bClsID = true;
- if ( nContentFlags & 0x00000002 )
- bDispEvent = true;
-// if ( nContentFlags & 0x00000004 ) ' not set should be 0
- if ( nContentFlags & 0x00000008 )
- bDefaultProg = true;
- if ( nContentFlags & 0x00000010 )
- *pS >> nClassTableFlags >> nVarFlags;
- if ( nContentFlags & 0x00000020 )
- *pS >> nCountOfMethods;
- if ( nContentFlags & 0x00000040 )
- *pS >> nDispidBind;
- if ( nContentFlags & 0x00000080 )
- *pS >> nGetBindIndex;
- if ( nContentFlags & 0x00000100 )
- *pS >> nPutBindIndex;
- if ( nContentFlags & 0x00000200 )
- *pS >> nBindType;
- if ( nContentFlags & 0x00000400 )
- *pS >> nGetValueIndex;
- if ( nContentFlags & 0x00000800 )
- *pS >> nPutValueIndex;
- if ( nContentFlags & 0x00001000 )
- *pS >> nValueType;
- if ( nContentFlags & 0x00002000 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> nDisidRowset;
- }
- if ( nContentFlags & 0x00004000 )
- *pS >> nSetRowset;
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- // Extra Block
- if ( bClsID )
- pS->Read( pClsId, sizeof( pClsId ) );
- if ( bDispEvent )
- pS->Read( pDispEvent, sizeof( pDispEvent ) );
- if ( bDefaultProg )
- pS->Read( pDefaultProg, sizeof( pDefaultProg ) );
-
- sal_Int32 nNumIds = SAL_N_ELEMENTS( ClsidList );
-
- if ( bClsID )
- {
- for ( sal_Int32 index = 0; index < nNumIds; ++index )
- {
- if ( memcmp( pClsId, ClsidList[ index ].pClsID, nSizeOfClsid ) == 0 )
- {
- nTypeId = ClsidList[ index ].nTypeID;
- OSL_TRACE( "... found activex control ClsidList[ %d ] and have given it TypeIdent 0x%x", index, nTypeId );
- }
- }
- }
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- return true;
- }
-
- sal_uInt16 getTypeId() { return nTypeId; }
-};
-
-class OleSiteConcreteControl
-{
- sal_uInt16 nIdentifier;
- sal_uInt16 nFixedAreaLen;
- sal_uInt32 nContentFlags;
-public:
- OleSiteConcreteControl() : nIdentifier( 0 ), nFixedAreaLen( 0 ), nContentFlags(0) {}
- bool Read( ContainerRecord& rec, SvStorageStream* pS )
- {
- long nStartPos = pS->Tell();
- *pS >> nIdentifier >> nFixedAreaLen >> nContentFlags;
-
- bool bPosition( false );
-
- sal_uInt32 nNameLen = 0;
- // length of control name
- if ( nContentFlags & 0x00000001 )
- *pS >> nNameLen;
- // length of control tag
- sal_uInt32 nTagLen = 0;
- if( nContentFlags & 0x00000002 )
- *pS >> nTagLen;
- // substorage id for frames
- if( nContentFlags & 0x00000004 )
- *pS >> rec.nSubStorageId;
- // help-context id
- if( nContentFlags & 0x00000008 )
- pS->SeekRel( 4 );
- // option flags
- if( nContentFlags & 0x00000010 )
- {
- sal_uInt32 nBitFlags = 0;
- *pS >> nBitFlags;
- rec.bVisible = ( nBitFlags & 0x02 );
- rec.bTabStop = ( nBitFlags & 0x01 );
- }
- // substream size
- if( nContentFlags & 0x00000020 )
- *pS >> rec.nSubStreamLen;
- // tabstop position
- if( nContentFlags & 0x00000040 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 2 );
- *pS >> rec.nTabPos;
- }
- // control type
- if( nContentFlags & 0x00000080 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 2 );
- *pS >> rec.nTypeIdent;
- }
- if( nContentFlags & 0x00000100 )
- bPosition = true;
- sal_Int16 nGroupId = 0;
- if( nContentFlags & 0x00000200 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 2 );
- *pS >> nGroupId;
- }
-
- // length of infotip
- sal_uInt32 nTipLen = 0;
- if( nContentFlags & 0x00000800 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> nTipLen;
- }
- sal_uInt32 nCntrlIdLen = 0;
- if( nContentFlags & 0x00001000 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> nCntrlIdLen;
- }
-
- // length of control source name
- sal_uInt32 nCtrlSrcLen = 0;
- if( nContentFlags & 0x00002000 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> nCtrlSrcLen;
- }
-
- // length of row source name
- sal_uInt32 nRowSrcLen = 0;
- if( nContentFlags & 0x00004000 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> nRowSrcLen;
- }
-
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- // control name
- sal_Char* pName = 0;
- sal_uInt32 nNameBufSize = lclGetBufferSize( nNameLen );
- if( nNameBufSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- pName = new char[ nNameBufSize ];
- pS->Read( pName, nNameBufSize );
- }
- // control tag
- sal_uInt32 nTagBufSize = lclGetBufferSize( nTagLen );
- if( nTagBufSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- pS->SeekRel( nTagBufSize );
- }
-
- // control position
- if( bPosition )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> rec.nLeft >> rec.nTop;
- }
-
- // control infotip
- sal_uInt32 nTipBufSize = lclGetBufferSize( nTipLen );
- if( nTipBufSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- std::auto_ptr< sal_Char > pTipName;
- pTipName.reset( new sal_Char[ nTipBufSize ] );
- pS->Read( pTipName.get(), nTipBufSize );
- rec.controlTip = lclCreateOUString( pTipName.get(), nTipLen );
- }
- // control id
- sal_uInt32 nCntrlIdSize = lclGetBufferSize( nCntrlIdLen );
- if( nCntrlIdSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- pS->SeekRel( nCntrlIdSize );
- }
- // control source name
- sal_uInt32 nCtrlSrcBufSize = lclGetBufferSize( nCtrlSrcLen );
- if( nCtrlSrcBufSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- std::vector< sal_Char > pCtrlSrcName( nCtrlSrcBufSize );
- pS->Read( &pCtrlSrcName[0], nCtrlSrcBufSize );
- rec.sCtrlSource = lclCreateOUString( &pCtrlSrcName[0], nCtrlSrcLen );
- OSL_TRACE("*** *** *** ControlSourceName -> %s ", rtl::OUStringToOString( rec.sCtrlSource, RTL_TEXTENCODING_UTF8 ).getStr() );
- }
- // row source name
- sal_uInt32 nRowSrcBufSize = lclGetBufferSize( nRowSrcLen );
- if( nRowSrcBufSize > 0 )
- {
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- std::vector< sal_Char > pRowSrcName( nRowSrcBufSize );
- pS->Read( &pRowSrcName[0], nRowSrcBufSize );
- rec.sRowSource = lclCreateOUString( &pRowSrcName[0], nRowSrcLen );
- OSL_TRACE("*** *** *** RowSourceName -> %s ", rtl::OUStringToOString( rec.sRowSource, RTL_TEXTENCODING_UTF8 ).getStr() );
- }
-
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- rec.cName = lclCreateOUString(pName, nNameLen);
- delete[] pName;
- return true;
- }
-};
-
-class ContainerRecReader
-{
- public:
-
- virtual ~ContainerRecReader() {}
-
- virtual bool Read( OCX_ParentControl* pContainerControl, SvStorageStream *pS, std::vector< ClassTable >& rSiteClassInfo )
- {
- *pS >> nNoRecords;
- *pS >> nTotalLen;
- long nStart = pS->Tell();
- for ( sal_uInt32 nSite = 0; nSite < nNoRecords; )
- {
- FormObjectDepthTypeCount siteAndDepth;
- siteAndDepth.Read( pS );
- nSite += ( siteAndDepth.OptionalType.get() ? siteAndDepth.TypeOrCount : 1 );
- }
-
- ReadAlign(pS, pS->Tell() - nStart, 4);
-
- for (sal_uInt32 nRecord = 0; nRecord < nNoRecords; ++nRecord)
- {
-
- ContainerRecord rec;
-
- OleSiteConcreteControl site;
- site.Read( rec, pS );
- if ( rec.nTypeIdent >= ( UNKNOWNCTRL + 1 ) )
- {
- sal_uInt16 nIndex = rec.nTypeIdent - ( UNKNOWNCTRL + 1 );
- if ( nIndex < rSiteClassInfo.size() )
- rec.nTypeIdent = rSiteClassInfo[ nIndex ].getTypeId();
- }
- OCX_Control* pControl = NULL;
- OSL_TRACE("** About to create control of type 0x%x with name %s from rec", rec.nTypeIdent, rtl::OUStringToOString( rec.cName, RTL_TEXTENCODING_UTF8 ).getStr() );
- if( pContainerControl->createFromContainerRecord( rec, pControl ) &&
- pControl )
- {
- // propagate doc shell from parent
- pControl->pDocSh = pContainerControl->pDocSh;
- pContainerControl->ProcessControl( pControl, pS, rec );
-
- }
- else if ( rec.nTypeIdent & 0x8000 )
- {
- // Skip ActiveX Controls we can't import
- SotStorageStreamRef oStream = pContainerControl->getContainedControlsStream();
- sal_uLong nStrmPos = oStream->Tell();
- oStream->Seek( nStrmPos + rec.nSubStreamLen );
- }
- else
- {
- OSL_FAIL("Terminating import, unexpected error");
- return false;
- }
- }
- return true;
- }
-
- ContainerRecReader():nNoRecords(0), nTotalLen(0){}
- protected:
- sal_uInt32 nNoRecords;
- sal_uInt32 nTotalLen;
-
- private:
-};
-
} // namespace
// ============================================================================
@@ -1240,46 +314,6 @@ void OCX_Control::FillSystemColors()
pColor[ 0x18 ] = rSett.GetHelpColor().GetColor();
}
-sal_uInt32 OCX_Control::ImportColor(sal_uInt32 nColor) const
-{
- sal_uInt8 nUpper = (sal_uInt8)( nColor >> 24 );
- if (nUpper & 0x80) //Palette color, should be switch on bottom 24 bits
- {
- /*Might as well use my systems ones in the absence of any other ideas*/
- nColor = nColor&0x00FFFFFF;
- DBG_ASSERT (nColor <= 24,"Unknown Palette Index");
- if (nColor > 24)
- nColor = 0xFFFFFF;
- else
- nColor = pColor[nColor];
- }
- else
- {
- //Stored in bgr! rather than rgb
- nColor = SwapColor(nColor);
- }
- return nColor;
-}
-
-sal_Int16 OCX_FontData::ImportAlign(sal_uInt8 _nJustification) const
-{
- sal_Int16 nRet;
- switch (_nJustification)
- {
- default:
- case 1:
- nRet = 0;
- break;
- case 2:
- nRet = 2;
- break;
- case 3:
- nRet = 1;
- break;
- }
- return nRet;
-}
-
sal_uInt8 OCX_FontData::ExportAlign(sal_Int16 nAlign) const
{
sal_Int8 nRet;
@@ -1328,115 +362,6 @@ sal_uInt32 OCX_Control::ExportColor(sal_uInt32 nColor) const
return nColor;
}
-sal_Bool OCX_Control::Import(
- const uno::Reference< lang::XMultiServiceFactory > &rServiceFactory,
- uno::Reference< form::XFormComponent > &rFComp, awt::Size &rSz)
-{
-
- if(msFormType.getLength() == 0)
- return sal_False;
-
- rSz.Width = nWidth;
- rSz.Height = nHeight;
-
- uno::Reference<uno::XInterface> xCreate =
- rServiceFactory->createInstance(msFormType);
- if (!xCreate.is())
- return sal_False;
-
- rFComp = uno::Reference<form::XFormComponent>(xCreate,uno::UNO_QUERY);
- if (!rFComp.is())
- return sal_False;
- uno::Reference<beans::XPropertySet> xPropSet(xCreate,uno::UNO_QUERY);
- if (!xPropSet.is())
- return sal_False;
- return Import(xPropSet);
-}
-
-sal_Bool OCX_Control::Import(uno::Reference<container::XNameContainer> &rDialog
- )
-{
- uno::Reference<beans::XPropertySet > xDlgProps( rDialog, uno::UNO_QUERY);
-
-
- uno::Reference<lang::XMultiServiceFactory>
- xFactory(rDialog, uno::UNO_QUERY);
-
- uno::Reference<uno::XInterface> xCreate =
- xFactory->createInstance(msDialogType);
- if (!xCreate.is())
- return sal_False;
-
- uno::Reference<awt::XControlModel> xModel(xCreate, uno::UNO_QUERY);
- if (!xModel.is())
- return sal_False;
-
- /* #147900# sometimes insertion of a control fails due to existing name,
- do not break entire form import then... */
- try
- {
- rDialog->insertByName(sName, uno::makeAny(xModel));
- }
- catch( uno::Exception& )
- {
- DBG_ERRORFILE(
- ByteString( "OCX_Control::Import - cannot insert control \"" ).
- Append( ByteString( sName, RTL_TEXTENCODING_UTF8 ) ).
- Append( '"' ).GetBuffer() );
- }
-
- uno::Reference<beans::XPropertySet> xPropSet(xCreate, uno::UNO_QUERY);
-
- if (!xPropSet.is())
- return sal_False;
-
- if (!Import(xPropSet))
- return sal_False;
-
- uno::Any aTmp;
-
- GraphicHelper gHelper( pDocSh->GetModel() );
-
- awt::Point aAppFontPos = gHelper.convertHmmToAppFont( awt::Point( mnLeft, mnTop ) );
- aTmp <<= sal_Int32( aAppFontPos.X );
- xPropSet->setPropertyValue(WW8_ASCII2STR("PositionX"), aTmp);
- aTmp <<= sal_Int32( aAppFontPos.Y );
- xPropSet->setPropertyValue(WW8_ASCII2STR("PositionY"), aTmp);
-
- awt::Size aAppFontSize = gHelper.convertHmmToAppFont( awt::Size( nWidth, nHeight ) );
- aTmp <<= sal_Int32( aAppFontSize.Width ); // 100thmm
- xPropSet->setPropertyValue(WW8_ASCII2STR("Width"), aTmp);
- aTmp <<= sal_Int32( aAppFontSize.Height); //100th mm
- xPropSet->setPropertyValue(WW8_ASCII2STR("Height"), aTmp);
- if ( msToolTip.Len() > 0 )
- xPropSet->setPropertyValue(WW8_ASCII2STR("HelpText"), uno::Any(OUString(msToolTip)));
-
- if ( mnStep )
- {
- aTmp <<= mnStep;
- xPropSet->setPropertyValue(WW8_ASCII2STR("Step"), aTmp);
- }
-
- try
- {
- xPropSet->setPropertyValue(WW8_ASCII2STR("EnableVisible"), uno::makeAny( mbVisible ) );
- }
- catch( uno::Exception& )
- {
- }
- return sal_True;
-}
-
-sal_Int16 OCX_Control::ImportBorder(sal_uInt16 nSpecialEffect,
- sal_uInt16 nBorderStyle) const
-{
- if ((nSpecialEffect == 0) && (nBorderStyle == 0))
- return 0; //No Border
- else if ((nSpecialEffect == 0) && (nBorderStyle == 1))
- return 2; //Flat Border
- return 1; //3D Border
-}
-
sal_uInt8 OCX_Control::ExportBorder(sal_uInt16 nBorder,sal_uInt8 &rBorderStyle)
const
{
@@ -1459,22 +384,11 @@ sal_uInt8 OCX_Control::ExportBorder(sal_uInt16 nBorder,sal_uInt8 &rBorderStyle)
return nRet;
}
-sal_Int16 OCX_Control::ImportSpecEffect( sal_uInt8 nSpecialEffect ) const
-{
- return (nSpecialEffect == 0) ? 2 : 1;
-}
-
sal_uInt8 OCX_Control::ExportSpecEffect( sal_Int16 nApiEffect ) const
{
return (nApiEffect == 2) ? 0 : 2;
}
-sal_Bool OCX_Control::ReadFontData(SvStorageStream *pS)
-{
- return aFontData.Read(pS);
-}
-
-
const uno::Reference< drawing::XDrawPage >&
SvxMSConvertOCXControls::GetDrawPage()
{
@@ -1584,53 +498,6 @@ const uno::Reference< container::XIndexContainer >&
return xFormComps;
}
-sal_Bool OCX_CommandButton::Import( com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- // fake transparent push button by setting window background color
- if( !fBackStyle )
- mnBackColor = 0x80000005;
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- sal_Bool bTemp;
- if ((!(fEnabled)) || (fLocked))
- bTemp = sal_False;
- else
- bTemp = sal_True;
- aTmp = bool2any(bTemp);
-
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- bTemp = fWordWrap != 0;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
-
- if (pCaption)
- {
- aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
- }
-
- aTmp = bool2any( mbTakeFocus );
- rPropSet->setPropertyValue( WW8_ASCII2STR( "FocusOnClick" ), aTmp );
-
- aFontData.Import(rPropSet);
-
- if ( sImageUrl.getLength() )
- {
- aTmp <<= sImageUrl;
- rPropSet->setPropertyValue( WW8_ASCII2STR("ImageURL"), aTmp);
- }
- return sal_True;
-}
-
sal_Bool OCX_GroupBox::Export(SvStorageRef& /* rObj */,
const uno::Reference< beans::XPropertySet >& /* rPropSet */,
const awt::Size& /* rSize */ )
@@ -1969,105 +836,6 @@ void lcl_ApplyListSourceAndBindableStuff( uno::Reference< frame::XModel >& xMode
}
}
-sal_Bool OCX_OptionButton::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- // background color: fBackStyle==0 -> transparent
- if( fBackStyle )
- aTmp <<= ImportColor(mnBackColor);
- else
- aTmp = uno::Any();
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- sal_Bool bTemp;
- if ((!(fEnabled)) || (fLocked))
- bTemp = sal_False;
- else
- bTemp = sal_True;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- bTemp = fWordWrap != 0;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- aTmp <<= ImportSpecEffect( nSpecialEffect );
- rPropSet->setPropertyValue( WW8_ASCII2STR("VisualEffect"), aTmp);
-
- if (pValue)
- {
- sal_Int16 nTmp = pValue[0]-0x30;
- aTmp <<= nTmp;
- if (!bSetInDialog)
- rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultState"), aTmp);
- else
- {
- // dialog ( but we might be using the form model )
- if ( rPropSet->getPropertySetInfo()->hasPropertyByName( WW8_ASCII2STR("DefaultState") ) )
- rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultState"), aTmp);
- else
- rPropSet->setPropertyValue( WW8_ASCII2STR("State"), aTmp);
- }
- }
- // If this is a dialog control then we need to set a groupname *always*
- rtl::OUString sGroupName = lclCreateOUString( pGroupName, nGroupNameLen );
- if ( GetInDialog() ) // Userform/Dialog
- {
- // By default groupnames are not set in Excel, it's not unusual to have
- // a number of groups of radiobuttons located inside frame ( or other container
- // controls ) where there is *no* specific groupname set for the radiobuttons.
- // But... there is implicit grouping for radio buttons in seperate containers
- // e.g. radio buttons in a frame are by default in the same group.
- // Unfortunately in openoffice there are no containers below the dialog itself :-(
- // To ensure correct grouping for imported radiobuttons either with no groupname
- // or identical groupnames that are in separate containers we *must* ensure
- // that a suitable groupname is applied.
- // Because controlNames are unique even across different containers we can use the
- // controls container (e.g. parent) name as a prefix for a group name
- rtl::OUString sParentName = msParentName;
- sGroupName = sParentName.concat( C2U( ":" ) ).concat( sGroupName );
- }
- if ( sGroupName.getLength() == 0 )
- sGroupName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultGroup" ));
- OSL_TRACE("RadioButton %s has groupname %s",
- rtl::OUStringToOString( sName, RTL_TEXTENCODING_UTF8 ).getStr(), rtl::OUStringToOString( sGroupName, RTL_TEXTENCODING_UTF8 ).getStr() );
- try
- {
- aTmp <<= sGroupName;
- rPropSet->setPropertyValue( WW8_ASCII2STR("GroupName"), aTmp);
- }
- catch( uno::Exception& )
- {
- }
-
- if (pCaption)
- {
- aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
- }
-
- // #i40279# always centered vertically
- aTmp <<= ::com::sun::star::style::VerticalAlignment_MIDDLE;
- rPropSet->setPropertyValue( WW8_ASCII2STR("VerticalAlign"), aTmp );
-
- uno::Reference< frame::XModel > xModel ( pDocSh ? pDocSh->GetModel() : NULL );
- lcl_ApplyListSourceAndBindableStuff( xModel, rPropSet, msCtrlSource, msRowSource );
- if ( sImageUrl.getLength() )
- {
- aTmp <<= sImageUrl;
- rPropSet->setPropertyValue( WW8_ASCII2STR("ImageURL"), aTmp);
- }
-
- aFontData.Import(rPropSet);
- return sal_True;
-}
-
sal_Bool OCX_OptionButton::WriteContents(SvStorageStreamRef &rContents,
const uno::Reference< beans::XPropertySet > &rPropSet,
const awt::Size &rSize)
@@ -2234,98 +1002,6 @@ sal_Bool OCX_OptionButton::Export(SvStorageRef &rObj,
return WriteContents(xContents, rPropSet, rSize);
}
-
-sal_Bool OCX_TextBox::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- aTmp = bool2any( fEnabled != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- aTmp = bool2any( fLocked != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR("ReadOnly"), aTmp);
-
- aTmp = bool2any( fHideSelection != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR( "HideInactiveSelection" ), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- aTmp <<= ImportBorder(nSpecialEffect,nBorderStyle);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Border"), aTmp);
-
- aTmp <<= ImportColor( nBorderColor );
- rPropSet->setPropertyValue( WW8_ASCII2STR("BorderColor"), aTmp);
-
- aTmp = bool2any( fMultiLine != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
-
- sal_uInt16 nTmp = static_cast<sal_uInt16>(nMaxLength);
- aTmp <<= nTmp;
- rPropSet->setPropertyValue( WW8_ASCII2STR("MaxTextLen"), aTmp);
-
-
- sal_Bool bTemp1,bTemp2;
- uno::Any aBarsH,aBarsV;
- switch(nScrollBars)
- {
- case 1:
- bTemp1 = sal_True;
- bTemp2 = sal_False;
- break;
- case 2:
- bTemp1 = sal_False;
- bTemp2 = sal_True;
- break;
- case 3:
- bTemp1 = sal_True;
- bTemp2 = sal_True;
- break;
- case 0:
- default:
- bTemp1 = sal_False;
- bTemp2 = sal_False;
- break;
- }
-
- aBarsH = bool2any(bTemp1);
- aBarsV = bool2any(bTemp2);
- rPropSet->setPropertyValue( WW8_ASCII2STR("HScroll"), aBarsH);
- rPropSet->setPropertyValue( WW8_ASCII2STR("VScroll"), aBarsV);
-
- nTmp = nPasswordChar;
- aTmp <<= nTmp;
- rPropSet->setPropertyValue( WW8_ASCII2STR("EchoChar"), aTmp);
-
- if (pValue)
- {
- aTmp <<= lclCreateOUString( pValue, nValueLen );
- // DefaultText seems to no longer be in UnoEditControlModel
- if ( bSetInDialog )
- {
- rPropSet->setPropertyValue( WW8_ASCII2STR("Text"), aTmp);
- }
- else
- {
- rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultText"), aTmp);
- }
- }
-
- if ( sImageUrl.getLength() )
- {
- aTmp <<= sImageUrl;
- rPropSet->setPropertyValue( WW8_ASCII2STR("ImageURL"), aTmp);
- }
-
- aFontData.Import(rPropSet);
- return sal_True;
-}
-
sal_Bool OCX_TextBox::WriteContents(SvStorageStreamRef &rContents,
const uno::Reference< beans::XPropertySet > &rPropSet,
const awt::Size &rSize)
@@ -2659,62 +1335,6 @@ sal_Bool OCX_FieldControl::Export(SvStorageRef &rObj,
return WriteContents(xContents, rPropSet, rSize);
}
-
-
-sal_Bool OCX_ToggleButton::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- aTmp = bool2any(true);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Toggle"), aTmp );
-
- sal_Bool bTemp;
- if ((!(fEnabled)) || (fLocked))
- bTemp = sal_False;
- else
- bTemp = sal_True;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- bTemp = fWordWrap != 0;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- // fake transparent toggle button by setting window background color
- if( !fBackStyle )
- mnBackColor = 0x80000005;
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- if (pValue)
- {
- sal_Int16 nTmp=pValue[0]-0x30;
- //aTmp <<= nTmp == 1;
- aTmp <<= nTmp;
- rPropSet->setPropertyValue( WW8_ASCII2STR("State"), aTmp);
- }
-
- if (pCaption)
- {
- aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
- }
-
- aFontData.Import(rPropSet);
-
- if ( sImageUrl.getLength() )
- {
- aTmp <<= sImageUrl;
- rPropSet->setPropertyValue( WW8_ASCII2STR("ImageURL"), aTmp);
- }
- return sal_True;
-}
-
sal_Bool OCX_ToggleButton::Export(
SvStorageRef &rObj, const uno::Reference< beans::XPropertySet> &rPropSet,
const awt::Size& rSize )
@@ -2863,115 +1483,6 @@ sal_Bool OCX_ToggleButton::WriteContents(SvStorageStreamRef &rContents,
return bRet;
}
-sal_Bool OCX_Label::Import(uno::Reference< beans::XPropertySet > &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- sal_Bool bTemp;
- if ((!(fEnabled)) || (fLocked))
- bTemp = sal_False;
- else
- bTemp = sal_True;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- // background color: fBackStyle==0 -> transparent
- if( fBackStyle )
- {
- aTmp <<= ImportColor(mnBackColor);
- }
- else
- {
- // try fake transparent by using parents backColor
- if ( bSetInDialog && mpParent != NULL )
- {
- aTmp <<= ImportColor( mpParent->mnBackColor );
- }
- else
- {
- aTmp = uno::Any(); // use SO default
- }
- }
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- aTmp <<= ImportBorder(nSpecialEffect,nBorderStyle);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Border"), aTmp);
-
- aTmp <<= ImportColor( nBorderColor );
- rPropSet->setPropertyValue( WW8_ASCII2STR("BorderColor"), aTmp);
-
- bTemp=fWordWrap;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
-
- if (pCaption)
- {
- aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
- }
-
- aFontData.Import(rPropSet);
- return sal_True;
-}
-
-sal_Bool OCX_ComboBox::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
-
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- aTmp = bool2any(fEnabled != 0);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- aTmp = bool2any(fLocked != 0);
- rPropSet->setPropertyValue( WW8_ASCII2STR("ReadOnly"), aTmp);
-
- aTmp = bool2any( nDropButtonStyle != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Dropdown"), aTmp);
-
- aTmp = bool2any( fHideSelection != 0 );
- rPropSet->setPropertyValue( WW8_ASCII2STR( "HideInactiveSelection" ), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- if (pValue)
- {
- aTmp <<= lclCreateOUString( pValue, nValueLen );
- if ( bSetInDialog )
- {
- rPropSet->setPropertyValue( WW8_ASCII2STR("Text"), aTmp);
- }
- else
- {
- rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultText"), aTmp);
- }
- }
-
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- aTmp <<= ImportBorder(nSpecialEffect,nBorderStyle);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Border"), aTmp);
-
- aTmp <<= ImportColor( nBorderColor );
- rPropSet->setPropertyValue( WW8_ASCII2STR("BorderColor"), aTmp);
-
- sal_Int16 nTmp=static_cast<sal_Int16>(nMaxLength);
- aTmp <<= nTmp;
- rPropSet->setPropertyValue( WW8_ASCII2STR("MaxTextLen"), aTmp);
-
- aFontData.Import(rPropSet);
- uno::Reference< frame::XModel > xModel ( pDocSh ? pDocSh->GetModel() : NULL );
- lcl_ApplyListSourceAndBindableStuff( xModel, rPropSet, msCtrlSource, msRowSource );
- return sal_True;
-}
-
sal_Bool OCX_ComboBox::WriteContents(SvStorageStreamRef &rContents,
const uno::Reference< beans::XPropertySet > &rPropSet,
const awt::Size &rSize)
@@ -3148,52 +1659,6 @@ sal_Bool OCX_ComboBox::Export(SvStorageRef &rObj,
return WriteContents(xContents, rPropSet, rSize);
}
-
-
-sal_Bool OCX_ListBox::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
-
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-
- sal_Bool bTmp=fEnabled;
- aTmp = bool2any(bTmp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
-
- bTmp=fLocked;
- aTmp = bool2any(bTmp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("ReadOnly"), aTmp);
-
- aTmp <<= ImportColor(mnForeColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
-
- sal_Bool bTemp = nMultiState;
- aTmp = bool2any(bTemp);
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiSelection"), aTmp);
-
-#if 0 //Don't delete this for now until I figure out if I can make this
- if (pValue)
- {
- aTmp <<= lclCreateOUString( pValue, nValueLen );
- xPropSet->setPropertyValue( WW8_ASCII2STR("DefaultText"), aTmp);
- }
-#endif
-
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- aTmp <<= ImportBorder(nSpecialEffect,nBorderStyle);
- rPropSet->setPropertyValue( WW8_ASCII2STR("Border"), aTmp);
-
- aTmp <<= ImportColor( nBorderColor );
- rPropSet->setPropertyValue( WW8_ASCII2STR("BorderColor"), aTmp);
- uno::Reference< frame::XModel > xModel ( pDocSh ? pDocSh->GetModel() : NULL );
- lcl_ApplyListSourceAndBindableStuff( xModel, rPropSet, msCtrlSource, msRowSource );
- aFontData.Import(rPropSet);
- return sal_True;
-}
-
sal_Bool OCX_ListBox::WriteContents(SvStorageStreamRef &rContents,
const uno::Reference< beans::XPropertySet > &rPropSet,
const awt::Size &rSize)
@@ -3365,717 +1830,6 @@ sal_Bool OCX_ListBox::Export(SvStorageRef &rObj,
return WriteContents(xContents, rPropSet, rSize);
}
-sal_Bool OCX_Control::Read(SvStorageStream *pS)
-{
- sal_uInt16 nIdentifier, nFixedAreaLen;
- *pS >> nIdentifier;
- DBG_ASSERT(nStandardId==nIdentifier,
- "A control that has a different identifier");
- *pS >> nFixedAreaLen;
- pS->SeekRel(nFixedAreaLen);
- return true;
-}
-
-sal_Bool OCX_ModernControl::Read(SvStorageStream *pS)
-{
- long nStart = pS->Tell();
- *pS >> nIdentifier;
- DBG_ASSERT(nIdentifier==nStandardId,
- "A control that has a different identifier");
- *pS >> nFixedAreaLen;
- pS->Read(pBlockFlags,8);
-
- if (pBlockFlags[0] & 0x01)
- {
- sal_uInt8 nTemp;
- *pS >> nTemp;
-
- fEnabled = (nTemp & 0x02) >> 1;
- fLocked = (nTemp & 0x04) >> 2;
- fBackStyle = (nTemp & 0x08) >> 3;
-
- *pS >> nTemp;
-
- fColumnHeads = (nTemp & 0x04) >> 2;
- fIntegralHeight = (nTemp & 0x08) >> 3;
- fMatchRequired = (nTemp & 0x10) >> 4;
- fAlignment = (nTemp & 0x20) >> 5;
-
- *pS >> nTemp;
-
- fDragBehaviour = (nTemp & 0x08) >> 3;
- fEnterKeyBehaviour = (nTemp & 0x10) >> 4;
- fEnterFieldBehaviour = (nTemp & 0x20) >> 5;
- fTabKeyBehaviour = (nTemp & 0x40) >> 6;
- fWordWrap = (nTemp & 0x80) >> 7;
-
- *pS >> nTemp;
- fSelectionMargin = (nTemp & 0x04) >> 2;
- fAutoWordSelect = (nTemp & 0x08) >> 3;
- fAutoSize = (nTemp & 0x10) >> 4;
- fHideSelection = (nTemp & 0x20) >> 5;
- fAutoTab = (nTemp & 0x40) >> 6;
- fMultiLine = (nTemp & 0x80) >> 7;
-
- }
-
- /*If any of these are set they follow eachother in this order one after
- another padded out to the next U32 boundary with 0's
- U8 can abut each other U16 must start on a U16 boundary and are padded to
- that with 0's. A standardish word alignment structure*/
-
- if (pBlockFlags[0] & 0x02)
- *pS >> mnBackColor;
- if (pBlockFlags[0] & 0x04)
- *pS >> mnForeColor;
- if (pBlockFlags[0] & 0x08)
- *pS >> nMaxLength;
-
- if (pBlockFlags[0] & 0x10)
- *pS >> nBorderStyle;
- if (pBlockFlags[0] & 0x20)
- *pS >> nScrollBars;
- if (pBlockFlags[0] & 0x40)
- *pS >> nStyle;// (UI 0 == Data 3, UI 2 = Data 7)
- if (pBlockFlags[0] & 0x80)
- *pS >> nMousePointer;
-
- if (pBlockFlags[1] & 0x02)
- *pS >> nPasswordChar; //HUH ??? always 0 ??? not sure maybe just padding
-
- if (pBlockFlags[1] & 0x04)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nListWidth;
- }
-
- if (pBlockFlags[1] & 0x08)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nBoundColumn;
- }
- if (pBlockFlags[1] & 0x10)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nTextColumn;
- }
- if (pBlockFlags[1] & 0x20)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nColumnCount;
- }
- if (pBlockFlags[1] & 0x40)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nListRows;
- }
- if (pBlockFlags[1] & 0x80)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nUnknown8; //something to do with ColumnWidths
- }
- if (pBlockFlags[2] & 0x01)
- *pS >> nMatchEntry;
- if (pBlockFlags[2] & 0x02)
- *pS >> nListStyle;
- if (pBlockFlags[2] & 0x04)
- *pS >> nShowDropButtonWhen;
- if (pBlockFlags[2] & 0x10)
- *pS >> nDropButtonStyle;
- if (pBlockFlags[2] & 0x20)
- *pS >> nMultiState;
-
- bool bValue = (pBlockFlags[2] & 0x40) != 0;
- if (bValue)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nValueLen;
- }
- bool bCaption = (pBlockFlags[2] & 0x80) != 0;
- if (bCaption)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nCaptionLen;
- }
- if (pBlockFlags[3] & 0x01)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nHorzPos;
- *pS >> nVertPos;
- }
- if (pBlockFlags[3] & 0x02)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nBorderColor;
- }
- if (pBlockFlags[3] & 0x04)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4); // NEW
- *pS >> nSpecialEffect;
- pS->SeekRel( 3 ); // special effect is 32bit, not 8bit
- }
- if (pBlockFlags[3] & 0x08)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nIcon;
- DBG_ASSERT(nIcon == 0xFFFF, "Unexpected nIcon");
- }
- if (pBlockFlags[3] & 0x10)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nPicture;
- DBG_ASSERT(nPicture == 0xFFFF, "Unexpected nIcon");
- }
- if (pBlockFlags[3] & 0x20)
- *pS >> nAccelerator;
- /*
- if (pBlockFlags[3] & 0x80)
- *pS >> nUnknown9;
- */
- bool bGroupName = (pBlockFlags[4] & 0x01) != 0;
- if (bGroupName)
- {
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nGroupNameLen;
- }
-
- //End
-
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nWidth;
- *pS >> nHeight;
-
- if (bValue)
- lclReadCharArray( *pS, pValue, nValueLen, pS->Tell() - nStart);
-
- if (bCaption)
- lclReadCharArray( *pS, pCaption, nCaptionLen, pS->Tell() - nStart);
-
- if (bGroupName)
- lclReadCharArray( *pS, pGroupName, nGroupNameLen, pS->Tell() - nStart);
-
- ReadAlign(pS, pS->Tell() - nStart, 4);
- if (nIcon)
- {
- pS->Read(pIconHeader,20);
- *pS >> nIconLen;
- pIcon = new sal_uInt8[nIconLen];
- pS->Read(pIcon,nIconLen);
- }
-
- if (nPicture)
- {
- pS->Read(pPictureHeader,20);
- *pS >> nPictureLen;
- long imagePos = pS->Tell();
- mxGrfObj = lcl_readGraphicObject( pS );
- if( mxGrfObj.is() )
- {
- sImageUrl = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( GRAPHOBJ_URLPREFIX ) );
- sImageUrl = sImageUrl + mxGrfObj->getUniqueID();
- }
- // make sure the stream position should be pointing after the image
- pS->Seek( imagePos + nPictureLen );
- }
-
- return sal_True;
-}
-
-
-sal_Bool OCX_CommandButton::Read(SvStorageStream *pS)
-{
- long nStart = pS->Tell();
- *pS >> nIdentifier;
- DBG_ASSERT(nStandardId==nIdentifier,
- "A control that has a different identifier");
- *pS >> nFixedAreaLen;
- pS->Read(pBlockFlags,4);
-
-
- if (pBlockFlags[0] & 0x01)
- *pS >> mnForeColor;
- if (pBlockFlags[0] & 0x02)
- *pS >> mnBackColor;
-
- if (pBlockFlags[0] & 0x04)
- {
- sal_uInt8 nTemp;
- *pS >> nTemp;
- fEnabled = (nTemp&0x02)>>1;
- fLocked = (nTemp&0x04)>>2;
- fBackStyle = (nTemp&0x08)>>3;
- *pS >> nTemp;
- *pS >> nTemp;
- fWordWrap = (nTemp&0x80)>>7;
- *pS >> nTemp;
- fAutoSize = (nTemp&0x10)>>4;
- }
-
- bool bCaption = (pBlockFlags[0] & 0x08) != 0;
- if (bCaption)
- {
- *pS >> nCaptionLen;
- }
- if (pBlockFlags[0] & 0x10) /*Picture Position, a strange mechanism here*/
- {
- *pS >> nVertPos;
- *pS >> nHorzPos;
- }
-
- if (pBlockFlags[0] & 0x40) /*MousePointer*/
- *pS >> nMousePointer;
-
- if (pBlockFlags[0] & 0x80)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nPicture;
- }
-
- if (pBlockFlags[1] & 0x01)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nAccelerator;
- }
-
- // "take focus on click" is directly in content flags, not in option field...
- mbTakeFocus = (pBlockFlags[1] & 0x02) == 0; // option is on, if flag is not set
-
- if (pBlockFlags[1] & 0x04)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nIcon;
- }
-
- if (bCaption)
- lclReadCharArray( *pS, pCaption, nCaptionLen, pS->Tell() - nStart);
-
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nWidth;
- *pS >> nHeight;
-
- if (nIcon)
- {
- pS->Read(pIconHeader,20);
- *pS >> nIconLen;
- pIcon = new sal_uInt8[nIconLen];
- pS->Read(pIcon,nIconLen);
- }
-
- if (nPicture)
- {
- pS->Read(pPictureHeader,20);
- *pS >> nPictureLen;
- long imagePos = pS->Tell();
- mxGrfObj = lcl_readGraphicObject( pS );
- if( mxGrfObj.is() )
- {
- sImageUrl = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( GRAPHOBJ_URLPREFIX ) );
- sImageUrl = sImageUrl + mxGrfObj->getUniqueID();
- }
- // make sure the stream position should be pointing after the image
- pS->Seek( imagePos + nPictureLen );
- }
-
- return sal_True;
-}
-
-sal_Bool OCX_Label::Read(SvStorageStream *pS)
-{
- long nStart = pS->Tell();
- *pS >> nIdentifier;
- DBG_ASSERT(nStandardId==nIdentifier,
- "A control that has a different identifier");
- *pS >> nFixedAreaLen;
- pS->Read(pBlockFlags,4);
-
-
- if (pBlockFlags[0] & 0x01)
- *pS >> mnForeColor;
- if (pBlockFlags[0] & 0x02)
- *pS >> mnBackColor;
-
-
- if (pBlockFlags[0] & 0x04)
- {
- sal_uInt8 nTemp;
- *pS >> nTemp;
- fEnabled = (nTemp&0x02)>>1;
- fLocked = (nTemp&0x04)>>2;
- fBackStyle = (nTemp&0x08)>>3;
- *pS >> nTemp;
- *pS >> nTemp;
- fWordWrap = (nTemp&0x80)>>7;
- *pS >> nTemp;
- fAutoSize = (nTemp&0x10)>>4;
- }
- bool bCaption = (pBlockFlags[0] & 0x08) != 0;
- if (bCaption)
- *pS >> nCaptionLen;
-
- if (pBlockFlags[0] & 0x10)
- {
- *pS >> nVertPos;
- *pS >> nHorzPos;
- }
-
- if (pBlockFlags[0] & 0x40)
- *pS >> nMousePointer;
-
- if (pBlockFlags[0] & 0x80)
- {
- ReadAlign(pS,pS->Tell() - nStart, 4);
- *pS >> nBorderColor;
- }
-
- if (pBlockFlags[1] & 0x01)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nBorderStyle;
- }
-
- if (pBlockFlags[1] & 0x02)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nSpecialEffect;
- }
-
- if (pBlockFlags[1] & 0x04)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nPicture;
- }
-
- if (pBlockFlags[1] & 0x08)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nAccelerator;
- }
-
- if (pBlockFlags[1] & 0x10)
- {
- ReadAlign(pS, pS->Tell() - nStart, 2);
- *pS >> nIcon;
- }
-
- if (bCaption)
- lclReadCharArray( *pS, pCaption, nCaptionLen, pS->Tell() - nStart);
-
- ReadAlign(pS, pS->Tell() - nStart, 4);
- *pS >> nWidth;
- *pS >> nHeight;
-
- if (nPicture)
- {
- pS->Read(pPictureHeader,20);
- *pS >> nPictureLen;
- long imagePos = pS->Tell();
- mxGrfObj = lcl_readGraphicObject( pS );
- if( mxGrfObj.is() )
- {
- sImageUrl = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( GRAPHOBJ_URLPREFIX ) );
- sImageUrl = sImageUrl + mxGrfObj->getUniqueID();
- }
- // make sure the stream position should be pointing after the image
- pS->Seek( imagePos + nPictureLen );
- }
- if (nIcon)
- {
- pS->Read(pIconHeader,20);
- *pS >> nIconLen;
- pIcon = new sal_uInt8[nIconLen];
- pS->Read(pIcon,nIconLen);
- }
-
- return sal_True;
-}
-
-TypeName::TypeName(sal_Char *pName, sal_uInt32 nStoreId, sal_uInt32 nLen, sal_uInt16 nType, sal_Int32 nLeft,
- sal_Int32 nTop)
- : msName(lclCreateOUString(pName, nLen)), mnType(nType), mnLeft(nLeft),
- mnTop(nTop),mnStoreId(nStoreId)
-{
-}
-
-OCX_MultiPage::OCX_MultiPage( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const uno::Reference< container::XNameContainer > &rDialog,
- OCX_Control* pParent):
- OCX_ParentControl(parent, storageName, sN, rDialog, pParent ), bHasTabs( true )
-
-{
- msDialogType = C2U("com.sun.star.awt.UnoMultiPageModel");
- mnForeColor = 0x80000012L,
- mnBackColor = 0x8000000FL;
- bSetInDialog = true;// UserForm control only
- aFontData.SetHasAlign(sal_True);
- nActiveTab = 0;
- // open up the 'x' stream
- mXStream = mContainerStorage->OpenSotStream(
- String(RTL_CONSTASCII_STRINGPARAM("x"),
- RTL_TEXTENCODING_MS_1252),
- STREAM_STD_READ | STREAM_NOCREATE);
-}
-
-void OCX_MultiPage::ProcessControl(OCX_Control* pControl, SvStorageStream* /* pS */, ContainerRecord& rec )
-{
- SotStorageStreamRef oStream = mContainedControlsStream;
-
- if ( rec.nTypeIdent == TABSTRIP )
- {
- // TabStrip reads the 'o' stream
- OCX_TabStrip oTabStrip;
- oTabStrip.sName = C2S("FromMultiPage-o");
- oTabStrip.Read( mContainedControlsStream );
- sCaptions = oTabStrip.msItems;
- bHasTabs = oTabStrip.bHasTabs;
- nHeight = oTabStrip.nHeight;
- nWidth = oTabStrip.nWidth;
- }
- else if ( rec.nTypeIdent == PAGE )
- {
- OCX_Page *pPage = NULL;
- pPage = static_cast< OCX_Page* >( pControl );
- if ( pPage != NULL )
- {
- oStream = pPage->getContainerStream();;
- // Position of controls is relative to pos of this MuliPage
- // Control
- pPage->FullRead( oStream );
- // nWidth & nHeight seem to screw up multipage control
- pPage->nWidth = 0;
- pPage->nHeight = 0;
- pPage->mnBackColor = mnBackColor;
-
- mpControls.push_back( pPage );
- idToPage[ pPage->mnID ] = pPage;
- }
-
- }
- else
- {
- OSL_TRACE("!!!! Unsupported Control 0x%x ", rec.nTypeIdent);
- OSL_FAIL("MultiPage error expected Page control");
- }
-
-}
-
-sal_Bool OCX_MultiPage::Read(SvStorageStream *pS)
-{
- // Unlike the other containers e.g. UserForm & Frame
- // the o stream is does not contain info for the contained controls
- // 'o' stream contains a tabstrip control
- // 'f' stream as usual ( info about the containees )
- // '01..09' ( etc. ) these streams contain the page controls
- // 'x' stream, this contains an array of properties for each page followed
- // by a set of properties for the multipage control itself
-
- // read the 'f' stream
- OCX_ParentControl::Read(pS);
-
- // Read the 'x' stream
- // consists of
- // a) nTabs + 1 PageProperties ( which are little use to us )
- // => skip
- // b) a MutliPageProperty ( which contains at least the page count and
- // IDs of the pages ( and order ) - useful for associating correct page
- // with correct tab
-
-
- OCX_Control skip(C2S("Dummy"));
- sal_Int32 nPagePropsToRead = sCaptions.size() + 1;
- for ( sal_Int32 page = 0; page < nPagePropsToRead; ++page )
- skip.Read( mXStream );
- MultiPageProps multiPage;
- multiPage.Read( mXStream );
- mPageIds = multiPage.mnIDs;
- return true;
-}
-
-
-sal_Bool OCX_MultiPage::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Name")), aTmp);
- if ( !bHasTabs )
- rPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Decoration")), uno::makeAny( sal_False ) );
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
- // apply caption/titles to pages
- std::vector<sal_Int32>::iterator itCtrlId = mPageIds.begin();
- std::vector<sal_Int32>::iterator itCtrlId_end = mPageIds.end();
- std::vector< rtl::OUString >::iterator itCaption = sCaptions.begin();
- mpControls.clear();
- // need to sort the controls according to the order of the ids
- for ( sal_Int32 index = 1 ; ( sCaptions.size() == idToPage.size() ) && itCtrlId != itCtrlId_end; ++itCtrlId, ++itCaption, ++index )
- {
- boost::unordered_map< sal_Int32, OCX_Page* >::iterator it = idToPage.find( *itCtrlId );
- if ( it != idToPage.end() )
- {
- it->second->msTitle = *itCaption;
- if ( it->second->mbVisible )
- nActiveTab = index;
- mpControls.push_back( it->second );
-
- }
- }
-
- OCX_ParentControl::Import( rPropSet );
- rPropSet->setPropertyValue( WW8_ASCII2STR("MultiPageValue"), uno::makeAny( nActiveTab ));
- return sal_True;
-}
-
-OCX_Page::OCX_Page( SotStorageRef& parent,
- sal_Int32 nId,
- const ::rtl::OUString& sN,
- const uno::Reference< container::XNameContainer > &rDialog,
- OCX_Control* pParent):
- OCX_ParentControl(parent, createSubStreamName( nId ), sN, rDialog, pParent ), mnID( nId )
-{
- msDialogType = C2U("com.sun.star.awt.UnoPageModel");
- mnForeColor = 0x80000012,
- mnBackColor = 0x8000000F,
- bSetInDialog = true;// UserForm control only
- aFontData.SetHasAlign(sal_True);
-}
-
-
-sal_Bool OCX_Page::Read(SvStorageStream *pS)
-{
- return OCX_ParentControl::Read(pS);
-}
-
-sal_Bool OCX_Page::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet>
- &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Name")), aTmp);
-
- if (msTitle.getLength())
- rPropSet->setPropertyValue( WW8_ASCII2STR("Title"), uno::makeAny( msTitle ) );
-
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- // Calls import on contained controls
- OCX_ParentControl::Import( rPropSet );
- return sal_True;
-
-}
-
-OCX_Frame::OCX_Frame( SotStorageRef& parent,
- const ::rtl::OUString& storageName,
- const ::rtl::OUString& sN,
- const uno::Reference< container::XNameContainer > &rDialog, OCX_Control* pParent): OCX_ParentControl(parent, storageName, sN, rDialog, pParent )
-{
- msDialogType = C2U("com.sun.star.awt.UnoFrameModel");
- mnForeColor = 0x80000012;
- mnBackColor = 0x8000000F;
- bSetInDialog = true;// UserForm control only
- aFontData.SetHasAlign(sal_True);
-}
-
-
-sal_Bool OCX_Frame::Read(SvStorageStream *pS)
-{
- return OCX_ParentControl::Read( pS );
-}
-
-sal_Bool OCX_Frame::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
-{
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- rPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Name")), aTmp);
- if ( pCaption )
- {
- aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
- rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
- }
-
- aTmp <<= ImportColor(mnBackColor);
- rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- // Calls import on contained controls
- OCX_ParentControl::Import( rPropSet );
- return sal_True;
-}
-
-OCX_UserForm::OCX_UserForm( SotStorageRef& parent,
- const OUString& storageName,
- const OUString& sN,
- const ::uno::Reference< container::XNameContainer > &rDialog,
- const ::uno::Reference< lang::XMultiServiceFactory >& rMsf):
- OCX_ParentControl(parent, storageName, sN, rDialog )
- {
- uno::Reference< beans::XPropertySet> xProps( rMsf, uno::UNO_QUERY);
- if ( xProps.is() )
- {
- xProps->getPropertyValue(C2S("DefaultContext")) >>= mxCtx;
- }
-}
-
-sal_Bool OCX_UserForm::Import(
- uno::Reference<container::XNameContainer> &rLib )
-{
- uno::Reference<beans::XPropertySet>
- xDialogPropSet(mxParent, uno::UNO_QUERY);
- if ( !xDialogPropSet.is() )
- return sal_False;
- uno::Any aTmp(&sName,getCppuType((OUString *)0));
- xDialogPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Name")), aTmp);
- xDialogPropSet->setPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Title")), aTmp);
- aTmp <<= ImportColor(mnBackColor);
- xDialogPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
-
- GraphicHelper gHelper( pDocSh->GetModel() );
-
- awt::Size aAppFontSize = gHelper.convertHmmToAppFont( awt::Size( nWidth, nHeight ) );
- aTmp <<= sal_Int32( aAppFontSize.Width ); //
- xDialogPropSet->setPropertyValue(WW8_ASCII2STR("Width"), aTmp);
- aTmp <<= sal_Int32( aAppFontSize.Height ); //100th mm
- xDialogPropSet->setPropertyValue(WW8_ASCII2STR("Height"), aTmp);
-
- if ( sImageUrl.getLength() )
- {
- aTmp <<= sImageUrl;
- xDialogPropSet->setPropertyValue( WW8_ASCII2STR("ImageURL"), aTmp);
- }
-
- uno::Reference<beans::XPropertySet> xPropSet( mxParent, uno::UNO_QUERY );
- OCX_ParentControl::Import( xPropSet );
- uno::Reference< frame::XModel > xModel( pDocSh ? pDocSh->GetModel() : NULL );
-
- uno::Reference<io::XInputStreamProvider> xSource =
- xmlscript::exportDialogModel(mxParent, mxCtx, pDocSh->GetModel() );
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list