]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/variant.tex
wxRichTextAttr does not exist anymore - document instead wxTextAttr
[wxWidgets.git] / docs / latex / wx / variant.tex
index a7cbd9e2499f119c37b75b31d19fdc086cd7d89a..3bf09e16f77eeff9f2ecabd5d912ac3f09bf88b5 100644 (file)
@@ -72,6 +72,17 @@ IMPLEMENT_VARIANT_OBJECT(wxIcon)
 IMPLEMENT_VARIANT_OBJECT(wxBitmap)
 \end{verbatim}
 
 IMPLEMENT_VARIANT_OBJECT(wxBitmap)
 \end{verbatim}
 
+Note that as of wxWidgets 2.9.0, wxVariantData no longer inherits from wxObject
+and wxVariant no longer uses the type-unsafe wxList class for list
+operations but the type-safe wxVariantList class. Also, wxVariantData now
+supports the Clone function for implementing the \helpref{wxVariant::Unshare}{wxvariantunshare} function.
+Clone is implemented automatically by IMPLEMENT\_VARIANT\_OBJECT.
+
+Since wxVariantData no longer derives from wxObject, any code that tests the type
+of the data using wxDynamicCast will require adjustment. You can use the macro
+wxDynamicCastVariantData with the same arguments as wxDynamicCast, to use C++ RTTI
+type information instead of wxWidgets RTTI.
+
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
@@ -80,6 +91,10 @@ IMPLEMENT_VARIANT_OBJECT(wxBitmap)
 
 <wx/variant.h>
 
 
 <wx/variant.h>
 
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
 \wxheading{See also}
 
 \helpref{wxVariantData}{wxvariantdata}
 \wxheading{See also}
 
 \helpref{wxVariantData}{wxvariantdata}
@@ -119,7 +134,7 @@ Construction from a boolean value.
 
 Construction from a double-precision floating point value.
 
 
 Construction from a double-precision floating point value.
 
