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,
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
wxVariant is similar to wxExpr and also to wxPropertyValue. However, wxExpr is efficiency-optimized for
|
|
|
|
a restricted range of data types, whereas wxVariant is less efficient but more extensible.
|
|
|
|
wxPropertyValue may be replaced by wxVariant eventually.
|
|
|
|
|
|
|
|
\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{const wxStringList\&}{ value}, \param{const wxString\& }{name = ``"}}
|
|
|
|
|
|
|
|
Construction from a list of strings. 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 = ``"}}
|
|
|
|
|
|
|
|
Construction from user-defined data. The variant holds on to the {\it data} pointer.
|
|
|
|
|
|
|
|
\membersection{wxVariant::\destruct{wxVariant}}\label{wxvariantdtor}
|
|
|
|
|
|
|
|
\func{}{\destruct{wxVariant}}{\void}
|
|
|
|
|
|
|
|
Destructor.
|
|
|
|
|
|
|
|
\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.
|
|
|
|
|
|
|
|
\membersection{wxVariant::GetCount}\label{wxvariantgetcount}
|
|
|
|
|
|
|
|
\constfunc{int}{GetCount}{\void}
|
|
|
|
|
|
|
|
Returns the number of elements in the list.
|
|
|
|
|
|
|
|
\membersection{wxVariant::Delete}\label{wxvariantdelete}
|
|
|
|
|
|
|
|
\func{bool}{Delete}{\param{int }{item}}
|
|
|
|
|
|
|
|
Deletes the zero-based {\it item} from the list.
|
|
|
|
|
|
|
|
\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.
|
|
|
|
|
|
|
|
\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}}
|
|
|
|
|
|
|
|
\func{void}{operator $=$}{\param{const wxStringList\& }{value}}
|
|
|
|
|
|
|
|
Assignment operators.
|
|
|
|
|
|
|
|
\membersection{wxVariant::operator $==$}\label{wxvarianteq}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const wxVariant\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const wxString\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const char* }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{char }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const long }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const bool }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const double }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{void* }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const wxList\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $==$}{\param{const wxStringList\& }{value}}
|
|
|
|
|
|
|
|
Equality test operators.
|
|
|
|
|
|
|
|
\membersection{wxVariant::operator $!=$}\label{wxvariantneq}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxVariant\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxString\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const char* }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{char }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const long }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const bool }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const double }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{void* }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxList\& }{value}}
|
|
|
|
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxStringList\& }{value}}
|
|
|
|
|
|
|
|
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}.
|
|
|
|
|
|
|
|
\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
|
|
|
|
{\tt NULL} otherwise.
|
|
|
|
|
|
|
|
|
|
|
|
\wxheading{See also}
|
1998-11-29 16:12:52 -05:00
|
|
|
|
2003-06-02 17:17:28 -04:00
|
|
|
\helpref{RTTI overview}{runtimeclassoverview}\\
|
|
|
|
\helpref{wxDynamicCast}{wxdynamiccast}\\
|