set eol-style and keywords properties on new files
authorPaul Cornett <paulcor@bullseye.com>
Wed, 5 Jan 2011 06:56:36 +0000 (06:56 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Wed, 5 Jan 2011 06:56:36 +0000 (06:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

26 files changed:
include/wx/rtti.h
include/wx/variantbase.h
include/wx/xtictor.h
include/wx/xtihandler.h
include/wx/xtiprop.h
include/wx/xtitypes.h
samples/xti/classlist.cpp
samples/xti/classlist.h
samples/xti/codereadercallback.cpp
samples/xti/codereadercallback.h
samples/xti/xti.bkl
samples/xti/xti.cpp
src/common/bmpbtncmn.cpp
src/common/checkboxcmn.cpp
src/common/checklstcmn.cpp
src/common/dirctrlcmn.cpp
src/common/gridcmn.cpp
src/common/odcombocmn.cpp
src/common/panelcmn.cpp
src/common/radiobtncmn.cpp
src/common/scrolbarcmn.cpp
src/common/slidercmn.cpp
src/common/spinbtncmn.cpp
src/common/statbmpcmn.cpp
src/common/statboxcmn.cpp
src/common/statlinecmn.cpp

index 12e4461a4b0739b91ad6d8c70065449e0671cb19..e49838935c60e2517d91f2643d112c0791a6582c 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Julian Smart
 // Modified by: Ron Lee
 // Created:     01/02/97
-// RCS-ID:      $Id: rtti.h 48412 2007-08-27 17:04:02Z FM $
+// RCS-ID:      $Id$
 // Copyright:   (c) 1997 Julian Smart
 //              (c) 2001 Ron Lee <ron@debian.org>
 // Licence:     wxWindows licence
index 5745c92af5b2a3d4bc9a9f35f71a31e1b6c8f294..4d994f37a9048af3d8165fbdb51c58799754f3d7 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/variantbase.h\r
-// Purpose:     wxVariantBase class, a minimal version of wxVariant used by XTI\r
-// Author:      Julian Smart\r
-// Modified by: Francesco Montorsi\r
-// Created:     10/09/98\r
-// RCS-ID:      $Id: variant.h 44625 2007-03-07 11:35:04Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _WX_VARIANTBASE_H_\r
-#define _WX_VARIANTBASE_H_\r
-\r
-#include "wx/defs.h"\r
-\r
-#if wxUSE_VARIANT\r
-\r
-#include "wx/string.h"\r
-#include "wx/arrstr.h"\r
-#include "wx/cpp.h"\r
-#include <typeinfo>\r
-\r
-#if wxUSE_DATETIME\r
-    #include "wx/datetime.h"\r
-#endif // wxUSE_DATETIME\r
-\r
-#include "wx/iosfwrap.h"\r
-\r
-class wxTypeInfo;\r
-class wxObject;\r
-class wxClassInfo;\r
-\r
-/*\r
- * wxVariantData stores the actual data in a wxVariant object,\r
- * to allow it to store any type of data.\r
- * Derive from this to provide custom data handling.\r
- *\r
- * NB: To prevent addition of extra vtbl pointer to wxVariantData,\r
- *     we don't multiple-inherit from wxObjectRefData. Instead,\r
- *     we simply replicate the wxObject ref-counting scheme.\r
- *\r
- * NB: When you construct a wxVariantData, it will have refcount\r
- *     of one. Refcount will not be further increased when\r
- *     it is passed to wxVariant. This simulates old common\r
- *     scenario where wxVariant took ownership of wxVariantData\r
- *     passed to it.\r
- *     If you create wxVariantData for other reasons than passing\r
- *     it to wxVariant, technically you are not required to call\r
- *     DecRef() before deleting it.\r
- *\r
- * TODO: in order to replace wxPropertyValue, we would need\r
- * to consider adding constructors that take pointers to C++ variables,\r
- * or removing that functionality from the wxProperty library.\r
- * Essentially wxPropertyValue takes on some of the wxValidator functionality\r
- * by storing pointers and not just actual values, allowing update of C++ data\r
- * to be handled automatically. Perhaps there's another way of doing this without\r
- * overloading wxVariant with unnecessary functionality.\r
- */\r
-\r
-class WXDLLIMPEXP_BASE wxVariantData\r
-{\r
-    friend class wxVariantBase;\r
-\r
-public:\r
-    wxVariantData()\r
-        : m_count(1)\r
-    { }\r
-\r
-#if wxUSE_STD_IOSTREAM\r
-    virtual bool Write(wxSTD ostream& WXUNUSED(str)) const { return false; }\r
-    virtual bool Read(wxSTD istream& WXUNUSED(str)) { return false; }\r
-#endif\r
-    virtual bool Write(wxString& WXUNUSED(str)) const { return false; }\r
-    virtual bool Read(wxString& WXUNUSED(str)) { return false; }\r
-\r
-    // Override these to provide common functionality\r
-    virtual bool Eq(wxVariantData& data) const = 0;\r
-\r
-    // What type is it? Return a string name.\r
-    virtual wxString GetType() const = 0;\r
-\r
-    // returns the type info of the content\r
-    virtual const wxTypeInfo* GetTypeInfo() const = 0;\r
-\r
-    // If it based on wxObject return the ClassInfo.\r
-    virtual wxClassInfo* GetValueClassInfo() { return NULL; }\r
-\r
-    int GetRefCount() const \r
-        { return m_count; }\r
-    void IncRef() \r
-        { m_count++; }\r
-    void DecRef()\r
-    {\r
-        if ( --m_count == 0 )\r
-            delete this;\r
-    }\r
-\r
-protected:\r
-    // Protected dtor should make some incompatible code\r
-    // break more louder. That is, they should do data->DecRef()\r
-    // instead of delete data.\r
-    virtual ~wxVariantData() {}\r
-\r
-private:\r
-    int m_count;\r
-};\r
-\r
-template<typename T> class wxVariantDataT : public wxVariantData\r
-{\r
-public:\r
-    wxVariantDataT(const T& d) : m_data(d) {}\r
-    virtual ~wxVariantDataT() {}\r
-\r
-    // get a ref to the stored data\r
-    T & Get() { return m_data; }\r
-\r
-    // get a const ref to the stored data\r
-    const T & Get() const { return m_data; }\r
-\r
-    // set the data\r
-    void Set(const T& d) { m_data =  d; }\r
-\r
-    // Override these to provide common functionality\r
-    virtual bool Eq(wxVariantData& WXUNUSED(data)) const\r
-        { return false; /* FIXME!! */    }\r
-\r
-    // What type is it? Return a string name.\r
-    virtual wxString GetType() const\r
-        { return GetTypeInfo()->GetTypeName(); }\r
-\r
-    // return a heap allocated duplicate\r
-    //virtual wxVariantData* Clone() const { return new wxVariantDataT<T>( Get() ); }\r
-\r
-    // returns the type info of the contentc\r
-    virtual const wxTypeInfo* GetTypeInfo() const { return wxGetTypeInfo( (T*) NULL ); }\r
-\r
-private:\r
-    T m_data;\r
-};\r
-\r
-\r
-/*\r
- * wxVariantBase can store any kind of data, but has some basic types\r
- * built in.\r
- */\r
-\r
-class WXDLLIMPEXP_BASE wxVariantBase\r
-{\r
-public:\r
-    wxVariantBase();\r
-    wxVariantBase(const wxVariantBase& variant);\r
-    wxVariantBase(wxVariantData* data, const wxString& name = wxEmptyString);\r
-\r
-    template<typename T> \r
-        wxVariantBase(const T& data, const wxString& name = wxEmptyString) :\r
-            m_data(new wxVariantDataT<T>(data)), m_name(name) {}\r
-\r
-    virtual ~wxVariantBase();\r
-\r
-    // generic assignment\r
-    void operator= (const wxVariantBase& variant);\r
-\r
-    // Assignment using data, e.g.\r
-    // myVariant = new wxStringVariantData("hello");\r
-    void operator= (wxVariantData* variantData);\r
-\r
-    bool operator== (const wxVariantBase& variant) const;\r
-    bool operator!= (const wxVariantBase& variant) const;\r
-\r
-    // Sets/gets name\r
-    inline void SetName(const wxString& name) { m_name = name; }\r
-    inline const wxString& GetName() const { return m_name; }\r
-\r
-    // Tests whether there is data\r
-    bool IsNull() const;\r
-\r
-    // FIXME: used by wxVariantBase code but is nice wording...\r
-    bool IsEmpty() const { return IsNull(); }\r
-\r
-    // For compatibility with wxWidgets <= 2.6, this doesn't increase\r
-    // reference count.\r
-    wxVariantData* GetData() const { return m_data; }\r
-    void SetData(wxVariantData* data) ;\r
-\r
-    // make a 'clone' of the object\r
-    void Ref(const wxVariantBase& clone);\r
-\r
-    // destroy a reference\r
-    void UnRef();\r
-\r
-    // Make NULL (i.e. delete the data)\r
-    void MakeNull();\r
-\r
-    // write contents to a string (e.g. for debugging)\r
-    wxString MakeString() const;\r
-\r
-    // Delete data and name\r
-    void Clear();\r
-\r
-    // Returns a string representing the type of the variant,\r
-    // e.g. "string", "bool", "stringlist", "list", "double", "long"\r
-    wxString GetType() const;\r
-\r
-    bool IsType(const wxString& type) const;\r
-    bool IsValueKindOf(const wxClassInfo* type) const;\r
-\r
-    // FIXME wxXTI methods:\r
-\r
-    // get the typeinfo of the stored object\r
-    const wxTypeInfo* GetTypeInfo() const \r
-    { \r
-        if (!m_data)\r
-            return NULL;\r
-        return m_data->GetTypeInfo(); \r
-    }\r
-\r
-    // get a ref to the stored data\r
-    template<typename T> T& Get(wxTEMPLATED_MEMBER_FIX(T))\r
-    {\r
-        wxVariantDataT<T> *dataptr = \r
-            wx_dynamic_cast(wxVariantDataT<T>*, m_data);\r
-        wxASSERT_MSG( dataptr, \r
-            wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) );\r
-        return dataptr->Get();\r
-    }\r
-\r
-    // get a const ref to the stored data\r
-    template<typename T> const T& Get(wxTEMPLATED_MEMBER_FIX(T)) const\r
-    {\r
-        const wxVariantDataT<T> *dataptr = \r
-            wx_dynamic_cast(const wxVariantDataT<T>*, m_data);\r
-        wxASSERT_MSG( dataptr, \r
-            wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) );\r
-        return dataptr->Get();\r
-    }\r
-\r
-    template<typename T> bool HasData(wxTEMPLATED_MEMBER_FIX(T)) const\r
-    {\r
-        const wxVariantDataT<T> *dataptr = \r
-            wx_dynamic_cast(const wxVariantDataT<T>*, m_data);\r
-        return dataptr != NULL;\r
-    }\r
-\r
-    // returns this value as string\r
-    wxString GetAsString() const;\r
-\r
-    // gets the stored data casted to a wxObject*, \r
-    // returning NULL if cast is not possible\r
-    wxObject* GetAsObject();\r
-\r
-protected:\r
-    wxVariantData*  m_data;\r
-    wxString        m_name;\r
-};\r
-\r
-#include "wx/dynarray.h"\r
-WX_DECLARE_OBJARRAY_WITH_DECL(wxVariantBase, wxVariantBaseArray, class WXDLLIMPEXP_BASE);\r
-\r
-\r
-// templated streaming, every type must have their specialization for these methods\r
-\r
-template<typename T>\r
-void wxStringReadValue( const wxString &s, T &data );\r
-\r
-template<typename T>\r
-void wxStringWriteValue( wxString &s, const T &data);\r
-\r
-template<typename T>\r
-void wxToStringConverter( const wxVariantBase &v, wxString &s wxTEMPLATED_FUNCTION_FIX(T)) \\r
-    { wxStringWriteValue( s, v.wxTEMPLATED_MEMBER_CALL(Get, T) ); }\r
-\r
-template<typename T>\r
-void wxFromStringConverter( const wxString &s, wxVariantBase &v wxTEMPLATED_FUNCTION_FIX(T)) \\r
-    { T d; wxStringReadValue( s, d ); v = wxVariantBase(d); }\r
-\r
-\r
-#endif // wxUSE_VARIANT\r
-#endif // _WX_VARIANTBASE_H_\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/variantbase.h
+// Purpose:     wxVariantBase class, a minimal version of wxVariant used by XTI
+// Author:      Julian Smart
+// Modified by: Francesco Montorsi
+// Created:     10/09/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_VARIANTBASE_H_
+#define _WX_VARIANTBASE_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_VARIANT
+
+#include "wx/string.h"
+#include "wx/arrstr.h"
+#include "wx/cpp.h"
+#include <typeinfo>
+
+#if wxUSE_DATETIME
+    #include "wx/datetime.h"
+#endif // wxUSE_DATETIME
+
+#include "wx/iosfwrap.h"
+
+class wxTypeInfo;
+class wxObject;
+class wxClassInfo;
+
+/*
+ * wxVariantData stores the actual data in a wxVariant object,
+ * to allow it to store any type of data.
+ * Derive from this to provide custom data handling.
+ *
+ * NB: To prevent addition of extra vtbl pointer to wxVariantData,
+ *     we don't multiple-inherit from wxObjectRefData. Instead,
+ *     we simply replicate the wxObject ref-counting scheme.
+ *
+ * NB: When you construct a wxVariantData, it will have refcount
+ *     of one. Refcount will not be further increased when
+ *     it is passed to wxVariant. This simulates old common
+ *     scenario where wxVariant took ownership of wxVariantData
+ *     passed to it.
+ *     If you create wxVariantData for other reasons than passing
+ *     it to wxVariant, technically you are not required to call
+ *     DecRef() before deleting it.
+ *
+ * TODO: in order to replace wxPropertyValue, we would need
+ * to consider adding constructors that take pointers to C++ variables,
+ * or removing that functionality from the wxProperty library.
+ * Essentially wxPropertyValue takes on some of the wxValidator functionality
+ * by storing pointers and not just actual values, allowing update of C++ data
+ * to be handled automatically. Perhaps there's another way of doing this without
+ * overloading wxVariant with unnecessary functionality.
+ */
+
+class WXDLLIMPEXP_BASE wxVariantData
+{
+    friend class wxVariantBase;
+
+public:
+    wxVariantData()
+        : m_count(1)
+    { }
+
+#if wxUSE_STD_IOSTREAM
+    virtual bool Write(wxSTD ostream& WXUNUSED(str)) const { return false; }
+    virtual bool Read(wxSTD istream& WXUNUSED(str)) { return false; }
+#endif
+    virtual bool Write(wxString& WXUNUSED(str)) const { return false; }
+    virtual bool Read(wxString& WXUNUSED(str)) { return false; }
+
+    // Override these to provide common functionality
+    virtual bool Eq(wxVariantData& data) const = 0;
+
+    // What type is it? Return a string name.
+    virtual wxString GetType() const = 0;
+
+    // returns the type info of the content
+    virtual const wxTypeInfo* GetTypeInfo() const = 0;
+
+    // If it based on wxObject return the ClassInfo.
+    virtual wxClassInfo* GetValueClassInfo() { return NULL; }
+
+    int GetRefCount() const 
+        { return m_count; }
+    void IncRef() 
+        { m_count++; }
+    void DecRef()
+    {
+        if ( --m_count == 0 )
+            delete this;
+    }
+
+protected:
+    // Protected dtor should make some incompatible code
+    // break more louder. That is, they should do data->DecRef()
+    // instead of delete data.
+    virtual ~wxVariantData() {}
+
+private:
+    int m_count;
+};
+
+template<typename T> class wxVariantDataT : public wxVariantData
+{
+public:
+    wxVariantDataT(const T& d) : m_data(d) {}
+    virtual ~wxVariantDataT() {}
+
+    // get a ref to the stored data
+    T & Get() { return m_data; }
+
+    // get a const ref to the stored data
+    const T & Get() const { return m_data; }
+
+    // set the data
+    void Set(const T& d) { m_data =  d; }
+
+    // Override these to provide common functionality
+    virtual bool Eq(wxVariantData& WXUNUSED(data)) const
+        { return false; /* FIXME!! */    }
+
+    // What type is it? Return a string name.
+    virtual wxString GetType() const
+        { return GetTypeInfo()->GetTypeName(); }
+
+    // return a heap allocated duplicate
+    //virtual wxVariantData* Clone() const { return new wxVariantDataT<T>( Get() ); }
+
+    // returns the type info of the contentc
+    virtual const wxTypeInfo* GetTypeInfo() const { return wxGetTypeInfo( (T*) NULL ); }
+
+private:
+    T m_data;
+};
+
+
+/*
+ * wxVariantBase can store any kind of data, but has some basic types
+ * built in.
+ */
+
+class WXDLLIMPEXP_BASE wxVariantBase
+{
+public:
+    wxVariantBase();
+    wxVariantBase(const wxVariantBase& variant);
+    wxVariantBase(wxVariantData* data, const wxString& name = wxEmptyString);
+
+    template<typename T> 
+        wxVariantBase(const T& data, const wxString& name = wxEmptyString) :
+            m_data(new wxVariantDataT<T>(data)), m_name(name) {}
+
+    virtual ~wxVariantBase();
+
+    // generic assignment
+    void operator= (const wxVariantBase& variant);
+
+    // Assignment using data, e.g.
+    // myVariant = new wxStringVariantData("hello");
+    void operator= (wxVariantData* variantData);
+
+    bool operator== (const wxVariantBase& variant) const;
+    bool operator!= (const wxVariantBase& variant) const;
+
+    // Sets/gets name
+    inline void SetName(const wxString& name) { m_name = name; }
+    inline const wxString& GetName() const { return m_name; }
+
+    // Tests whether there is data
+    bool IsNull() const;
+
+    // FIXME: used by wxVariantBase code but is nice wording...
+    bool IsEmpty() const { return IsNull(); }
+
+    // For compatibility with wxWidgets <= 2.6, this doesn't increase
+    // reference count.
+    wxVariantData* GetData() const { return m_data; }
+    void SetData(wxVariantData* data) ;
+
+    // make a 'clone' of the object
+    void Ref(const wxVariantBase& clone);
+
+    // destroy a reference
+    void UnRef();
+
+    // Make NULL (i.e. delete the data)
+    void MakeNull();
+
+    // write contents to a string (e.g. for debugging)
+    wxString MakeString() const;
+
+    // Delete data and name
+    void Clear();
+
+    // Returns a string representing the type of the variant,
+    // e.g. "string", "bool", "stringlist", "list", "double", "long"
+    wxString GetType() const;
+
+    bool IsType(const wxString& type) const;
+    bool IsValueKindOf(const wxClassInfo* type) const;
+
+    // FIXME wxXTI methods:
+
+    // get the typeinfo of the stored object
+    const wxTypeInfo* GetTypeInfo() const 
+    { 
+        if (!m_data)
+            return NULL;
+        return m_data->GetTypeInfo(); 
+    }
+
+    // get a ref to the stored data
+    template<typename T> T& Get(wxTEMPLATED_MEMBER_FIX(T))
+    {
+        wxVariantDataT<T> *dataptr = 
+            wx_dynamic_cast(wxVariantDataT<T>*, m_data);
+        wxASSERT_MSG( dataptr, 
+            wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) );
+        return dataptr->Get();
+    }
+
+    // get a const ref to the stored data
+    template<typename T> const T& Get(wxTEMPLATED_MEMBER_FIX(T)) const
+    {
+        const wxVariantDataT<T> *dataptr = 
+            wx_dynamic_cast(const wxVariantDataT<T>*, m_data);
+        wxASSERT_MSG( dataptr, 
+            wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) );
+        return dataptr->Get();
+    }
+
+    template<typename T> bool HasData(wxTEMPLATED_MEMBER_FIX(T)) const
+    {
+        const wxVariantDataT<T> *dataptr = 
+            wx_dynamic_cast(const wxVariantDataT<T>*, m_data);
+        return dataptr != NULL;
+    }
+
+    // returns this value as string
+    wxString GetAsString() const;
+
+    // gets the stored data casted to a wxObject*, 
+    // returning NULL if cast is not possible
+    wxObject* GetAsObject();
+
+protected:
+    wxVariantData*  m_data;
+    wxString        m_name;
+};
+
+#include "wx/dynarray.h"
+WX_DECLARE_OBJARRAY_WITH_DECL(wxVariantBase, wxVariantBaseArray, class WXDLLIMPEXP_BASE);
+
+
+// templated streaming, every type must have their specialization for these methods
+
+template<typename T>
+void wxStringReadValue( const wxString &s, T &data );
+
+template<typename T>
+void wxStringWriteValue( wxString &s, const T &data);
+
+template<typename T>
+void wxToStringConverter( const wxVariantBase &v, wxString &s wxTEMPLATED_FUNCTION_FIX(T)) \
+    { wxStringWriteValue( s, v.wxTEMPLATED_MEMBER_CALL(Get, T) ); }
+
+template<typename T>
+void wxFromStringConverter( const wxString &s, wxVariantBase &v wxTEMPLATED_FUNCTION_FIX(T)) \
+    { T d; wxStringReadValue( s, d ); v = wxVariantBase(d); }
+
+
+#endif // wxUSE_VARIANT
+#endif // _WX_VARIANTBASE_H_
index 1fab31b2170c816a3b7149bc54640ec82ea7994e..522aa48d58bff2c64acde31b5820acb6d3915bdd 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/xtictor.h\r
-// Purpose:     XTI constructors\r
-// Author:      Stefan Csomor\r
-// Modified by: Francesco Montorsi\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xti.h 47299 2007-07-10 15:58:27Z FM $\r
-// Copyright:   (c) 1997 Julian Smart\r
-//              (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _XTICTOR_H_\r
-#define _XTICTOR_H_\r
-\r
-#include "wx/defs.h"\r
-\r
-#if wxUSE_EXTENDED_RTTI\r
-\r
-#include "wx/string.h"\r
-#include "wx/variant.h"\r
-\r
-class WXDLLIMPEXP_BASE wxObject;\r
-class WXDLLIMPEXP_BASE wxClassInfo;\r
-class WXDLLIMPEXP_BASE wxDynamicClassInfo;\r
-class WXDLLIMPEXP_BASE wxHashTable;\r
-class WXDLLIMPEXP_BASE wxHashTable_Node;\r
-class WXDLLIMPEXP_BASE wxObjectRefData;\r
-class WXDLLIMPEXP_BASE wxEvent;\r
-class WXDLLIMPEXP_BASE wxEvtHandler;\r
-\r
-// ----------------------------------------------------------------------------\r
-// Constructor Bridges\r
-// ----------------------------------------------------------------------------\r
-\r
-// A constructor bridge allows to call a ctor with an arbitrary number\r
-// or parameters during runtime\r
-class WXDLLIMPEXP_BASE wxObjectAllocatorAndCreator\r
-{\r
-public:\r
-    virtual ~wxObjectAllocatorAndCreator() { }\r
-    virtual bool Create(wxObject * &o, wxVariantBase *args) = 0;\r
-};\r
-\r
-// a direct constructor bridge calls the operator new for this class and\r
-// passes all params to the constructor. Needed for classes that cannot be\r
-// instantiated using alloc-create semantics\r
-class WXDLLIMPEXP_BASE wxObjectAllocator : public wxObjectAllocatorAndCreator\r
-{\r
-public:\r
-    virtual bool Create(wxObject * &o, wxVariantBase *args) = 0;\r
-};\r
-\r
-\r
-// ----------------------------------------------------------------------------\r
-// Constructor Bridges for all Numbers of Params\r
-// ----------------------------------------------------------------------------\r
-\r
-// no params\r
-\r
-template<typename Class>\r
-struct wxObjectAllocatorAndCreator_0 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create();\r
-    }\r
-};\r
-\r
-struct wxObjectAllocatorAndCreator_Dummy : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject *&, wxVariantBase *)\r
-    {\r
-        return true;\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_0(klass) \\r
-    wxObjectAllocatorAndCreator_0<klass> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { NULL }; \\r
-    const int klass::ms_constructorPropertiesCount = 0;\r
-\r
-#define wxCONSTRUCTOR_DUMMY(klass) \\r
-    wxObjectAllocatorAndCreator_Dummy constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { NULL }; \\r
-    const int klass::ms_constructorPropertiesCount = 0;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class>\r
-struct wxDirectConstructorBridge_0 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class( );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_0(klass) \\r
-    wxDirectConstructorBridge_0<klass> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { NULL }; \\r
-    const int klass::ms_constructorPropertiesCount = 0;\r
-\r
-\r
-// 1 param\r
-\r
-template<typename Class, typename T0>\r
-struct wxObjectAllocatorAndCreator_1 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_1(klass,t0,v0) \\r
-    wxObjectAllocatorAndCreator_1<klass,t0> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \\r
-    const int klass::ms_constructorPropertiesCount = 1;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class, typename T0>\r
-struct wxDirectConstructorBridge_1 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_1(klass,t0,v0) \\r
-    wxDirectConstructorBridge_1<klass,t0,t1> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \\r
-    const int klass::ms_constructorPropertiesCount = 1;\r
-\r
-\r
-// 2 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1>\r
-struct wxObjectAllocatorAndCreator_2 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_2(klass,t0,v0,t1,v1) \\r
-    wxObjectAllocatorAndCreator_2<klass,t0,t1> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 2;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1>\r
-struct wxDirectConstructorBridge_2 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_2(klass,t0,v0,t1,v1) \\r
-    wxDirectConstructorBridge_2<klass,t0,t1> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 2;\r
-\r
-\r
-// 3 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2>\r
-struct wxObjectAllocatorAndCreator_3 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \\r
-    wxObjectAllocatorAndCreator_3<klass,t0,t1,t2> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 3;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2>\r
-struct wxDirectConstructorBridge_3 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \\r
-    wxDirectConstructorBridge_3<klass,t0,t1,t2> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2) }; \\r
-    const int klass::ms_constructorPropertiesCount = 3;\r
-\r
-\r
-// 4 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3>\r
-struct wxObjectAllocatorAndCreator_4 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \\r
-    wxObjectAllocatorAndCreator_4<klass,t0,t1,t2,t3> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 4;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3>\r
-struct wxDirectConstructorBridge_4 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \\r
-    wxDirectConstructorBridge_4<klass,t0,t1,t2,t3> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 4;\r
-\r
-\r
-// 5 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4>\r
-struct wxObjectAllocatorAndCreator_5 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \\r
-    wxObjectAllocatorAndCreator_5<klass,t0,t1,t2,t3,t4> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 5;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4>\r
-struct wxDirectConstructorBridge_5 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \\r
-    wxDirectConstructorBridge_5<klass,t0,t1,t2,t3,t4> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4) }; \\r
-    const int klass::ms_constructorPropertiesCount = 5;\r
-\r
-\r
-// 6 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>\r
-struct wxObjectAllocatorAndCreator_6 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \\r
-    wxObjectAllocatorAndCreator_6<klass,t0,t1,t2,t3,t4,t5> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 6;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>\r
-struct wxDirectConstructorBridge_6 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \\r
-    wxDirectConstructorBridge_6<klass,t0,t1,t2,t3,t4,t5> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \\r
-        wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5)  }; \\r
-    const int klass::ms_constructorPropertiesCount = 6;\r
-\r
-\r
-// 7 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>\r
-struct wxObjectAllocatorAndCreator_7 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5),\r
-            args[6].wxTEMPLATED_MEMBER_CALL(Get, T6)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \\r
-    wxObjectAllocatorAndCreator_7<klass,t0,t1,t2,t3,t4,t5,t6> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \\r
-        wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \\r
-    const int klass::ms_constructorPropertiesCount = 7;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>\r
-struct wxDirectConstructorBridge_7 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T5),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T6)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \\r
-    wxDirectConstructorBridge_7<klass,t0,t1,t2,t3,t4,t5,t6> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \\r
-    const int klass::ms_constructorPropertiesCount = 7;\r
-\r
-\r
-// 8 params\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, \\r
-typename T6, typename T7>\r
-struct wxObjectAllocatorAndCreator_8 : public wxObjectAllocatorAndCreator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        Class *obj = wx_dynamic_cast(Class*, o);\r
-        return obj->Create(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5),\r
-            args[6].wxTEMPLATED_MEMBER_CALL(Get, T6),\r
-            args[7].wxTEMPLATED_MEMBER_CALL(Get, T7)\r
-            );\r
-    }\r
-};\r
-\r
-#define wxCONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \\r
-    wxObjectAllocatorAndCreator_8<klass,t0,t1,t2,t3,t4,t5,t6,t7> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \\r
-    const int klass::ms_constructorPropertiesCount = 8;\r
-\r
-// direct constructor version\r
-\r
-template<typename Class,\r
-typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, \\r
-typename T6, typename T7>\r
-struct wxDirectConstructorBridge_8 : public wxObjectAllocator\r
-{\r
-    bool Create(wxObject * &o, wxVariantBase *args)\r
-    {\r
-        o = new Class(\r
-            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),\r
-            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),\r
-            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),\r
-            args[3].wxTEMPLATED_MEMBER_CALL(Get, T5),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T6),\r
-            args[4].wxTEMPLATED_MEMBER_CALL(Get, T7)\r
-            );\r
-        return o != NULL;\r
-    }\r
-};\r
-\r
-#define wxDIRECT_CONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \\r
-    wxDirectConstructorBridge_8<klass,t0,t1,t2,t3,t4,t5,t6,t7> constructor##klass; \\r
-    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \\r
-    const wxChar *klass::ms_constructorProperties[] = \\r
-        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \\r
-    const int klass::ms_constructorPropertiesCount = 8;\r
-\r
-#endif      // wxUSE_EXTENDED_RTTI\r
-#endif      // _XTICTOR_H_\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/xtictor.h
+// Purpose:     XTI constructors
+// Author:      Stefan Csomor
+// Modified by: Francesco Montorsi
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 1997 Julian Smart
+//              (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _XTICTOR_H_
+#define _XTICTOR_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_EXTENDED_RTTI
+
+#include "wx/string.h"
+#include "wx/variant.h"
+
+class WXDLLIMPEXP_BASE wxObject;
+class WXDLLIMPEXP_BASE wxClassInfo;
+class WXDLLIMPEXP_BASE wxDynamicClassInfo;
+class WXDLLIMPEXP_BASE wxHashTable;
+class WXDLLIMPEXP_BASE wxHashTable_Node;
+class WXDLLIMPEXP_BASE wxObjectRefData;
+class WXDLLIMPEXP_BASE wxEvent;
+class WXDLLIMPEXP_BASE wxEvtHandler;
+
+// ----------------------------------------------------------------------------
+// Constructor Bridges
+// ----------------------------------------------------------------------------
+
+// A constructor bridge allows to call a ctor with an arbitrary number
+// or parameters during runtime
+class WXDLLIMPEXP_BASE wxObjectAllocatorAndCreator
+{
+public:
+    virtual ~wxObjectAllocatorAndCreator() { }
+    virtual bool Create(wxObject * &o, wxVariantBase *args) = 0;
+};
+
+// a direct constructor bridge calls the operator new for this class and
+// passes all params to the constructor. Needed for classes that cannot be
+// instantiated using alloc-create semantics
+class WXDLLIMPEXP_BASE wxObjectAllocator : public wxObjectAllocatorAndCreator
+{
+public:
+    virtual bool Create(wxObject * &o, wxVariantBase *args) = 0;
+};
+
+
+// ----------------------------------------------------------------------------
+// Constructor Bridges for all Numbers of Params
+// ----------------------------------------------------------------------------
+
+// no params
+
+template<typename Class>
+struct wxObjectAllocatorAndCreator_0 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create();
+    }
+};
+
+struct wxObjectAllocatorAndCreator_Dummy : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject *&, wxVariantBase *)
+    {
+        return true;
+    }
+};
+
+#define wxCONSTRUCTOR_0(klass) \
+    wxObjectAllocatorAndCreator_0<klass> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { NULL }; \
+    const int klass::ms_constructorPropertiesCount = 0;
+
+#define wxCONSTRUCTOR_DUMMY(klass) \
+    wxObjectAllocatorAndCreator_Dummy constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { NULL }; \
+    const int klass::ms_constructorPropertiesCount = 0;
+
+// direct constructor version
+
+template<typename Class>
+struct wxDirectConstructorBridge_0 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class( );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_0(klass) \
+    wxDirectConstructorBridge_0<klass> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { NULL }; \
+    const int klass::ms_constructorPropertiesCount = 0;
+
+
+// 1 param
+
+template<typename Class, typename T0>
+struct wxObjectAllocatorAndCreator_1 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_1(klass,t0,v0) \
+    wxObjectAllocatorAndCreator_1<klass,t0> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \
+    const int klass::ms_constructorPropertiesCount = 1;
+
+// direct constructor version
+
+template<typename Class, typename T0>
+struct wxDirectConstructorBridge_1 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_1(klass,t0,v0) \
+    wxDirectConstructorBridge_1<klass,t0,t1> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \
+    const int klass::ms_constructorPropertiesCount = 1;
+
+
+// 2 params
+
+template<typename Class,
+typename T0, typename T1>
+struct wxObjectAllocatorAndCreator_2 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_2(klass,t0,v0,t1,v1) \
+    wxObjectAllocatorAndCreator_2<klass,t0,t1> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1)  }; \
+    const int klass::ms_constructorPropertiesCount = 2;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1>
+struct wxDirectConstructorBridge_2 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_2(klass,t0,v0,t1,v1) \
+    wxDirectConstructorBridge_2<klass,t0,t1> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1)  }; \
+    const int klass::ms_constructorPropertiesCount = 2;
+
+
+// 3 params
+
+template<typename Class,
+typename T0, typename T1, typename T2>
+struct wxObjectAllocatorAndCreator_3 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \
+    wxObjectAllocatorAndCreator_3<klass,t0,t1,t2> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2)  }; \
+    const int klass::ms_constructorPropertiesCount = 3;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2>
+struct wxDirectConstructorBridge_3 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \
+    wxDirectConstructorBridge_3<klass,t0,t1,t2> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2) }; \
+    const int klass::ms_constructorPropertiesCount = 3;
+
+
+// 4 params
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3>
+struct wxObjectAllocatorAndCreator_4 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \
+    wxObjectAllocatorAndCreator_4<klass,t0,t1,t2,t3> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3)  }; \
+    const int klass::ms_constructorPropertiesCount = 4;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3>
+struct wxDirectConstructorBridge_4 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \
+    wxDirectConstructorBridge_4<klass,t0,t1,t2,t3> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3)  }; \
+    const int klass::ms_constructorPropertiesCount = 4;
+
+
+// 5 params
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4>
+struct wxObjectAllocatorAndCreator_5 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \
+    wxObjectAllocatorAndCreator_5<klass,t0,t1,t2,t3,t4> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4)  }; \
+    const int klass::ms_constructorPropertiesCount = 5;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4>
+struct wxDirectConstructorBridge_5 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \
+    wxDirectConstructorBridge_5<klass,t0,t1,t2,t3,t4> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4) }; \
+    const int klass::ms_constructorPropertiesCount = 5;
+
+
+// 6 params
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
+struct wxObjectAllocatorAndCreator_6 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \
+    wxObjectAllocatorAndCreator_6<klass,t0,t1,t2,t3,t4,t5> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5)  }; \
+    const int klass::ms_constructorPropertiesCount = 6;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
+struct wxDirectConstructorBridge_6 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \
+    wxDirectConstructorBridge_6<klass,t0,t1,t2,t3,t4,t5> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \
+        wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5)  }; \
+    const int klass::ms_constructorPropertiesCount = 6;
+
+
+// 7 params
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+struct wxObjectAllocatorAndCreator_7 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5),
+            args[6].wxTEMPLATED_MEMBER_CALL(Get, T6)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \
+    wxObjectAllocatorAndCreator_7<klass,t0,t1,t2,t3,t4,t5,t6> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \
+        wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \
+    const int klass::ms_constructorPropertiesCount = 7;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+struct wxDirectConstructorBridge_7 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T5),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T6)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \
+    wxDirectConstructorBridge_7<klass,t0,t1,t2,t3,t4,t5,t6> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \
+    const int klass::ms_constructorPropertiesCount = 7;
+
+
+// 8 params
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, \
+typename T6, typename T7>
+struct wxObjectAllocatorAndCreator_8 : public wxObjectAllocatorAndCreator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        Class *obj = wx_dynamic_cast(Class*, o);
+        return obj->Create(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[5].wxTEMPLATED_MEMBER_CALL(Get, T5),
+            args[6].wxTEMPLATED_MEMBER_CALL(Get, T6),
+            args[7].wxTEMPLATED_MEMBER_CALL(Get, T7)
+            );
+    }
+};
+
+#define wxCONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \
+    wxObjectAllocatorAndCreator_8<klass,t0,t1,t2,t3,t4,t5,t6,t7> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \
+    const int klass::ms_constructorPropertiesCount = 8;
+
+// direct constructor version
+
+template<typename Class,
+typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, \
+typename T6, typename T7>
+struct wxDirectConstructorBridge_8 : public wxObjectAllocator
+{
+    bool Create(wxObject * &o, wxVariantBase *args)
+    {
+        o = new Class(
+            args[0].wxTEMPLATED_MEMBER_CALL(Get, T0),
+            args[1].wxTEMPLATED_MEMBER_CALL(Get, T1),
+            args[2].wxTEMPLATED_MEMBER_CALL(Get, T2),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T3),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T4),
+            args[3].wxTEMPLATED_MEMBER_CALL(Get, T5),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T6),
+            args[4].wxTEMPLATED_MEMBER_CALL(Get, T7)
+            );
+        return o != NULL;
+    }
+};
+
+#define wxDIRECT_CONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \
+    wxDirectConstructorBridge_8<klass,t0,t1,t2,t3,t4,t5,t6,t7> constructor##klass; \
+    wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \
+    const wxChar *klass::ms_constructorProperties[] = \
+        { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \
+    const int klass::ms_constructorPropertiesCount = 8;
+
+#endif      // wxUSE_EXTENDED_RTTI
+#endif      // _XTICTOR_H_
index 2da2c9745a46ca50e863a877228ab4b3f2c058af..a7aa7b2cdebd4cec109233555c10ec808960f838 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/xtihandler.h\r
-// Purpose:     XTI handlers\r
-// Author:      Stefan Csomor\r
-// Modified by: Francesco Montorsi\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xti.h 47299 2007-07-10 15:58:27Z FM $\r
-// Copyright:   (c) 1997 Julian Smart\r
-//              (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _XTIHANDLER_H_\r
-#define _XTIHANDLER_H_\r
-\r
-#include "wx/defs.h"\r
-\r
-#if wxUSE_EXTENDED_RTTI\r
-\r
-#include "wx/string.h"\r
-\r
-class WXDLLIMPEXP_BASE wxObject;\r
-class WXDLLIMPEXP_BASE wxClassInfo;\r
-class WXDLLIMPEXP_BASE wxDynamicClassInfo;\r
-class WXDLLIMPEXP_BASE wxHashTable;\r
-class WXDLLIMPEXP_BASE wxHashTable_Node;\r
-class WXDLLIMPEXP_BASE wxObjectRefData;\r
-class WXDLLIMPEXP_BASE wxEvent;\r
-class WXDLLIMPEXP_BASE wxEvtHandler;\r
-\r
-typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);\r
-\r
-// ----------------------------------------------------------------------------\r
-// Handler Info\r
-//\r
-// this describes an event sink\r
-// ----------------------------------------------------------------------------\r
-\r
-class WXDLLIMPEXP_BASE wxHandlerInfo\r
-{\r
-    friend class WXDLLIMPEXP_BASE wxDynamicClassInfo;\r
-\r
-public:\r
-    wxHandlerInfo(wxHandlerInfo* &iter,\r
-                  wxClassInfo* itsClass,\r
-                  const wxString& name,\r
-                  wxObjectEventFunction address,\r
-                  const wxClassInfo* eventClassInfo) :\r
-            m_eventFunction(address),\r
-            m_name(name),\r
-            m_eventClassInfo(eventClassInfo),\r
-            m_itsClass(itsClass)\r
-       {\r
-            Insert(iter);\r
-       }\r
-\r
-    ~wxHandlerInfo()\r
-        { Remove(); }\r
-\r
-    // return the name of this handler\r
-    const wxString& GetName() const { return m_name; }\r
-\r
-    // return the class info of the event\r
-    const wxClassInfo *GetEventClassInfo() const { return m_eventClassInfo; }\r
-\r
-    // get the handler function pointer\r
-    wxObjectEventFunction GetEventFunction() const { return m_eventFunction; }\r
-\r
-    // returns NULL if this is the last handler of this class\r
-    wxHandlerInfo*     GetNext() const { return m_next; }\r
-\r
-    // return the class this property is declared in\r
-    const wxClassInfo*   GetDeclaringClass() const { return m_itsClass; }\r
-\r
-private:\r
-\r
-    // inserts this handler at the end of the linked chain which begins\r
-    // with "iter" handler.\r
-    void Insert(wxHandlerInfo* &iter);\r
-\r
-    // removes this handler from the linked chain of the m_itsClass handlers.\r
-    void Remove();\r
-\r
-    wxObjectEventFunction m_eventFunction;\r
-    wxString              m_name;\r
-    const wxClassInfo*    m_eventClassInfo;\r
-    wxHandlerInfo*        m_next;\r
-    wxClassInfo*          m_itsClass;\r
-};\r
-\r
-#define wxHANDLER(name,eventClassType)                                               \\r
-    static wxHandlerInfo _handlerInfo##name( first, class_t::GetClassInfoStatic(),   \\r
-                    wxT(#name), (wxObjectEventFunction) (wxEventFunction) &name,     \\r
-                    CLASSINFO( eventClassType ) );\r
-\r
-#define wxBEGIN_HANDLERS_TABLE(theClass)          \\r
-    wxHandlerInfo *theClass::GetHandlersStatic()  \\r
-    {                                             \\r
-        typedef theClass class_t;                 \\r
-        static wxHandlerInfo* first = NULL;\r
-\r
-#define wxEND_HANDLERS_TABLE()                    \\r
-    return first; }\r
-\r
-#define wxEMPTY_HANDLERS_TABLE(theClass)          \\r
-    wxBEGIN_HANDLERS_TABLE(theClass)              \\r
-    wxEND_HANDLERS_TABLE()\r
-\r
-#endif      // wxUSE_EXTENDED_RTTI\r
-#endif      // _XTIHANDLER_H_\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/xtihandler.h
+// Purpose:     XTI handlers
+// Author:      Stefan Csomor
+// Modified by: Francesco Montorsi
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 1997 Julian Smart
+//              (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _XTIHANDLER_H_
+#define _XTIHANDLER_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_EXTENDED_RTTI
+
+#include "wx/string.h"
+
+class WXDLLIMPEXP_BASE wxObject;
+class WXDLLIMPEXP_BASE wxClassInfo;
+class WXDLLIMPEXP_BASE wxDynamicClassInfo;
+class WXDLLIMPEXP_BASE wxHashTable;
+class WXDLLIMPEXP_BASE wxHashTable_Node;
+class WXDLLIMPEXP_BASE wxObjectRefData;
+class WXDLLIMPEXP_BASE wxEvent;
+class WXDLLIMPEXP_BASE wxEvtHandler;
+
+typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);
+
+// ----------------------------------------------------------------------------
+// Handler Info
+//
+// this describes an event sink
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxHandlerInfo
+{
+    friend class WXDLLIMPEXP_BASE wxDynamicClassInfo;
+
+public:
+    wxHandlerInfo(wxHandlerInfo* &iter,
+                  wxClassInfo* itsClass,
+                  const wxString& name,
+                  wxObjectEventFunction address,
+                  const wxClassInfo* eventClassInfo) :
+            m_eventFunction(address),
+            m_name(name),
+            m_eventClassInfo(eventClassInfo),
+            m_itsClass(itsClass)
+       {
+            Insert(iter);
+       }
+
+    ~wxHandlerInfo()
+        { Remove(); }
+
+    // return the name of this handler
+    const wxString& GetName() const { return m_name; }
+
+    // return the class info of the event
+    const wxClassInfo *GetEventClassInfo() const { return m_eventClassInfo; }
+
+    // get the handler function pointer
+    wxObjectEventFunction GetEventFunction() const { return m_eventFunction; }
+
+    // returns NULL if this is the last handler of this class
+    wxHandlerInfo*     GetNext() const { return m_next; }
+
+    // return the class this property is declared in
+    const wxClassInfo*   GetDeclaringClass() const { return m_itsClass; }
+
+private:
+
+    // inserts this handler at the end of the linked chain which begins
+    // with "iter" handler.
+    void Insert(wxHandlerInfo* &iter);
+
+    // removes this handler from the linked chain of the m_itsClass handlers.
+    void Remove();
+
+    wxObjectEventFunction m_eventFunction;
+    wxString              m_name;
+    const wxClassInfo*    m_eventClassInfo;
+    wxHandlerInfo*        m_next;
+    wxClassInfo*          m_itsClass;
+};
+
+#define wxHANDLER(name,eventClassType)                                               \
+    static wxHandlerInfo _handlerInfo##name( first, class_t::GetClassInfoStatic(),   \
+                    wxT(#name), (wxObjectEventFunction) (wxEventFunction) &name,     \
+                    CLASSINFO( eventClassType ) );
+
+#define wxBEGIN_HANDLERS_TABLE(theClass)          \
+    wxHandlerInfo *theClass::GetHandlersStatic()  \
+    {                                             \
+        typedef theClass class_t;                 \
+        static wxHandlerInfo* first = NULL;
+
+#define wxEND_HANDLERS_TABLE()                    \
+    return first; }
+
+#define wxEMPTY_HANDLERS_TABLE(theClass)          \
+    wxBEGIN_HANDLERS_TABLE(theClass)              \
+    wxEND_HANDLERS_TABLE()
+
+#endif      // wxUSE_EXTENDED_RTTI
+#endif      // _XTIHANDLER_H_
index b2f9ea0999f086a0db9fbc27fbfbbc3c93f2756c..abd3584eadd5be1b909dfc95f4c9c553216a59fd 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/xtiprop.h\r
-// Purpose:     XTI properties\r
-// Author:      Stefan Csomor\r
-// Modified by: Francesco Montorsi\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xti.h 47299 2007-07-10 15:58:27Z FM $\r
-// Copyright:   (c) 1997 Julian Smart\r
-//              (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _XTIPROP_H_\r
-#define _XTIPROP_H_\r
-\r
-#include "wx/defs.h"\r
-\r
-#if wxUSE_EXTENDED_RTTI\r
-\r
-#include "wx/string.h"\r
-#include "wx/variant.h"\r
-#include "wx/intl.h"\r
-#include "wx/log.h"\r
-#include "wx/xtitypes.h"\r
-\r
-class WXDLLIMPEXP_BASE wxObject;\r
-class WXDLLIMPEXP_BASE wxClassInfo;\r
-class WXDLLIMPEXP_BASE wxDynamicClassInfo;\r
-class WXDLLIMPEXP_BASE wxHashTable;\r
-class WXDLLIMPEXP_BASE wxHashTable_Node;\r
-class WXDLLIMPEXP_BASE wxObjectRefData;\r
-class WXDLLIMPEXP_BASE wxEvent;\r
-class WXDLLIMPEXP_BASE wxEvtHandler;\r
-\r
-// ----------------------------------------------------------------------------\r
-// Property Accessors\r
-//\r
-// wxPropertySetter/Getter/CollectionGetter/CollectionAdder are all property\r
-// accessors which are managed by wxPropertyAccessor class which in turn is\r
-// handled by wxPropertyInfo.\r
-// ----------------------------------------------------------------------------\r
-\r
-class WXDLLIMPEXP_BASE wxPropertySetter\r
-{\r
-public:\r
-    wxPropertySetter( const wxString name ) { m_name = name; }\r
-    virtual ~wxPropertySetter() {}\r
-\r
-    virtual void Set( wxObject *object, const wxVariantBase &variantValue ) const = 0;\r
-    const wxString& GetName() const { return m_name; }\r
-\r
-private:\r
-    wxString m_name;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxPropertyGetter\r
-{\r
-public:\r
-    wxPropertyGetter( const wxString name ) { m_name = name; }\r
-    virtual ~wxPropertyGetter() {}\r
-\r
-    virtual void Get( const wxObject *object, wxVariantBase& result) const = 0;\r
-    const wxString& GetName() const { return m_name; }\r
-\r
-private:\r
-    wxString m_name;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxPropertyCollectionGetter\r
-{\r
-public:\r
-    wxPropertyCollectionGetter( const wxString name ) { m_name = name; }\r
-    virtual ~wxPropertyCollectionGetter() {}\r
-\r
-    virtual void Get( const wxObject *object, wxVariantBaseArray& result) const = 0;\r
-    const wxString& GetName() const { return m_name; }\r
-\r
-private:\r
-    wxString m_name;\r
-};\r
-\r
-template<typename coll_t> void WXDLLIMPEXP_BASE \\r
-    wxCollectionToVariantArray( const coll_t& coll, wxVariantBaseArray& result );\r
-\r
-class WXDLLIMPEXP_BASE wxPropertyCollectionAdder\r
-{\r
-public:\r
-    wxPropertyCollectionAdder( const wxString name ) { m_name = name; }\r
-    virtual ~wxPropertyCollectionAdder() {}\r
-\r
-    virtual void Add( wxObject *object, const wxVariantBase &variantValue ) const= 0;\r
-    const wxString& GetName() const { return m_name; }\r
-\r
-private:\r
-    wxString m_name;\r
-};\r
-\r
-#define wxPROPERTY_SETTER( property, Klass, valueType, setterMethod )            \\r
-class wxPropertySetter##property : public wxPropertySetter                              \\r
-{                                                                       \\r
-public:                                                                 \\r
-    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \\r
-    wxPropertySetter##property() : wxPropertySetter( wxT(#setterMethod) ) {}            \\r
-    virtual ~wxPropertySetter##property() {}                                    \\r
-                                                                        \\r
-    void Set( wxObject *object, const wxVariantBase &variantValue ) const  \\r
-    {                                                                   \\r
-        Klass *obj = dynamic_cast<Klass*>(object);                      \\r
-        if ( variantValue.wxTEMPLATED_MEMBER_CALL(HasData, valueType) ) \\r
-            obj->setterMethod(variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType));   \\r
-        else                                                                            \\r
-            obj->setterMethod(*variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType*)); \\r
-    }                                                                                   \\r
-};\r
-\r
-#define wxPROPERTY_GETTER( property, Klass, valueType, gettermethod )           \\r
-class wxPropertyGetter##property : public wxPropertyGetter                              \\r
-{                                                                       \\r
-public:                                                                 \\r
-    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \\r
-    wxPropertyGetter##property() : wxPropertyGetter( wxT(#gettermethod) ) {}            \\r
-    virtual ~wxPropertyGetter##property() {}                                    \\r
-                                                                        \\r
-    void Get( const wxObject *object, wxVariantBase &result) const        \\r
-    {                                                                   \\r
-        const Klass *obj = dynamic_cast<const Klass*>(object);          \\r
-        result = wxVariantBase( obj->gettermethod() );                     \\r
-    }                                                                   \\r
-};\r
-\r
-#define wxPROPERTY_COLLECTION_ADDER( property, Klass, valueType, addermethod )             \\r
-class wxPropertyCollectionAdder##property : public wxPropertyCollectionAdder                                \\r
-{                                                                       \\r
-public:                                                                 \\r
-    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \\r
-    wxPropertyCollectionAdder##property() : wxPropertyCollectionAdder( wxT(#addermethod) ) {}               \\r
-    virtual ~wxPropertyCollectionAdder##property() {}                                     \\r
-                                                                        \\r
-    void Add( wxObject *object, const wxVariantBase &variantValue ) const  \\r
-    {                                                                   \\r
-        Klass *obj = dynamic_cast<Klass*>(object);                      \\r
-        if ( variantValue.wxTEMPLATED_MEMBER_CALL(HasData, valueType) ) \\r
-            obj->addermethod(variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType));    \\r
-        else                                                                            \\r
-            obj->addermethod(*variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType*));  \\r
-    }                                                                                   \\r
-};\r
-\r
-#define wxPROPERTY_COLLECTION_GETTER( property, Klass, valueType, gettermethod )    \\r
-class wxPropertyCollectionGetter##property : public wxPropertyCollectionGetter              \\r
-{                                                                           \\r
-public:                                                                     \\r
-    wxINFUNC_CLASS_TYPE_FIX(Klass)                                          \\r
-    wxPropertyCollectionGetter##property() : wxPropertyCollectionGetter( wxT(#gettermethod) ) {} \\r
-    virtual ~wxPropertyCollectionGetter##property() {}                              \\r
-                                                                            \\r
-    void Get( const wxObject *object, wxVariantBaseArray &result) const       \\r
-    {                                                                       \\r
-        const Klass *obj = dynamic_cast<const Klass*>(object);              \\r
-        wxCollectionToVariantArray( obj->gettermethod(), result );         \\r
-    }                                                                       \\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxPropertyAccessor\r
-{\r
-public:\r
-    wxPropertyAccessor( wxPropertySetter *setter, wxPropertyGetter *getter, \r
-                        wxPropertyCollectionAdder *adder, wxPropertyCollectionGetter *collectionGetter )\r
-    { m_setter = setter; m_getter = getter; m_adder = adder; \r
-      m_collectionGetter = collectionGetter; }\r
-\r
-    virtual ~wxPropertyAccessor() {}\r
-\r
-    // Setting a simple property (non-collection)\r
-    virtual void SetProperty(wxObject *object, const wxVariantBase &value) const\r
-    { \r
-        if ( m_setter ) \r
-            m_setter->Set( object, value ); \r
-        else \r
-            wxLogError( _("SetProperty called w/o valid setter") ); \r
-    }\r
-\r
-    // Getting a simple property (non-collection)\r
-    virtual void GetProperty(const wxObject *object, wxVariantBase &result) const\r
-    { \r
-        if ( m_getter ) \r
-            m_getter->Get( object, result ); \r
-        else \r
-            wxLogError( _("GetProperty called w/o valid getter") ); \r
-    }\r
-\r
-    // Adding an element to a collection property\r
-    virtual void AddToPropertyCollection(wxObject *object, const wxVariantBase &value) const\r
-    { \r
-        if ( m_adder ) \r
-            m_adder->Add( object, value ); \r
-        else \r
-            wxLogError( _("AddToPropertyCollection called w/o valid adder") ); \r
-    }\r
-\r
-    // Getting a collection property\r
-    virtual void GetPropertyCollection( const wxObject *obj, wxVariantBaseArray &result) const\r
-    { \r
-        if ( m_collectionGetter ) \r
-            m_collectionGetter->Get( obj, result); \r
-        else \r
-            wxLogError( _("GetPropertyCollection called w/o valid collection getter") ); \r
-    }\r
-\r
-    virtual bool HasSetter() const { return m_setter != NULL; }\r
-    virtual bool HasCollectionGetter() const { return m_collectionGetter != NULL; }\r
-    virtual bool HasGetter() const { return m_getter != NULL; }\r
-    virtual bool HasAdder() const { return m_adder != NULL; }\r
-\r
-    virtual const wxString& GetCollectionGetterName() const\r
-        { return m_collectionGetter->GetName(); }\r
-    virtual const wxString&  GetGetterName() const\r
-        { return m_getter->GetName(); }\r
-    virtual const wxString& GetSetterName() const\r
-        { return m_setter->GetName(); }\r
-    virtual const wxString& GetAdderName() const\r
-        { return m_adder->GetName(); }\r
-\r
-protected:\r
-    wxPropertySetter *m_setter;\r
-    wxPropertyCollectionAdder *m_adder;\r
-    wxPropertyGetter *m_getter;\r
-    wxPropertyCollectionGetter* m_collectionGetter;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxGenericPropertyAccessor : public wxPropertyAccessor\r
-{\r
-public:\r
-    wxGenericPropertyAccessor( const wxString &propName );\r
-    virtual ~wxGenericPropertyAccessor();\r
-\r
-    void RenameProperty( const wxString& WXUNUSED_UNLESS_DEBUG(oldName),\r
-        const wxString& newName )\r
-    {\r
-        wxASSERT( oldName == m_propertyName ); m_propertyName = newName;\r
-    }\r
-\r
-    virtual bool HasSetter() const { return true; }\r
-    virtual bool HasGetter() const { return true; }\r
-    virtual bool HasAdder() const { return false; }\r
-    virtual bool HasCollectionGetter() const { return false; }\r
-\r
-    virtual const wxString&  GetGetterName() const\r
-        { return m_getterName; }\r
-    virtual const wxString& GetSetterName() const\r
-        { return m_setterName; }\r
-\r
-    virtual void SetProperty(wxObject *object, const wxVariantBase &value) const;\r
-    virtual void GetProperty(const wxObject *object, wxVariantBase &value) const;\r
-\r
-    // Adding an element to a collection property\r
-    virtual void AddToPropertyCollection(wxObject *WXUNUSED(object), \r
-                                         const wxVariantBase &WXUNUSED(value)) const\r
-    { \r
-        wxLogError( _("AddToPropertyCollection called on a generic accessor") ); \r
-    }\r
-\r
-    // Getting a collection property\r
-    virtual void GetPropertyCollection( const wxObject *WXUNUSED(obj), \r
-                                        wxVariantBaseArray &WXUNUSED(result)) const\r
-    { \r
-        wxLogError ( _("GetPropertyCollection called on a generic accessor") ); \r
-    }\r
-\r
-private:\r
-    struct wxGenericPropertyAccessorInternal;\r
-    wxGenericPropertyAccessorInternal* m_data;\r
-    wxString m_propertyName;\r
-    wxString m_setterName;\r
-    wxString m_getterName;\r
-};\r
-\r
-typedef long wxPropertyInfoFlags;\r
-enum \r
-{\r
-    // will be removed in future releases\r
-    wxPROP_DEPRECATED       = 0x00000001,\r
-\r
-    // object graph property, will be streamed with priority (after constructor properties)\r
-    wxPROP_OBJECT_GRAPH     = 0x00000002,\r
-\r
-    // this will only be streamed out and in as enum/set, the internal representation \r
-    // is still a long\r
-    wxPROP_ENUM_STORE_LONG  = 0x00000004,\r
-\r
-    // don't stream out this property, needed eg to avoid streaming out children \r
-    // that are always created by their parents\r
-    wxPROP_DONT_STREAM      = 0x00000008\r
-};\r
-\r
-\r
-// ----------------------------------------------------------------------------\r
-// Property Support\r
-//\r
-// wxPropertyInfo is used to inquire of the property by name.  It doesn't\r
-// provide access to the property, only information about it.  If you\r
-// want access, look at wxPropertyAccessor.\r
-// ----------------------------------------------------------------------------\r
-\r
-class WXDLLIMPEXP_BASE wxPropertyInfo\r
-{\r
-    friend class WXDLLIMPEXP_BASE wxDynamicClassInfo;\r
-\r
-public:\r
-    wxPropertyInfo(wxPropertyInfo* &iter,\r
-                   wxClassInfo* itsClass,\r
-                   const wxString& name,\r
-                   const wxString& typeName,\r
-                   wxPropertyAccessor *accessor,\r
-                   wxVariantBase dv,\r
-                   wxPropertyInfoFlags flags = 0,\r
-                   const wxString& helpString = wxEmptyString,\r
-                   const wxString& groupString = wxEmptyString) :\r
-                   m_itsClass(itsClass),\r
-           m_name(name),\r
-           m_typeInfo(NULL),\r
-           m_typeName(typeName),\r
-           m_collectionElementTypeInfo(NULL),\r
-           m_accessor(accessor),\r
-           m_defaultValue(dv),\r
-           m_flags(flags),\r
-           m_helpString(helpString),\r
-           m_groupString(groupString)\r
-       {\r
-           Insert(iter);\r
-       }\r
-\r
-#if wxUSE_UNICODE\r
-    wxPropertyInfo(wxPropertyInfo* &iter,\r
-                   wxClassInfo* itsClass,\r
-                   const wxString& name,\r
-                   const char* typeName,\r
-                   wxPropertyAccessor *accessor,\r
-                   wxVariantBase dv,\r
-                   wxPropertyInfoFlags flags = 0,\r
-                   const wxString& helpString = wxEmptyString,\r
-                   const wxString& groupString = wxEmptyString) :\r
-                   m_itsClass(itsClass),\r
-           m_name(name),\r
-           m_typeInfo(NULL),\r
-           m_typeName(wxString::FromAscii(typeName)),\r
-           m_collectionElementTypeInfo(NULL),\r
-           m_accessor(accessor),\r
-           m_defaultValue(dv),\r
-           m_flags(flags),\r
-           m_helpString(helpString),\r
-           m_groupString(groupString)\r
-       {\r
-           Insert(iter);\r
-       }\r
-#endif\r
-    wxPropertyInfo(wxPropertyInfo* &iter,\r
-                   wxClassInfo* itsClass,\r
-                   const wxString& name,\r
-                   wxEventSourceTypeInfo* type,\r
-                   wxPropertyAccessor *accessor,\r
-                   wxVariantBase dv,\r
-                   wxPropertyInfoFlags flags = 0,\r
-                   const wxString& helpString = wxEmptyString,\r
-                   const wxString& groupString = wxEmptyString) :\r
-           m_itsClass(itsClass),\r
-           m_name(name),\r
-           m_typeInfo(type),\r
-           m_collectionElementTypeInfo(NULL),\r
-           m_accessor(accessor),\r
-           m_defaultValue(dv),\r
-           m_flags(flags),\r
-           m_helpString(helpString),\r
-           m_groupString(groupString)\r
-       {\r
-           Insert(iter);\r
-       }\r
-\r
-    wxPropertyInfo(wxPropertyInfo* &iter,\r
-                    wxClassInfo* itsClass, const wxString& name,\r
-                    const wxString& collectionTypeName,\r
-                    const wxString& elementTypeName,\r
-                    wxPropertyAccessor *accessor,\r
-                    wxPropertyInfoFlags flags = 0,\r
-                    const wxString& helpString = wxEmptyString,\r
-                    const wxString& groupString = wxEmptyString) :\r
-        m_itsClass(itsClass),\r
-        m_name(name),\r
-        m_typeInfo(NULL),\r
-        m_typeName(collectionTypeName),\r
-        m_collectionElementTypeInfo(NULL),\r
-        m_collectionElementTypeName(elementTypeName),\r
-        m_accessor(accessor),\r
-        m_flags(flags),\r
-        m_helpString(helpString),\r
-        m_groupString(groupString)\r
-    {\r
-        Insert(iter);\r
-    }\r
-\r
-#if wxUSE_UNICODE\r
-    wxPropertyInfo(wxPropertyInfo* &iter,\r
-            wxClassInfo* itsClass, const wxString& name,\r
-            const char* collectionTypeName,\r
-            const char* elementTypeName,\r
-            wxPropertyAccessor *accessor,\r
-            wxPropertyInfoFlags flags = 0,\r
-            const wxString& helpString = wxEmptyString,\r
-            const wxString& groupString = wxEmptyString) :\r
-        m_itsClass(itsClass),\r
-        m_name(name),\r
-        m_typeInfo(NULL),\r
-        m_typeName(wxString::FromAscii(collectionTypeName)),\r
-        m_collectionElementTypeInfo(NULL),\r
-        m_collectionElementTypeName(wxString::FromAscii(elementTypeName)),\r
-        m_accessor(accessor),\r
-        m_flags(flags),\r
-        m_helpString(helpString),\r
-        m_groupString(groupString)\r
-    {\r
-        Insert(iter);\r
-    }\r
-#endif\r
-    ~wxPropertyInfo()\r
-        { Remove(); }\r
-\r
-    // return the class this property is declared in\r
-    const wxClassInfo*  GetDeclaringClass() const { return m_itsClass; }\r
-\r
-    // return the name of this property\r
-    const wxString&     GetName() const { return m_name; }\r
-\r
-    // returns the flags of this property\r
-    wxPropertyInfoFlags GetFlags() const { return m_flags; }\r
-\r
-    // returns the short help string of this property\r
-    const wxString&     GetHelpString() const { return m_helpString; }\r
-\r
-    // returns the group string of this property\r
-    const wxString&     GetGroupString() const { return m_groupString; }\r
-\r
-    // return the element type info of this property (for collections, otherwise NULL)\r
-    const wxTypeInfo *  GetCollectionElementTypeInfo() const\r
-    {\r
-        if ( m_collectionElementTypeInfo == NULL )\r
-            m_collectionElementTypeInfo = wxTypeInfo::FindType(m_collectionElementTypeName);\r
-        return m_collectionElementTypeInfo;\r
-    }\r
-\r
-    // return the type info of this property\r
-    const wxTypeInfo *  GetTypeInfo() const\r
-    {\r
-        if ( m_typeInfo == NULL )\r
-            m_typeInfo = wxTypeInfo::FindType(m_typeName);\r
-        return m_typeInfo;\r
-    }\r
-\r
-    // return the accessor for this property\r
-    wxPropertyAccessor* GetAccessor() const { return m_accessor; }\r
-\r
-    // returns NULL if this is the last property of this class\r
-    wxPropertyInfo*     GetNext() const { return m_next; }\r
-\r
-    // returns the default value of this property, its kind may be wxT_VOID if it is not valid\r
-    wxVariantBase          GetDefaultValue() const { return m_defaultValue; }\r
-\r
-private:\r
-\r
-    // inserts this property at the end of the linked chain which begins\r
-    // with "iter" property.\r
-    void Insert(wxPropertyInfo* &iter);\r
-\r
-    // removes this property from the linked chain of the m_itsClass properties.\r
-    void Remove();\r
-\r
-    wxClassInfo*        m_itsClass;\r
-    wxString            m_name;\r
-    mutable wxTypeInfo* m_typeInfo;\r
-    wxString            m_typeName;\r
-    mutable wxTypeInfo* m_collectionElementTypeInfo;\r
-    wxString            m_collectionElementTypeName;\r
-    wxPropertyAccessor* m_accessor;\r
-    wxVariantBase          m_defaultValue;\r
-    wxPropertyInfoFlags m_flags;\r
-    wxString            m_helpString;\r
-    wxString            m_groupString;\r
-    wxPropertyInfo*     m_next;\r
-\r
-    // FIXME: what's this comment about??\r
-    // string representation of the default value\r
-    // to be assigned by the designer to the property\r
-    // when the component is dropped on the container.\r
-};\r
-\r
-WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxPropertyInfo*, wxPropertyInfoMap, \r
-                                      class WXDLLIMPEXP_BASE );\r
-\r
-#define wxBEGIN_PROPERTIES_TABLE(theClass)                      \\r
-    wxPropertyInfo *theClass::GetPropertiesStatic()             \\r
-    {                                                           \\r
-        typedef theClass class_t;                               \\r
-        static wxPropertyInfo* first = NULL;\r
-\r
-#define wxEND_PROPERTIES_TABLE() \\r
-    return first; }\r
-\r
-#define wxHIDE_PROPERTY( pname )                                                      \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(void).name(), NULL, wxVariantBase(), wxPROP_DONT_STREAM, \\r
-            wxEmptyString, wxEmptyString );\r
-\r
-#define wxPROPERTY( pname, type, setter, getter, defaultValue, flags, help, group)    \\r
-    wxPROPERTY_SETTER( pname, class_t, type, setter )                                 \\r
-    static wxPropertySetter##pname _setter##pname;                                    \\r
-    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \\r
-    static wxPropertyGetter##pname _getter##pname;                                    \\r
-    static wxPropertyAccessor _accessor##pname( &_setter##pname,                      \\r
-                                                &_getter##pname, NULL, NULL );        \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(type).name(), &_accessor##pname,                      \\r
-            wxVariantBase(defaultValue), flags, group, help );\r
-\r
-#define wxPROPERTY_FLAGS( pname, flags, type, setter, getter,defaultValue,            \\r
-                          pflags, help, group)                                        \\r
-    wxPROPERTY_SETTER( pname, class_t, type, setter )                                 \\r
-    static wxPropertySetter##pname _setter##pname;                                    \\r
-    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \\r
-    static wxPropertyGetter##pname _getter##pname;                                    \\r
-    static wxPropertyAccessor _accessor##pname( &_setter##pname,                      \\r
-                                                &_getter##pname, NULL, NULL );        \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(flags).name(), &_accessor##pname,                     \\r
-            wxVariantBase(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group );\r
-\r
-#define wxREADONLY_PROPERTY( pname, type, getter,defaultValue, flags, help, group)    \\r
-    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \\r
-    static wxPropertyGetter##pname _getter##pname;                                    \\r
-    static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL );  \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(type).name(),&_accessor##pname,                       \\r
-            wxVariantBase(defaultValue), flags, help, group );\r
-\r
-#define wxREADONLY_PROPERTY_FLAGS( pname, flags, type, getter,defaultValue,           \\r
-                                   pflags, help, group)                               \\r
-    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \\r
-    static wxPropertyGetter##pname _getter##pname;                                    \\r
-    static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL );  \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(flags).name(),&_accessor##pname,                      \\r
-            wxVariantBase(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group );\r
-\r
-#define wxPROPERTY_COLLECTION( pname, colltype, addelemtype, adder, getter,           \\r
-                               flags, help, group )                                   \\r
-    wxPROPERTY_COLLECTION_ADDER( pname, class_t, addelemtype, adder )                 \\r
-    static wxPropertyCollectionAdder##pname _adder##pname;                            \\r
-    wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter )                  \\r
-    static wxPropertyCollectionGetter##pname _collectionGetter##pname;                \\r
-    static wxPropertyAccessor _accessor##pname( NULL, NULL,&_adder##pname,            \\r
-                                                &_collectionGetter##pname );          \\r
-    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \\r
-            wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(),          \\r
-            &_accessor##pname, flags, help, group );\r
-\r
-#define wxREADONLY_PROPERTY_COLLECTION( pname, colltype, addelemtype, getter,         \\r
-                                        flags, help, group)                           \\r
-    wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter )                  \\r
-    static wxPropertyCollectionGetter##pname _collectionGetter##pname;                \\r
-    static wxPropertyAccessor _accessor##pname( NULL, NULL, NULL,                     \\r
-                                                &_collectionGetter##pname );          \\r
-    static wxPropertyInfo _propertyInfo##pname( first,class_t::GetClassInfoStatic(),  \\r
-        wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(),              \\r
-        &_accessor##pname, flags, help, group  );\r
-\r
-#define wxEVENT_PROPERTY( name, eventType, eventClass )                               \\r
-    static wxEventSourceTypeInfo _typeInfo##name( eventType, CLASSINFO( eventClass ) );  \\r
-    static wxPropertyInfo _propertyInfo##name( first,class_t::GetClassInfoStatic(),   \\r
-        wxT(#name), &_typeInfo##name, NULL, wxVariantBase() );\r
-\r
-#define wxEVENT_RANGE_PROPERTY( name, eventType, lastEventType, eventClass )          \\r
-    static wxEventSourceTypeInfo _typeInfo##name( eventType, lastEventType,              \\r
-                                               CLASSINFO( eventClass ) );             \\r
-    static wxPropertyInfo _propertyInfo##name( first, class_t::GetClassInfoStatic(),  \\r
-        wxT(#name), &_typeInfo##name, NULL, wxVariantBase() );\r
-\r
-// ----------------------------------------------------------------------------\r
-// Implementation Helper for Simple Properties\r
-// ----------------------------------------------------------------------------\r
-\r
-#define wxIMPLEMENT_PROPERTY(name, type)                \\r
-private:                                                \\r
-    type m_##name;                                      \\r
-public:                                                 \\r
-  void  Set##name( type const & p) { m_##name = p; }    \\r
-  type const & Get##name() const  { return m_##name; }\r
-\r
-#endif      // wxUSE_EXTENDED_RTTI\r
-#endif      // _XTIPROP_H_\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/xtiprop.h
+// Purpose:     XTI properties
+// Author:      Stefan Csomor
+// Modified by: Francesco Montorsi
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 1997 Julian Smart
+//              (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _XTIPROP_H_
+#define _XTIPROP_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_EXTENDED_RTTI
+
+#include "wx/string.h"
+#include "wx/variant.h"
+#include "wx/intl.h"
+#include "wx/log.h"
+#include "wx/xtitypes.h"
+
+class WXDLLIMPEXP_BASE wxObject;
+class WXDLLIMPEXP_BASE wxClassInfo;
+class WXDLLIMPEXP_BASE wxDynamicClassInfo;
+class WXDLLIMPEXP_BASE wxHashTable;
+class WXDLLIMPEXP_BASE wxHashTable_Node;
+class WXDLLIMPEXP_BASE wxObjectRefData;
+class WXDLLIMPEXP_BASE wxEvent;
+class WXDLLIMPEXP_BASE wxEvtHandler;
+
+// ----------------------------------------------------------------------------
+// Property Accessors
+//
+// wxPropertySetter/Getter/CollectionGetter/CollectionAdder are all property
+// accessors which are managed by wxPropertyAccessor class which in turn is
+// handled by wxPropertyInfo.
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxPropertySetter
+{
+public:
+    wxPropertySetter( const wxString name ) { m_name = name; }
+    virtual ~wxPropertySetter() {}
+
+    virtual void Set( wxObject *object, const wxVariantBase &variantValue ) const = 0;
+    const wxString& GetName() const { return m_name; }
+
+private:
+    wxString m_name;
+};
+
+class WXDLLIMPEXP_BASE wxPropertyGetter
+{
+public:
+    wxPropertyGetter( const wxString name ) { m_name = name; }
+    virtual ~wxPropertyGetter() {}
+
+    virtual void Get( const wxObject *object, wxVariantBase& result) const = 0;
+    const wxString& GetName() const { return m_name; }
+
+private:
+    wxString m_name;
+};
+
+class WXDLLIMPEXP_BASE wxPropertyCollectionGetter
+{
+public:
+    wxPropertyCollectionGetter( const wxString name ) { m_name = name; }
+    virtual ~wxPropertyCollectionGetter() {}
+
+    virtual void Get( const wxObject *object, wxVariantBaseArray& result) const = 0;
+    const wxString& GetName() const { return m_name; }
+
+private:
+    wxString m_name;
+};
+
+template<typename coll_t> void WXDLLIMPEXP_BASE \
+    wxCollectionToVariantArray( const coll_t& coll, wxVariantBaseArray& result );
+
+class WXDLLIMPEXP_BASE wxPropertyCollectionAdder
+{
+public:
+    wxPropertyCollectionAdder( const wxString name ) { m_name = name; }
+    virtual ~wxPropertyCollectionAdder() {}
+
+    virtual void Add( wxObject *object, const wxVariantBase &variantValue ) const= 0;
+    const wxString& GetName() const { return m_name; }
+
+private:
+    wxString m_name;
+};
+
+#define wxPROPERTY_SETTER( property, Klass, valueType, setterMethod )            \
+class wxPropertySetter##property : public wxPropertySetter                              \
+{                                                                       \
+public:                                                                 \
+    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \
+    wxPropertySetter##property() : wxPropertySetter( wxT(#setterMethod) ) {}            \
+    virtual ~wxPropertySetter##property() {}                                    \
+                                                                        \
+    void Set( wxObject *object, const wxVariantBase &variantValue ) const  \
+    {                                                                   \
+        Klass *obj = dynamic_cast<Klass*>(object);                      \
+        if ( variantValue.wxTEMPLATED_MEMBER_CALL(HasData, valueType) ) \
+            obj->setterMethod(variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType));   \
+        else                                                                            \
+            obj->setterMethod(*variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType*)); \
+    }                                                                                   \
+};
+
+#define wxPROPERTY_GETTER( property, Klass, valueType, gettermethod )           \
+class wxPropertyGetter##property : public wxPropertyGetter                              \
+{                                                                       \
+public:                                                                 \
+    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \
+    wxPropertyGetter##property() : wxPropertyGetter( wxT(#gettermethod) ) {}            \
+    virtual ~wxPropertyGetter##property() {}                                    \
+                                                                        \
+    void Get( const wxObject *object, wxVariantBase &result) const        \
+    {                                                                   \
+        const Klass *obj = dynamic_cast<const Klass*>(object);          \
+        result = wxVariantBase( obj->gettermethod() );                     \
+    }                                                                   \
+};
+
+#define wxPROPERTY_COLLECTION_ADDER( property, Klass, valueType, addermethod )             \
+class wxPropertyCollectionAdder##property : public wxPropertyCollectionAdder                                \
+{                                                                       \
+public:                                                                 \
+    wxINFUNC_CLASS_TYPE_FIX(Klass)                                      \
+    wxPropertyCollectionAdder##property() : wxPropertyCollectionAdder( wxT(#addermethod) ) {}               \
+    virtual ~wxPropertyCollectionAdder##property() {}                                     \
+                                                                        \
+    void Add( wxObject *object, const wxVariantBase &variantValue ) const  \
+    {                                                                   \
+        Klass *obj = dynamic_cast<Klass*>(object);                      \
+        if ( variantValue.wxTEMPLATED_MEMBER_CALL(HasData, valueType) ) \
+            obj->addermethod(variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType));    \
+        else                                                                            \
+            obj->addermethod(*variantValue.wxTEMPLATED_MEMBER_CALL(Get, valueType*));  \
+    }                                                                                   \
+};
+
+#define wxPROPERTY_COLLECTION_GETTER( property, Klass, valueType, gettermethod )    \
+class wxPropertyCollectionGetter##property : public wxPropertyCollectionGetter              \
+{                                                                           \
+public:                                                                     \
+    wxINFUNC_CLASS_TYPE_FIX(Klass)                                          \
+    wxPropertyCollectionGetter##property() : wxPropertyCollectionGetter( wxT(#gettermethod) ) {} \
+    virtual ~wxPropertyCollectionGetter##property() {}                              \
+                                                                            \
+    void Get( const wxObject *object, wxVariantBaseArray &result) const       \
+    {                                                                       \
+        const Klass *obj = dynamic_cast<const Klass*>(object);              \
+        wxCollectionToVariantArray( obj->gettermethod(), result );         \
+    }                                                                       \
+};
+
+class WXDLLIMPEXP_BASE wxPropertyAccessor
+{
+public:
+    wxPropertyAccessor( wxPropertySetter *setter, wxPropertyGetter *getter, 
+                        wxPropertyCollectionAdder *adder, wxPropertyCollectionGetter *collectionGetter )
+    { m_setter = setter; m_getter = getter; m_adder = adder; 
+      m_collectionGetter = collectionGetter; }
+
+    virtual ~wxPropertyAccessor() {}
+
+    // Setting a simple property (non-collection)
+    virtual void SetProperty(wxObject *object, const wxVariantBase &value) const
+    { 
+        if ( m_setter ) 
+            m_setter->Set( object, value ); 
+        else 
+            wxLogError( _("SetProperty called w/o valid setter") ); 
+    }
+
+    // Getting a simple property (non-collection)
+    virtual void GetProperty(const wxObject *object, wxVariantBase &result) const
+    { 
+        if ( m_getter ) 
+            m_getter->Get( object, result ); 
+        else 
+            wxLogError( _("GetProperty called w/o valid getter") ); 
+    }
+
+    // Adding an element to a collection property
+    virtual void AddToPropertyCollection(wxObject *object, const wxVariantBase &value) const
+    { 
+        if ( m_adder ) 
+            m_adder->Add( object, value ); 
+        else 
+            wxLogError( _("AddToPropertyCollection called w/o valid adder") ); 
+    }
+
+    // Getting a collection property
+    virtual void GetPropertyCollection( const wxObject *obj, wxVariantBaseArray &result) const
+    { 
+        if ( m_collectionGetter ) 
+            m_collectionGetter->Get( obj, result); 
+        else 
+            wxLogError( _("GetPropertyCollection called w/o valid collection getter") ); 
+    }
+
+    virtual bool HasSetter() const { return m_setter != NULL; }
+    virtual bool HasCollectionGetter() const { return m_collectionGetter != NULL; }
+    virtual bool HasGetter() const { return m_getter != NULL; }
+    virtual bool HasAdder() const { return m_adder != NULL; }
+
+    virtual const wxString& GetCollectionGetterName() const
+        { return m_collectionGetter->GetName(); }
+    virtual const wxString&  GetGetterName() const
+        { return m_getter->GetName(); }
+    virtual const wxString& GetSetterName() const
+        { return m_setter->GetName(); }
+    virtual const wxString& GetAdderName() const
+        { return m_adder->GetName(); }
+
+protected:
+    wxPropertySetter *m_setter;
+    wxPropertyCollectionAdder *m_adder;
+    wxPropertyGetter *m_getter;
+    wxPropertyCollectionGetter* m_collectionGetter;
+};
+
+class WXDLLIMPEXP_BASE wxGenericPropertyAccessor : public wxPropertyAccessor
+{
+public:
+    wxGenericPropertyAccessor( const wxString &propName );
+    virtual ~wxGenericPropertyAccessor();
+
+    void RenameProperty( const wxString& WXUNUSED_UNLESS_DEBUG(oldName),
+        const wxString& newName )
+    {
+        wxASSERT( oldName == m_propertyName ); m_propertyName = newName;
+    }
+
+    virtual bool HasSetter() const { return true; }
+    virtual bool HasGetter() const { return true; }
+    virtual bool HasAdder() const { return false; }
+    virtual bool HasCollectionGetter() const { return false; }
+
+    virtual const wxString&  GetGetterName() const
+        { return m_getterName; }
+    virtual const wxString& GetSetterName() const
+        { return m_setterName; }
+
+    virtual void SetProperty(wxObject *object, const wxVariantBase &value) const;
+    virtual void GetProperty(const wxObject *object, wxVariantBase &value) const;
+
+    // Adding an element to a collection property
+    virtual void AddToPropertyCollection(wxObject *WXUNUSED(object), 
+                                         const wxVariantBase &WXUNUSED(value)) const
+    { 
+        wxLogError( _("AddToPropertyCollection called on a generic accessor") ); 
+    }
+
+    // Getting a collection property
+    virtual void GetPropertyCollection( const wxObject *WXUNUSED(obj), 
+                                        wxVariantBaseArray &WXUNUSED(result)) const
+    { 
+        wxLogError ( _("GetPropertyCollection called on a generic accessor") ); 
+    }
+
+private:
+    struct wxGenericPropertyAccessorInternal;
+    wxGenericPropertyAccessorInternal* m_data;
+    wxString m_propertyName;
+    wxString m_setterName;
+    wxString m_getterName;
+};
+
+typedef long wxPropertyInfoFlags;
+enum 
+{
+    // will be removed in future releases
+    wxPROP_DEPRECATED       = 0x00000001,
+
+    // object graph property, will be streamed with priority (after constructor properties)
+    wxPROP_OBJECT_GRAPH     = 0x00000002,
+
+    // this will only be streamed out and in as enum/set, the internal representation 
+    // is still a long
+    wxPROP_ENUM_STORE_LONG  = 0x00000004,
+
+    // don't stream out this property, needed eg to avoid streaming out children 
+    // that are always created by their parents
+    wxPROP_DONT_STREAM      = 0x00000008
+};
+
+
+// ----------------------------------------------------------------------------
+// Property Support
+//
+// wxPropertyInfo is used to inquire of the property by name.  It doesn't
+// provide access to the property, only information about it.  If you
+// want access, look at wxPropertyAccessor.
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxPropertyInfo
+{
+    friend class WXDLLIMPEXP_BASE wxDynamicClassInfo;
+
+public:
+    wxPropertyInfo(wxPropertyInfo* &iter,
+                   wxClassInfo* itsClass,
+                   const wxString& name,
+                   const wxString& typeName,
+                   wxPropertyAccessor *accessor,
+                   wxVariantBase dv,
+                   wxPropertyInfoFlags flags = 0,
+                   const wxString& helpString = wxEmptyString,
+                   const wxString& groupString = wxEmptyString) :
+                   m_itsClass(itsClass),
+           m_name(name),
+           m_typeInfo(NULL),
+           m_typeName(typeName),
+           m_collectionElementTypeInfo(NULL),
+           m_accessor(accessor),
+           m_defaultValue(dv),
+           m_flags(flags),
+           m_helpString(helpString),
+           m_groupString(groupString)
+       {
+           Insert(iter);
+       }
+
+#if wxUSE_UNICODE
+    wxPropertyInfo(wxPropertyInfo* &iter,
+                   wxClassInfo* itsClass,
+                   const wxString& name,
+                   const char* typeName,
+                   wxPropertyAccessor *accessor,
+                   wxVariantBase dv,
+                   wxPropertyInfoFlags flags = 0,
+                   const wxString& helpString = wxEmptyString,
+                   const wxString& groupString = wxEmptyString) :
+                   m_itsClass(itsClass),
+           m_name(name),
+           m_typeInfo(NULL),
+           m_typeName(wxString::FromAscii(typeName)),
+           m_collectionElementTypeInfo(NULL),
+           m_accessor(accessor),
+           m_defaultValue(dv),
+           m_flags(flags),
+           m_helpString(helpString),
+           m_groupString(groupString)
+       {
+           Insert(iter);
+       }
+#endif
+    wxPropertyInfo(wxPropertyInfo* &iter,
+                   wxClassInfo* itsClass,
+                   const wxString& name,
+                   wxEventSourceTypeInfo* type,
+                   wxPropertyAccessor *accessor,
+                   wxVariantBase dv,
+                   wxPropertyInfoFlags flags = 0,
+                   const wxString& helpString = wxEmptyString,
+                   const wxString& groupString = wxEmptyString) :
+           m_itsClass(itsClass),
+           m_name(name),
+           m_typeInfo(type),
+           m_collectionElementTypeInfo(NULL),
+           m_accessor(accessor),
+           m_defaultValue(dv),
+           m_flags(flags),
+           m_helpString(helpString),
+           m_groupString(groupString)
+       {
+           Insert(iter);
+       }
+
+    wxPropertyInfo(wxPropertyInfo* &iter,
+                    wxClassInfo* itsClass, const wxString& name,
+                    const wxString& collectionTypeName,
+                    const wxString& elementTypeName,
+                    wxPropertyAccessor *accessor,
+                    wxPropertyInfoFlags flags = 0,
+                    const wxString& helpString = wxEmptyString,
+                    const wxString& groupString = wxEmptyString) :
+        m_itsClass(itsClass),
+        m_name(name),
+        m_typeInfo(NULL),
+        m_typeName(collectionTypeName),
+        m_collectionElementTypeInfo(NULL),
+        m_collectionElementTypeName(elementTypeName),
+        m_accessor(accessor),
+        m_flags(flags),
+        m_helpString(helpString),
+        m_groupString(groupString)
+    {
+        Insert(iter);
+    }
+
+#if wxUSE_UNICODE
+    wxPropertyInfo(wxPropertyInfo* &iter,
+            wxClassInfo* itsClass, const wxString& name,
+            const char* collectionTypeName,
+            const char* elementTypeName,
+            wxPropertyAccessor *accessor,
+            wxPropertyInfoFlags flags = 0,
+            const wxString& helpString = wxEmptyString,
+            const wxString& groupString = wxEmptyString) :
+        m_itsClass(itsClass),
+        m_name(name),
+        m_typeInfo(NULL),
+        m_typeName(wxString::FromAscii(collectionTypeName)),
+        m_collectionElementTypeInfo(NULL),
+        m_collectionElementTypeName(wxString::FromAscii(elementTypeName)),
+        m_accessor(accessor),
+        m_flags(flags),
+        m_helpString(helpString),
+        m_groupString(groupString)
+    {
+        Insert(iter);
+    }
+#endif
+    ~wxPropertyInfo()
+        { Remove(); }
+
+    // return the class this property is declared in
+    const wxClassInfo*  GetDeclaringClass() const { return m_itsClass; }
+
+    // return the name of this property
+    const wxString&     GetName() const { return m_name; }
+
+    // returns the flags of this property
+    wxPropertyInfoFlags GetFlags() const { return m_flags; }
+
+    // returns the short help string of this property
+    const wxString&     GetHelpString() const { return m_helpString; }
+
+    // returns the group string of this property
+    const wxString&     GetGroupString() const { return m_groupString; }
+
+    // return the element type info of this property (for collections, otherwise NULL)
+    const wxTypeInfo *  GetCollectionElementTypeInfo() const
+    {
+        if ( m_collectionElementTypeInfo == NULL )
+            m_collectionElementTypeInfo = wxTypeInfo::FindType(m_collectionElementTypeName);
+        return m_collectionElementTypeInfo;
+    }
+
+    // return the type info of this property
+    const wxTypeInfo *  GetTypeInfo() const
+    {
+        if ( m_typeInfo == NULL )
+            m_typeInfo = wxTypeInfo::FindType(m_typeName);
+        return m_typeInfo;
+    }
+
+    // return the accessor for this property
+    wxPropertyAccessor* GetAccessor() const { return m_accessor; }
+
+    // returns NULL if this is the last property of this class
+    wxPropertyInfo*     GetNext() const { return m_next; }
+
+    // returns the default value of this property, its kind may be wxT_VOID if it is not valid
+    wxVariantBase          GetDefaultValue() const { return m_defaultValue; }
+
+private:
+
+    // inserts this property at the end of the linked chain which begins
+    // with "iter" property.
+    void Insert(wxPropertyInfo* &iter);
+
+    // removes this property from the linked chain of the m_itsClass properties.
+    void Remove();
+
+    wxClassInfo*        m_itsClass;
+    wxString            m_name;
+    mutable wxTypeInfo* m_typeInfo;
+    wxString            m_typeName;
+    mutable wxTypeInfo* m_collectionElementTypeInfo;
+    wxString            m_collectionElementTypeName;
+    wxPropertyAccessor* m_accessor;
+    wxVariantBase          m_defaultValue;
+    wxPropertyInfoFlags m_flags;
+    wxString            m_helpString;
+    wxString            m_groupString;
+    wxPropertyInfo*     m_next;
+
+    // FIXME: what's this comment about??
+    // string representation of the default value
+    // to be assigned by the designer to the property
+    // when the component is dropped on the container.
+};
+
+WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxPropertyInfo*, wxPropertyInfoMap, 
+                                      class WXDLLIMPEXP_BASE );
+
+#define wxBEGIN_PROPERTIES_TABLE(theClass)                      \
+    wxPropertyInfo *theClass::GetPropertiesStatic()             \
+    {                                                           \
+        typedef theClass class_t;                               \
+        static wxPropertyInfo* first = NULL;
+
+#define wxEND_PROPERTIES_TABLE() \
+    return first; }
+
+#define wxHIDE_PROPERTY( pname )                                                      \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(void).name(), NULL, wxVariantBase(), wxPROP_DONT_STREAM, \
+            wxEmptyString, wxEmptyString );
+
+#define wxPROPERTY( pname, type, setter, getter, defaultValue, flags, help, group)    \
+    wxPROPERTY_SETTER( pname, class_t, type, setter )                                 \
+    static wxPropertySetter##pname _setter##pname;                                    \
+    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \
+    static wxPropertyGetter##pname _getter##pname;                                    \
+    static wxPropertyAccessor _accessor##pname( &_setter##pname,                      \
+                                                &_getter##pname, NULL, NULL );        \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(type).name(), &_accessor##pname,                      \
+            wxVariantBase(defaultValue), flags, group, help );
+
+#define wxPROPERTY_FLAGS( pname, flags, type, setter, getter,defaultValue,            \
+                          pflags, help, group)                                        \
+    wxPROPERTY_SETTER( pname, class_t, type, setter )                                 \
+    static wxPropertySetter##pname _setter##pname;                                    \
+    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \
+    static wxPropertyGetter##pname _getter##pname;                                    \
+    static wxPropertyAccessor _accessor##pname( &_setter##pname,                      \
+                                                &_getter##pname, NULL, NULL );        \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(flags).name(), &_accessor##pname,                     \
+            wxVariantBase(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group );
+
+#define wxREADONLY_PROPERTY( pname, type, getter,defaultValue, flags, help, group)    \
+    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \
+    static wxPropertyGetter##pname _getter##pname;                                    \
+    static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL );  \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(type).name(),&_accessor##pname,                       \
+            wxVariantBase(defaultValue), flags, help, group );
+
+#define wxREADONLY_PROPERTY_FLAGS( pname, flags, type, getter,defaultValue,           \
+                                   pflags, help, group)                               \
+    wxPROPERTY_GETTER( pname, class_t, type, getter )                                 \
+    static wxPropertyGetter##pname _getter##pname;                                    \
+    static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL );  \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(flags).name(),&_accessor##pname,                      \
+            wxVariantBase(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group );
+
+#define wxPROPERTY_COLLECTION( pname, colltype, addelemtype, adder, getter,           \
+                               flags, help, group )                                   \
+    wxPROPERTY_COLLECTION_ADDER( pname, class_t, addelemtype, adder )                 \
+    static wxPropertyCollectionAdder##pname _adder##pname;                            \
+    wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter )                  \
+    static wxPropertyCollectionGetter##pname _collectionGetter##pname;                \
+    static wxPropertyAccessor _accessor##pname( NULL, NULL,&_adder##pname,            \
+                                                &_collectionGetter##pname );          \
+    static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \
+            wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(),          \
+            &_accessor##pname, flags, help, group );
+
+#define wxREADONLY_PROPERTY_COLLECTION( pname, colltype, addelemtype, getter,         \
+                                        flags, help, group)                           \
+    wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter )                  \
+    static wxPropertyCollectionGetter##pname _collectionGetter##pname;                \
+    static wxPropertyAccessor _accessor##pname( NULL, NULL, NULL,                     \
+                                                &_collectionGetter##pname );          \
+    static wxPropertyInfo _propertyInfo##pname( first,class_t::GetClassInfoStatic(),  \
+        wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(),              \
+        &_accessor##pname, flags, help, group  );
+
+#define wxEVENT_PROPERTY( name, eventType, eventClass )                               \
+    static wxEventSourceTypeInfo _typeInfo##name( eventType, CLASSINFO( eventClass ) );  \
+    static wxPropertyInfo _propertyInfo##name( first,class_t::GetClassInfoStatic(),   \
+        wxT(#name), &_typeInfo##name, NULL, wxVariantBase() );
+
+#define wxEVENT_RANGE_PROPERTY( name, eventType, lastEventType, eventClass )          \
+    static wxEventSourceTypeInfo _typeInfo##name( eventType, lastEventType,              \
+                                               CLASSINFO( eventClass ) );             \
+    static wxPropertyInfo _propertyInfo##name( first, class_t::GetClassInfoStatic(),  \
+        wxT(#name), &_typeInfo##name, NULL, wxVariantBase() );
+
+// ----------------------------------------------------------------------------
+// Implementation Helper for Simple Properties
+// ----------------------------------------------------------------------------
+
+#define wxIMPLEMENT_PROPERTY(name, type)                \
+private:                                                \
+    type m_##name;                                      \
+public:                                                 \
+  void  Set##name( type const & p) { m_##name = p; }    \
+  type const & Get##name() const  { return m_##name; }
+
+#endif      // wxUSE_EXTENDED_RTTI
+#endif      // _XTIPROP_H_
index 81331a885a51c6b6b1170090007ba2ae35a6cf1e..212fba1951992766df07fe72ad1637a8313b8202 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/xtitypes.h\r
-// Purpose:     enum, set, basic types support\r
-// Author:      Stefan Csomor\r
-// Modified by: Francesco Montorsi\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xti.h 47299 2007-07-10 15:58:27Z FM $\r
-// Copyright:   (c) 1997 Julian Smart\r
-//              (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _XTITYPES_H_\r
-#define _XTITYPES_H_\r
-\r
-#include "wx/defs.h"\r
-\r
-#if wxUSE_EXTENDED_RTTI\r
-\r
-#include "wx/string.h"\r
-#include "wx/hashmap.h"\r
-#include "wx/arrstr.h"\r
-#include "wx/flags.h"\r
-#include "wx/intl.h"\r
-#include "wx/log.h"\r
-#include <typeinfo>\r
-\r
-class WXDLLIMPEXP_BASE wxClassInfo;\r
-\r
-// ----------------------------------------------------------------------------\r
-// Enum Support\r
-//\r
-// In the header files XTI requires no change from pure c++ code, however in the\r
-// implementation, an enum needs to be enumerated eg:\r
-//\r
-// wxBEGIN_ENUM( wxFlavor )\r
-//   wxENUM_MEMBER( Vanilla )\r
-//   wxENUM_MEMBER( Chocolate )\r
-//   wxENUM_MEMBER( Strawberry )\r
-// wxEND_ENUM( wxFlavor )\r
-// ----------------------------------------------------------------------------\r
-\r
-struct WXDLLIMPEXP_BASE wxEnumMemberData\r
-{\r
-    const wxChar*   m_name;\r
-    int             m_value;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxEnumData\r
-{\r
-public:\r
-    wxEnumData( wxEnumMemberData* data );\r
-\r
-    // returns true if the member has been found and sets the int value\r
-    // pointed to accordingly (if ptr != null )\r
-    // if not found returns false, value left unchanged\r
-    bool HasEnumMemberValue( const wxChar *name, int *value = NULL ) const;\r
-\r
-    // returns the value of the member, if not found in debug mode an\r
-    // assert is issued, in release 0 is returned\r
-    int GetEnumMemberValue(const wxChar *name ) const;\r
-\r
-    // returns the name of the enum member having the passed in value\r
-    // returns an emtpy string if not found\r
-    const wxChar *GetEnumMemberName(int value) const;\r
-\r
-    // returns the number of members in this enum\r
-    int GetEnumCount() const { return m_count; }\r
-\r
-    // returns the value of the nth member\r
-    int GetEnumMemberValueByIndex( int n ) const;\r
-\r
-    // returns the value of the nth member\r
-    const wxChar *GetEnumMemberNameByIndex( int n ) const;\r
-\r
-private:\r
-    wxEnumMemberData *m_members;\r
-    int m_count;\r
-};\r
-\r
-#define wxBEGIN_ENUM( e ) \\r
-    wxEnumMemberData s_enumDataMembers##e[] = {\r
-\r
-#define wxENUM_MEMBER( v ) { wxT(#v), v },\r
-\r
-#define wxEND_ENUM( e )                                                 \\r
-        { NULL, 0 } };                                                 \\r
-    wxEnumData s_enumData##e( s_enumDataMembers##e );                   \\r
-    wxEnumData *wxGetEnumData(e) { return &s_enumData##e; }             \\r
-    template<> void wxStringReadValue(const wxString& s, e &data )     \\r
-        { data = (e) s_enumData##e.GetEnumMemberValue(s); }             \\r
-    template<> void wxStringWriteValue(wxString &s, const e &data )    \\r
-        { s = s_enumData##e.GetEnumMemberName((int)data); }             \\r
-    void FromLong##e( long data, wxVariantBase& result )                  \\r
-        { result = wxVariantBase((e)data); }                               \\r
-    void ToLong##e( const wxVariantBase& data, long &result )             \\r
-        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e); }      \\r
-                                                                        \\r
-    wxTO_STRING_IMP( e )                                                \\r
-    wxFROM_STRING_IMP( e )                                              \\r
-    wxEnumTypeInfo s_typeInfo##e(wxT_ENUM, &s_enumData##e,            \\r
-            &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e,      \\r
-            &FromLong##e, typeid(e).name() );\r
-\r
-\r
-// ----------------------------------------------------------------------------\r
-// Set Support\r
-//\r
-// in the header :\r
-//\r
-// enum wxFlavor\r
-// {\r
-//  Vanilla,\r
-//  Chocolate,\r
-//  Strawberry,\r
-// };\r
-//\r
-// typedef wxBitset<wxFlavor> wxCoupe;\r
-//\r
-// in the implementation file :\r
-//\r
-// wxBEGIN_ENUM( wxFlavor )\r
-//  wxENUM_MEMBER( Vanilla )\r
-//  wxENUM_MEMBER( Chocolate )\r
-//  wxENUM_MEMBER( Strawberry )\r
-// wxEND_ENUM( wxFlavor )\r
-//\r
-// wxIMPLEMENT_SET_STREAMING( wxCoupe, wxFlavor )\r
-//\r
-// implementation note: no partial specialization for streaming, but a delegation \r
-//                      to a different class\r
-//\r
-// ----------------------------------------------------------------------------\r
-\r
-// in order to remove dependancy on string tokenizer\r
-void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array );\r
-\r
-template<typename e>\r
-void wxSetFromString(const wxString &s, wxBitset<e> &data )\r
-{\r
-    wxEnumData* edata = wxGetEnumData((e) 0);\r
-    data.reset();\r
-\r
-    wxArrayString array;\r
-    wxSetStringToArray( s, array );\r
-    wxString flag;\r
-    for ( int i = 0; i < array.Count(); ++i )\r
-    {\r
-        flag = array[i];\r
-        int ivalue;\r
-        if ( edata->HasEnumMemberValue( flag, &ivalue ) )\r
-        {\r
-            data.set( (e) ivalue );\r
-        }\r
-    }\r
-}\r
-\r
-template<typename e>\r
-void wxSetToString( wxString &s, const wxBitset<e> &data )\r
-{\r
-    wxEnumData* edata = wxGetEnumData((e) 0);\r
-    int count = edata->GetEnumCount();\r
-    int i;\r
-    s.Clear();\r
-    for ( i = 0; i < count; i++ )\r
-    {\r
-        e value = (e) edata->GetEnumMemberValueByIndex(i);\r
-        if ( data.test( value ) )\r
-        {\r
-            // this could also be done by the templated calls\r
-            if ( !s.empty() )\r
-                s += wxT("|");\r
-            s += edata->GetEnumMemberNameByIndex(i);\r
-        }\r
-    }\r
-}\r
-\r
-#define wxIMPLEMENT_SET_STREAMING(SetName,e)                                    \\r
-    template<> void wxStringReadValue(const wxString &s, wxBitset<e> &data )   \\r
-        { wxSetFromString( s, data ); }                                        \\r
-    template<> void wxStringWriteValue( wxString &s, const wxBitset<e> &data ) \\r
-        { wxSetToString( s, data ); }                                          \\r
-    void FromLong##SetName( long data, wxVariantBase& result )                    \\r
-        { result = wxVariantBase(SetName((unsigned long)data)); }                  \\r
-    void ToLong##SetName( const wxVariantBase& data, long &result )               \\r
-        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, SetName).to_ulong(); } \\r
-    wxTO_STRING_IMP( SetName )                                                  \\r
-    wxFROM_STRING_IMP( SetName )                                                \\r
-    wxEnumTypeInfo s_typeInfo##SetName(wxT_SET, &s_enumData##e,               \\r
-            &wxTO_STRING( SetName ), &wxFROM_STRING( SetName ),               \\r
-            &ToLong##SetName, &FromLong##SetName, typeid(SetName).name() );\r
-\r
-template<typename e>\r
-void wxFlagsFromString(const wxString &s, e &data )\r
-{\r
-    wxEnumData* edata = wxGetEnumData((e*) 0);\r
-    data.m_data = 0;\r
-\r
-    wxArrayString array;\r
-    wxSetStringToArray( s, array );\r
-    wxString flag;\r
-    for ( size_t i = 0; i < array.Count(); ++i )\r
-    {\r
-        flag = array[i];\r
-        int ivalue;\r
-        if ( edata->HasEnumMemberValue( flag, &ivalue ) )\r
-        {\r
-            data.m_data |= ivalue;\r
-        }\r
-    }\r
-}\r
-\r
-template<typename e>\r
-void wxFlagsToString( wxString &s, const e& data )\r
-{\r
-    wxEnumData* edata = wxGetEnumData((e*) 0);\r
-    int count = edata->GetEnumCount();\r
-    int i;\r
-    s.Clear();\r
-    long dataValue = data.m_data;\r
-    for ( i = 0; i < count; i++ )\r
-    {\r
-        int value = edata->GetEnumMemberValueByIndex(i);\r
-        // make this to allow for multi-bit constants to work\r
-        if ( value && ( dataValue & value ) == value )\r
-        {\r
-            // clear the flags we just set\r
-            dataValue &= ~value;\r
-            // this could also be done by the templated calls\r
-            if ( !s.empty() )\r
-                s +=wxT("|");\r
-            s += edata->GetEnumMemberNameByIndex(i);\r
-        }\r
-    }\r
-}\r
-\r
-#define wxBEGIN_FLAGS( e ) \\r
-    wxEnumMemberData s_enumDataMembers##e[] = {\r
-\r
-#define wxFLAGS_MEMBER( v ) { wxT(#v), v },\r
-\r
-#define wxEND_FLAGS( e )                                                \\r
-        { NULL, 0 } };                                                 \\r
-    wxEnumData s_enumData##e( s_enumDataMembers##e );                   \\r
-    wxEnumData *wxGetEnumData(e*) { return &s_enumData##e; }            \\r
-    template<>  void wxStringReadValue(const wxString &s, e &data )    \\r
-        { wxFlagsFromString<e>( s, data ); }                           \\r
-    template<>  void wxStringWriteValue( wxString &s, const e& data )  \\r
-        { wxFlagsToString<e>( s, data ); }                             \\r
-    void FromLong##e( long data, wxVariantBase& result )                  \\r
-        { result = wxVariantBase(e(data)); }                               \\r
-    void ToLong##e( const wxVariantBase& data, long &result )             \\r
-        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e).m_data; } \\r
-    wxTO_STRING_IMP( e )                                                \\r
-    wxFROM_STRING_IMP( e )                                              \\r
-    wxEnumTypeInfo s_typeInfo##e(wxT_SET, &s_enumData##e,             \\r
-            &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e,      \\r
-            &FromLong##e, typeid(e).name() );\r
-\r
-// ----------------------------------------------------------------------------\r
-// Type Information\r
-// ----------------------------------------------------------------------------\r
-\r
-//  All data exposed by the RTTI is characterized using the following classes.\r
-//  The first characterization is done by wxTypeKind. All enums up to and including\r
-//  wxT_CUSTOM represent so called simple types. These cannot be divided any further.\r
-//  They can be converted to and from wxStrings, that's all.\r
-//  Other wxTypeKinds can instead be splitted recursively into smaller parts until\r
-//  the simple types are reached.\r
-\r
-enum wxTypeKind\r
-{\r
-    wxT_VOID = 0,   // unknown type\r
-    wxT_BOOL,\r
-    wxT_CHAR,\r
-    wxT_UCHAR,\r
-    wxT_INT,\r
-    wxT_UINT,\r
-    wxT_LONG,\r
-    wxT_ULONG,\r
-    wxT_FLOAT,\r
-    wxT_DOUBLE,\r
-    wxT_STRING,     // must be wxString\r
-    wxT_SET,        // must be wxBitset<> template\r
-    wxT_ENUM,\r
-    wxT_CUSTOM,     // user defined type (e.g. wxPoint)\r
-\r
-    wxT_LAST_SIMPLE_TYPE_KIND = wxT_CUSTOM,\r
-\r
-    wxT_OBJECT_PTR, // object reference\r
-    wxT_OBJECT,     // embedded object\r
-    wxT_COLLECTION, // collection\r
-\r
-    wxT_DELEGATE,   // for connecting against an event source\r
-\r
-    wxT_LAST_TYPE_KIND = wxT_DELEGATE // sentinel for bad data, asserts, debugging\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxVariantBase;\r
-class WXDLLIMPEXP_BASE wxTypeInfo;\r
-\r
-WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo*, wxTypeInfoMap, class WXDLLIMPEXP_BASE );\r
-\r
-class WXDLLIMPEXP_BASE wxTypeInfo\r
-{\r
-public:\r
-    typedef void (*wxVariant2StringFnc)( const wxVariantBase& data, wxString &result );\r
-    typedef void (*wxString2VariantFnc)( const wxString& data, wxVariantBase &result );\r
-\r
-    wxTypeInfo(wxTypeKind kind,\r
-               wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL,\r
-               const wxString &name = wxEmptyString):\r
-            m_toString(to), m_fromString(from), m_kind(kind), m_name(name)\r
-    {\r
-        Register();\r
-    }\r
-#if wxUSE_UNICODE\r
-    wxTypeInfo(wxTypeKind kind,\r
-               wxVariant2StringFnc to, wxString2VariantFnc from,\r
-               const char *name):\r
-            m_toString(to), m_fromString(from), m_kind(kind), \r
-            m_name(wxString::FromAscii(name))\r
-    {\r
-        Register();\r
-    }\r
-#endif\r
-\r
-    virtual ~wxTypeInfo()\r
-    {\r
-        Unregister();\r
-    }\r
-\r
-    // return the kind of this type (wxT_... constants)\r
-    wxTypeKind GetKind() const { return m_kind; }\r
-\r
-    // returns the unique name of this type\r
-    const wxString& GetTypeName() const { return m_name; }\r
-\r
-    // is this type a delegate type\r
-    bool IsDelegateType() const { return m_kind == wxT_DELEGATE; }\r
-\r
-    // is this type a custom type\r
-    bool IsCustomType() const { return m_kind == wxT_CUSTOM; }\r
-\r
-    // is this type an object type\r
-    bool IsObjectType() const { return m_kind == wxT_OBJECT || m_kind == wxT_OBJECT_PTR; }\r
-\r
-    // can the content of this type be converted to and from strings ?\r
-    bool HasStringConverters() const { return m_toString != NULL && m_fromString != NULL; }\r
-\r
-    // convert a wxVariantBase holding data of this type into a string\r
-    void ConvertToString( const wxVariantBase& data, wxString &result ) const\r
-    { \r
-        if ( m_toString ) \r
-            (*m_toString)( data, result ); \r
-        else \r
-            wxLogError( wxGetTranslation(_T("String conversions not supported")) ); \r
-    }\r
-\r
-    // convert a string into a wxVariantBase holding the corresponding data in this type\r
-    void ConvertFromString( const wxString& data, wxVariantBase &result ) const\r
-    { \r
-        if( m_fromString ) \r
-            (*m_fromString)( data, result ); \r
-        else \r
-            wxLogError( wxGetTranslation(_T("String conversions not supported")) ); \r
-    }\r
-\r
-    // statics:\r
-\r
-#if wxUSE_UNICODE\r
-    static wxTypeInfo *FindType(const char *typeName) \r
-        { return FindType( wxString::FromAscii(typeName) ); }\r
-#endif\r
-    static wxTypeInfo *FindType(const wxChar *typeName);\r
-    static wxTypeInfo *FindType(const wxString& typeName)\r
-        {\r
-#if wxUSE_UNICODE\r
-            return FindType( typeName.wchar_str() );\r
-#else\r
-            return FindType( typeName.char_str() );\r
-#endif\r
-        }\r
-\r
-private:\r
-    void Register();\r
-    void Unregister();\r
-\r
-    wxVariant2StringFnc m_toString;\r
-    wxString2VariantFnc m_fromString;\r
-\r
-    wxTypeKind m_kind;\r
-    wxString m_name;\r
-\r
-    // the static list of all types we know about\r
-    static wxTypeInfoMap* ms_typeTable;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxBuiltInTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to = NULL, \r
-                       wxString2VariantFnc from = NULL, \r
-                       const wxString &name = wxEmptyString ) :\r
-            wxTypeInfo( kind, to, from, name )\r
-       { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }\r
-\r
-#if wxUSE_UNICODE\r
-    wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to, \r
-                       wxString2VariantFnc from , const char *name  ) :\r
-            wxTypeInfo( kind, to, from, name )\r
-       { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }\r
-#endif\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxCustomTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    wxCustomTypeInfo( const wxString &name, wxVariant2StringFnc to, \r
-                      wxString2VariantFnc from ) :\r
-            wxTypeInfo( wxT_CUSTOM, to, from, name )\r
-       {}\r
-\r
-#if wxUSE_UNICODE\r
-    wxCustomTypeInfo( const char *name , wxVariant2StringFnc to, \r
-                      wxString2VariantFnc from ) :\r
-            wxTypeInfo( wxT_CUSTOM, to, from, name )\r
-       {}\r
-#endif\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxEnumTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    typedef void (*converterToLong_t)( const wxVariantBase& data, long &result );\r
-    typedef void (*converterFromLong_t)( long data, wxVariantBase &result );\r
-\r
-    wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,\r
-                    wxString2VariantFnc from, converterToLong_t toLong,\r
-                    converterFromLong_t fromLong, const wxString &name  ) :\r
-        wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong )\r
-    { \r
-        wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET,\r
-                      wxT("Illegal Kind for Enum Type")); \r
-        m_enumInfo = enumInfo; \r
-    }\r
-\r
-#if wxUSE_UNICODE\r
-    wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,\r
-                    wxString2VariantFnc from, converterToLong_t toLong,\r
-                    converterFromLong_t fromLong, const char * name ) :\r
-        wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong )\r
-    {\r
-        wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET, \r
-                      wxT("Illegal Kind for Enum Type")); \r
-        m_enumInfo = enumInfo; \r
-    }\r
-#endif\r
-    const wxEnumData* GetEnumData() const { return m_enumInfo; }\r
-\r
-    // convert a wxVariantBase holding data of this type into a long\r
-    void ConvertToLong( const wxVariantBase& data, long &result ) const\r
-    { \r
-        if( m_toLong ) \r
-            (*m_toLong)( data, result ); \r
-        else \r
-            wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); \r
-    }\r
-\r
-    // convert a long into a wxVariantBase holding the corresponding data in this type\r
-    void ConvertFromLong( long data, wxVariantBase &result ) const\r
-    { \r
-        if( m_fromLong ) \r
-            (*m_fromLong)( data, result ); \r
-        else \r
-            wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); \r
-    }\r
-\r
-private:\r
-    converterToLong_t m_toLong;\r
-    converterFromLong_t m_fromLong;\r
-\r
-    wxEnumData *m_enumInfo; // Kind == wxT_ENUM or Kind == wxT_SET\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxClassTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, \r
-                     wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, \r
-                     const wxString &name = wxEmptyString);\r
-\r
-#if wxUSE_UNICODE\r
-    wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, wxVariant2StringFnc to,\r
-                     wxString2VariantFnc from , const char *name );\r
-#endif\r
-\r
-    const wxClassInfo *GetClassInfo() const { return m_classInfo; }\r
-\r
-private:\r
-    wxClassInfo *m_classInfo; // Kind == wxT_OBJECT - could be NULL\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxCollectionTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    wxCollectionTypeInfo( const wxString &elementName, wxVariant2StringFnc to,\r
-                          wxString2VariantFnc from , const wxString &name) :\r
-            wxTypeInfo( wxT_COLLECTION, to, from, name )\r
-       { m_elementTypeName = elementName; m_elementType = NULL; }\r
-\r
-#if wxUSE_UNICODE\r
-    wxCollectionTypeInfo( const char *elementName, wxVariant2StringFnc to, \r
-                          wxString2VariantFnc from , const char *name ) :\r
-            wxTypeInfo( wxT_COLLECTION, to, from, name )\r
-       { m_elementTypeName = wxString::FromAscii( elementName ); m_elementType = NULL; }\r
-#endif\r
-\r
-    const wxTypeInfo* GetElementType() const\r
-    {\r
-        if ( m_elementType == NULL )\r
-            m_elementType = wxTypeInfo::FindType( m_elementTypeName );\r
-        return m_elementType; \r
-    }\r
-\r
-private:\r
-    mutable wxTypeInfo * m_elementType;\r
-    wxString    m_elementTypeName;\r
-};\r
-\r
-class WXDLLIMPEXP_BASE wxEventSourceTypeInfo : public wxTypeInfo\r
-{\r
-public:\r
-    wxEventSourceTypeInfo( int eventType, wxClassInfo* eventClass, \r
-                        wxVariant2StringFnc to = NULL, \r
-                        wxString2VariantFnc from = NULL );\r
-    wxEventSourceTypeInfo( int eventType, int lastEventType, wxClassInfo* eventClass, \r
-                        wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL );\r
-\r
-    int GetEventType() const { return m_eventType; }\r
-    int GetLastEventType() const { return m_lastEventType; }\r
-    const wxClassInfo* GetEventClass() const { return m_eventClass; }\r
-\r
-private:\r
-    const wxClassInfo *m_eventClass; // (extended will merge into classinfo)\r
-    int m_eventType;\r
-    int m_lastEventType;\r
-};\r
-\r
-template<typename T> const wxTypeInfo* wxGetTypeInfo( T * ) \\r
-    { return wxTypeInfo::FindType(typeid(T).name()); }\r
-\r
-// this macro is for usage with custom, non-object derived classes and structs, \r
-// wxPoint is such a custom type\r
-\r
-#if wxUSE_FUNC_TEMPLATE_POINTER\r
-    #define wxCUSTOM_TYPE_INFO( e, toString, fromString ) \\r
-        wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), &toString, &fromString);\r
-#else\r
-    #define wxCUSTOM_TYPE_INFO( e, toString, fromString )             \\r
-        void ToString##e( const wxVariantBase& data, wxString &result )   \\r
-            { toString(data, result); }                                 \\r
-        void FromString##e( const wxString& data, wxVariantBase &result ) \\r
-            { fromString(data, result); }                               \\r
-        wxCustomTypeInfo s_typeInfo##e(typeid(e).name(),               \\r
-                                       &ToString##e, &FromString##e);\r
-#endif\r
-\r
-#define wxCOLLECTION_TYPE_INFO( element, collection )                      \\r
-    wxCollectionTypeInfo s_typeInfo##collection( typeid(element).name(),   \\r
-                                NULL, NULL, typeid(collection).name() );\r
-\r
-// sometimes a compiler invents specializations that are nowhere called, \r
-// use this macro to satisfy the refs, currently we don't have to play \r
-// tricks, but if we will have to according to the compiler, we will use \r
-// that macro for that\r
-\r
-#define wxILLEGAL_TYPE_SPECIALIZATION( a )\r
-\r
-#endif      // wxUSE_EXTENDED_RTTI\r
-#endif      // _XTITYPES_H_\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/xtitypes.h
+// Purpose:     enum, set, basic types support
+// Author:      Stefan Csomor
+// Modified by: Francesco Montorsi
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 1997 Julian Smart
+//              (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _XTITYPES_H_
+#define _XTITYPES_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_EXTENDED_RTTI
+
+#include "wx/string.h"
+#include "wx/hashmap.h"
+#include "wx/arrstr.h"
+#include "wx/flags.h"
+#include "wx/intl.h"
+#include "wx/log.h"
+#include <typeinfo>
+
+class WXDLLIMPEXP_BASE wxClassInfo;
+
+// ----------------------------------------------------------------------------
+// Enum Support
+//
+// In the header files XTI requires no change from pure c++ code, however in the
+// implementation, an enum needs to be enumerated eg:
+//
+// wxBEGIN_ENUM( wxFlavor )
+//   wxENUM_MEMBER( Vanilla )
+//   wxENUM_MEMBER( Chocolate )
+//   wxENUM_MEMBER( Strawberry )
+// wxEND_ENUM( wxFlavor )
+// ----------------------------------------------------------------------------
+
+struct WXDLLIMPEXP_BASE wxEnumMemberData
+{
+    const wxChar*   m_name;
+    int             m_value;
+};
+
+class WXDLLIMPEXP_BASE wxEnumData
+{
+public:
+    wxEnumData( wxEnumMemberData* data );
+
+    // returns true if the member has been found and sets the int value
+    // pointed to accordingly (if ptr != null )
+    // if not found returns false, value left unchanged
+    bool HasEnumMemberValue( const wxChar *name, int *value = NULL ) const;
+
+    // returns the value of the member, if not found in debug mode an
+    // assert is issued, in release 0 is returned
+    int GetEnumMemberValue(const wxChar *name ) const;
+
+    // returns the name of the enum member having the passed in value
+    // returns an emtpy string if not found
+    const wxChar *GetEnumMemberName(int value) const;
+
+    // returns the number of members in this enum
+    int GetEnumCount() const { return m_count; }
+
+    // returns the value of the nth member
+    int GetEnumMemberValueByIndex( int n ) const;
+
+    // returns the value of the nth member
+    const wxChar *GetEnumMemberNameByIndex( int n ) const;
+
+private:
+    wxEnumMemberData *m_members;
+    int m_count;
+};
+
+#define wxBEGIN_ENUM( e ) \
+    wxEnumMemberData s_enumDataMembers##e[] = {
+
+#define wxENUM_MEMBER( v ) { wxT(#v), v },
+
+#define wxEND_ENUM( e )                                                 \
+        { NULL, 0 } };                                                 \
+    wxEnumData s_enumData##e( s_enumDataMembers##e );                   \
+    wxEnumData *wxGetEnumData(e) { return &s_enumData##e; }             \
+    template<> void wxStringReadValue(const wxString& s, e &data )     \
+        { data = (e) s_enumData##e.GetEnumMemberValue(s); }             \
+    template<> void wxStringWriteValue(wxString &s, const e &data )    \
+        { s = s_enumData##e.GetEnumMemberName((int)data); }             \
+    void FromLong##e( long data, wxVariantBase& result )                  \
+        { result = wxVariantBase((e)data); }                               \
+    void ToLong##e( const wxVariantBase& data, long &result )             \
+        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e); }      \
+                                                                        \
+    wxTO_STRING_IMP( e )                                                \
+    wxFROM_STRING_IMP( e )                                              \
+    wxEnumTypeInfo s_typeInfo##e(wxT_ENUM, &s_enumData##e,            \
+            &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e,      \
+            &FromLong##e, typeid(e).name() );
+
+
+// ----------------------------------------------------------------------------
+// Set Support
+//
+// in the header :
+//
+// enum wxFlavor
+// {
+//  Vanilla,
+//  Chocolate,
+//  Strawberry,
+// };
+//
+// typedef wxBitset<wxFlavor> wxCoupe;
+//
+// in the implementation file :
+//
+// wxBEGIN_ENUM( wxFlavor )
+//  wxENUM_MEMBER( Vanilla )
+//  wxENUM_MEMBER( Chocolate )
+//  wxENUM_MEMBER( Strawberry )
+// wxEND_ENUM( wxFlavor )
+//
+// wxIMPLEMENT_SET_STREAMING( wxCoupe, wxFlavor )
+//
+// implementation note: no partial specialization for streaming, but a delegation 
+//                      to a different class
+//
+// ----------------------------------------------------------------------------
+
+// in order to remove dependancy on string tokenizer
+void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array );
+
+template<typename e>
+void wxSetFromString(const wxString &s, wxBitset<e> &data )
+{
+    wxEnumData* edata = wxGetEnumData((e) 0);
+    data.reset();
+
+    wxArrayString array;
+    wxSetStringToArray( s, array );
+    wxString flag;
+    for ( int i = 0; i < array.Count(); ++i )
+    {
+        flag = array[i];
+        int ivalue;
+        if ( edata->HasEnumMemberValue( flag, &ivalue ) )
+        {
+            data.set( (e) ivalue );
+        }
+    }
+}
+
+template<typename e>
+void wxSetToString( wxString &s, const wxBitset<e> &data )
+{
+    wxEnumData* edata = wxGetEnumData((e) 0);
+    int count = edata->GetEnumCount();
+    int i;
+    s.Clear();
+    for ( i = 0; i < count; i++ )
+    {
+        e value = (e) edata->GetEnumMemberValueByIndex(i);
+        if ( data.test( value ) )
+        {
+            // this could also be done by the templated calls
+            if ( !s.empty() )
+                s += wxT("|");
+            s += edata->GetEnumMemberNameByIndex(i);
+        }
+    }
+}
+
+#define wxIMPLEMENT_SET_STREAMING(SetName,e)                                    \
+    template<> void wxStringReadValue(const wxString &s, wxBitset<e> &data )   \
+        { wxSetFromString( s, data ); }                                        \
+    template<> void wxStringWriteValue( wxString &s, const wxBitset<e> &data ) \
+        { wxSetToString( s, data ); }                                          \
+    void FromLong##SetName( long data, wxVariantBase& result )                    \
+        { result = wxVariantBase(SetName((unsigned long)data)); }                  \
+    void ToLong##SetName( const wxVariantBase& data, long &result )               \
+        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, SetName).to_ulong(); } \
+    wxTO_STRING_IMP( SetName )                                                  \
+    wxFROM_STRING_IMP( SetName )                                                \
+    wxEnumTypeInfo s_typeInfo##SetName(wxT_SET, &s_enumData##e,               \
+            &wxTO_STRING( SetName ), &wxFROM_STRING( SetName ),               \
+            &ToLong##SetName, &FromLong##SetName, typeid(SetName).name() );
+
+template<typename e>
+void wxFlagsFromString(const wxString &s, e &data )
+{
+    wxEnumData* edata = wxGetEnumData((e*) 0);
+    data.m_data = 0;
+
+    wxArrayString array;
+    wxSetStringToArray( s, array );
+    wxString flag;
+    for ( size_t i = 0; i < array.Count(); ++i )
+    {
+        flag = array[i];
+        int ivalue;
+        if ( edata->HasEnumMemberValue( flag, &ivalue ) )
+        {
+            data.m_data |= ivalue;
+        }
+    }
+}
+
+template<typename e>
+void wxFlagsToString( wxString &s, const e& data )
+{
+    wxEnumData* edata = wxGetEnumData((e*) 0);
+    int count = edata->GetEnumCount();
+    int i;
+    s.Clear();
+    long dataValue = data.m_data;
+    for ( i = 0; i < count; i++ )
+    {
+        int value = edata->GetEnumMemberValueByIndex(i);
+        // make this to allow for multi-bit constants to work
+        if ( value && ( dataValue & value ) == value )
+        {
+            // clear the flags we just set
+            dataValue &= ~value;
+            // this could also be done by the templated calls
+            if ( !s.empty() )
+                s +=wxT("|");
+            s += edata->GetEnumMemberNameByIndex(i);
+        }
+    }
+}
+
+#define wxBEGIN_FLAGS( e ) \
+    wxEnumMemberData s_enumDataMembers##e[] = {
+
+#define wxFLAGS_MEMBER( v ) { wxT(#v), v },
+
+#define wxEND_FLAGS( e )                                                \
+        { NULL, 0 } };                                                 \
+    wxEnumData s_enumData##e( s_enumDataMembers##e );                   \
+    wxEnumData *wxGetEnumData(e*) { return &s_enumData##e; }            \
+    template<>  void wxStringReadValue(const wxString &s, e &data )    \
+        { wxFlagsFromString<e>( s, data ); }                           \
+    template<>  void wxStringWriteValue( wxString &s, const e& data )  \
+        { wxFlagsToString<e>( s, data ); }                             \
+    void FromLong##e( long data, wxVariantBase& result )                  \
+        { result = wxVariantBase(e(data)); }                               \
+    void ToLong##e( const wxVariantBase& data, long &result )             \
+        { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e).m_data; } \
+    wxTO_STRING_IMP( e )                                                \
+    wxFROM_STRING_IMP( e )                                              \
+    wxEnumTypeInfo s_typeInfo##e(wxT_SET, &s_enumData##e,             \
+            &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e,      \
+            &FromLong##e, typeid(e).name() );
+
+// ----------------------------------------------------------------------------
+// Type Information
+// ----------------------------------------------------------------------------
+
+//  All data exposed by the RTTI is characterized using the following classes.
+//  The first characterization is done by wxTypeKind. All enums up to and including
+//  wxT_CUSTOM represent so called simple types. These cannot be divided any further.
+//  They can be converted to and from wxStrings, that's all.
+//  Other wxTypeKinds can instead be splitted recursively into smaller parts until
+//  the simple types are reached.
+
+enum wxTypeKind
+{
+    wxT_VOID = 0,   // unknown type
+    wxT_BOOL,
+    wxT_CHAR,
+    wxT_UCHAR,
+    wxT_INT,
+    wxT_UINT,
+    wxT_LONG,
+    wxT_ULONG,
+    wxT_FLOAT,
+    wxT_DOUBLE,
+    wxT_STRING,     // must be wxString
+    wxT_SET,        // must be wxBitset<> template
+    wxT_ENUM,
+    wxT_CUSTOM,     // user defined type (e.g. wxPoint)
+
+    wxT_LAST_SIMPLE_TYPE_KIND = wxT_CUSTOM,
+
+    wxT_OBJECT_PTR, // object reference
+    wxT_OBJECT,     // embedded object
+    wxT_COLLECTION, // collection
+
+    wxT_DELEGATE,   // for connecting against an event source
+
+    wxT_LAST_TYPE_KIND = wxT_DELEGATE // sentinel for bad data, asserts, debugging
+};
+
+class WXDLLIMPEXP_BASE wxVariantBase;
+class WXDLLIMPEXP_BASE wxTypeInfo;
+
+WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo*, wxTypeInfoMap, class WXDLLIMPEXP_BASE );
+
+class WXDLLIMPEXP_BASE wxTypeInfo
+{
+public:
+    typedef void (*wxVariant2StringFnc)( const wxVariantBase& data, wxString &result );
+    typedef void (*wxString2VariantFnc)( const wxString& data, wxVariantBase &result );
+
+    wxTypeInfo(wxTypeKind kind,
+               wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL,
+               const wxString &name = wxEmptyString):
+            m_toString(to), m_fromString(from), m_kind(kind), m_name(name)
+    {
+        Register();
+    }
+#if wxUSE_UNICODE
+    wxTypeInfo(wxTypeKind kind,
+               wxVariant2StringFnc to, wxString2VariantFnc from,
+               const char *name):
+            m_toString(to), m_fromString(from), m_kind(kind), 
+            m_name(wxString::FromAscii(name))
+    {
+        Register();
+    }
+#endif
+
+    virtual ~wxTypeInfo()
+    {
+        Unregister();
+    }
+
+    // return the kind of this type (wxT_... constants)
+    wxTypeKind GetKind() const { return m_kind; }
+
+    // returns the unique name of this type
+    const wxString& GetTypeName() const { return m_name; }
+
+    // is this type a delegate type
+    bool IsDelegateType() const { return m_kind == wxT_DELEGATE; }
+
+    // is this type a custom type
+    bool IsCustomType() const { return m_kind == wxT_CUSTOM; }
+
+    // is this type an object type
+    bool IsObjectType() const { return m_kind == wxT_OBJECT || m_kind == wxT_OBJECT_PTR; }
+
+    // can the content of this type be converted to and from strings ?
+    bool HasStringConverters() const { return m_toString != NULL && m_fromString != NULL; }
+
+    // convert a wxVariantBase holding data of this type into a string
+    void ConvertToString( const wxVariantBase& data, wxString &result ) const
+    { 
+        if ( m_toString ) 
+            (*m_toString)( data, result ); 
+        else 
+            wxLogError( wxGetTranslation(_T("String conversions not supported")) ); 
+    }
+
+    // convert a string into a wxVariantBase holding the corresponding data in this type
+    void ConvertFromString( const wxString& data, wxVariantBase &result ) const
+    { 
+        if( m_fromString ) 
+            (*m_fromString)( data, result ); 
+        else 
+            wxLogError( wxGetTranslation(_T("String conversions not supported")) ); 
+    }
+
+    // statics:
+
+#if wxUSE_UNICODE
+    static wxTypeInfo *FindType(const char *typeName) 
+        { return FindType( wxString::FromAscii(typeName) ); }
+#endif
+    static wxTypeInfo *FindType(const wxChar *typeName);
+    static wxTypeInfo *FindType(const wxString& typeName)
+        {
+#if wxUSE_UNICODE
+            return FindType( typeName.wchar_str() );
+#else
+            return FindType( typeName.char_str() );
+#endif
+        }
+
+private:
+    void Register();
+    void Unregister();
+
+    wxVariant2StringFnc m_toString;
+    wxString2VariantFnc m_fromString;
+
+    wxTypeKind m_kind;
+    wxString m_name;
+
+    // the static list of all types we know about
+    static wxTypeInfoMap* ms_typeTable;
+};
+
+class WXDLLIMPEXP_BASE wxBuiltInTypeInfo : public wxTypeInfo
+{
+public:
+    wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to = NULL, 
+                       wxString2VariantFnc from = NULL, 
+                       const wxString &name = wxEmptyString ) :
+            wxTypeInfo( kind, to, from, name )
+       { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }
+
+#if wxUSE_UNICODE
+    wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to, 
+                       wxString2VariantFnc from , const char *name  ) :
+            wxTypeInfo( kind, to, from, name )
+       { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }
+#endif
+};
+
+class WXDLLIMPEXP_BASE wxCustomTypeInfo : public wxTypeInfo
+{
+public:
+    wxCustomTypeInfo( const wxString &name, wxVariant2StringFnc to, 
+                      wxString2VariantFnc from ) :
+            wxTypeInfo( wxT_CUSTOM, to, from, name )
+       {}
+
+#if wxUSE_UNICODE
+    wxCustomTypeInfo( const char *name , wxVariant2StringFnc to, 
+                      wxString2VariantFnc from ) :
+            wxTypeInfo( wxT_CUSTOM, to, from, name )
+       {}
+#endif
+};
+
+class WXDLLIMPEXP_BASE wxEnumTypeInfo : public wxTypeInfo
+{
+public:
+    typedef void (*converterToLong_t)( const wxVariantBase& data, long &result );
+    typedef void (*converterFromLong_t)( long data, wxVariantBase &result );
+
+    wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,
+                    wxString2VariantFnc from, converterToLong_t toLong,
+                    converterFromLong_t fromLong, const wxString &name  ) :
+        wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong )
+    { 
+        wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET,
+                      wxT("Illegal Kind for Enum Type")); 
+        m_enumInfo = enumInfo; 
+    }
+
+#if wxUSE_UNICODE
+    wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,
+                    wxString2VariantFnc from, converterToLong_t toLong,
+                    converterFromLong_t fromLong, const char * name ) :
+        wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong )
+    {
+        wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET, 
+                      wxT("Illegal Kind for Enum Type")); 
+        m_enumInfo = enumInfo; 
+    }
+#endif
+    const wxEnumData* GetEnumData() const { return m_enumInfo; }
+
+    // convert a wxVariantBase holding data of this type into a long
+    void ConvertToLong( const wxVariantBase& data, long &result ) const
+    { 
+        if( m_toLong ) 
+            (*m_toLong)( data, result ); 
+        else 
+            wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); 
+    }
+
+    // convert a long into a wxVariantBase holding the corresponding data in this type
+    void ConvertFromLong( long data, wxVariantBase &result ) const
+    { 
+        if( m_fromLong ) 
+            (*m_fromLong)( data, result ); 
+        else 
+            wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); 
+    }
+
+private:
+    converterToLong_t m_toLong;
+    converterFromLong_t m_fromLong;
+
+    wxEnumData *m_enumInfo; // Kind == wxT_ENUM or Kind == wxT_SET
+};
+
+class WXDLLIMPEXP_BASE wxClassTypeInfo : public wxTypeInfo
+{
+public:
+    wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, 
+                     wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, 
+                     const wxString &name = wxEmptyString);
+
+#if wxUSE_UNICODE
+    wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, wxVariant2StringFnc to,
+                     wxString2VariantFnc from , const char *name );
+#endif
+
+    const wxClassInfo *GetClassInfo() const { return m_classInfo; }
+
+private:
+    wxClassInfo *m_classInfo; // Kind == wxT_OBJECT - could be NULL
+};
+
+class WXDLLIMPEXP_BASE wxCollectionTypeInfo : public wxTypeInfo
+{
+public:
+    wxCollectionTypeInfo( const wxString &elementName, wxVariant2StringFnc to,
+                          wxString2VariantFnc from , const wxString &name) :
+            wxTypeInfo( wxT_COLLECTION, to, from, name )
+       { m_elementTypeName = elementName; m_elementType = NULL; }
+
+#if wxUSE_UNICODE
+    wxCollectionTypeInfo( const char *elementName, wxVariant2StringFnc to, 
+                          wxString2VariantFnc from , const char *name ) :
+            wxTypeInfo( wxT_COLLECTION, to, from, name )
+       { m_elementTypeName = wxString::FromAscii( elementName ); m_elementType = NULL; }
+#endif
+
+    const wxTypeInfo* GetElementType() const
+    {
+        if ( m_elementType == NULL )
+            m_elementType = wxTypeInfo::FindType( m_elementTypeName );
+        return m_elementType; 
+    }
+
+private:
+    mutable wxTypeInfo * m_elementType;
+    wxString    m_elementTypeName;
+};
+
+class WXDLLIMPEXP_BASE wxEventSourceTypeInfo : public wxTypeInfo
+{
+public:
+    wxEventSourceTypeInfo( int eventType, wxClassInfo* eventClass, 
+                        wxVariant2StringFnc to = NULL, 
+                        wxString2VariantFnc from = NULL );
+    wxEventSourceTypeInfo( int eventType, int lastEventType, wxClassInfo* eventClass, 
+                        wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL );
+
+    int GetEventType() const { return m_eventType; }
+    int GetLastEventType() const { return m_lastEventType; }
+    const wxClassInfo* GetEventClass() const { return m_eventClass; }
+
+private:
+    const wxClassInfo *m_eventClass; // (extended will merge into classinfo)
+    int m_eventType;
+    int m_lastEventType;
+};
+
+template<typename T> const wxTypeInfo* wxGetTypeInfo( T * ) \
+    { return wxTypeInfo::FindType(typeid(T).name()); }
+
+// this macro is for usage with custom, non-object derived classes and structs, 
+// wxPoint is such a custom type
+
+#if wxUSE_FUNC_TEMPLATE_POINTER
+    #define wxCUSTOM_TYPE_INFO( e, toString, fromString ) \
+        wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), &toString, &fromString);
+#else
+    #define wxCUSTOM_TYPE_INFO( e, toString, fromString )             \
+        void ToString##e( const wxVariantBase& data, wxString &result )   \
+            { toString(data, result); }                                 \
+        void FromString##e( const wxString& data, wxVariantBase &result ) \
+            { fromString(data, result); }                               \
+        wxCustomTypeInfo s_typeInfo##e(typeid(e).name(),               \
+                                       &ToString##e, &FromString##e);
+#endif
+
+#define wxCOLLECTION_TYPE_INFO( element, collection )                      \
+    wxCollectionTypeInfo s_typeInfo##collection( typeid(element).name(),   \
+                                NULL, NULL, typeid(collection).name() );
+
+// sometimes a compiler invents specializations that are nowhere called, 
+// use this macro to satisfy the refs, currently we don't have to play 
+// tricks, but if we will have to according to the compiler, we will use 
+// that macro for that
+
+#define wxILLEGAL_TYPE_SPECIALIZATION( a )
+
+#endif      // wxUSE_EXTENDED_RTTI
+#endif      // _XTITYPES_H_
index 2c84834a89dce526b20b561ce6252b04f7050785..32dd4d908e922cad50d53400a03a3797b08c675a 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Francesco Montorsi
 // Modified by: 
 // Created:     03/06/2007 14:49:55
