]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/dataviewmodel.tex
API change: a single SELECTION_CHANGED not lots of SELECT and UNSELECT events
[wxWidgets.git] / docs / latex / wx / dataviewmodel.tex
index 8b002190578f968a0e6713a923bd821799ba8633..b80c86fe7a605fe92161e6b3ecad54362f11c03d 100644 (file)
@@ -8,6 +8,7 @@ pure virtual functions in order to define a complete
 data model. In detail, you need to override 
 \helpref{IsContainer}{wxdataviewmodeliscontainer},
 \helpref{GetParent}{wxdataviewmodelgetparent},
+\helpref{GetChildren}{wxdataviewmodelgetchildren},
 \helpref{GetColumnCount}{wxdataviewmodelgetcolumncount},
 \helpref{GetColumnType}{wxdataviewmodelgetcolumntype} and
 \helpref{GetValue}{wxdataviewmodelgetvalue} in order to
@@ -15,7 +16,7 @@ define the data model which acts as an interface between
 your actual data and the wxDataViewCtrl. Since you will
 usually also allow the wxDataViewCtrl to change your data
 through its graphical interface, you will also have to override
-\helpref{SetValue}{wxdataviewlistmodelsetvalue} which the
+\helpref{SetValue}{wxdataviewmodelsetvalue} which the
 wxDataViewCtrl will call when a change to some data has been
 commited.
 
@@ -38,7 +39,9 @@ Note that wxDataViewModel does not define the position or
 index of any item in the control since several control might
 display the data differently, but wxDataViewModel does
 provide a \helpref{Compare}{wxdataviewmodelcompare} method
-which the wxDataViewCtrl may use to sort the data.
+which the wxDataViewCtrl may use to sort the data either
+in conjunction with a column header or without (see
+\helpref{HasDefaultCompare}{wxdataviewmodelhasdefaultcompare}.
 
 This class maintains a list of 
 \helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier}
@@ -90,86 +93,95 @@ Destructor. This should not be called directly. Use DecRef() instead.
 
 \func{void}{AddNotifier}{\param{wxDataViewModelNotifier* }{notifier}}
 
-Adds a \helpref{wxDataViewModelNotifier}{wxdataviewlistmodelnotifier}
+Adds a \helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier}
 to the model.
 
 \membersection{wxDataViewModel::Cleared}\label{wxdataviewmodelcleared}
 
-\func{bool}{Cleared}{\void}
+\func{virtual bool}{Cleared}{\void}
 
 Called to inform the model that all data has been deleted.
 
 \membersection{wxDataViewModel::Compare}\label{wxdataviewmodelcompare}
 
-\func{int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}}
+\func{virtual int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}}
 
 The compare function to be used by control. The default compare function
 sorts by container and other items separately and in ascending order.
 Override this for a different sorting behaviour.
 
+See also \helpref{HasDefaultCompare}{wxdataviewmodelhasdefaultcompare}.
+
 \membersection{wxDataViewModel::GetColumnCount}\label{wxdataviewmodelgetcolumncount}
 
-\constfunc{unsigned int}{GetColumnCount}{\void}
+\constfunc{virtual unsigned int}{GetColumnCount}{\void}
 
 Override this to indicate the number of columns in the model.
 
 \membersection{wxDataViewModel::GetColumnType}\label{wxdataviewmodelgetcolumntype}
 
-\constfunc{wxString}{GetColumnType}{\param{unsigned int }{col}}
+\constfunc{virtual wxString}{GetColumnType}{\param{unsigned int }{col}}
 
 Override this to indicate what type of data is stored in the
 column specified by {\it col}. This should return a string
 indicating the type of data as reported by \helpref{wxVariant}{wxvariant}.
 
-\membersection{wxDataViewModel::GetFirstChild}\label{wxdataviewmodelgetfirstchild}
-
-\constfunc{wxDataViewItem}{GetFirstChild}{\param{const wxDataViewItem\& }{parent}}
-
-To be removed.
-
-\membersection{wxDataViewModel::GetNextSibling}\label{wxdataviewmodelgetnextsibling}
+\membersection{wxDataViewModel::GetChildren}\label{wxdataviewmodelgetchildren}
 
