Added docs to wxTrackable and wxWeakRef<T>
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -373,7 +373,17 @@ of these classes provide a subset or almost complete STL API.
|
||||
\twocolitem{\helpref{wxHashSet<T>}{wxhashset}}{A type-safe hash set implementation(macro based)}
|
||||
\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation (deprecated, use wxHashMap)}
|
||||
\twocolitem{\helpref{wxList<T>}{wxlist}}{A type-safe linked list implementation (macro based)}
|
||||
\twocolitem{\helpref{wxVector<T>}{wxvector}}{Template base vector implementation}
|
||||
\twocolitem{\helpref{wxVector<T>}{wxvector}}{Template base vector implementation identical to std::vector}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Smart pointers}}
|
||||
|
||||
wxWidgets provides a few smart pointer class templates.
|
||||
|
||||
\twocolwidtha{6cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxWeakRef<T>}{wxweakref}}{A weak reference}
|
||||
\twocolitem{\helpref{wxObjectDataPtr<T>}{wxobjectdataptr}}{A shared pointer using intrusive reference counting}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Run-time class information system}}
|
||||
|
@@ -438,6 +438,7 @@
|
||||
\input toolbook.tex
|
||||
\input tooltip.tex
|
||||
\input tlw.tex
|
||||
\input trackable.tex
|
||||
\input treebook.tex
|
||||
\input treebookevent.tex
|
||||
\input treectrl.tex
|
||||
@@ -463,6 +464,7 @@
|
||||
\input createevt.tex
|
||||
\input windowdc.tex
|
||||
\input destroyevt.tex
|
||||
\input weakref.tex
|
||||
\input wnddisbl.tex
|
||||
\input wizard.tex
|
||||
\input wizevt.tex
|
||||
|
@@ -11,18 +11,17 @@
|
||||
|
||||
\section{\class{wxList<T>}}\label{wxlist}
|
||||
|
||||
The wxList<T> class provides linked list functionality. It has been written
|
||||
The wxList<T> class provides linked list functionality. It has been rewritten
|
||||
to be type safe and to provide the full API of the STL std::list container and
|
||||
should be used like it. The exception is that wxList<T> actually stores
|
||||
pointers and therefore its iterators return pointers and not references
|
||||
to the actual objets in the list (see example below) and {\it value\_type}
|
||||
is defined as {\it T*}.
|
||||
is defined as {\it T*}. wxList<T> destroys an object after removing it only
|
||||
if \helpref{DeleteContents}{wxlistdeletecontents} has been called.
|
||||
|
||||
|
||||
Unfortunately, the
|
||||
new wxList<T> class requires that you declare and define each wxList<T>
|
||||
class in your program. This is done with {\it WX\_DECLARE\_LIST} and
|
||||
{\it WX\_DEFINE\_LIST} macros (see example). We hope that we'll be able
|
||||
wxList<T> is not a real template and it requires that you declare and define
|
||||
each wxList<T> class in your program. This is done with {\it WX\_DECLARE\_LIST}
|
||||
and {\it WX\_DEFINE\_LIST} macros (see example). We hope that we'll be able
|
||||
to provide a proper template class providing both the STL std::list
|
||||
and the old wxList API in the future.
|
||||
|
||||
|
48
docs/latex/wx/trackable.tex
Normal file
48
docs/latex/wx/trackable.tex
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
\section{\class{wxTrackableBase}}\label{wxtrackablebase}
|
||||
|
||||
Add-on base class for a trackable object. This class maintains
|
||||
an internal linked list of classes of type wxTrackerNode and
|
||||
calls OnObjectDestroy() on them if this object is destroyed.
|
||||
The most common usage is by using the \helpref{wxWeakRef<T>}{wxweakref}
|
||||
class template which automates this. This class has no public
|
||||
API. Its only use is by deriving another class from it to
|
||||
make it trackable.
|
||||
|
||||
\begin{verbatim}
|
||||
class MyClass: public Foo, public TrackableBase
|
||||
{
|
||||
// whatever
|
||||
}
|
||||
|
||||
typedef wxWeakRef<MyClass> MyClassRef;
|
||||
\end{verbatim}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
No base class
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<tracker.h>
|
||||
|
||||
\wxheading{Data structures}
|
||||
|
||||
|
||||
\section{\class{wxTrackable}}\label{wxtrackable}
|
||||
|
||||
The only difference to \helpref{wxTrackableBase}{wxtrackablebase} is
|
||||
that this class adds a virtual table to enable dynamic\_cast query for
|
||||
wxTrackable.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxTrackableBase}{wxtrackablebase}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<tracker.h>
|
||||
|
||||
\wxheading{Data structures}
|
||||
|
||||
|
@@ -1,9 +1,12 @@
|
||||
\section{\class{wxVector<T>}}\label{wxvector}
|
||||
|
||||
wxVector is a template which implements most of the std::vector
|
||||
class and can be used like. If wxWidgets is compiled in STL mode,
|
||||
wxVector will just be a typedef to std::vector. You should
|
||||
refer to the STL documentation for further information.
|
||||
wxVector<T> is a template class which implements most of the std::vector
|
||||
class and can be used like it. If wxWidgets is compiled in STL mode,
|
||||
wxVector will just be a typedef to std::vector. Just like for std::vector,
|
||||
objects stored in wxVector<T> need to be {\it assignable} but don't have to
|
||||
be {\it default constructible}.
|
||||
|
||||
You can refer to the STL documentation for further information.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
|
78
docs/latex/wx/weakref.tex
Normal file
78
docs/latex/wx/weakref.tex
Normal file
@@ -0,0 +1,78 @@
|
||||
\section{\class{wxWeakRef<T>}}\label{wxweakref}
|
||||
|
||||
A weak reference to an object of type T, where T has type
|
||||
\helpref{wxTrackableBase}{wxTrackableBase} as one of its
|
||||
base classes (in a static or dynamic sense).
|
||||
|
||||
\begin{verbatim}
|
||||
class MyClass: public Foo, public TrackableBase
|
||||
{
|
||||
// whatever
|
||||
}
|
||||
|
||||
typedef wxWeakRef<MyClass> MyClassRef;
|
||||
\end{verbatim}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
wxTrackerNode
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<weakref.h>
|
||||
|
||||
\wxheading{Data structures}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
||||
\membersection{wxWeakRef<T>::wxWeakRef<T>}\label{wxweakrefwxweakref}
|
||||
|
||||
\func{}{wxWeakRef<T>}{\param{T* }{pobj = NULL}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxWeakRef<T>::\destruct{wxWeakRef<T>}}\label{wxweakrefdtor}
|
||||
|
||||
\func{}{\destruct{wxWeakRef<T>}}{\void}
|
||||
|
||||
Destructor.
|
||||
|
||||
\membersection{wxWeakRef<T>::T*}\label{wxweakreft}
|
||||
|
||||
\func{operator}{T*}{\void}
|
||||
|
||||
Returns pointer to tracked object or NULL.
|
||||
|
||||
\membersection{wxWeakRef<T>::operator->}\label{wxweakrefoperatorderef}
|
||||
|
||||
\func{T*}{operator->}{\void}
|
||||
|
||||
Returns pointer to tracked object or NULL.
|
||||
|
||||
\membersection{wxWeakRef<T>::operator=}\label{wxweakrefoperatorassign}
|
||||
|
||||
\func{T* operator}{operator=}{\param{T* }{pobj}}
|
||||
|
||||
Assigns pointer to trackable object to this weak reference.
|
||||
|
||||
\membersection{wxWeakRef<T>::Assign}\label{wxweakrefassign}
|
||||
|
||||
\func{void}{Assign}{\param{T* }{pobj}}
|
||||
|
||||
This uses static\_cast if possible or dynamic\_cast otherwise.
|
||||
|
||||
\membersection{wxWeakRef<T>::GetTrackable}\label{wxweakrefgettrackable}
|
||||
|
||||
\func{wxTrackableBase*}{GetTrackable}{\param{T* }{pobj}}
|
||||
|
||||
Returns the trackable objects to which the weak reference
|
||||
points or NULL if it has been destroyed.
|
||||
|
||||
\membersection{wxWeakRef<T>::OnObjectDestroy}\label{wxweakrefonobjectdestroy}
|
||||
|
||||
\func{virtual void}{OnObjectDestroy}{\void}
|
||||
|
||||
Called when the tracked object is destroyed. Be default sets
|
||||
internal pointer to NULL.
|
||||
|
Reference in New Issue
Block a user