-// RCS-ID:      $Id: classlist.cpp 48186 2007-08-19 19:59:54Z FM $
+// RCS-ID:      $Id$
 // Copyright:   (c) 2007 Francesco Montorsi
 // Licence:     wxWidgets license
 /////////////////////////////////////////////////////////////////////////////
index dcb416f95862efb0d087fb1291a7c3b8cc155f4f..b8187c986895f2cec6fda3dc702e108a161972c3 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Francesco Montorsi
 // Modified by: 
 // Created:     03/06/2007 14:49:55
-// RCS-ID:      $Id: classlist.h 47845 2007-08-01 12:53:50Z FM $
+// RCS-ID:      $Id$
 // Copyright:   (c) 2007 Francesco Montorsi
 // Licence:     wxWidgets license
 ////////////////////////////////////////////////////
index 0ba0bd23b34a773fd398ec48f2dbd3058dd1fe30..131a19d3e447dac5c48349de8e161559254e6152 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/xtistrm.cpp\r
-// Purpose:     streaming runtime metadata information\r
-// Author:      Stefan Csomor\r
-// Modified by:\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xtistrm.cpp 47828 2007-07-31 19:26:56Z FM $\r
-// Copyright:   (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#include "wx/xtistrm.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/object.h"\r
-    #include "wx/hash.h"\r
-    #include "wx/event.h"\r
-#endif\r
-\r
-#include <map>\r
-#include <vector>\r
-#include <string>\r
-using namespace std;\r
-\r
-#include "wx/tokenzr.h"\r
-#include "wx/txtstrm.h"\r
-#include "codereadercallback.h"\r
-\r
-#if !wxUSE_EXTENDED_RTTI\r
-    #error This sample requires XTI (eXtended RTTI) enabled\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// wxObjectCodeReaderCallback - depersisting to code\r
-// ----------------------------------------------------------------------------\r
-\r
-struct wxObjectCodeReaderCallback::wxObjectCodeReaderCallbackInternal\r
-{\r
-#if wxUSE_UNICODE\r
-    map<int,wstring> m_objectNames;\r
-#else\r
-    map<int,string> m_objectNames;\r
-#endif\r
-\r
-    void SetObjectName(int objectID, const wxString &name )\r
-    {\r
-        if ( m_objectNames.find(objectID) != m_objectNames.end() )\r
-        {\r
-            wxLogError( _("Passing a already registered object to SetObjectName") );\r
-            return ;\r
-        }\r
-        m_objectNames[objectID] = (const wxChar *)name;\r
-    }\r
-\r
-    wxString GetObjectName( int objectID )\r
-    {\r
-        if ( objectID == wxNullObjectID )\r
-            return wxT("NULL");\r
-\r
-        if ( m_objectNames.find(objectID) == m_objectNames.end() )\r
-        {\r
-            wxLogError( _("Passing an unkown object to GetObject") );\r
-            return wxEmptyString;\r
-        }\r
-        return wxString( m_objectNames[objectID].c_str() );\r
-    }\r
-};\r
-\r
-wxObjectCodeReaderCallback::wxObjectCodeReaderCallback(wxTextOutputStream *out)\r
-: m_fp(out)\r
-{\r
-    m_data = new wxObjectCodeReaderCallbackInternal;\r
-}\r
-\r
-wxObjectCodeReaderCallback::~wxObjectCodeReaderCallback()\r
-{\r
-    delete m_data;\r
-}\r
-\r
-void wxObjectCodeReaderCallback::AllocateObject(int objectID, wxClassInfo *classInfo,\r
-                                       wxVariantBaseArray &WXUNUSED(metadata))\r
-{\r
-    wxString objectName = wxString::Format( wxT("LocalObject_%d"), objectID );\r
-    m_fp->WriteString( wxString::Format( wxT("\t%s *%s = new %s;\n"),\r
-        classInfo->GetClassName(),\r
-        objectName.c_str(),\r
-        classInfo->GetClassName()) );\r
-    m_data->SetObjectName( objectID, objectName );\r
-}\r
-\r
-void wxObjectCodeReaderCallback::DestroyObject(int objectID, wxClassInfo *WXUNUSED(classInfo))\r
-{\r
-    m_fp->WriteString( wxString::Format( wxT("\tdelete %s;\n"),\r
-        m_data->GetObjectName( objectID).c_str() ) );\r
-}\r
-\r
-wxString wxObjectCodeReaderCallback::ValueAsCode( const wxVariantBase &param )\r
-{\r
-    wxString value;\r
-    const wxTypeInfo* type = param.GetTypeInfo();\r
-    if ( type->GetKind() == wxT_CUSTOM )\r
-    {\r
-        const wxCustomTypeInfo* cti = wx_dynamic_cast(const wxCustomTypeInfo*, type);\r
-        if ( cti )\r
-        {\r
-            value.Printf( wxT("%s(%s)"), cti->GetTypeName().c_str(),\r
-                          param.GetAsString().c_str() );\r
-        }\r
-        else\r
-        {\r
-            wxLogError ( _("Internal error, illegal wxCustomTypeInfo") );\r
-        }\r
-    }\r
-    else if ( type->GetKind() == wxT_STRING )\r
-    {\r
-        value.Printf( wxT("\"%s\""),param.GetAsString().c_str() );\r
-    }\r
-    else\r
-    {\r
-        value.Printf( wxT("%s"), param.GetAsString().c_str() );\r
-    }\r
-    return value;\r
-}\r
-\r
-void wxObjectCodeReaderCallback::CreateObject(int objectID,\r
-                                     const wxClassInfo *WXUNUSED(classInfo),\r
-                                     int paramCount,\r
-                                     wxVariantBase *params,\r
-                                     int *objectIDValues,\r
-                                     const wxClassInfo **WXUNUSED(objectClassInfos),\r
-                                     wxVariantBaseArray &WXUNUSED(metadata)\r
-                                     )\r
-{\r
-    int i;\r
-    m_fp->WriteString( wxString::Format( wxT("\t%s->Create("), \r
-                       m_data->GetObjectName(objectID).c_str() ) );\r
-    for (i = 0; i < paramCount; i++)\r
-    {\r
-        if ( objectIDValues[i] != wxInvalidObjectID )\r
-        {\r
-            wxString str = \r
-                wxString::Format( wxT("%s"), \r
-                                  m_data->GetObjectName( objectIDValues[i] ).c_str() );\r
-            m_fp->WriteString( str );\r
-        }\r
-        else\r
-        {\r
-            m_fp->WriteString( \r
-                wxString::Format( wxT("%s"), ValueAsCode(params[i]).c_str() ) );\r
-        }\r
-        if (i < paramCount - 1)\r
-            m_fp->WriteString( wxT(", "));\r
-    }\r
-    m_fp->WriteString( wxT(");\n") );\r
-}\r
-\r
-void wxObjectCodeReaderCallback::ConstructObject(int objectID,\r
-                                     const wxClassInfo *classInfo,\r
-                                     int paramCount,\r
-                                     wxVariantBase *params,\r
-                                     int *objectIDValues,\r
-                                     const wxClassInfo **WXUNUSED(objectClassInfos),\r
-                                     wxVariantBaseArray &WXUNUSED(metadata)\r
-                                     )\r
-{\r
-    wxString objectName = wxString::Format( wxT("LocalObject_%d"), objectID );\r
-    m_fp->WriteString( wxString::Format( wxT("\t%s *%s = new %s("),\r
-        classInfo->GetClassName(),\r
-        objectName.c_str(),\r
-        classInfo->GetClassName()) );\r
-    m_data->SetObjectName( objectID, objectName );\r
-\r
-    int i;\r
-    for (i = 0; i < paramCount; i++)\r
-    {\r
-        if ( objectIDValues[i] != wxInvalidObjectID )\r
-            m_fp->WriteString( wxString::Format( wxT("%s"), \r
-                               m_data->GetObjectName( objectIDValues[i] ).c_str() ) );\r
-        else\r
-        {\r
-            m_fp->WriteString( \r
-                wxString::Format( wxT("%s"), ValueAsCode(params[i]).c_str() ) );\r
-        }\r
-        if (i < paramCount - 1)\r
-            m_fp->WriteString( wxT(", ") );\r
-    }\r
-    m_fp->WriteString( wxT(");\n") );\r
-}\r
-\r
-void wxObjectCodeReaderCallback::SetProperty(int objectID,\r
-                                    const wxClassInfo *WXUNUSED(classInfo),\r
-                                    const wxPropertyInfo* propertyInfo,\r
-                                    const wxVariantBase &value)\r
-{\r
-    m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),\r
-        m_data->GetObjectName(objectID).c_str(),\r
-        propertyInfo->GetAccessor()->GetSetterName().c_str(),\r
-        ValueAsCode(value).c_str()) );\r
-}\r
-\r
-void wxObjectCodeReaderCallback::SetPropertyAsObject(int objectID,\r
-                                            const wxClassInfo *WXUNUSED(classInfo),\r
-                                            const wxPropertyInfo* propertyInfo,\r
-                                            int valueObjectId)\r
-{\r
-    if ( propertyInfo->GetTypeInfo()->GetKind() == wxT_OBJECT )\r
-        m_fp->WriteString( wxString::Format( wxT("\t%s->%s(*%s);\n"),\r
-        m_data->GetObjectName(objectID).c_str(),\r
-        propertyInfo->GetAccessor()->GetSetterName().c_str(),\r
-        m_data->GetObjectName( valueObjectId).c_str() ) );\r
-    else\r
-        m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),\r
-        m_data->GetObjectName(objectID).c_str(),\r
-        propertyInfo->GetAccessor()->GetSetterName().c_str(),\r
-        m_data->GetObjectName( valueObjectId).c_str() ) );\r
-}\r
-\r
-void wxObjectCodeReaderCallback::AddToPropertyCollection( int objectID,\r
-                                                const wxClassInfo *WXUNUSED(classInfo),\r
-                                                const wxPropertyInfo* propertyInfo,\r
-                                                const wxVariantBase &value)\r
-{\r
-    m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),\r
-        m_data->GetObjectName(objectID).c_str(),\r
-        propertyInfo->GetAccessor()->GetAdderName().c_str(),\r
-        ValueAsCode(value).c_str()) );\r
-}\r
-\r
-// sets the corresponding property (value is an object)\r
-void wxObjectCodeReaderCallback::\r
-    AddToPropertyCollectionAsObject(int WXUNUSED(objectID),\r
-                                    const wxClassInfo *WXUNUSED(classInfo),\r
-                                    const wxPropertyInfo* WXUNUSED(propertyInfo),\r
-                                    int WXUNUSED(valueObjectId))\r
-{\r
-    // TODO\r
-}\r
-\r
-void wxObjectCodeReaderCallback::SetConnect(int eventSourceObjectID,\r
-                                   const wxClassInfo *WXUNUSED(eventSourceClassInfo),\r
-                                   const wxPropertyInfo *delegateInfo,\r
-                                   const wxClassInfo *eventSinkClassInfo,\r
-                                   const wxHandlerInfo* handlerInfo,\r
-                                   int eventSinkObjectID )\r
-{\r
-    wxString ehsource = m_data->GetObjectName( eventSourceObjectID );\r
-    wxString ehsink = m_data->GetObjectName(eventSinkObjectID);\r
-    wxString ehsinkClass = eventSinkClassInfo->GetClassName();\r
-    const wxEventSourceTypeInfo *delegateTypeInfo = \r
-        wx_dynamic_cast(const wxEventSourceTypeInfo*, delegateInfo->GetTypeInfo());\r
-    if ( delegateTypeInfo )\r
-    {\r
-        int eventType = delegateTypeInfo->GetEventType();\r
-        wxString handlerName = handlerInfo->GetName();\r
-\r
-        wxString code =\r
-            wxString::Format( \r
-                wxT("\t%s->Connect( %s->GetId(), %d, ")\r
-                wxT("(wxObjectEventFunction)(wxEventFunction) & %s::%s, NULL, %s );"),\r
-                ehsource.c_str(), ehsource.c_str(), eventType, ehsinkClass.c_str(),\r
-                handlerName.c_str(), ehsink.c_str() );\r
-\r
-        m_fp->WriteString( code );\r
-    }\r
-    else\r
-    {\r
-        wxLogError(_("delegate has no type info"));\r
-    }\r
-}\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/xtistrm.cpp
+// Purpose:     streaming runtime metadata information
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/xtistrm.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/object.h"
+    #include "wx/hash.h"
+    #include "wx/event.h"
+#endif
+
+#include <map>
+#include <vector>
+#include <string>
+using namespace std;
+
+#include "wx/tokenzr.h"
+#include "wx/txtstrm.h"
+#include "codereadercallback.h"
+
+#if !wxUSE_EXTENDED_RTTI
+    #error This sample requires XTI (eXtended RTTI) enabled
+#endif
+
+// ----------------------------------------------------------------------------
+// wxObjectCodeReaderCallback - depersisting to code
+// ----------------------------------------------------------------------------
+
+struct wxObjectCodeReaderCallback::wxObjectCodeReaderCallbackInternal
+{
+#if wxUSE_UNICODE
+    map<int,wstring> m_objectNames;
+#else
+    map<int,string> m_objectNames;
+#endif
+
+    void SetObjectName(int objectID, const wxString &name )
+    {
+        if ( m_objectNames.find(objectID) != m_objectNames.end() )
+        {
+            wxLogError( _("Passing a already registered object to SetObjectName") );
+            return ;
+        }
+        m_objectNames[objectID] = (const wxChar *)name;
+    }
+
+    wxString GetObjectName( int objectID )
+    {
+        if ( objectID == wxNullObjectID )
+            return wxT("NULL");
+
+        if ( m_objectNames.find(objectID) == m_objectNames.end() )
+        {
+            wxLogError( _("Passing an unkown object to GetObject") );
+            return wxEmptyString;
+        }
+        return wxString( m_objectNames[objectID].c_str() );
+    }
+};
+
+wxObjectCodeReaderCallback::wxObjectCodeReaderCallback(wxTextOutputStream *out)
+: m_fp(out)
+{
+    m_data = new wxObjectCodeReaderCallbackInternal;
+}
+
+wxObjectCodeReaderCallback::~wxObjectCodeReaderCallback()
+{
+    delete m_data;
+}
+
+void wxObjectCodeReaderCallback::AllocateObject(int objectID, wxClassInfo *classInfo,
+                                       wxVariantBaseArray &WXUNUSED(metadata))
+{
+    wxString objectName = wxString::Format( wxT("LocalObject_%d"), objectID );
+    m_fp->WriteString( wxString::Format( wxT("\t%s *%s = new %s;\n"),
+        classInfo->GetClassName(),
+        objectName.c_str(),
+        classInfo->GetClassName()) );
+    m_data->SetObjectName( objectID, objectName );
+}
+
+void wxObjectCodeReaderCallback::DestroyObject(int objectID, wxClassInfo *WXUNUSED(classInfo))
+{
+    m_fp->WriteString( wxString::Format( wxT("\tdelete %s;\n"),
+        m_data->GetObjectName( objectID).c_str() ) );
+}
+
+wxString wxObjectCodeReaderCallback::ValueAsCode( const wxVariantBase &param )
+{
+    wxString value;
+    const wxTypeInfo* type = param.GetTypeInfo();
+    if ( type->GetKind() == wxT_CUSTOM )
+    {
+        const wxCustomTypeInfo* cti = wx_dynamic_cast(const wxCustomTypeInfo*, type);
+        if ( cti )
+        {
+            value.Printf( wxT("%s(%s)"), cti->GetTypeName().c_str(),
+                          param.GetAsString().c_str() );
+        }
+        else
+        {
+            wxLogError ( _("Internal error, illegal wxCustomTypeInfo") );
+        }
+    }
+    else if ( type->GetKind() == wxT_STRING )
+    {
+        value.Printf( wxT("\"%s\""),param.GetAsString().c_str() );
+    }
+    else
+    {
+        value.Printf( wxT("%s"), param.GetAsString().c_str() );
+    }
+    return value;
+}
+
+void wxObjectCodeReaderCallback::CreateObject(int objectID,
+                                     const wxClassInfo *WXUNUSED(classInfo),
+                                     int paramCount,
+                                     wxVariantBase *params,
+                                     int *objectIDValues,
+                                     const wxClassInfo **WXUNUSED(objectClassInfos),
+                                     wxVariantBaseArray &WXUNUSED(metadata)
+                                     )
+{
+    int i;
+    m_fp->WriteString( wxString::Format( wxT("\t%s->Create("), 
+                       m_data->GetObjectName(objectID).c_str() ) );
+    for (i = 0; i < paramCount; i++)
+    {
+        if ( objectIDValues[i] != wxInvalidObjectID )
+        {
+            wxString str = 
+                wxString::Format( wxT("%s"), 
+                                  m_data->GetObjectName( objectIDValues[i] ).c_str() );
+            m_fp->WriteString( str );
+        }
+        else
+        {
+            m_fp->WriteString( 
+                wxString::Format( wxT("%s"), ValueAsCode(params[i]).c_str() ) );
+        }
+        if (i < paramCount - 1)
+            m_fp->WriteString( wxT(", "));
+    }
+    m_fp->WriteString( wxT(");\n") );
+}
+
+void wxObjectCodeReaderCallback::ConstructObject(int objectID,
+                                     const wxClassInfo *classInfo,
+                                     int paramCount,
+                                     wxVariantBase *params,
+                                     int *objectIDValues,
+                                     const wxClassInfo **WXUNUSED(objectClassInfos),
+                                     wxVariantBaseArray &WXUNUSED(metadata)
+                                     )
+{
+    wxString objectName = wxString::Format( wxT("LocalObject_%d"), objectID );
+    m_fp->WriteString( wxString::Format( wxT("\t%s *%s = new %s("),
+        classInfo->GetClassName(),
+        objectName.c_str(),
+        classInfo->GetClassName()) );
+    m_data->SetObjectName( objectID, objectName );
+
+    int i;
+    for (i = 0; i < paramCount; i++)
+    {
+        if ( objectIDValues[i] != wxInvalidObjectID )
+            m_fp->WriteString( wxString::Format( wxT("%s"), 
+                               m_data->GetObjectName( objectIDValues[i] ).c_str() ) );
+        else
+        {
+            m_fp->WriteString( 
+                wxString::Format( wxT("%s"), ValueAsCode(params[i]).c_str() ) );
+        }
+        if (i < paramCount - 1)
+            m_fp->WriteString( wxT(", ") );
+    }
+    m_fp->WriteString( wxT(");\n") );
+}
+
+void wxObjectCodeReaderCallback::SetProperty(int objectID,
+                                    const wxClassInfo *WXUNUSED(classInfo),
+                                    const wxPropertyInfo* propertyInfo,
+                                    const wxVariantBase &value)
+{
+    m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),
+        m_data->GetObjectName(objectID).c_str(),
+        propertyInfo->GetAccessor()->GetSetterName().c_str(),
+        ValueAsCode(value).c_str()) );
+}
+
+void wxObjectCodeReaderCallback::SetPropertyAsObject(int objectID,
+                                            const wxClassInfo *WXUNUSED(classInfo),
+                                            const wxPropertyInfo* propertyInfo,
+                                            int valueObjectId)
+{
+    if ( propertyInfo->GetTypeInfo()->GetKind() == wxT_OBJECT )
+        m_fp->WriteString( wxString::Format( wxT("\t%s->%s(*%s);\n"),
+        m_data->GetObjectName(objectID).c_str(),
+        propertyInfo->GetAccessor()->GetSetterName().c_str(),
+        m_data->GetObjectName( valueObjectId).c_str() ) );
+    else
+        m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),
+        m_data->GetObjectName(objectID).c_str(),
+        propertyInfo->GetAccessor()->GetSetterName().c_str(),
+        m_data->GetObjectName( valueObjectId).c_str() ) );
+}
+
+void wxObjectCodeReaderCallback::AddToPropertyCollection( int objectID,
+                                                const wxClassInfo *WXUNUSED(classInfo),
+                                                const wxPropertyInfo* propertyInfo,
+                                                const wxVariantBase &value)
+{
+    m_fp->WriteString( wxString::Format( wxT("\t%s->%s(%s);\n"),
+        m_data->GetObjectName(objectID).c_str(),
+        propertyInfo->GetAccessor()->GetAdderName().c_str(),
+        ValueAsCode(value).c_str()) );
+}
+
+// sets the corresponding property (value is an object)
+void wxObjectCodeReaderCallback::
+    AddToPropertyCollectionAsObject(int WXUNUSED(objectID),
+                                    const wxClassInfo *WXUNUSED(classInfo),
+                                    const wxPropertyInfo* WXUNUSED(propertyInfo),
+                                    int WXUNUSED(valueObjectId))
+{
+    // TODO
+}
+
+void wxObjectCodeReaderCallback::SetConnect(int eventSourceObjectID,
+                                   const wxClassInfo *WXUNUSED(eventSourceClassInfo),
+                                   const wxPropertyInfo *delegateInfo,
+                                   const wxClassInfo *eventSinkClassInfo,
+                                   const wxHandlerInfo* handlerInfo,
+                                   int eventSinkObjectID )
+{
+    wxString ehsource = m_data->GetObjectName( eventSourceObjectID );
+    wxString ehsink = m_data->GetObjectName(eventSinkObjectID);
+    wxString ehsinkClass = eventSinkClassInfo->GetClassName();
+    const wxEventSourceTypeInfo *delegateTypeInfo = 
+        wx_dynamic_cast(const wxEventSourceTypeInfo*, delegateInfo->GetTypeInfo());
+    if ( delegateTypeInfo )
+    {
+        int eventType = delegateTypeInfo->GetEventType();
+        wxString handlerName = handlerInfo->GetName();
+
+        wxString code =
+            wxString::Format( 
+                wxT("\t%s->Connect( %s->GetId(), %d, ")
+                wxT("(wxObjectEventFunction)(wxEventFunction) & %s::%s, NULL, %s );"),
+                ehsource.c_str(), ehsource.c_str(), eventType, ehsinkClass.c_str(),
+                handlerName.c_str(), ehsink.c_str() );
+
+        m_fp->WriteString( code );
+    }
+    else
+    {
+        wxLogError(_("delegate has no type info"));
+    }
+}
index b0b8df975d65d2d74b5c5825ec0e4d33be3feff1..b5875725e26aaf23861beb29f190db562c187efa 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        wx/xtistrm.h\r
-// Purpose:     streaming runtime metadata information (extended class info)\r
-// Author:      Stefan Csomor\r
-// Modified by:\r
-// Created:     27/07/03\r
-// RCS-ID:      $Id: xtistrm.h 47827 2007-07-31 19:25:09Z FM $\r
-// Copyright:   (c) 2003 Stefan Csomor\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-#ifndef _CODEDEPERSISTER_\r
-#define _CODEDEPERSISTER_\r
-\r
-#include "wx/defs.h"\r
-\r
-/*\r
-wxObjectCodeReaderCallback implements the callbacks that will depersist\r
-an object into a C++ initialization function.\r
-*/\r
-\r
-class WXDLLIMPEXP_BASE wxTextOutputStream;\r
-\r
-class WXDLLIMPEXP_BASE wxObjectCodeReaderCallback: public wxObjectWriterCallback\r
-{\r
-private:\r
-    struct wxObjectCodeReaderCallbackInternal;\r
-    wxObjectCodeReaderCallbackInternal * m_data;\r
-    wxTextOutputStream *m_fp;\r
-    wxString ValueAsCode( const wxVariantBase &param );\r
-\r
-public:\r
-    wxObjectCodeReaderCallback(wxTextOutputStream *out);\r
-    virtual ~wxObjectCodeReaderCallback();\r
-\r
-    // allocate the new object on the heap, that object will have the passed in ID\r
-    virtual void AllocateObject(int objectID, wxClassInfo *classInfo,\r
-        wxVariantBaseArray &metadata);\r
-\r
-    // initialize the already allocated object having the ID objectID \r
-    // with the Create method creation parameters which are objects are \r
-    // having their Ids passed in objectIDValues having objectId <> wxInvalidObjectID\r
-\r
-    virtual void CreateObject(int objectID,\r
-        const wxClassInfo *classInfo,\r
-        int paramCount,\r
-        wxVariantBase *variantValues,\r
-        int *objectIDValues,\r
-        const wxClassInfo **objectClassInfos,\r
-        wxVariantBaseArray &metadata\r
-        );\r
-\r
-    // construct the new object on the heap, that object will have the \r
-    // passed in ID (for objects that don't support allocate-create type \r
-    // of creation) creation parameters which are objects are having their \r
-    // Ids passed in objectIDValues having objectId <> wxInvalidObjectID\r
-\r
-    virtual void ConstructObject(int objectID,\r
-        const wxClassInfo *classInfo,\r
-        int paramCount,\r
-        wxVariantBase *VariantValues,\r
-        int *objectIDValues,\r
-        const wxClassInfo **objectClassInfos,\r
-        wxVariantBaseArray &metadata);\r
-\r
-    // destroy the heap-allocated object having the ID objectID, this may \r
-    // be used if an object is embedded in another object and set via value \r
-    // semantics, so the intermediate object can be destroyed after safely\r
-    virtual void DestroyObject(int objectID, wxClassInfo *classInfo);\r
-\r
-    // set the corresponding property\r
-    virtual void SetProperty(int objectID,\r
-        const wxClassInfo *classInfo,\r
-        const wxPropertyInfo* propertyInfo,\r
-        const wxVariantBase &variantValue);\r
-\r
-    // sets the corresponding property (value is an object)\r
-    virtual void SetPropertyAsObject(int objectId,\r
-        const wxClassInfo *classInfo,\r
-        const wxPropertyInfo* propertyInfo,\r
-        int valueObjectId);\r
-\r
-    // adds an element to a property collection\r
-    virtual void AddToPropertyCollection( int objectID,\r
-        const wxClassInfo *classInfo,\r
-        const wxPropertyInfo* propertyInfo,\r
-        const wxVariantBase &VariantValue);\r
-\r
-    // sets the corresponding property (value is an object)\r
-    virtual void AddToPropertyCollectionAsObject(int objectID,\r
-        const wxClassInfo *classInfo,\r
-        const wxPropertyInfo* propertyInfo,\r
-        int valueObjectId);\r
-\r
-    // sets the corresponding event handler\r
-    virtual void SetConnect(int eventSourceObjectID,\r
-        const wxClassInfo *eventSourceClassInfo,\r
-        const wxPropertyInfo *delegateInfo,\r
-        const wxClassInfo *eventSinkClassInfo,\r
-        const wxHandlerInfo* handlerInfo,\r
-        int eventSinkObjectID );\r
-};\r
-\r
-#endif\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/xtistrm.h
+// Purpose:     streaming runtime metadata information (extended class info)
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     27/07/03
+// RCS-ID:      $Id$
+// Copyright:   (c) 2003 Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _CODEDEPERSISTER_
+#define _CODEDEPERSISTER_
+
+#include "wx/defs.h"
+
+/*
+wxObjectCodeReaderCallback implements the callbacks that will depersist
+an object into a C++ initialization function.
+*/
+
+class WXDLLIMPEXP_BASE wxTextOutputStream;
+
+class WXDLLIMPEXP_BASE wxObjectCodeReaderCallback: public wxObjectWriterCallback
+{
+private:
+    struct wxObjectCodeReaderCallbackInternal;
+    wxObjectCodeReaderCallbackInternal * m_data;
+    wxTextOutputStream *m_fp;
+    wxString ValueAsCode( const wxVariantBase &param );
+
+public:
+    wxObjectCodeReaderCallback(wxTextOutputStream *out);
+    virtual ~wxObjectCodeReaderCallback();
+
+    // allocate the new object on the heap, that object will have the passed in ID
+    virtual void AllocateObject(int objectID, wxClassInfo *classInfo,
+        wxVariantBaseArray &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,
+        wxVariantBase *variantValues,
+        int *objectIDValues,
+        const wxClassInfo **objectClassInfos,
+        wxVariantBaseArray &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,
+        wxVariantBase *VariantValues,
+        int *objectIDValues,
+        const wxClassInfo **objectClassInfos,
+        wxVariantBaseArray &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 wxVariantBase &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 wxVariantBase &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 );
+};
+
+#endif
index dd37d900fbe9d1c17c125ac9e2106d8b638a99f7..7212594fa2d6d994c98161a55e3e498e9806069b 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" ?>
-<!-- $Id: xti.bkl 48186 2007-08-19 19:59:54Z FM $ -->
+<!-- $Id$ -->
 
 <makefile>
 