-\constfunc{wxDataViewItem}{GetNextSibling}{\param{const wxDataViewItem\& }{item}}
+\constfunc{virtual unsigned int}{GetChildren}{\param{const wxDataViewItem\& }{item}, \param{wxDataViewItemArray\& }{children} }
 
-To be removed.
+Override this so the control can query the child items of
+an item. Returns the number of items.
 
 \membersection{wxDataViewModel::GetParent}\label{wxdataviewmodelgetparent}
 
-\constfunc{wxDataViewItem}{GetParent}{\param{const wxDataViewItem\& }{item}}
+\constfunc{virtual wxDataViewItem}{GetParent}{\param{const wxDataViewItem\& }{item}}
 
 Override this to indicate which wxDataViewItem representing the parent
 of {\it item} or an invalid wxDataViewItem if {\it item} is the root item.
 
 \membersection{wxDataViewModel::GetValue}\label{wxdataviewmodelgetvalue}
 
-\constfunc{void}{GetValue}{\param{wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
+\constfunc{virtual void}{GetValue}{\param{wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
 
 Override this to indicate the value of {\it item}
 A \helpref{wxVariant}{wxvariant} is used to store the data.
 
+\membersection{wxDataViewModel::HasDefaultCompare}\label{wxdataviewmodelhasdefaultcompare}
+
+\constfunc{virtual bool}{HasDefaultCompare}{\void}
+
+Override this to indicate that the model provides a default compare
+function that the control should use if no wxDataViewColumn has been
+chosen for sorting. Usually, the user clicks on a column header for
+sorting, the data will be sorted alphanumerically. If any other
+order (e.g. by index or order of appearance) is required, then this
+should be used. See also \helpref{wxDataViewIndexListModel}{wxdataviewindexlistmodel}
+for a model which makes use of this.
+
 \membersection{wxDataViewModel::IsContainer}\label{wxdataviewmodeliscontainer}
 
-\constfunc{bool}{IsContainer}{\param{const wxDataViewItem\& }{item}}
+\constfunc{virtual bool}{IsContainer}{\param{const wxDataViewItem\& }{item}}
 
 Override this to indicate of {\it item} is a container, i.e. if
 it can have child items.
 
 \membersection{wxDataViewModel::ItemAdded}\label{wxdataviewmodelitemadded}
 
-\func{bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
+\func{virtual bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
 
 Call this to inform the model that an item has been added
 to the data.
 
 \membersection{wxDataViewModel::ItemChanged}\label{wxdataviewmodelitemchanged}
 
-\func{bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}}
+\func{virtual bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}}
 
 Call this to inform the model that an item has changed.
 
 \membersection{wxDataViewModel::ItemDeleted}\label{wxdataviewmodelitemdeleted}
 
-\func{bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
+\func{virtual bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
 
 Call this to inform the model that an item has been deleted.
 
@@ -181,14 +193,14 @@ Remove the {\it notifier} from the list of notifiers.
 
 \membersection{wxDataViewModel::Resort}\label{wxdataviewmodelresort}
 
-\func{void}{Resort}{\void}
+\func{virtual void}{Resort}{\void}
 
 Call this to initiate a resort after the sort function has
 been changed.
 
 \membersection{wxDataViewModel::SetValue}\label{wxdataviewmodelsetvalue}
 
-\func{bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
+\func{virtual bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
 
 This gets called in order to set a value in the data model.
 The most common scenario is that the wxDataViewCtrl calls
@@ -198,7 +210,7 @@ has to be called!
 
 \membersection{wxDataViewModel::ValueChanged}\label{wxdataviewmodelvaluechanged}
 
-\func{bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
+\func{virtual bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
 
 Call this to inform this model that a value in
 the model has been changed.