| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/xtistrm.h
- // Purpose: streaming runtime metadata information (extended class info)
- // Author: Stefan Csomor
- // Modified by:
- // Created: 27/07/03
- // Copyright: (c) 2003 Stefan Csomor
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _CODEDEPERSISTER_
- #define _CODEDEPERSISTER_
- #include "wx/defs.h"
- #include "wx/sstream.h"
- /*
- wxObjectCodeReaderCallback implements the callbacks that will depersist
- an object into a C++ initialization function.
- */
- class WXDLLIMPEXP_BASE wxTextOutputStream;
- class WXDLLIMPEXP_BASE wxObjectCodeReaderCallback: public wxObjectReaderCallback
- {
- private:
- struct wxObjectCodeReaderCallbackInternal;
- wxObjectCodeReaderCallbackInternal * m_data;
- wxString& m_headerincludes;
- wxString& m_source;
- public:
- wxObjectCodeReaderCallback(wxString& headerincludes, wxString &source);
- virtual ~wxObjectCodeReaderCallback();
- // allocate the new object on the heap, that object will have the passed in ID
- virtual void AllocateObject(int objectID, wxClassInfo *classInfo,
- wxStringToAnyHashMap &metadata);
- // initialize the already allocated object having the ID objectID
- // with the Create method creation parameters which are objects are
- // having their Ids passed in objectIDValues having objectId <> wxInvalidObjectID
- virtual void CreateObject(int objectID,
- const wxClassInfo *classInfo,
- int paramCount,
- wxAny *variantValues,
- int *objectIDValues,
- const wxClassInfo **objectClassInfos,
- wxStringToAnyHashMap &metadata
- );
- // construct the new object on the heap, that object will have the
- // passed in ID (for objects that don't support allocate-create type
- // of creation) creation parameters which are objects are having their
- // Ids passed in objectIDValues having objectId <> wxInvalidObjectID
- virtual void ConstructObject(int objectID,
- const wxClassInfo *classInfo,
- int paramCount,
- wxAny *VariantValues,
- int *objectIDValues,
- const wxClassInfo **objectClassInfos,
- wxStringToAnyHashMap &metadata);
- // destroy the heap-allocated object having the ID objectID, this may
- // be used if an object is embedded in another object and set via value
- // semantics, so the intermediate object can be destroyed after safely
- virtual void DestroyObject(int objectID, wxClassInfo *classInfo);
- // set the corresponding property
- virtual void SetProperty(int objectID,
- const wxClassInfo *classInfo,
- const wxPropertyInfo* propertyInfo,
- const wxAny &variantValue);
- // sets the corresponding property (value is an object)
- virtual void SetPropertyAsObject(int objectId,
- const wxClassInfo *classInfo,
- const wxPropertyInfo* propertyInfo,
- int valueObjectId);
- // adds an element to a property collection
- virtual void AddToPropertyCollection( int objectID,
- const wxClassInfo *classInfo,
- const wxPropertyInfo* propertyInfo,
- const wxAny &VariantValue);
- // sets the corresponding property (value is an object)
- virtual void AddToPropertyCollectionAsObject(int objectID,
- const wxClassInfo *classInfo,
- const wxPropertyInfo* propertyInfo,
- int valueObjectId);
- // sets the corresponding event handler
- virtual void SetConnect(int eventSourceObjectID,
- const wxClassInfo *eventSourceClassInfo,
- const wxPropertyInfo *delegateInfo,
- const wxClassInfo *eventSinkClassInfo,
- const wxHandlerInfo* handlerInfo,
- int eventSinkObjectID );
- // utility function exposed for callbacks
- wxString ValueAsCode( const wxAny ¶m );
- };
- #endif
|