index 2d56115d5dcf2dad724a854b974c749c1dca38f7..a6cee4f4d3a68a6dbf199c88507cea55d4ac4150 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Stefan Csomor, Francesco Montorsi
 // Modified by:
 // Created:     13/5/2007
-// RCS-ID:      $Id: xti.cpp 48407 2007-08-26 23:17:23Z FM $
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor, Francesco Montorsi
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
index 821f2315e26ad254919f0cc843a58ea0f28dc539..2a615da5ffe873f70ab74b3893f5d44a7476c521 100644 (file)
@@ -1,93 +1,93 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/bmpbtncmn.cpp\r
-// Purpose:     wxBitmapButton common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: bmpbuttn.cpp 45338 2007-04-08 22:18:35Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_BMPBUTTON\r
-\r
-#include "wx/bmpbuttn.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/log.h"\r
-    #include "wx/dcmemory.h"\r
-    #include "wx/image.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxBitmapButtonStyle )\r
-wxBEGIN_FLAGS( wxBitmapButtonStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxBU_AUTODRAW)\r
-    wxFLAGS_MEMBER(wxBU_LEFT)\r
-    wxFLAGS_MEMBER(wxBU_RIGHT)\r
-    wxFLAGS_MEMBER(wxBU_TOP)\r
-    wxFLAGS_MEMBER(wxBU_BOTTOM)\r
-wxEND_FLAGS( wxBitmapButtonStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxBitmapButton, wxButton, "wx/bmpbuttn.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxBitmapButton)\r
-    wxPROPERTY_FLAGS( WindowStyle, wxBitmapButtonStyle, long, \\r
-                      SetWindowStyleFlag, GetWindowStyleFlag, \\r
-                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), \\r
-                      wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxBitmapButton)\r
-\r
-wxCONSTRUCTOR_5( wxBitmapButton, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxBitmap, Bitmap, wxPoint, Position, wxSize, Size )\r
-\r
-/*\r
-TODO PROPERTIES :\r
-\r
-long "style" , wxBU_AUTODRAW\r
-bool "default" , 0\r
-bitmap "selected" ,\r
-bitmap "focus" ,\r
-bitmap "disabled" ,\r
-*/\r
-\r
-#endif // wxUSE_BMPBUTTON\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/bmpbtncmn.cpp
+// Purpose:     wxBitmapButton common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_BMPBUTTON
+
+#include "wx/bmpbuttn.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/dcmemory.h"
+    #include "wx/image.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxBitmapButtonStyle )
+wxBEGIN_FLAGS( wxBitmapButtonStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxBU_AUTODRAW)
+    wxFLAGS_MEMBER(wxBU_LEFT)
+    wxFLAGS_MEMBER(wxBU_RIGHT)
+    wxFLAGS_MEMBER(wxBU_TOP)
+    wxFLAGS_MEMBER(wxBU_BOTTOM)
+wxEND_FLAGS( wxBitmapButtonStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxBitmapButton, wxButton, "wx/bmpbuttn.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxBitmapButton)
+    wxPROPERTY_FLAGS( WindowStyle, wxBitmapButtonStyle, long, \
+                      SetWindowStyleFlag, GetWindowStyleFlag, \
+                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), \
+                      wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxBitmapButton)
+
+wxCONSTRUCTOR_5( wxBitmapButton, wxWindow*, Parent, wxWindowID, Id, \
+                 wxBitmap, Bitmap, wxPoint, Position, wxSize, Size )
+
+/*
+TODO PROPERTIES :
+
+long "style" , wxBU_AUTODRAW
+bool "default" , 0
+bitmap "selected" ,
+bitmap "focus" ,
+bitmap "disabled" ,
+*/
+
+#endif // wxUSE_BMPBUTTON
index 867239b1bcbae89b05a719b2ef084e18441ade49..ba419d86ae4aec6e6bb0b56d3fc543301c0e3586 100644 (file)
@@ -1,89 +1,89 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/checkboxcmn.cpp\r
-// Purpose:     wxCheckBox common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: checkbox.cpp 45492 2007-04-16 00:53:05Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_CHECKBOX\r
-\r
-#include "wx/checkbox.h"\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxCheckBoxStyle )\r
-wxBEGIN_FLAGS( wxCheckBoxStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxNO_BORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-wxEND_FLAGS( wxCheckBoxStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckBox, wxControl, "wx/checkbox.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxCheckBox)\r
-    wxEVENT_PROPERTY( Click, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEvent )\r
-\r
-    wxPROPERTY( Font, wxFont, SetFont, GetFont, wxEMPTY_PARAMETER_VALUE, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString(), \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Value,bool, SetValue, GetValue, wxEMPTY_PARAMETER_VALUE, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-\r
-    wxPROPERTY_FLAGS( WindowStyle, wxCheckBoxStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxCheckBox)\r
-\r
-wxCONSTRUCTOR_6( wxCheckBox, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxString, Label, wxPoint, Position, wxSize, Size, long, WindowStyle )\r
-\r
-\r
-#endif // wxUSE_CHECKBOX\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/checkboxcmn.cpp
+// Purpose:     wxCheckBox common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_CHECKBOX
+
+#include "wx/checkbox.h"
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxCheckBoxStyle )
+wxBEGIN_FLAGS( wxCheckBoxStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxNO_BORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxCheckBoxStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckBox, wxControl, "wx/checkbox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxCheckBox)
+    wxEVENT_PROPERTY( Click, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEvent )
+
+    wxPROPERTY( Font, wxFont, SetFont, GetFont, wxEMPTY_PARAMETER_VALUE, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString(), \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Value,bool, SetValue, GetValue, wxEMPTY_PARAMETER_VALUE, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+
+    wxPROPERTY_FLAGS( WindowStyle, wxCheckBoxStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxCheckBox)
+
+wxCONSTRUCTOR_6( wxCheckBox, wxWindow*, Parent, wxWindowID, Id, \
+                 wxString, Label, wxPoint, Position, wxSize, Size, long, WindowStyle )
+
+
+#endif // wxUSE_CHECKBOX
index 64012b99e4218e2273ec9a7c71067a59ecf69886..6721038c152c2b6bae033f86b46f4b41c63609f9 100644 (file)
-///////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/checklstcmn.cpp\r
-// Purpose:     wxCheckListBox common code\r
-// Author:      Vadim Zeitlin\r
-// Modified by:\r
-// Created:     16.11.97\r
-// RCS-ID:      $Id: checklst.cpp 45515 2007-04-17 01:19:43Z VZ $\r
-// Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>\r
-// Licence:     wxWindows licence\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_CHECKLISTBOX\r
-\r
-#include "wx/checklst.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/object.h"\r
-    #include "wx/colour.h"\r
-    #include "wx/font.h"\r
-    #include "wx/bitmap.h"\r
-    #include "wx/window.h"\r
-    #include "wx/listbox.h"\r
-    #include "wx/dcmemory.h"\r
-    #include "wx/settings.h"\r
-    #include "wx/log.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxCheckListBoxStyle )\r
-wxBEGIN_FLAGS( wxCheckListBoxStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxLB_SINGLE)\r
-    wxFLAGS_MEMBER(wxLB_MULTIPLE)\r
-    wxFLAGS_MEMBER(wxLB_EXTENDED)\r
-    wxFLAGS_MEMBER(wxLB_HSCROLL)\r
-    wxFLAGS_MEMBER(wxLB_ALWAYS_SB)\r
-    wxFLAGS_MEMBER(wxLB_NEEDED_SB)\r
-    wxFLAGS_MEMBER(wxLB_SORT)\r
-    wxFLAGS_MEMBER(wxLB_OWNERDRAW)\r
-\r
-wxEND_FLAGS( wxCheckListBoxStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckListBox, wxListBox, "wx/checklst.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxCheckListBox)\r
-    wxEVENT_PROPERTY( Toggle, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEvent )\r
-    wxPROPERTY_FLAGS( WindowStyle, wxCheckListBoxStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, wxLB_OWNERDRAW /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxCheckListBox)\r
-\r
-wxCONSTRUCTOR_4( wxCheckListBox, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size )\r
-\r
-\r
-#endif\r
+///////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/checklstcmn.cpp
+// Purpose:     wxCheckListBox common code
+// Author:      Vadim Zeitlin
+// Modified by:
+// Created:     16.11.97
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_CHECKLISTBOX
+
+#include "wx/checklst.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/object.h"
+    #include "wx/colour.h"
+    #include "wx/font.h"
+    #include "wx/bitmap.h"
+    #include "wx/window.h"
+    #include "wx/listbox.h"
+    #include "wx/dcmemory.h"
+    #include "wx/settings.h"
+    #include "wx/log.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxCheckListBoxStyle )
+wxBEGIN_FLAGS( wxCheckListBoxStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxLB_SINGLE)
+    wxFLAGS_MEMBER(wxLB_MULTIPLE)
+    wxFLAGS_MEMBER(wxLB_EXTENDED)
+    wxFLAGS_MEMBER(wxLB_HSCROLL)
+    wxFLAGS_MEMBER(wxLB_ALWAYS_SB)
+    wxFLAGS_MEMBER(wxLB_NEEDED_SB)
+    wxFLAGS_MEMBER(wxLB_SORT)
+    wxFLAGS_MEMBER(wxLB_OWNERDRAW)
+
+wxEND_FLAGS( wxCheckListBoxStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckListBox, wxListBox, "wx/checklst.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxCheckListBox)
+    wxEVENT_PROPERTY( Toggle, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEvent )
+    wxPROPERTY_FLAGS( WindowStyle, wxCheckListBoxStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, wxLB_OWNERDRAW /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxCheckListBox)
+
+wxCONSTRUCTOR_4( wxCheckListBox, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size )
+
+
+#endif
index 9a1974b14ae3cee57234219be941cdde30d2cc94..9415453d834e0d97506b7d834aa04ae0fa81df05 100644 (file)
@@ -1,85 +1,85 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/dirctrlcmn.cpp\r
-// Purpose:     wxGenericDirCtrl common code\r
-// Author:      Harm van der Heijden, Robert Roebling, Julian Smart\r
-// Modified by:\r
-// Created:     12/12/98\r
-// RCS-ID:      $Id: dirctrlg.cpp 45395 2007-04-11 00:23:19Z VZ $\r
-// Copyright:   (c) Harm van der Heijden, Robert Roebling and Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_DIRDLG || wxUSE_FILEDLG\r
-\r
-#include "wx/generic/dirctrlg.h"\r
-\r
-//-----------------------------------------------------------------------------\r
-// XTI\r
-//-----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxGenericDirCtrlStyle )\r
-wxBEGIN_FLAGS( wxGenericDirCtrlStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxDIRCTRL_DIR_ONLY)\r
-    wxFLAGS_MEMBER(wxDIRCTRL_3D_INTERNAL)\r
-    wxFLAGS_MEMBER(wxDIRCTRL_SELECT_FIRST)\r
-    wxFLAGS_MEMBER(wxDIRCTRL_SHOW_FILTERS)\r
-wxEND_FLAGS( wxGenericDirCtrlStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxGenericDirCtrl, wxControl, "wx/dirctrl.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxGenericDirCtrl)\r
-    wxHIDE_PROPERTY( Children )\r
-\r
-    wxPROPERTY( DefaultPath, wxString, SetDefaultPath, GetDefaultPath, \\r
-                wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Filter, wxString, SetFilter, GetFilter, wxEMPTY_PARAMETER_VALUE, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group") )\r
-    wxPROPERTY( DefaultFilter, int, SetFilterIndex, GetFilterIndex, \\r
-                wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), wxT("group") )\r
-\r
-    wxPROPERTY_FLAGS( WindowStyle, wxGenericDirCtrlStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0, wxT("Helpstring"), \\r
-                      wxT("group") )\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxGenericDirCtrl)\r
-\r
-wxCONSTRUCTOR_8( wxGenericDirCtrl, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxString, DefaultPath, wxPoint, Position, wxSize, Size, \\r
-                 long, WindowStyle, wxString, Filter, int, DefaultFilter )\r
-\r
-#endif // wxUSE_DIRDLG || wxUSE_FILEDLG\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/dirctrlcmn.cpp
+// Purpose:     wxGenericDirCtrl common code
+// Author:      Harm van der Heijden, Robert Roebling, Julian Smart
+// Modified by:
+// Created:     12/12/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Harm van der Heijden, Robert Roebling and Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_DIRDLG || wxUSE_FILEDLG
+
+#include "wx/generic/dirctrlg.h"
+
+//-----------------------------------------------------------------------------
+// XTI
+//-----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxGenericDirCtrlStyle )
+wxBEGIN_FLAGS( wxGenericDirCtrlStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxDIRCTRL_DIR_ONLY)
+    wxFLAGS_MEMBER(wxDIRCTRL_3D_INTERNAL)
+    wxFLAGS_MEMBER(wxDIRCTRL_SELECT_FIRST)
+    wxFLAGS_MEMBER(wxDIRCTRL_SHOW_FILTERS)
+wxEND_FLAGS( wxGenericDirCtrlStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxGenericDirCtrl, wxControl, "wx/dirctrl.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxGenericDirCtrl)
+    wxHIDE_PROPERTY( Children )
+
+    wxPROPERTY( DefaultPath, wxString, SetDefaultPath, GetDefaultPath, \
+                wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Filter, wxString, SetFilter, GetFilter, wxEMPTY_PARAMETER_VALUE, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group") )
+    wxPROPERTY( DefaultFilter, int, SetFilterIndex, GetFilterIndex, \
+                wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), wxT("group") )
+
+    wxPROPERTY_FLAGS( WindowStyle, wxGenericDirCtrlStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0, wxT("Helpstring"), \
+                      wxT("group") )
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxGenericDirCtrl)
+
+wxCONSTRUCTOR_8( wxGenericDirCtrl, wxWindow*, Parent, wxWindowID, Id, \
+                 wxString, DefaultPath, wxPoint, Position, wxSize, Size, \
+                 long, WindowStyle, wxString, Filter, int, DefaultFilter )
+
+#endif // wxUSE_DIRDLG || wxUSE_FILEDLG
index ac75bfc17107fe2e36f3cf655da57169fc956a87..84dfb72782e852992f009433a3de5a8baf9bab9f 100644 (file)
@@ -1,89 +1,89 @@
-///////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/gridcmn.cpp\r
-// Purpose:     wxGrid common code\r
-// Author:      Michael Bedward (based on code by Julian Smart, Robin Dunn)\r
-// Modified by: Robin Dunn, Vadim Zeitlin, Santiago Palacios\r
-// Created:     1/08/1999\r
-// RCS-ID:      $Id: grid.cpp 45814 2007-05-05 10:16:40Z RR $\r
-// Copyright:   (c) Michael Bedward (mbedward@ozemail.com.au)\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// For compilers that support precompilation, includes "wx/wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_GRID\r
-\r
-#include "wx/grid.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/utils.h"\r
-    #include "wx/dcclient.h"\r
-    #include "wx/settings.h"\r
-    #include "wx/log.h"\r
-    #include "wx/textctrl.h"\r
-    #include "wx/checkbox.h"\r
-    #include "wx/combobox.h"\r
-    #include "wx/valtext.h"\r
-    #include "wx/intl.h"\r
-    #include "wx/math.h"\r
-    #include "wx/listbox.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxGridStyle )\r
-wxBEGIN_FLAGS( wxGridStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-wxEND_FLAGS( wxGridStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxGrid, wxScrolledWindow, "wx/grid.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxGrid)\r
-    wxHIDE_PROPERTY( Children )\r
-    wxPROPERTY_FLAGS( WindowStyle, wxGridStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxGrid)\r
-\r
-wxCONSTRUCTOR_5( wxGrid, wxWindow*, Parent, wxWindowID, Id, wxPoint, Position, \\r
-                 wxSize, Size, long, WindowStyle )\r
-\r
-/*\r
- TODO : Expose more information of a list's layout, etc. via appropriate objects (e.g., NotebookPageInfo)\r
-*/\r
-\r
-#endif // wxUSE_GRID\r
+///////////////////////////////////////////////////////////////////////////
+// Name:        src/common/gridcmn.cpp
+// Purpose:     wxGrid common code
+// Author:      Michael Bedward (based on code by Julian Smart, Robin Dunn)
+// Modified by: Robin Dunn, Vadim Zeitlin, Santiago Palacios
+// Created:     1/08/1999
+// RCS-ID:      $Id$
+// Copyright:   (c) Michael Bedward (mbedward@ozemail.com.au)
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_GRID
+
+#include "wx/grid.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/utils.h"
+    #include "wx/dcclient.h"
+    #include "wx/settings.h"
+    #include "wx/log.h"
+    #include "wx/textctrl.h"
+    #include "wx/checkbox.h"
+    #include "wx/combobox.h"
+    #include "wx/valtext.h"
+    #include "wx/intl.h"
+    #include "wx/math.h"
+    #include "wx/listbox.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxGridStyle )
+wxBEGIN_FLAGS( wxGridStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+wxEND_FLAGS( wxGridStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxGrid, wxScrolledWindow, "wx/grid.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxGrid)
+    wxHIDE_PROPERTY( Children )
+    wxPROPERTY_FLAGS( WindowStyle, wxGridStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxGrid)
+
+wxCONSTRUCTOR_5( wxGrid, wxWindow*, Parent, wxWindowID, Id, wxPoint, Position, \
+                 wxSize, Size, long, WindowStyle )
+
+/*
+ TODO : Expose more information of a list's layout, etc. via appropriate objects (e.g., NotebookPageInfo)
+*/
+
+#endif // wxUSE_GRID
index 1f6f5fec0921fed00e95b6e69299b0ca64d92396..2301e7eb3ed7e7246d2b57266dc9d7787b5e0ddd 100644 (file)
@@ -1,55 +1,55 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/odcombocmn.cpp\r
-// Purpose:     wxOwnerDrawnComboBox common code\r
-// Author:      Jaakko Salli\r
-// Modified by:\r
-// Created:     Apr-30-2006\r
-// RCS-ID:      $Id: odcombo.cpp 45397 2007-04-11 10:32:01Z MBN $\r
-// Copyright:   (c) 2005 Jaakko Salli\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_ODCOMBOBOX\r
-\r
-#include "wx/odcombo.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/log.h"\r
-    #include "wx/combobox.h"\r
-    #include "wx/dcclient.h"\r
-    #include "wx/settings.h"\r
-    #include "wx/dialog.h"\r
-#endif\r
-\r
-#include "wx/combo.h"\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS2_XTI(wxOwnerDrawnComboBox, wxComboCtrl, \\r
-                               wxControlWithItems, "wx/odcombo.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxOwnerDrawnComboBox)\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxOwnerDrawnComboBox)\r
-\r
-wxCONSTRUCTOR_5( wxOwnerDrawnComboBox , wxWindow* , Parent , wxWindowID , \\r
-                 Id , wxString , Value , wxPoint , Position , wxSize , Size )\r
-\r
-#endif // wxUSE_ODCOMBOBOX\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/odcombocmn.cpp
+// Purpose:     wxOwnerDrawnComboBox common code
+// Author:      Jaakko Salli
+// Modified by:
+// Created:     Apr-30-2006
+// RCS-ID:      $Id$
+// Copyright:   (c) 2005 Jaakko Salli
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_ODCOMBOBOX
+
+#include "wx/odcombo.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/combobox.h"
+    #include "wx/dcclient.h"
+    #include "wx/settings.h"
+    #include "wx/dialog.h"
+#endif
+
+#include "wx/combo.h"
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxIMPLEMENT_DYNAMIC_CLASS2_XTI(wxOwnerDrawnComboBox, wxComboCtrl, \
+                               wxControlWithItems, "wx/odcombo.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxOwnerDrawnComboBox)
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxOwnerDrawnComboBox)
+
+wxCONSTRUCTOR_5( wxOwnerDrawnComboBox , wxWindow* , Parent , wxWindowID , \
+                 Id , wxString , Value , wxPoint , Position , wxSize , Size )
+
+#endif // wxUSE_ODCOMBOBOX
index 60192f151d76d2641a91f18da945e4d97a9ecf7e..fc6788c3aea07e43346f27a1f39c0f89fb67dca9 100644 (file)
@@ -1,87 +1,87 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/panelcmn.cpp\r
-// Purpose:     wxPanel common code\r
-// Author:      Julian Smart, Robert Roebling, Vadim Zeitlin\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: panelg.cpp 45056 2007-03-25 22:41:11Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/object.h"\r
-    #include "wx/font.h"\r
-    #include "wx/colour.h"\r
-    #include "wx/settings.h"\r
-    #include "wx/log.h"\r
-    #include "wx/panel.h"\r
-    #include "wx/containr.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxPanelStyle )\r
-wxBEGIN_FLAGS( wxPanelStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-wxEND_FLAGS( wxPanelStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxPanel, wxWindow, "wx/panel.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxPanel)\r
-    wxPROPERTY_FLAGS( WindowStyle, wxPanelStyle, long, \\r
-                      SetWindowStyleFlag, GetWindowStyleFlag, \\r
-                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-    // style wxTAB_TRAVERSAL\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxPanel)\r
-\r
-wxCONSTRUCTOR_6( wxPanel, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size, long, WindowStyle, \\r
-                 wxString, Name)\r
-\r
-\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/panelcmn.cpp
+// Purpose:     wxPanel common code
+// Author:      Julian Smart, Robert Roebling, Vadim Zeitlin
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/object.h"
+    #include "wx/font.h"
+    #include "wx/colour.h"
+    #include "wx/settings.h"
+    #include "wx/log.h"
+    #include "wx/panel.h"
+    #include "wx/containr.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxPanelStyle )
+wxBEGIN_FLAGS( wxPanelStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+wxEND_FLAGS( wxPanelStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxPanel, wxWindow, "wx/panel.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxPanel)
+    wxPROPERTY_FLAGS( WindowStyle, wxPanelStyle, long, \
+                      SetWindowStyleFlag, GetWindowStyleFlag, \
+                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+    // style wxTAB_TRAVERSAL
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxPanel)
+
+wxCONSTRUCTOR_6( wxPanel, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size, long, WindowStyle, \
+                 wxString, Name)
+
+
index a50e707c7ff82bf50fd8b707ed49a603ff18a1c9..5623b274e3bef561a3d8d4810e86565bf5ad2418 100644 (file)
@@ -1,93 +1,93 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/radiobtncmn.cpp\r
-// Purpose:     wxRadioButton common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: radiobut.cpp 41144 2006-09-10 23:08:13Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_RADIOBTN\r
-\r
-#include "wx/radiobut.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/settings.h"\r
-    #include "wx/dcscreen.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxRadioButtonStyle )\r
-wxBEGIN_FLAGS( wxRadioButtonStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxRB_GROUP)\r
-wxEND_FLAGS( wxRadioButtonStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxRadioButton, wxControl, "wx/radiobut.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxRadioButton)\r
-    wxEVENT_PROPERTY( Click, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEvent )\r
-    wxPROPERTY( Font, wxFont, SetFont, GetFont , wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString(), 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group") )\r
-    wxPROPERTY( Value,bool, SetValue, GetValue, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group") )\r
-    wxPROPERTY_FLAGS( WindowStyle, wxRadioButtonStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxRadioButton)\r
-\r
-wxCONSTRUCTOR_6( wxRadioButton, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxString, Label, wxPoint, Position, wxSize, Size, long, WindowStyle )\r
-\r
-\r
-#endif // wxUSE_RADIOBTN\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/radiobtncmn.cpp
+// Purpose:     wxRadioButton common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_RADIOBTN
+
+#include "wx/radiobut.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/settings.h"
+    #include "wx/dcscreen.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxRadioButtonStyle )
+wxBEGIN_FLAGS( wxRadioButtonStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxRB_GROUP)
+wxEND_FLAGS( wxRadioButtonStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxRadioButton, wxControl, "wx/radiobut.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxRadioButton)
+    wxEVENT_PROPERTY( Click, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEvent )
+    wxPROPERTY( Font, wxFont, SetFont, GetFont , wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString(), 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group") )
+    wxPROPERTY( Value,bool, SetValue, GetValue, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group") )
+    wxPROPERTY_FLAGS( WindowStyle, wxRadioButtonStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxRadioButton)
+
+wxCONSTRUCTOR_6( wxRadioButton, wxWindow*, Parent, wxWindowID, Id, \
+                 wxString, Label, wxPoint, Position, wxSize, Size, long, WindowStyle )
+
+
+#endif // wxUSE_RADIOBTN
index 6cedc3a3928bce799398d900c3266b78f53d50e8..2825d47cd58e47fc2e42f7e4aec61052f0e9ebc6 100644 (file)
@@ -1,90 +1,90 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/scrolbarcmn.cpp\r
-// Purpose:     wxScrollBar common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: scrolbar.cpp 39476 2006-05-30 13:43:18Z ABX $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_SCROLLBAR\r
-\r
-#include "wx/scrolbar.h"\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/utils.h"\r
-    #include "wx/settings.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxScrollBarStyle )\r
-wxBEGIN_FLAGS( wxScrollBarStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxSB_HORIZONTAL)\r
-    wxFLAGS_MEMBER(wxSB_VERTICAL)\r
-wxEND_FLAGS( wxScrollBarStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxScrollBar, wxControl, "wx/scrolbar.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxScrollBar)\r
-    wxEVENT_RANGE_PROPERTY( Scroll, wxEVT_SCROLL_TOP, \\r
-                            wxEVT_SCROLL_CHANGED, wxScrollEvent )\r
-\r
-    wxPROPERTY( ThumbPosition, int, SetThumbPosition, GetThumbPosition, 0, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Range, int, SetRange, GetRange, 0, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( ThumbSize, int, SetThumbSize, GetThumbSize, 0, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( PageSize, int, SetPageSize, GetPageSize, 0, \\r
-                0 /*flags*/, wxT("Helpstring"), wxT("group"))\r
-\r
-    wxPROPERTY_FLAGS( WindowStyle, wxScrollBarStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxScrollBar)\r
-\r
-wxCONSTRUCTOR_5( wxScrollBar, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size, long, WindowStyle )\r
-\r
-#endif // wxUSE_SCROLLBAR\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/scrolbarcmn.cpp
+// Purpose:     wxScrollBar common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_SCROLLBAR
+
+#include "wx/scrolbar.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/utils.h"
+    #include "wx/settings.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxScrollBarStyle )
+wxBEGIN_FLAGS( wxScrollBarStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxSB_HORIZONTAL)
+    wxFLAGS_MEMBER(wxSB_VERTICAL)
+wxEND_FLAGS( wxScrollBarStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxScrollBar, wxControl, "wx/scrolbar.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxScrollBar)
+    wxEVENT_RANGE_PROPERTY( Scroll, wxEVT_SCROLL_TOP, \
+                            wxEVT_SCROLL_CHANGED, wxScrollEvent )
+
+    wxPROPERTY( ThumbPosition, int, SetThumbPosition, GetThumbPosition, 0, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Range, int, SetRange, GetRange, 0, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( ThumbSize, int, SetThumbSize, GetThumbSize, 0, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( PageSize, int, SetPageSize, GetPageSize, 0, \
+                0 /*flags*/, wxT("Helpstring"), wxT("group"))
+
+    wxPROPERTY_FLAGS( WindowStyle, wxScrollBarStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxScrollBar)
+
+wxCONSTRUCTOR_5( wxScrollBar, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size, long, WindowStyle )
+
+#endif // wxUSE_SCROLLBAR
index ecec1562094193a2a5b350b7c5e9167a2bdb91ba..998593b7eeda69dce7cf75f604c192cdf017acc8 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/slidercmn.cpp\r
-// Purpose:     wxSlider common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: slider95.cpp 41054 2006-09-07 19:01:45Z ABX $\r
-// Copyright:   (c) Julian Smart 1998\r
-//                  Vadim Zeitlin 2004\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_SLIDER\r
-\r
-#include "wx/slider.h"\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxSliderStyle )\r
-wxBEGIN_FLAGS( wxSliderStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxSL_HORIZONTAL)\r
-    wxFLAGS_MEMBER(wxSL_VERTICAL)\r
-    wxFLAGS_MEMBER(wxSL_AUTOTICKS)\r
-    wxFLAGS_MEMBER(wxSL_LABELS)\r
-    wxFLAGS_MEMBER(wxSL_LEFT)\r
-    wxFLAGS_MEMBER(wxSL_TOP)\r
-    wxFLAGS_MEMBER(wxSL_RIGHT)\r
-    wxFLAGS_MEMBER(wxSL_BOTTOM)\r
-    wxFLAGS_MEMBER(wxSL_BOTH)\r
-    wxFLAGS_MEMBER(wxSL_SELRANGE)\r
-    wxFLAGS_MEMBER(wxSL_INVERSE)\r
-wxEND_FLAGS( wxSliderStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxSlider, wxControl, "wx/slider.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxSlider)\r
-    wxEVENT_RANGE_PROPERTY( Scroll, wxEVT_SCROLL_TOP, wxEVT_SCROLL_CHANGED, wxScrollEvent )\r
-    wxEVENT_PROPERTY( Updated, wxEVT_COMMAND_SLIDER_UPDATED, wxCommandEvent )\r
-\r
-    wxPROPERTY( Value, int, SetValue, GetValue, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Minimum, int, SetMin, GetMin, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Maximum, int, SetMax, GetMax, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( PageSize, int, SetPageSize, GetLineSize, 1, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( LineSize, int, SetLineSize, GetLineSize, 1, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( ThumbLength, int, SetThumbLength, GetThumbLength, 1, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-\r
-    wxPROPERTY_FLAGS( WindowStyle, wxSliderStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxSlider)\r
-\r
-wxCONSTRUCTOR_8( wxSlider, wxWindow*, Parent, wxWindowID, Id, int, Value, \\r
-                 int, Minimum, int, Maximum, wxPoint, Position, wxSize, Size, \\r
-                 long, WindowStyle )\r
-\r
-#endif // wxUSE_SLIDER\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/slidercmn.cpp
+// Purpose:     wxSlider common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart 1998
+//                  Vadim Zeitlin 2004
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_SLIDER
+
+#include "wx/slider.h"
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxSliderStyle )
+wxBEGIN_FLAGS( wxSliderStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxSL_HORIZONTAL)
+    wxFLAGS_MEMBER(wxSL_VERTICAL)
+    wxFLAGS_MEMBER(wxSL_AUTOTICKS)
+    wxFLAGS_MEMBER(wxSL_LABELS)
+    wxFLAGS_MEMBER(wxSL_LEFT)
+    wxFLAGS_MEMBER(wxSL_TOP)
+    wxFLAGS_MEMBER(wxSL_RIGHT)
+    wxFLAGS_MEMBER(wxSL_BOTTOM)
+    wxFLAGS_MEMBER(wxSL_BOTH)
+    wxFLAGS_MEMBER(wxSL_SELRANGE)
+    wxFLAGS_MEMBER(wxSL_INVERSE)
+wxEND_FLAGS( wxSliderStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxSlider, wxControl, "wx/slider.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxSlider)
+    wxEVENT_RANGE_PROPERTY( Scroll, wxEVT_SCROLL_TOP, wxEVT_SCROLL_CHANGED, wxScrollEvent )
+    wxEVENT_PROPERTY( Updated, wxEVT_COMMAND_SLIDER_UPDATED, wxCommandEvent )
+
+    wxPROPERTY( Value, int, SetValue, GetValue, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Minimum, int, SetMin, GetMin, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Maximum, int, SetMax, GetMax, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( PageSize, int, SetPageSize, GetLineSize, 1, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( LineSize, int, SetLineSize, GetLineSize, 1, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( ThumbLength, int, SetThumbLength, GetThumbLength, 1, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+
+    wxPROPERTY_FLAGS( WindowStyle, wxSliderStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxSlider)
+
+wxCONSTRUCTOR_8( wxSlider, wxWindow*, Parent, wxWindowID, Id, int, Value, \
+                 int, Minimum, int, Maximum, wxPoint, Position, wxSize, Size, \
+                 long, WindowStyle )
+
+#endif // wxUSE_SLIDER
index b89d1ef1db072c06e383043ffd8f3545ceb7325f..2d427121f1035ccf3fd9658cdff49ea9e7b7f882 100644 (file)
@@ -1,99 +1,99 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/spinbtncmn.cpp\r
-// Purpose:     wxSpinButton common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: spinbutt.cpp 44657 2007-03-07 22:56:34Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/app.h"\r
-#endif\r
-\r
-#if wxUSE_SPINBTN\r
-\r
-#include "wx/spinbutt.h"\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxSpinButtonStyle )\r
-wxBEGIN_FLAGS( wxSpinButtonStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxSP_HORIZONTAL)\r
-    wxFLAGS_MEMBER(wxSP_VERTICAL)\r
-    wxFLAGS_MEMBER(wxSP_ARROW_KEYS)\r
-    wxFLAGS_MEMBER(wxSP_WRAP)\r
-wxEND_FLAGS( wxSpinButtonStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinButton, wxControl, "wx/spinbut.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxSpinButton)\r
-    wxEVENT_RANGE_PROPERTY( Spin, wxEVT_SCROLL_TOP, wxEVT_SCROLL_CHANGED, wxSpinEvent )\r
-\r
-    wxPROPERTY( Value, int, SetValue, GetValue, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Min, int, SetMin, GetMin, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY( Max, int, SetMax, GetMax, 0, 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-\r
-    wxPROPERTY_FLAGS( WindowStyle, wxSpinButtonStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxSpinButton)\r
-\r
-wxCONSTRUCTOR_5( wxSpinButton, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size, long, WindowStyle )\r
-\r
-IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)\r
-\r
-\r
-#endif // wxUSE_SPINBTN\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/spinbtncmn.cpp
+// Purpose:     wxSpinButton common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+#endif
+
+#if wxUSE_SPINBTN
+
+#include "wx/spinbutt.h"
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxSpinButtonStyle )
+wxBEGIN_FLAGS( wxSpinButtonStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxSP_HORIZONTAL)
+    wxFLAGS_MEMBER(wxSP_VERTICAL)
+    wxFLAGS_MEMBER(wxSP_ARROW_KEYS)
+    wxFLAGS_MEMBER(wxSP_WRAP)
+wxEND_FLAGS( wxSpinButtonStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinButton, wxControl, "wx/spinbut.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxSpinButton)
+    wxEVENT_RANGE_PROPERTY( Spin, wxEVT_SCROLL_TOP, wxEVT_SCROLL_CHANGED, wxSpinEvent )
+
+    wxPROPERTY( Value, int, SetValue, GetValue, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Min, int, SetMin, GetMin, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY( Max, int, SetMax, GetMax, 0, 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+
+    wxPROPERTY_FLAGS( WindowStyle, wxSpinButtonStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxSpinButton)
+
+wxCONSTRUCTOR_5( wxSpinButton, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size, long, WindowStyle )
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
+
+
+#endif // wxUSE_SPINBTN
index acc10b342b59bad0955847bfb94d659f9de58a47..0b51444db8cfef792167ffc97a14fc3404a71d12 100644 (file)
@@ -1,85 +1,85 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/statbmpcmn.cpp\r
-// Purpose:     wxStaticBitmap common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: statbmp.cpp 42816 2006-10-31 08:50:17Z RD $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ===========================================================================\r
-// declarations\r
-// ===========================================================================\r
-\r
-// ---------------------------------------------------------------------------\r
-// headers\r
-// ---------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_STATBMP\r
-\r
-#include "wx/statbmp.h"\r
-\r
-// ---------------------------------------------------------------------------\r
-// XTI\r
-// ---------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxStaticBitmapStyle )\r
-wxBEGIN_FLAGS( wxStaticBitmapStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-wxEND_FLAGS( wxStaticBitmapStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBitmap, wxControl, "wx/statbmp.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxStaticBitmap)\r
-    wxPROPERTY_FLAGS( WindowStyle, wxStaticBitmapStyle, long, \\r
-                      SetWindowStyleFlag, GetWindowStyleFlag, \\r
-                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), \\r
-                      wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxStaticBitmap)\r
-\r
-wxCONSTRUCTOR_5( wxStaticBitmap, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxBitmap, Bitmap, wxPoint, Position, wxSize, Size )\r
-\r
-/*\r
-    TODO PROPERTIES :\r
-        bitmap\r
-*/\r
-\r
-#endif // wxUSE_STATBMP\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/statbmpcmn.cpp
+// Purpose:     wxStaticBitmap common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_STATBMP
+
+#include "wx/statbmp.h"
+
+// ---------------------------------------------------------------------------
+// XTI
+// ---------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxStaticBitmapStyle )
+wxBEGIN_FLAGS( wxStaticBitmapStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxStaticBitmapStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBitmap, wxControl, "wx/statbmp.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticBitmap)
+    wxPROPERTY_FLAGS( WindowStyle, wxStaticBitmapStyle, long, \
+                      SetWindowStyleFlag, GetWindowStyleFlag, \
+                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), \
+                      wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxStaticBitmap)
+
+wxCONSTRUCTOR_5( wxStaticBitmap, wxWindow*, Parent, wxWindowID, Id, \
+                 wxBitmap, Bitmap, wxPoint, Position, wxSize, Size )
+
+/*
+    TODO PROPERTIES :
+        bitmap
+*/
+
+#endif // wxUSE_STATBMP
index 6916286afbabe3d85a722b9cfb1b987ec61fedc1..5038b4c3c217404a5ba19c8d0836dca4bcc75307 100644 (file)
@@ -1,81 +1,81 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/statboxcmn.cpp\r
-// Purpose:     wxStaticBox common code\r
-// Author:      Julian Smart\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: statbox.cpp 45008 2007-03-22 02:28:06Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#if wxUSE_STATBOX\r
-\r
-#include "wx/statbox.h"\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxStaticBoxStyle )\r
-wxBEGIN_FLAGS( wxStaticBoxStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-wxEND_FLAGS( wxStaticBoxStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBox, wxControl, "wx/statbox.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxStaticBox)\r
-    wxPROPERTY( Label, wxString, SetLabel, GetLabel, wxString(), 0 /*flags*/, \\r
-                wxT("Helpstring"), wxT("group"))\r
-    wxPROPERTY_FLAGS( WindowStyle, wxStaticBoxStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxStaticBox)\r
-\r
-wxCONSTRUCTOR_6( wxStaticBox, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxString, Label, wxPoint, Position, wxSize, Size, \\r
-                 long, WindowStyle )\r
-\r
-#endif // wxUSE_STATBOX\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/statboxcmn.cpp
+// Purpose:     wxStaticBox common code
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_STATBOX
+
+#include "wx/statbox.h"
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxStaticBoxStyle )
+wxBEGIN_FLAGS( wxStaticBoxStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+wxEND_FLAGS( wxStaticBoxStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBox, wxControl, "wx/statbox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticBox)
+    wxPROPERTY( Label, wxString, SetLabel, GetLabel, wxString(), 0 /*flags*/, \
+                wxT("Helpstring"), wxT("group"))
+    wxPROPERTY_FLAGS( WindowStyle, wxStaticBoxStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxStaticBox)
+
+wxCONSTRUCTOR_6( wxStaticBox, wxWindow*, Parent, wxWindowID, Id, \
+                 wxString, Label, wxPoint, Position, wxSize, Size, \
+                 long, WindowStyle )
+
+#endif // wxUSE_STATBOX
index af1c82562d2e6f99c8b188ab230d59862f20839c..f2b0de3a309d3b0b1c521c492d6a7b6ce02484ab 100644 (file)
@@ -1,80 +1,80 @@
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/statlinecmn.cpp\r
-// Purpose:     wxStaticLine common code\r
-// Author:      Vadim Zeitlin\r
-// Created:     28.06.99\r
-// Version:     $Id: statline.cpp 41054 2006-09-07 19:01:45Z ABX $\r
-// Copyright:   (c) 1998 Vadim Zeitlin\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#include "wx/statline.h"\r
-\r
-#if wxUSE_STATLINE\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxStaticLineStyle )\r
-wxBEGIN_FLAGS( wxStaticLineStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-\r
-    wxFLAGS_MEMBER(wxLI_HORIZONTAL)\r
-    wxFLAGS_MEMBER(wxLI_VERTICAL)\r
-wxEND_FLAGS( wxStaticLineStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticLine, wxControl, "wx/statline.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxStaticLine)\r
-    wxPROPERTY_FLAGS( WindowStyle, wxStaticLineStyle, long, SetWindowStyleFlag, \\r
-                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxStaticLine)\r
-\r
-wxCONSTRUCTOR_5( wxStaticLine, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size, long, WindowStyle)\r
-\r
-#endif // wxUSE_STATLINE\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/statlinecmn.cpp
+// Purpose:     wxStaticLine common code
+// Author:      Vadim Zeitlin
+// Created:     28.06.99
+// Version:     $Id$
+// Copyright:   (c) 1998 Vadim Zeitlin
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/statline.h"
+
+#if wxUSE_STATLINE
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxStaticLineStyle )
+wxBEGIN_FLAGS( wxStaticLineStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+
+    wxFLAGS_MEMBER(wxLI_HORIZONTAL)
+    wxFLAGS_MEMBER(wxLI_VERTICAL)
+wxEND_FLAGS( wxStaticLineStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticLine, wxControl, "wx/statline.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticLine)
+    wxPROPERTY_FLAGS( WindowStyle, wxStaticLineStyle, long, SetWindowStyleFlag, \
+                      GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxStaticLine)
+
+wxCONSTRUCTOR_5( wxStaticLine, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size, long, WindowStyle)
+
+#endif // wxUSE_STATLINE