2006-03-12 09:49:25 -05:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: variant.tex
%% Purpose: wxVariant docs
%% Author: wxWidgets Team
%% Modified by:
%% Created: 01/30/2005
%% RCS-ID: $Id$
%% Copyright: (c) wxWidgets Team
%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1998-11-29 16:12:52 -05:00
\section { \class { wxVariant} } \label { wxvariant}
The { \bf wxVariant} class represents a container for any type.
A variant's value can be changed at run time, possibly to a different type of value.
As standard, wxVariant can store values of type bool, char, double, long, string,
2004-09-23 21:20:18 -04:00
string list, time, date, void pointer, list of strings, and list of variants. However, an application can extend wxVariant's capabilities by deriving from the class \helpref { wxVariantData} { wxvariantdata} and using the wxVariantData form of the wxVariant constructor or assignment operator to assign this data to a variant. Actual values for user-defined types will need to be accessed via the wxVariantData object, unlike the case for basic data types where convenience functions such as GetLong can be used.
1998-11-29 16:12:52 -05:00
This class is useful for reducing the programming for certain tasks, such as an editor
for different data types, or a remote procedure call protocol.
An optional name member is associated with a wxVariant. This might be used, for example, in CORBA
or OLE automation classes, where named parameters are required.
\wxheading { Derived from}
\helpref { wxObject} { wxobject}
1999-02-15 15:41:29 -05:00
\wxheading { Include files}
<wx/variant.h>
1998-11-29 16:12:52 -05:00
\wxheading { See also}
\helpref { wxVariantData} { wxvariantdata}
\latexignore { \rtfignore { \wxheading { Members} } }
\membersection { wxVariant::wxVariant} \label { wxvariantctor}
\func { } { wxVariant} { \void }
Default constructor.
\func { } { wxVariant} { \param { const wxVariant\& } { variant} }
Copy constructor.
2000-07-15 15:51:35 -04:00
\func { } { wxVariant} { \param { const char*} { value} , \param { const wxString\& } { name = ``"} }
1998-11-29 16:12:52 -05:00
\func { } { wxVariant} { \param { const wxString\& } { value} , \param { const wxString\& } { name = ``"} }
Construction from a string value.
\func { } { wxVariant} { \param { char} { value} , \param { const wxString\& } { name = ``"} }
Construction from a character value.
\func { } { wxVariant} { \param { long} { value} , \param { const wxString\& } { name = ``"} }
Construction from an integer value. You may need to cast to (long) to
avoid confusion with other constructors (such as the bool constructor).
\func { } { wxVariant} { \param { bool} { value} , \param { const wxString\& } { name = ``"} }
Construction from a boolean value.
\func { } { wxVariant} { \param { double} { value} , \param { const wxString\& } { name = ``"} }
Construction from a double-precision floating point value.
\func { } { wxVariant} { \param { const wxList\& } { value} , \param { const wxString\& } { name = ``"} }
Construction from a list of wxVariant objects. This constructor
copies { \it value} , the application is still responsible for
deleting { \it value} and its contents.
\func { } { wxVariant} { \param { void*} { value} , \param { const wxString\& } { name = ``"} }
Construction from a void pointer.
2003-06-02 17:17:28 -04:00
\func { } { wxVariant} { \param { wxObject*} { value} , \param { const wxString\& } { name = ``"} }
Construction from a wxObject pointer.
1998-11-29 16:12:52 -05:00
\func { } { wxVariant} { \param { wxVariantData*} { data} , \param { const wxString\& } { name = ``"} }
2004-09-23 21:20:18 -04:00
Construction from user-defined data. The variant holds onto the { \it data} pointer.
\func { } { wxVariant} { \param { wxDateTime\& } { val} , \param { const wxString\& } { name = ``"} }
2006-03-12 09:49:25 -05:00
Construction from a \helpref { wxDateTime} { wxdatetime} .
2004-09-23 21:20:18 -04:00
\func { } { wxVariant} { \param { wxArrayString\& } { val} , \param { const wxString\& } { name = ``"} }
Construction from an array of strings. This constructor copies { \it value} and its contents.
\func { } { wxVariant} { \param { DATE\_ STRUCT*} { val} , \param { const wxString\& } { name = ``"} }
Construction from a odbc date value. Represented internally by a \helpref { wxDateTime} { wxdatetime} value.
\func { } { wxVariant} { \param { TIME\_ STRUCT*} { val} , \param { const wxString\& } { name = ``"} }
Construction from a odbc time value. Represented internally by a \helpref { wxDateTime} { wxdatetime} value.
\func { } { wxVariant} { \param { TIMESTAMP\_ STRUCT*} { val} , \param { const wxString\& } { name = ``"} }
Construction from a odbc timestamp value. Represented internally by a \helpref { wxDateTime} { wxdatetime} value.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::\destruct { wxVariant} } \label { wxvariantdtor}
\func { } { \destruct { wxVariant} } { \void }
Destructor.
2004-09-23 21:20:18 -04:00
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::Append} \label { wxvariantappend}
\func { void} { Append} { \param { const wxVariant\& } { value} }
Appends a value to the list.
\membersection { wxVariant::ClearList} \label { wxvariantclearlist}
\func { void} { ClearList} { \void }
Deletes the contents of the list.
2004-09-23 21:20:18 -04:00
\membersection { wxVariant::Convert} \label { wxvariantconvert}
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { long*} { value} }
2004-09-23 21:20:18 -04:00
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { bool*} { value} }
2004-09-23 21:20:18 -04:00
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { double*} { value} }
2004-09-23 21:20:18 -04:00
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { wxString*} { value} }
2004-09-23 21:20:18 -04:00
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { char*} { value} }
2004-09-23 21:20:18 -04:00
2005-02-19 19:07:35 -05:00
\constfunc { bool} { Convert} { \param { wxDateTime*} { value} }
2004-09-23 21:20:18 -04:00
Retrieves and converts the value of this variant to the type that { \it value} is.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::GetCount} \label { wxvariantgetcount}
2006-03-13 19:24:53 -05:00
\constfunc { size\_ t} { GetCount} { \void }
1998-11-29 16:12:52 -05:00
Returns the number of elements in the list.
\membersection { wxVariant::Delete} \label { wxvariantdelete}
2006-03-13 19:24:53 -05:00
\func { bool} { Delete} { \param { size\_ t } { item} }
1998-11-29 16:12:52 -05:00
Deletes the zero-based { \it item} from the list.
2004-09-23 21:20:18 -04:00
\membersection { wxVariant::GetArrayString} \label { wxvariantgetarraystring}
\constfunc { wxArrayString} { GetArrayString} { \void }
Returns the string array value.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::GetBool} \label { wxvariantgetbool}
\constfunc { bool} { GetBool} { \void }
Returns the boolean value.
\membersection { wxVariant::GetChar} \label { wxvariantgetchar}
\constfunc { char} { GetChar} { \void }
Returns the character value.
\membersection { wxVariant::GetData} \label { wxvariantgetdata}
\constfunc { wxVariantData*} { GetData} { \void }
Returns a pointer to the internal variant data.
2004-09-23 21:20:18 -04:00
\membersection { wxVariant::GetDateTime} \label { wxvariantgetdatetime}
\constfunc { wxDateTime} { GetDateTime} { \void }
Returns the date value.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::GetDouble} \label { wxvariantgetdouble}
\constfunc { double} { GetDouble} { \void }
Returns the floating point value.
\membersection { wxVariant::GetLong} \label { wxvariantgetlong}
\constfunc { long} { GetLong} { \void }
Returns the integer value.
\membersection { wxVariant::GetName} \label { wxvariantgetname}
\constfunc { const wxString\& } { GetName} { \void }
Returns a constant reference to the variant name.
\membersection { wxVariant::GetString} \label { wxvariantgetstring}
\constfunc { wxString} { GetString} { \void }
Gets the string value.
\membersection { wxVariant::GetType} \label { wxvariantgettype}
\constfunc { wxString} { GetType} { \void }
Returns the value type as a string. The built-in types are: bool, char, date, double, list, long, string, stringlist, time, void*.
If the variant is null, the value type returned is the string ``null" (not the empty string).
\membersection { wxVariant::GetVoidPtr} \label { wxvariantgetvoidptr}
\constfunc { void*} { GetVoidPtr} { \void }
Gets the void pointer value.
2003-06-02 17:17:28 -04:00
\membersection { wxVariant::GetWxObjectPtr} \label { wxvariantgetwxobjectptr}
\constfunc { void*} { GetWxObjectPtr} { \void }
Gets the wxObject pointer value.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::Insert} \label { wxvariantinsert}
\func { void} { Insert} { \param { const wxVariant\& } { value} }
Inserts a value at the front of the list.
\membersection { wxVariant::IsNull} \label { wxvariantisnull}
\constfunc { bool} { IsNull} { \void }
2003-01-17 19:16:34 -05:00
Returns true if there is no data associated with this variant, false if there is data.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::IsType} \label { wxvariantistype}
\constfunc { bool} { IsType} { \param { const wxString\& } { type} }
2003-01-17 19:16:34 -05:00
Returns true if { \it type} matches the type of the variant, false otherwise.
1998-11-29 16:12:52 -05:00
2003-06-02 17:17:28 -04:00
\membersection { wxVariant::IsValueKindOf} \label { wxvariantisvaluekindof}
\constfunc { bool} { IsValueKindOf} { \param { const wxClassInfo* type} { type} }
Returns true if the data is derived from the class described by { \it type} , false otherwise.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::MakeNull} \label { wxvariantmakenull}
\func { void} { MakeNull} { \void }
Makes the variant null by deleting the internal data.
\membersection { wxVariant::MakeString} \label { wxvariantmakestring}
\constfunc { wxString} { MakeString} { \void }
Makes a string representation of the variant value (for any type).
\membersection { wxVariant::Member} \label { wxvariantmember}
\constfunc { bool} { Member} { \param { const wxVariant\& } { value} }
2003-01-17 19:16:34 -05:00
Returns true if { \it value} matches an element in the list.
1998-11-29 16:12:52 -05:00
\membersection { wxVariant::NullList} \label { wxvariantnulllist}
\func { void} { NullList} { \void }
Makes an empty list. This differs from a null variant which has no data; a null list
is of type list, but the number of elements in the list is zero.
\membersection { wxVariant::SetData} \label { wxvariantsetdata}
\func { void} { SetData} { \param { wxVariantData*} { data} }
Sets the internal variant data, deleting the existing data if there is any.
\membersection { wxVariant::operator $ = $ } \label { wxvariantassignment}
\func { void} { operator $ = $ } { \param { const wxVariant\& } { value} }
\func { void} { operator $ = $ } { \param { wxVariantData* } { value} }
\func { void} { operator $ = $ } { \param { const wxString\& } { value} }
\func { void} { operator $ = $ } { \param { const char* } { value} }
\func { void} { operator $ = $ } { \param { char } { value} }
\func { void} { operator $ = $ } { \param { const long } { value} }
\func { void} { operator $ = $ } { \param { const bool } { value} }
\func { void} { operator $ = $ } { \param { const double } { value} }
\func { void} { operator $ = $ } { \param { void* } { value} }
\func { void} { operator $ = $ } { \param { const wxList\& } { value} }
2004-09-23 21:20:18 -04:00
\func { void} { operator $ = $ } { \param { const wxDateTime\& } { value} }
\func { void} { operator $ = $ } { \param { const wxArrayString\& } { value} }
\func { void} { operator $ = $ } { \param { const DATE\_ STRUCT* } { value} }
\func { void} { operator $ = $ } { \param { const TIME\_ STRUCT* } { value} }
\func { void} { operator $ = $ } { \param { const TIMESTAMP\_ STRUCT* } { value} }
1998-11-29 16:12:52 -05:00
Assignment operators.
\membersection { wxVariant::operator $ = = $ } \label { wxvarianteq}
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const wxVariant\& } { value} }
\constfunc { bool} { operator $ = = $ } { \param { const wxString\& } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const char* } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { char } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const long } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const bool } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const double } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { void* } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const wxList\& } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ = = $ } { \param { const wxArrayString\& } { value} }
\constfunc { bool} { operator $ = = $ } { \param { const wxDateTime\& } { value} }
1998-11-29 16:12:52 -05:00
Equality test operators.
\membersection { wxVariant::operator $ ! = $ } \label { wxvariantneq}
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const wxVariant\& } { value} }
\constfunc { bool} { operator $ ! = $ } { \param { const wxString\& } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const char* } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { char } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const long } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const bool } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const double } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { void* } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const wxList\& } { value} }
1998-11-29 16:12:52 -05:00
2004-09-23 21:20:18 -04:00
\constfunc { bool} { operator $ ! = $ } { \param { const wxArrayString\& } { value} }
\constfunc { bool} { operator $ ! = $ } { \param { const wxDateTime\& } { value} }
1998-11-29 16:12:52 -05:00
Inequality test operators.
\membersection { wxVariant::operator $ [ ] $ } \label { wxvariantarray}
\constfunc { wxVariant} { operator $ [ ] $ } { \param { size\_ t } { idx} }
Returns the value at { \it idx} (zero-based).
\func { wxVariant\& } { operator $ [ ] $ } { \param { size\_ t } { idx} }
Returns a reference to the value at { \it idx} (zero-based). This can be used
to change the value at this index.
\membersection { wxVariant::operator char} \label { wxvariantchar}
\constfunc { char} { operator char} { \void }
Operator for implicit conversion to a char, using \helpref { wxVariant::GetChar} { wxvariantgetchar} .
\membersection { wxVariant::operator double} \label { wxvariantdouble}
\constfunc { double} { operator double} { \void }
Operator for implicit conversion to a double, using \helpref { wxVariant::GetDouble} { wxvariantgetdouble} .
\constfunc { long} { operator long} { \void }
Operator for implicit conversion to a long, using \helpref { wxVariant::GetLong} { wxvariantgetlong} .
\membersection { wxVariant::operator wxString} \label { wxvariantwxstring}
\constfunc { wxString} { operator wxString} { \void }
Operator for implicit conversion to a string, using \helpref { wxVariant::MakeString} { wxvariantmakestring} .
\membersection { wxVariant::operator void*} \label { wxvariantvoid}
\constfunc { void*} { operator void*} { \void }
Operator for implicit conversion to a pointer to a void, using \helpref { wxVariant::GetVoidPtr} { wxvariantgetvoidptr} .
2004-09-23 21:20:18 -04:00
\membersection { wxVariant::operator wxDateTime} \label { wxvariantdatetime}
\constfunc { void*} { operator wxDateTime} { \void }
Operator for implicit conversion to a pointer to a \helpref { wxDateTime} { wxdatetime} , using \helpref { wxVariant::GetDateTime} { wxvariantgetdatetime} .
1998-11-29 16:12:52 -05:00
\section { \class { wxVariantData} } \label { wxvariantdata}
The { \bf wxVariantData} is used to implement a new type for wxVariant. Derive from wxVariantData,
and override the pure virtual functions.
\wxheading { Derived from}
\helpref { wxObject} { wxobject}
1999-02-15 15:41:29 -05:00
\wxheading { Include files}
<wx/variant.h>
1998-11-29 16:12:52 -05:00
\wxheading { See also}
\helpref { wxVariant} { wxvariant}
\latexignore { \rtfignore { \wxheading { Members} } }
\membersection { wxVariantData::wxVariantData} \label { wxvariantdatactor}
\func { } { wxVariantData} { \void }
Default constructor.
\membersection { wxVariantData::Copy} \label { wxvariantdatacopy}
\func { void} { Copy} { \param { wxVariantData\& } { data} }
Copy the data from `this' object to { \it data} .
\membersection { wxVariantData::Eq} \label { wxvariantdataeq}
\constfunc { bool} { Eq} { \param { wxVariantData\& } { data} }
2003-01-17 19:16:34 -05:00
Returns true if this object is equal to { \it data} .
1998-11-29 16:12:52 -05:00
\membersection { wxVariantData::GetType} \label { wxvariantdatagettype}
\constfunc { wxString} { GetType} { \void }
Returns the string type of the data.
2003-06-02 17:17:28 -04:00
\membersection { wxVariantData::GetValueClassInfo} \label { wxvariantdatagetvalueclassinfo}
\constfunc { wxClassInfo*} { GetValueClassInfo} { \void }
If the data is a wxObject returns a pointer to the objects wxClassInfo structure, if
the data isn't a wxObject the method returns NULL.
1998-11-29 16:12:52 -05:00
\membersection { wxVariantData::Read} \label { wxvariantdataread}
\func { bool} { Read} { \param { ostream\& } { stream} }
\func { bool} { Read} { \param { wxString\& } { string} }
Reads the data from { \it stream} or { \it string} .
\membersection { wxVariantData::Write} \label { wxvariantdatawrite}
\constfunc { bool} { Write} { \param { ostream\& } { stream} }
\constfunc { bool} { Write} { \param { wxString\& } { string} }
Writes the data to { \it stream} or { \it string} .
2003-06-02 17:17:28 -04:00
\membersection { wxGetVariantCast} \label { wxgetvariantcast}
\func { classname *} { wxGetVariantCast} { wxVariant\& , classname}
This macro returns the data stored in { \it variant} cast to the type { \it classname *} if
the data is of this type (the check is done during the run-time) or
2006-03-12 09:49:25 -05:00
{ \tt NULL} otherwise.
2003-06-02 17:17:28 -04:00
\wxheading { See also}
1998-11-29 16:12:52 -05:00
2003-06-02 17:17:28 -04:00
\helpref { RTTI overview} { runtimeclassoverview} \\
2003-08-24 04:16:37 -04:00
\helpref { wxDynamicCast} { wxdynamiccast}