+
+
+/**
+ This macro may be used to append all elements of the @a other array to the
+ @a array. The two arrays must be of the same type.
+*/
+#define WX_APPEND_ARRAY(wxArray& array, wxArray& other)
+
+/**
+ This macro may be used to delete all elements of the array before emptying
+ it. It can not be used with wxObjArrays - but they will delete their
+ elements anyway when you call Empty().
+*/
+#define WX_CLEAR_ARRAY(wxArray& array)
+
+//@{
+/**
+ This macro declares a new object array class named @a name and containing
+ the elements of type @e T.
+
+ An exported array is used when compiling wxWidgets as a DLL under Windows
+ and the array needs to be visible outside the DLL. An user exported array
+ needed for exporting an array from a user DLL.
+
+ Example:
+
+ @code
+ class MyClass;
+ WX_DECLARE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
+ @endcode
+
+ You must use WX_DEFINE_OBJARRAY() macro to define the array class,
+ otherwise you would get link errors.
+*/
+#define WX_DECLARE_OBJARRAY(T, name)
+#define WX_DECLARE_EXPORTED_OBJARRAY(T, name)
+#define WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name)
+//@}
+
+//@{
+/**
+ This macro defines a new array class named @a name and containing the
+ elements of type @a T.
+
+ An exported array is used when compiling wxWidgets as a DLL under Windows
+ and the array needs to be visible outside the DLL. An user exported array
+ needed for exporting an array from a user DLL.
+
+ Example:
+
+ @code
+ WX_DEFINE_ARRAY_INT(int, MyArrayInt);
+
+ class MyClass;
+ WX_DEFINE_ARRAY(MyClass *, ArrayOfMyClass);
+ @endcode
+
+ Note that wxWidgets predefines the following standard array classes:
+ @b wxArrayInt, @b wxArrayLong, @b wxArrayShort, @b wxArrayDouble,
+ @b wxArrayPtrVoid.
+*/
+#define WX_DEFINE_ARRAY(T, name)
+#define WX_DEFINE_EXPORTED_ARRAY(T, name)
+#define WX_DEFINE_USER_EXPORTED_ARRAY(T, name, exportspec)
+//@}
+
+//@{
+/**
+ This macro defines the methods of the array class @a name not defined by
+ the WX_DECLARE_OBJARRAY() macro. You must include the file
+ @<wx/arrimpl.cpp@> before using this macro and you must have the full
+ declaration of the class of array elements in scope! If you forget to do
+ the first, the error will be caught by the compiler, but, unfortunately,
+ many compilers will not give any warnings if you forget to do the second -
+ but the objects of the class will not be copied correctly and their real
+ destructor will not be called.
+
+ An exported array is used when compiling wxWidgets as a DLL under Windows
+ and the array needs to be visible outside the DLL. An user exported array
+ needed for exporting an array from a user DLL.
+
+ Example of usage:
+
+ @code
+ // first declare the class!
+ class MyClass
+ {
+ public:
+ MyClass(const MyClass&);
+
+ // ...
+
+ virtual ~MyClass();
+ };
+
+ #include <wx/arrimpl.cpp>
+ WX_DEFINE_OBJARRAY(wxArrayOfMyClass);
+ @endcode
+*/
+#define WX_DEFINE_OBJARRAY(name)
+#define WX_DEFINE_EXPORTED_OBJARRAY(name)
+#define WX_DEFINE_USER_EXPORTED_OBJARRAY(name)
+//@}
+
+//@{
+/**
+ This macro defines a new sorted array class named @a name and containing
+ the elements of type @e T.
+
+ An exported array is used when compiling wxWidgets as a DLL under Windows
+ and the array needs to be visible outside the DLL. An user exported array
+ needed for exporting an array from a user DLL.
+
+ Example:
+
+ @code
+ WX_DEFINE_SORTED_ARRAY_INT(int, MySortedArrayInt);
+
+ class MyClass;
+ WX_DEFINE_SORTED_ARRAY(MyClass *, ArrayOfMyClass);
+ @endcode
+
+ You will have to initialize the objects of this class by passing a
+ comparison function to the array object constructor like this:
+
+ @code
+ int CompareInts(int n1, int n2)
+ {
+ return n1 - n2;
+ }
+
+ MySortedArrayInt sorted(CompareInts);
+
+ int CompareMyClassObjects(MyClass *item1, MyClass *item2)
+ {
+ // sort the items by their address...
+ return Stricmp(item1->GetAddress(), item2->GetAddress());
+ }
+
+ ArrayOfMyClass another(CompareMyClassObjects);
+ @endcode
+*/
+#define WX_DEFINE_SORTED_ARRAY(T, name)
+#define WX_DEFINE_SORTED_EXPORTED_ARRAY(T, name)
+#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY(T, name)
+//@}
+
+/**
+ This macro may be used to prepend all elements of the @a other array to the
+ @a array. The two arrays must be of the same type.
+*/
+#define WX_PREPEND_ARRAY(wxArray& array, wxArray& other)
+