-\func{}{wxVariant}{\param{const wxList\&}{ value}, \param{const wxString\& }{name = ``"}}
+\func{}{wxVariant}{\param{const wxVariantList\&}{ value}, \param{const wxString\& }{name = ``"}}
 
 Construction from a list of wxVariant objects. This constructor
 copies {\it value}, the application is still responsible for
 
 Construction from a list of wxVariant objects. This constructor
 copies {\it value}, the application is still responsible for
@@ -147,15 +162,15 @@ Construction from an array of strings.  This constructor copies {\it value} and
 
 \func{}{wxVariant}{\param{DATE\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
 
 \func{}{wxVariant}{\param{DATE\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
-Construction from a odbc date value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
+Construction from a ODBC date value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
 
 \func{}{wxVariant}{\param{TIME\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
 
 \func{}{wxVariant}{\param{TIME\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
-Construction from a odbc time value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
+Construction from a ODBC time value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
 
 \func{}{wxVariant}{\param{TIMESTAMP\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
 
 \func{}{wxVariant}{\param{TIMESTAMP\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}}
 
-Construction from a odbc timestamp value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
+Construction from a ODBC timestamp value.  Represented internally by a \helpref{wxDateTime}{wxdatetime} value.
 
 \membersection{wxVariant::\destruct{wxVariant}}\label{wxvariantdtor}
 
 
 \membersection{wxVariant::\destruct{wxVariant}}\label{wxvariantdtor}
 
@@ -256,6 +271,13 @@ Returns the date value.
 
 Returns the floating point value.
 
 
 Returns the floating point value.
 
+\membersection{wxVariant::GetList}\label{wxvariantgetlist}
+
+\constfunc{wxVariantList &}{GetList}{\void}
+
+Returns a reference to the wxVariantList class used by
+wxVariant if this wxVariant is currently a list of variants.
+
 \membersection{wxVariant::GetLong}\label{wxvariantgetlong}
 
 \constfunc{long}{GetLong}{\void}
 \membersection{wxVariant::GetLong}\label{wxvariantgetlong}
 
 \constfunc{long}{GetLong}{\void}
@@ -278,7 +300,7 @@ Gets the string value.
 
 \constfunc{wxString}{GetType}{\void}
 
 
 \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*.
+Returns the value type as a string. The built-in types are: bool, char, datetime, double, list, long, string, arrstring, void*.
 
 If the variant is null, the value type returned is the string ``null" (not the empty string).
 
 
 If the variant is null, the value type returned is the string ``null" (not the empty string).
 
@@ -349,6 +371,15 @@ is of type list, but the number of elements in the list is zero.
 
 Sets the internal variant data, deleting the existing data if there is any.
 
 
 Sets the internal variant data, deleting the existing data if there is any.
 
+\membersection{wxVariant::Unshare}\label{wxvariantunshare}
+
+\func{bool}{Unshare}{\void}
+
+Makes sure that any data associated with this variant is not shared with other
+variants. For this to work, \helpref{wxVariantData::Clone}{wxvariantdataclone} must
+be implemented for the data types you are working with. Clone is implemented
+for all the default data types.
+
 \membersection{wxVariant::operator $=$}\label{wxvariantassignment}
 
 \func{void}{operator $=$}{\param{const wxVariant\& }{value}}
 \membersection{wxVariant::operator $=$}\label{wxvariantassignment}
 
 \func{void}{operator $=$}{\param{const wxVariant\& }{value}}
@@ -371,7 +402,7 @@ Sets the internal variant data, deleting the existing data if there is any.
 
 \func{void}{operator $=$}{\param{wxObject* }{value}}
 
 
 \func{void}{operator $=$}{\param{wxObject* }{value}}
 
-\func{void}{operator $=$}{\param{const wxList\& }{value}}
+\func{void}{operator $=$}{\param{const wxVariantList\& }{value}}
 
 \func{void}{operator $=$}{\param{const wxDateTime\& }{value}}
 
 
 \func{void}{operator $=$}{\param{const wxDateTime\& }{value}}
 
@@ -405,7 +436,7 @@ Assignment operators, using \helpref{reference counting}{trefcount} when possibl
 
 \constfunc{bool}{operator $==$}{\param{wxObject* }{value}}
 
 
 \constfunc{bool}{operator $==$}{\param{wxObject* }{value}}
 
-\constfunc{bool}{operator $==$}{\param{const wxList\& }{value}}
+\constfunc{bool}{operator $==$}{\param{const wxVariantList\& }{value}}
 
 \constfunc{bool}{operator $==$}{\param{const wxArrayString\& }{value}}
 
 
 \constfunc{bool}{operator $==$}{\param{const wxArrayString\& }{value}}
 
@@ -433,7 +464,7 @@ Equality test operators.
 
 \constfunc{bool}{operator $!=$}{\param{wxObject* }{value}}
 
 
 \constfunc{bool}{operator $!=$}{\param{wxObject* }{value}}
 
-\constfunc{bool}{operator $!=$}{\param{const wxList\& }{value}}
+\constfunc{bool}{operator $!=$}{\param{const wxVariantList\& }{value}}
 
 \constfunc{bool}{operator $!=$}{\param{const wxArrayString\& }{value}}
 
 
 \constfunc{bool}{operator $!=$}{\param{const wxArrayString\& }{value}}
 
@@ -505,13 +536,17 @@ Also note that the destructor is protected, so you can never explicitly delete a
 instance. Instead, \helpref{DecRef}{wxvariantdatadecref} will delete the object automatically
 when the reference count reaches zero.
 
 instance. Instead, \helpref{DecRef}{wxvariantdatadecref} will delete the object automatically
 when the reference count reaches zero.
 
+\wxheading{Include files}
+
+<wx/variant.h>
+
 \wxheading{Derived from}
 
 \wxheading{Derived from}
 
-\helpref{wxObject}{wxobject}
+No base class
 
 
-\wxheading{Include files}
+\wxheading{Library}
 
 
-<wx/variant.h>
+\helpref{wxBase}{librarieslist}
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -525,6 +560,14 @@ when the reference count reaches zero.
 
 Default constructor.
 
 
 Default constructor.
 
+\membersection{wxVariantData::Clone}\label{wxvariantdataclone}
+
+\constfunc{wxVariantData*}{Clone}{\void}
+
+This function can be overridden to clone the data.
+Implement Clone if you wish \helpref{wxVariant::Unshare}{wxvariantunshare} to work
+for your data. This function is implemented for all built-in data types.
+
 \membersection{wxVariantData::DecRef}\label{wxvariantdatadecref}
 
 \func{void}{DecRef}{\void}
 \membersection{wxVariantData::DecRef}\label{wxvariantdatadecref}
 
 \func{void}{DecRef}{\void}
@@ -536,7 +579,6 @@ Note that destructor of wxVariantData is protected, so delete
 cannot be used as normal. Instead, \helpref{DecRef}{wxvariantdatadecref} should be called.
 
 
 cannot be used as normal. Instead, \helpref{DecRef}{wxvariantdatadecref} should be called.
 
 
-
 \membersection{wxVariantData::Eq}\label{wxvariantdataeq}
 
 \constfunc{bool}{Eq}{\param{wxVariantData\&}{ data}}
 \membersection{wxVariantData::Eq}\label{wxvariantdataeq}
 
 \constfunc{bool}{Eq}{\param{wxVariantData\&}{ data}}