summaryrefslogtreecommitdiff
path: root/filter/inc
diff options
context:
space:
mode:
authorNoel Power <noel.power@novell.com>2010-11-02 15:59:53 +0000
committerNoel Power <noel.power@novell.com>2010-11-02 19:49:48 +0000
commite274ec121b99173740dd39755232184b0a2dcc23 (patch)
tree7be90cea076ab0da5f3dda14bd03edb53e4b1643 /filter/inc
parentfe6bb7efcfa97b7a5ac02fa951e67f6c609a859d (diff)
initial import of latest cws container_controls
Diffstat (limited to 'filter/inc')
-rw-r--r--filter/inc/filter/msfilter/msocximex.hxx377
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;}