diff options
author | Noel Power <noel.power@novell.com> | 2010-11-02 15:59:53 +0000 |
---|---|---|
committer | Noel Power <noel.power@novell.com> | 2010-11-02 19:49:48 +0000 |
commit | e274ec121b99173740dd39755232184b0a2dcc23 (patch) | |
tree | 7be90cea076ab0da5f3dda14bd03edb53e4b1643 /filter/inc | |
parent | fe6bb7efcfa97b7a5ac02fa951e67f6c609a859d (diff) |
initial import of latest cws container_controls
Diffstat (limited to 'filter/inc')
-rw-r--r-- | filter/inc/filter/msfilter/msocximex.hxx | 377 |
1 files changed, 86 insertions, 291 deletions
diff --git a/filter/inc/filter/msfilter/msocximex.hxx b/filter/inc/filter/msfilter/msocximex.hxx index 7269b1f7f5bb..829c029a469b 100644 --- a/filter/inc/filter/msfilter/msocximex.hxx +++ b/filter/inc/filter/msfilter/msocximex.hxx @@ -294,6 +294,8 @@ public: rtl::OUString msCtrlSource; rtl::OUString msRowSource; SfxObjectShell *pDocSh; + ::rtl::OUString sImageUrl; + com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj; protected: sal_uInt32 ImportColor(sal_uInt32 nColorCode) const; @@ -416,22 +418,23 @@ public: sal_uInt8 pPictureHeader[20]; sal_uInt32 nPictureLen; - ::rtl::OUString sImageUrl; - com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj; }; class OCX_TabStrip : public OCX_Control { public: - OCX_TabStrip() : OCX_Control( rtl::OUString::createFromAscii("TabStrip")) {} + OCX_TabStrip() : OCX_Control( rtl::OUString::createFromAscii("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_uInt16 nNumTabs; + sal_Int32 nNumTabs; + bool bHasTabs; }; class OCX_Image : public OCX_Control @@ -465,8 +468,6 @@ public: sal_uInt8 nSpecialEffect; bool bAutoSize; - ::rtl::OUString sImageUrl; - com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj; sal_Bool Read(SotStorageStream *pS); using OCX_Control::Import; // to not hide the other two import methods @@ -487,8 +488,7 @@ public: }; struct ContainerRecord { - ContainerRecord():nTop(0), nLeft(0), nSubStorageId(0), nSubStreamLen(0), nTabPos(0), nTypeIdent(0), bVisible( true ) {} - + 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; @@ -501,6 +501,7 @@ struct ContainerRecord sal_uInt16 nTabPos; sal_uInt16 nTypeIdent; bool bVisible; + bool bTabStop; }; typedef std::vector<OCX_Control*>::iterator CtrlIterator; @@ -509,44 +510,32 @@ typedef std::vector<OCX_Control*> CtrlList; class OCX_OptionButton; -class OCX_ContainerControl : public OCX_Control +class OCX_ParentControl : public OCX_Control { public: - virtual ~OCX_ContainerControl(); - // sub class will process the control specific information - // e.g frame or userform ( maybe tab, mulipage in the future ) - // Base (this) class will process the container specific information - // e.g. the controls contained by this container - // will - // a) create the controls - // b) read the controls - // c) store these controls in a list for post processing - // e.g. import - // virtual sal_Bool Read(SvStorageStream *pS); - // No Font record 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( ContainerRecord& record, + bool createFromContainerRecord( const ContainerRecord& record, OCX_Control*& ); SotStorageStreamRef getContainedControlsStream(){ return mContainedControlsStream; } protected: - // This class not meant to be instantiated - // needs to be subclassed - OCX_ContainerControl( SotStorageRef& parent, + OCX_ParentControl( SotStorageRef& parent, const ::rtl::OUString& storageName, const ::rtl::OUString& sN, const com::sun::star::uno::Reference< - com::sun::star::container::XNameContainer > &rParent, + com::sun::star::container::XNameContainer > &rDialog, OCX_Control* pParent = NULL ); - rtl::OUString createSubStreamName( const sal_uInt32& subStorageID ); + ~OCX_ParentControl(); com::sun::star::uno::Reference< com::sun::star::container::XNameContainer > mxParent; @@ -555,84 +544,56 @@ protected: SotStorageRef mContainerStorage; SotStorageStreamRef mContainerStream; SotStorageStreamRef mContainedControlsStream; - sal_uInt32 nNoRecords; - sal_uInt32 nTotalLen; - sal_uInt32 containerType; - -private: - OCX_ContainerControl(); // not implemented - OCX_ContainerControl(const OCX_ContainerControl&); // not implemented -}; - - -class OCX_MultiPage : public OCX_ContainerControl -{ -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 ~OCX_MultiPage() - { - delete[] pCaption; - delete[] pIcon; - delete[] pPicture; - } - virtual sal_Bool Read(SvStorageStream *pS); - - using OCX_ContainerControl::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 sal_Bool Import(com::sun::star::uno::Reference< - com::sun::star::container::XNameContainer> - &rDialog); - virtual void ProcessControl( OCX_Control* pControl, SvStorageStream* pS, ContainerRecord& rec ); - /*sal_uInt8 for sal_uInt8 Word Struct*/ sal_uInt16 nIdentifier; sal_uInt16 nFixedAreaLen; sal_uInt8 pBlockFlags[4]; - sal_uInt32 fUnknown1; + sal_uInt32 nChildrenA; + sal_uInt32 nNextAvailableID; + sal_uInt32 nBooleanProperties; + sal_uInt32 nGroupCnt; + sal_uInt32 nZoom; - sal_uInt8 fUnknown2:1; + sal_uInt8 fUnknown1:1; sal_uInt8 fEnabled:1; sal_uInt8 fLocked:1; sal_uInt8 fBackStyle:1; - sal_uInt8 fUnknown3:4; + sal_uInt8 fUnknown2:4; - sal_uInt8 fUnknown4:8; + sal_uInt8 fUnknown3:8; - sal_uInt8 fUnknown5:7; + sal_uInt8 fUnknown4:7; sal_uInt8 fWordWrap:1; - sal_uInt8 fUnknown6:4; + sal_uInt8 fUnknown5:4; sal_uInt8 fAutoSize:1; - sal_uInt8 fUnknown7:3; + sal_uInt8 fUnknown6:3; sal_uInt32 nCaptionLen; sal_uInt16 nVertPos; sal_uInt16 nHorzPos; - sal_uInt8 nMousePointer; sal_uInt32 nBorderColor; - sal_uInt32 fUnknown8; - sal_uInt32 fUnknown9; + sal_uInt32 nDrawBuffer; + sal_uInt32 nShapeCookie; sal_uInt8 nKeepScrollBarsVisible; sal_uInt8 nCycle; - sal_uInt16 nBorderStyle; - sal_uInt16 nSpecialEffect; + 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; @@ -640,253 +601,91 @@ public: sal_uInt8 pPictureHeader[20]; sal_uInt32 nPictureLen; - sal_uInt8 *pPicture; private: - sal_Int32 mnCurrentPageStep; -}; - + OCX_ParentControl(); // not implemented + OCX_ParentControl(const OCX_ParentControl&); // not implemented +}; -class OCX_Page : public OCX_ContainerControl +class OCX_Page; +class OCX_MultiPage : public OCX_ParentControl { public: - OCX_Page( SotStorageRef& parentStorage, + 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* parent = NULL); - virtual ~OCX_Page() - { - delete[] pCaption; - delete[] pIcon; - delete[] pPicture; - } + com::sun::star::container::XNameContainer > &rDialog, OCX_Control* pParent = NULL); + virtual sal_Bool Read(SvStorageStream *pS); - using OCX_ContainerControl::Import; // to not hide the other two import methods + 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); -/* virtual sal_Bool Import(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet> &rPropSet); -*/ - /*sal_uInt8 for sal_uInt8 Word Struct*/ - sal_uInt16 nIdentifier; - sal_uInt16 nFixedAreaLen; - sal_uInt8 pBlockFlags[4]; - - sal_uInt32 fUnknown1; - - sal_uInt8 fUnknown2:1; - sal_uInt8 fEnabled:1; - sal_uInt8 fLocked:1; - sal_uInt8 fBackStyle:1; - sal_uInt8 fUnknown3:4; - - sal_uInt8 fUnknown4:8; - - sal_uInt8 fUnknown5:7; - sal_uInt8 fWordWrap:1; - - sal_uInt8 fUnknown6:4; - sal_uInt8 fAutoSize:1; - sal_uInt8 fUnknown7:3; - - sal_uInt32 nCaptionLen; - sal_uInt16 nVertPos; - sal_uInt16 nHorzPos; - sal_uInt8 nMousePointer; - sal_uInt32 nBorderColor; - sal_uInt32 fUnknown8; - sal_uInt32 fUnknown9; - sal_uInt8 nKeepScrollBarsVisible; - sal_uInt8 nCycle; - sal_uInt16 nBorderStyle; - sal_uInt16 nSpecialEffect; - sal_uInt16 nPicture; - sal_uInt8 nPictureAlignment; - sal_uInt8 nPictureSizeMode; - bool bPictureTiling; - sal_uInt16 nAccelerator; - sal_uInt16 nIcon; - - char *pCaption; - - sal_uInt32 nScrollWidth; - sal_uInt32 nScrollHeight; + 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; + std::hash_map< sal_Int32, OCX_Page* > idToPage; +}; - sal_uInt8 pIconHeader[20]; - sal_uInt32 nIconLen; - sal_uInt8 *pIcon; +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); - sal_uInt8 pPictureHeader[20]; - sal_uInt32 nPictureLen; - sal_uInt8 *pPicture; + 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_ContainerControl +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 ~OCX_Frame() - { - delete[] pCaption; - delete[] pIcon; - delete[] pPicture; - } + 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_ContainerControl::Import; // to not hide the other two import methods + 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); - - /*sal_uInt8 for sal_uInt8 Word Struct*/ - sal_uInt16 nIdentifier; - sal_uInt16 nFixedAreaLen; - sal_uInt8 pBlockFlags[4]; - - sal_uInt32 fUnknown1; - - sal_uInt8 fUnknown2:1; - sal_uInt8 fEnabled:1; - sal_uInt8 fLocked:1; - sal_uInt8 fBackStyle:1; - sal_uInt8 fUnknown3:4; - - sal_uInt8 fUnknown4:8; - - sal_uInt8 fUnknown5:7; - sal_uInt8 fWordWrap:1; - - sal_uInt8 fUnknown6:4; - sal_uInt8 fAutoSize:1; - sal_uInt8 fUnknown7:3; - - sal_uInt32 nCaptionLen; - sal_uInt16 nVertPos; - sal_uInt16 nHorzPos; - sal_uInt8 nMousePointer; - sal_uInt32 nBorderColor; - sal_uInt32 fUnknown8; - sal_uInt32 fUnknown9; - sal_uInt8 nKeepScrollBarsVisible; - sal_uInt8 nCycle; - sal_uInt16 nBorderStyle; - sal_uInt16 nSpecialEffect; - sal_uInt16 nPicture; - sal_uInt8 nPictureAlignment; - sal_uInt8 nPictureSizeMode; - bool bPictureTiling; - sal_uInt16 nAccelerator; - sal_uInt16 nIcon; - - 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; - sal_uInt8 *pPicture; -private: }; -class OCX_UserForm : public OCX_ContainerControl + +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); - ~OCX_UserForm() - { - delete[] pCaption; - delete[] pIcon; - } - - virtual sal_Bool Read(SvStorageStream *pS); - - using OCX_ContainerControl::Import; // to not hide the other two import methods + 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); - - /*sal_uInt8 for sal_uInt8 Word Struct*/ - sal_uInt16 nIdentifier; - sal_uInt16 nFixedAreaLen; - sal_uInt8 pBlockFlags[4]; - - sal_uInt32 nChildrenA; - - 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_uInt8 nMousePointer; - sal_uInt32 nBorderColor; - sal_uInt32 nDrawBuffer; - sal_uInt32 nChildrenB; - sal_uInt8 nKeepScrollBarsVisible; - sal_uInt8 nCycle; - sal_uInt16 nBorderStyle; - 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; - ::rtl::OUString sImageUrl; - com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj; private: - com::sun::star::uno::Reference< - com::sun::star::uno::XComponentContext> mxCtx; + com::sun::star::uno::Reference< + com::sun::star::uno::XComponentContext> mxCtx; }; @@ -1131,8 +930,6 @@ public: sal_uInt8 pPictureHeader[20]; sal_uInt32 nPictureLen; - ::rtl::OUString sImageUrl; - com::sun::star::uno::Reference< com::sun::star::graphic::XGraphicObject> mxGrfObj; bool mbTakeFocus; @@ -1194,7 +991,7 @@ public: fAutoSize(0),nCaptionLen(0),nVertPos(1),nHorzPos(7),nMousePointer(0), nBorderColor(0x80000006),nBorderStyle(0),nSpecialEffect(0), nPicture(0),nAccelerator(0),nIcon(0),pCaption(0),nIconLen(0),pIcon(0), - nPictureLen(0),pPicture(0) + nPictureLen(0) { msFormType = rtl::OUString::createFromAscii("com.sun.star.form.component.FixedText"); msDialogType = rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFixedTextModel"); @@ -1206,7 +1003,6 @@ public: ~OCX_Label() { if (pCaption) delete[] pCaption; if (pIcon) delete[] pIcon; - if (pPicture) delete[] pPicture; } sal_Bool Read(SotStorageStream *pS); @@ -1250,7 +1046,6 @@ public: sal_uInt8 pPictureHeader[20]; sal_uInt32 nPictureLen; - sal_uInt8 *pPicture; static OCX_Control *Create() { return new OCX_Label;} |