]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/variant.tex
non-pch build fixes
[wxWidgets.git] / docs / latex / wx / variant.tex
index 6394598e1d3c1244675b15d75b5331fcce4eb05f..5ede86d94052371f172fc756e6807d7ee66396df 100644 (file)
@@ -44,15 +44,15 @@ cannot be declared outside the class, the shift left operators are used like thi
 \begin{verbatim}
     // in the header file
     DECLARE_VARIANT_OBJECT(MyClass)
 \begin{verbatim}
     // in the header file
     DECLARE_VARIANT_OBJECT(MyClass)
-    
+
     // in the implementation file
     // in the implementation file
-    IMPLMENT_VARIANT_OBJECT(MyClass)
-    
+    IMPLEMENT_VARIANT_OBJECT(MyClass)
+
     // in the user code
     wxVariant variant;
     MyClass value;
     variant << value;
     // in the user code
     wxVariant variant;
     MyClass value;
     variant << value;
-    
+
     // or
     value << variant;
 \end{verbatim}
     // or
     value << variant;
 \end{verbatim}
@@ -74,7 +74,14 @@ IMPLEMENT_VARIANT_OBJECT(wxBitmap)
 
 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
 
 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.
+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}
 
 
 \wxheading{Derived from}
 
@@ -155,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}
 
@@ -364,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}}
@@ -524,6 +540,10 @@ when the reference count reaches zero.
 
 <wx/variant.h>
 
 
 <wx/variant.h>
 
+\wxheading{Derived from}
+
+No base class
+
 \wxheading{Library}
 
 \helpref{wxBase}{librarieslist}
 \wxheading{Library}
 
 \helpref{wxBase}{librarieslist}
@@ -540,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}
@@ -551,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}}