Updated docs

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2007-08-20 22:29:18 +00:00
parent c782096417
commit 1ab4aff273
5 changed files with 385 additions and 252 deletions

View File

@ -83,8 +83,9 @@
\input dataviewcolumn.tex
\input dataviewctrl.tex
\input dataviewevent.tex
\input dataviewlistmodelnotifier.tex
\input dataviewmodelnotifier.tex
\input dataviewmodel.tex
\input dataviewindexlistmodel.tex
\input dataviewrenderer.tex
\input dobjcomp.tex
\input dobjsmpl.tex

View File

@ -1,17 +1,13 @@
\section{\class{wxDataViewCtrl}}\label{wxdataviewctrl}
This class and its documentation are work in progress and
therefore subject to change.
wxDataViewCtrl is planned to be a control to display data either
in a tree like fashion or in a tabular form or both. So far,
only the tabular form is implemented.
wxDataViewCtrl is a control to display data either
in a tree like fashion or in a tabular form or both.
Unlike \helpref{wxListCtrl}{wxlistctrl} wxDataViewCtrl doesn't
get its data from the user through virtual functions or events,
instead you need to write your own
\helpref{wxDataViewListModel}{wxdataviewlistmodel} and associate
get its data from the user through virtual functions or by
setting it directly. Instead you need to write your own
\helpref{wxDataViewModel}{wxdataviewmodel} and associate
it with this control. Then you need to add a number of
\helpref{wxDataViewColumn}{wxdataviewcolumn} to this control to
define what each column shall display. Each wxDataViewColumn
@ -29,12 +25,6 @@ be extended to support more data formats as necessary.
Accordingly, all type information uses the strings returned
from \helpref{wxVariant::GetType}{wxvariantgettype}.
So far, this control has been implemented for GTK+ and there
is an almost complete generic implementation including several
additions for a native Windows look and feel (in particular
concerning the header). It is planned to implement the control
natively under OS X.
\wxheading{Window styles}
\twocolwidtha{5cm}
@ -53,29 +43,11 @@ macros to direct input to member functions that take a
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_DATAVIEW\_ROW\_SELECTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ROW\_SELECTED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_ROW\_ACTIVATED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ROW\_ACTIVATED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_SELECTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_SELECTED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_ACTIVATED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_ACTIVATED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_CLICK(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_CLICKED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_RIGHT\_CLICK(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_RIGHT\_CLICKED event.}
\end{twocollist}
Additionally, you can get informed about changes to the
\helpref{model}{wxdataviewlistmodel}, to which a wxDataViewCtrl
has been associated. These events correspond to the interface
offered by \helpref{wxDataViewListModelNotifier}{wxdataviewlistmodelnotifier}.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROW\_PREPENDED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROW\_PREPENDED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROW\_APPENDED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROW\_APPENDED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROW\_INSERTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROW\_INSERTED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROW\_DELETED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROW\_DELETED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROW\_CHANGED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROW\_CHANGED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_VALUE\_CHANGED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_VALUE\_CHANGED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_ROWS\_REORDERED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_ROWS\_REORDERED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_MODEL\_CLEARED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_MODEL\_CLEARED event.}
\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_SORTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_SORTED event.}
\end{twocollist}
@ -162,11 +134,10 @@ Appends a column for rendering a toggle.
\membersection{wxDataViewCtrl::AssociateModel}\label{wxdataviewctrlassociatemodel}
\func{virtual bool}{AssociateModel}{\param{wxDataViewListModel* }{model}}
\func{virtual bool}{AssociateModel}{\param{wxDataViewModel* }{model}}
Associates a \helpref{wxDataViewListModel}{wxdataviewlistmodel} with the
control. In the future this should be changed to supporting any data
model including a to-be-written wxDataViewTreeModel.
Associates a \helpref{wxDataViewModel}{wxdataviewmodel} with the
control.
\membersection{wxDataViewCtrl::Create}\label{wxdataviewctrlcreate}
@ -200,7 +171,7 @@ Returns pointer to the column.
\membersection{wxDataViewCtrl::GetModel}\label{wxdataviewctrlgetmodel}
\func{virtual wxDataViewListModel*}{GetModel}{\void}
\func{virtual wxDataViewModel*}{GetModel}{\void}
Returns pointer to the data model associated with the
control (if any).
@ -211,48 +182,95 @@ control (if any).
Returns the number of columns.
\membersection{wxDataViewCtrl::EnsureVisible}\label{wxdataviewctrlensurevisible}
\func{void}{EnsureVisible}{\param{const wxDataViewItem \& }{item}, \param{wxDataViewColumn* }{column = NULL}}
Call this to ensure that the given item is visible.
\membersection{wxDataViewCtrl::GetExpanderColumn}\label{wxdataviewctrlgetexpandercolumn}
\constfunc{unsigned int}{GetExpanderColumn}{\void}
Returns column containing the expanders.
\membersection{wxDataViewCtrl::GetIndent}\label{wxdataviewctrlgetindent}
\constfunc{int}{GetIndent}{\void}
Returns indentation.
\membersection{wxDataViewCtrl::GetItemRect}\label{wxdataviewctrlgetitemrect}
\constfunc{wxRect}{GetItemRect}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{column}}
Returns item rect.
\membersection{wxDataViewCtrl::GetSelection}\label{wxdataviewctrlgetselection}
\constfunc{virtual int}{GetSelection}{\void}
\func{wxDataViewItem}{GetSelection}{\void}
Returns the index of the currently selected row. It will
return -1 if no row is selected and the index of the first
selected row if more than one row are selected.
Returns first selected item or an invalid item if none is selected.
\membersection{wxDataViewCtrl::GetSelections}\label{wxdataviewctrlgetselections}
\constfunc{virtual int}{GetSelections}{\param{wxArrayInt\& }{aSelections}}
\constfunc{int}{GetSelections}{\param{wxDataViewItemArray \& }{sel}}
Returns the number of selected rows and fills an array of int
with the indeces of the selected rows.
Fills {\it sel} with currently selected items and returns
their number.
\membersection{wxDataViewCtrl::HitTest}\label{wxdataviewctrlhittest}
\constfunc{void}{HitTest}{\param{const wxPoint\& }{point}, \param{wxDataViewItem\& }{item}, \param{unsigned int\& }{column}}
Hittest.
\membersection{wxDataViewCtrl::IsSelected}\label{wxdataviewctrlisselected}
\constfunc{virtual bool}{IsSelected}{\param{unsigned int }{row}}
\constfunc{bool}{IsSelected}{\param{const wxDataViewItem \& }{item}}
Returns {\it true} if the row is selected, {\it false} otherwise.
Return true if the item is selected.
\membersection{wxDataViewCtrl::SetSelection}\label{wxdataviewctrlsetselection}
\membersection{wxDataViewCtrl::Select}\label{wxdataviewctrlselect}
\func{virtual void}{SetSelection}{\param{int }{row}}
\func{void}{Select}{\param{const wxDataViewItem \& }{item}}
Sets the selection. Use -1 to unselect all rows.
Select the given item.
\membersection{wxDataViewCtrl::SetSelectionRange}\label{wxdataviewctrlsetselectionrange}
\membersection{wxDataViewCtrl::SelectAll}\label{wxdataviewctrlselectall}
\func{virtual void}{SetSelectionRange}{\param{unsigned int }{from}, \param{unsigned int }{to}}
\func{void}{SelectAll}{\void}
Set a range of selection.
Select all items.
\membersection{wxDataViewCtrl::SetExpanderColumn}\label{wxdataviewctrlsetexpandercolumn}
\func{void}{SetExpanderColumn}{\param{unsigned int }{col}}
Set which column shall contain the tree-like expanders.
\membersection{wxDataViewCtrl::SetIndent}\label{wxdataviewctrlsetindent}
\func{void}{SetIndent}{\param{int }{indent}}
Sets the indendation.
\membersection{wxDataViewCtrl::SetSelections}\label{wxdataviewctrlsetselections}
\func{virtual void}{SetSelections}{\param{const wxArrayInt\& }{aSelections}}
\func{void}{SetSelections}{\param{const wxDataViewItemArray \& }{sel}}
Set the selection to the array of int.
Sets the selection to the array of wxDataViewItems.
\membersection{wxDataViewCtrl::Unselect}\label{wxdataviewctrlunselect}
\func{virtual void}{Unselect}{\param{unsigned int }{row}}
\func{void}{Unselect}{\param{const wxDataViewItem \& }{item}}
Unselect a particular row.
Unselect the given item.
\membersection{wxDataViewCtrl::UnselectAll}\label{wxdataviewctrlunselectall}
\func{void}{UnselectAll}{\void}
Unselect all item. This method only has effect if multiple
selections are allowed.

View File

@ -0,0 +1,105 @@
\section{\class{wxDataViewIndexListModel}}\label{wxdataviewindexlistmodel}
wxDataViewIndexListModel is a specialized data model which lets
you address an item by its position (row) rather than its
wxDataViewItem (which you can obtain from this class).
This model also provides its own
\helpref{Compare}{wxdataviewindexlistmodelcompare} method
which sorts the model's data by the index.
\wxheading{Derived from}
\helpref{wxDataViewModel}{wxdataviewmodel}
\wxheading{Include files}
<dataview.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDataViewIndexListModel::wxDataViewIndexListModel}\label{wxdataviewindexlistmodelwxdataviewindexlistmodel}
\func{}{wxDataViewIndexListModel}{\param{unsigned int }{initial\_size = 0}}
Constructor.
\membersection{wxDataViewIndexListModel::\destruct{wxDataViewIndexListModel}}\label{wxdataviewindexlistmodeldtor}
\func{}{\destruct{wxDataViewIndexListModel}}{\void}
Destructor.
\membersection{wxDataViewIndexListModel::Compare}\label{wxdataviewindexlistmodelcompare}
\func{int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}}
Compare method that sorts the items by their index.
\membersection{wxDataViewIndexListModel::GetItem}\label{wxdataviewindexlistmodelgetitem}
\constfunc{wxDataViewItem}{GetItem}{\param{unsigned int }{row}}
Returns the wxDataViewItem at the given {\it row}.
\membersection{wxDataViewIndexListModel::GetRow}\label{wxdataviewindexlistmodelgetrow}
\constfunc{unsigned int}{GetRow}{\param{const wxDataViewItem\& }{item}}
Returns the position of given {\it item}.
\membersection{wxDataViewIndexListModel::GetRowCount}\label{wxdataviewindexlistmodelgetrowcount}
\func{unsigned int}{GetRowCount}{\void}
Override this to indicate the number of rows.
\membersection{wxDataViewIndexListModel::GetValue}\label{wxdataviewindexlistmodelgetvalue}
\constfunc{void}{GetValue}{\param{wxVariant\& }{variant}, \param{unsigned int }{row}, \param{unsigned int }{col}}
Override this to allow getting values from the model.
\membersection{wxDataViewIndexListModel::RowAppended}\label{wxdataviewindexlistmodelrowappended}
\func{void}{RowAppended}{\void}
Call this after a row has been appended to the model.
\membersection{wxDataViewIndexListModel::RowChanged}\label{wxdataviewindexlistmodelrowchanged}
\func{void}{RowChanged}{\param{unsigned int }{row}}
Call this after a row has been changed.
\membersection{wxDataViewIndexListModel::RowDeleted}\label{wxdataviewindexlistmodelrowdeleted}
\func{void}{RowDeleted}{\param{unsigned int }{row}}
Call this after a row has been deleted.
\membersection{wxDataViewIndexListModel::RowInserted}\label{wxdataviewindexlistmodelrowinserted}
\func{void}{RowInserted}{\param{unsigned int }{before}}
Call this after a row has been inserted at the given position.
\membersection{wxDataViewIndexListModel::RowPrepended}\label{wxdataviewindexlistmodelrowprepended}
\func{void}{RowPrepended}{\void}
Call this after a row has been prepended to the model.
\membersection{wxDataViewIndexListModel::RowValueChanged}\label{wxdataviewindexlistmodelrowvaluechanged}
\func{void}{RowValueChanged}{\param{unsigned int }{row}, \param{unsigned int }{col}}
Call this after a value has been changed.
\membersection{wxDataViewIndexListModel::SetValue}\label{wxdataviewindexlistmodelsetvalue}
\func{bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{unsigned int }{row}, \param{unsigned int }{col}}
Called in order to set a value in the model.

View File

@ -3,13 +3,59 @@
wxDataViewModel is the base class for all data model to be
displayed by a \helpref{wxDataViewCtrl}{wxdataviewctrl}.
Currently, this class has no functionality at all and the
only existing implementation of it is the
\helpref{wxDataViewListModel}{wxdataviewlistmodel}. The
plan is to move all functionality of wxDataViewListModel
and a to-be-written wxDataViewTreeModel into wxDataViewModel
and make wxDataViewListModel and wxDataViewTreeModel subsets
of the abstract wxDataViewModel.
All other models derive from it and must implement its
pure virtual functions in order to define a complete
data model. In detail, you need to override
\helpref{IsContainer}{wxdataviewmodeliscontainer},
\helpref{GetParent}{wxdataviewmodelgetparent},
\helpref{GetColumnCount}{wxdataviewmodelgetcolumncount},
\helpref{GetColumnType}{wxdataviewmodelgetcolumntype} and
\helpref{GetValue}{wxdataviewmodelgetvalue} in order to
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
wxDataViewCtrl will call when a change to some data has been
commited.
wxDataViewModel (as indeed the entire wxDataViewCtrl
code) is using \helpref{wxVariant}{wxvariant} to store data and
its type in a generic way. wxVariant can be extended to contain
almost any data without changes to the original class.
The data that is presented through this data model is expected
to change at run-time. You need to inform the data model when
a change happened. Depending on what happened you need to call
one of the following methods:
\helpref{ValueChanged}{wxdataviewmodelvaluechanged},
\helpref{ItemAdded}{wxdataviewmodelitemadded},
\helpref{ItemDeleted}{wxdataviewmodelitemdeleted},
\helpref{ItemChanged}{wxdataviewmodelitemchanged},
\helpref{Cleared}{wxdataviewmodelcleared}.
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.
This class maintains a list of
\helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier}
which link this class to the specific implementations on the
supported platforms so that e.g. calling
\helpref{ValueChanged}{wxdataviewmodelvaluechanged}
on this model will just call
\helpref{wxDataViewModelNotifier::ValueChanged}{wxdataviewmodelnotifiervaluechanged}
for each notifier that has been added. You can also add
your own notifier in order to get informed about any changes
to the data in the list model.
Currently wxWidgets provides the following models apart
from the base model:
\helpref{wxDataViewIndexListModel}{wxdataviewindexlistmodel}.
It is planned to add helper classes for simple tree
and list stores in the future.
\wxheading{Derived from}
@ -29,245 +75,128 @@ of the abstract wxDataViewModel.
Constructor.
\membersection{wxDataViewModel::\destruct{wxDataViewModel}}\label{wxdataviewmodeldtor}
\func{}{\destruct{wxDataViewModel}}{\void}
Destructor.
\section{\class{wxDataViewListModel}}\label{wxdataviewlistmodel}
wxDataViewListModel is currently the only existing variant
of a \helpref{wxDataViewModel}{wxdataviewmodel}. It allows
to define a table like data model to be displayed by a
\helpref{wxDataViewCtrl}{wxdataviewctrl}. You need to derive
from this class to define your own data model.
You need to override \helpref{GetRowCount}{wxdataviewlistmodelgetrowcount},
\helpref{GetColumnCount}{wxdataviewlistmodelgetcolumncount},
\helpref{GetColumnType}{wxdataviewlistmodelgetcolumntype} and
\helpref{GetValue}{wxdataviewlistmodelgetvalue} in order to
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
wxDataViewCtrl will call when a change to some data has been
commited.
The data that is presented through this data model is expected
to change at run-time. You need to inform the data model that
a change happens. Depending on what happened you need to call
one of the following methods:
\helpref{ValueChanged}{wxdataviewlistmodelvaluechanged},
\helpref{RowChanged}{wxdataviewlistmodelrowchanged},
\helpref{RowAppended}{wxdataviewlistmodelrowappended},
\helpref{RowPrepended}{wxdataviewlistmodelrowprepended},
\helpref{RowInserted}{wxdataviewlistmodelrowinserted},
\helpref{RowDeleted}{wxdataviewlistmodelrowdeleted},
\helpref{RowsReordered}{wxdataviewlistmodelrowsreordered} or
\helpref{RowsCleared}{wxdataviewlistmodelcleared}.
Destructor. This should not be called directly. Use DecRef() instead.
\membersection{wxDataViewModel::AddNotifier}\label{wxdataviewmodeladdnotifier}
wxDataViewModel and this class (as indeed the entire wxDataViewCtrl
code) is using \helpref{wxVariant}{wxvariant} to store data and
its type in a generic way. wxVariant can be extended to contain
almost any data without changes to the original class.
\func{void}{AddNotifier}{\param{wxDataViewModelNotifier* }{notifier}}
This class maintains a list of
\helpref{wxDataListViewListModelNotifier}{wxdataviewlistmodelnotifier}
which link this class to the specific implementations on the
supported platforms so that e.g. calling
\helpref{ValueChanged}{wxdataviewlistmodelvaluechanged}
on this model will just call
\helpref{wxDataListViewListModelNotifier::ValueChanged}{wxdataviewlistmodelnotifiervaluechanged}
for each notifier that has been added. This is used both for
informing the native controls to redraw themselves and for informing
e.g. the \helpref{wxDataViewSortedListModel}{wxdataviewsortedlistmodel}
to resort itself. You can also add your own notifier in order
to get informed about any changes to the data in the list model.
Adds a \helpref{wxDataViewModelNotifier}{wxdataviewlistmodelnotifier}
to the model.
Additionally, this class maintains a list of all
\helpref{wxDataViewColumns}{wxdataviewcolumn} which
display a certain column of this list model. This is
mostly used internally.
\membersection{wxDataViewModel::Cleared}\label{wxdataviewmodelcleared}
\wxheading{Derived from}
\func{bool}{Cleared}{\void}
\helpref{wxDataViewModel}{wxdataviewmodel}\\
\helpref{wxObjectRefData}{wxobjectrefdata}
Called to inform the model that all data has been deleted.
\wxheading{Include files}
\membersection{wxDataViewModel::Compare}\label{wxdataviewmodelcompare}
<wx/dataview.h>
\func{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.
\membersection{wxDataViewListModel::wxDataViewListModel}\label{wxdataviewlistmodelwxdataviewlistmodel}
\membersection{wxDataViewModel::GetColumnCount}\label{wxdataviewmodelgetcolumncount}
\func{}{wxDataViewListModel}{\void}
\constfunc{unsigned int}{GetColumnCount}{\void}
Constructor.
Override this to indicate the number of columns in the model.
\membersection{wxDataViewListModel::\destruct{wxDataViewListModel}}\label{wxdataviewlistmodeldtor}
\membersection{wxDataViewModel::GetColumnType}\label{wxdataviewmodelgetcolumntype}
\func{}{\destruct{wxDataViewListModel}}{\void}
Destructor.
\membersection{wxDataViewListModel::AddNotifier}\label{wxdataviewlistmodeladdnotifier}
\func{void}{AddNotifier}{\param{wxDataViewListModelNotifier* }{notifier}}
Adds {\it notifier} to the internal list of notifers.
See also \helpref{RemoveNotifier}{wxdataviewlistmodelremovenotifier}.
\membersection{wxDataViewListModel::Cleared}\label{wxdataviewlistmodelcleared}
\func{bool}{virtual Cleared}{\void}
Call this if all data in your model has been cleared.
\membersection{wxDataViewListModel::GetColumnCount}\label{wxdataviewlistmodelgetcolumncount}
\func{virtual unsigned int}{GetColumnCount}{\void}
Override this to indicate, how many columns the list
model has.
\membersection{wxDataViewListModel::GetColumnType}\label{wxdataviewlistmodelgetcolumntype}
\func{virtual wxString}{GetColType}{\param{unsigned int }{col}}
\constfunc{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{wxDataViewListModel::GetRowCount}\label{wxdataviewlistmodelgetrowcount}
\membersection{wxDataViewModel::GetFirstChild}\label{wxdataviewmodelgetfirstchild}
\func{virtual unsigned int}{GetRowCount}{\void}
\constfunc{wxDataViewItem}{GetFirstChild}{\param{const wxDataViewItem\& }{parent}}
Override this to indicate, how many rows the list
model has.
To be removed.
\membersection{wxDataViewListModel::GetValue}\label{wxdataviewlistmodelgetvalue}
\membersection{wxDataViewModel::GetNextSibling}\label{wxdataviewmodelgetnextsibling}
\func{virtual void}{GetValue}{\param{wxVariant\& }{variant}, \param{unsigned int }{col}, \param{unsigned int }{row}}
\constfunc{wxDataViewItem}{GetNextSibling}{\param{const wxDataViewItem\& }{item}}
Override this to indicate the value of a given value
in the list model. A \helpref{wxVariant}{wxvariant}
is used to store the data.
To be removed.
\membersection{wxDataViewListModel::RemoveNotifier}\label{wxdataviewlistmodelremovenotifier}
\membersection{wxDataViewModel::GetParent}\label{wxdataviewmodelgetparent}
\func{void}{RemoveNotifier}{\param{wxDataViewListModelNotifier* }{notifier}}
\constfunc{wxDataViewItem}{GetParent}{\param{const wxDataViewItem\& }{item}}
Removes the notifier from the list of notifiers.
Override this to indicate which wxDataViewItem representing the parent
of {\it item} or an invalid wxDataViewItem if {\it item} is the root item.
See also \helpref{AddNotifier}{wxdataviewlistmodeladdnotifier}.
\membersection{wxDataViewModel::GetValue}\label{wxdataviewmodelgetvalue}
\membersection{wxDataViewListModel::RowAppended}\label{wxdataviewlistmodelrowappended}
\constfunc{void}{GetValue}{\param{wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
\func{virtual bool}{RowAppended}{\void}
Override this to indicate the value of {\it item}
A \helpref{wxVariant}{wxvariant} is used to store the data.
Call this if a row has been appended to the list model.
\membersection{wxDataViewModel::IsContainer}\label{wxdataviewmodeliscontainer}
\membersection{wxDataViewListModel::RowChanged}\label{wxdataviewlistmodelrowchanged}
\constfunc{bool}{IsContainer}{\param{const wxDataViewItem\& }{item}}
\func{virtual bool}{RowChanged}{\param{unsigned int }{row}}
Override this to indicate of {\it item} is a container, i.e. if
it can have child items.
Call this if the values of this row have been changed.
\membersection{wxDataViewModel::ItemAdded}\label{wxdataviewmodelitemadded}
\membersection{wxDataViewListModel::RowDeleted}\label{wxdataviewlistmodelrowdeleted}
\func{bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
\func{virtual bool}{RowDeleted}{\param{unsigned int }{row}}
Call this to inform the model that an item has been added
to the data.
Call this if this row has been deleted.
\membersection{wxDataViewModel::ItemChanged}\label{wxdataviewmodelitemchanged}
\membersection{wxDataViewListModel::RowInserted}\label{wxdataviewlistmodelrowinserted}
\func{bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}}
\func{virtual bool}{RowInserted}{\param{unsigned int }{before}}
Call this to inform the model that an item has changed.
Call this if a row has been inserted.
\membersection{wxDataViewModel::ItemDeleted}\label{wxdataviewmodelitemdeleted}
\membersection{wxDataViewListModel::RowPrepended}\label{wxdataviewlistmodelrowprepended}
\func{bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
\func{virtual bool}{RowPrepended}{\void}
Call this to inform the model that an item has been deleted.
Call this if a row has been prepended.
\membersection{wxDataViewModel::RemoveNotifier}\label{wxdataviewmodelremovenotifier}
\membersection{wxDataViewListModel::RowsReordered}\label{wxdataviewlistmodelrowsreordered}
\func{void}{RemoveNotifier}{\param{wxDataViewModelNotifier* }{notifier}}
\func{virtual bool}{RowsReordered}{\param{unsigned int* }{new\_order}}
Remove the {\it notifier} from the list of notifiers.
Call this if the rows have been reorderd.
\membersection{wxDataViewListModel::SetValue}\label{wxdataviewlistmodelsetvalue}
\func{virtual bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{unsigned int }{col}, \param{unsigned int }{row}}
This method gets called by e.g. the wxDataViewCtrl class if a
value has been changed through its graphical interface. You
need to override this method in order to update the data in
the underlying data structur. Afterwards,
\helpref{ValueChanged}{wxdataviewlistmodelvaluechanged} is called.
\membersection{wxDataViewListModel::ValueChanged}\label{wxdataviewlistmodelvaluechanged}
\func{virtual bool}{ValueChanged}{\param{unsigned int }{col}, \param{unsigned int }{row}}
Call this if a value in the model has been changed.
\section{\class{wxDataViewSortedListModel}}\label{wxdataviewsortedlistmodel}
This class is used for sorting data. It does not contain any
data itself. Rather, it provides a sorted interface for
another list model.
Currently, the sorting algorithm isn't thread safe. This needs
to be fixed.
\wxheading{Derived from}
\helpref{wxDataViewListModel}{wxdataviewlistmodel}\\
\helpref{wxDataViewModel}{wxdataviewmodel}\\
\helpref{wxObjectRefData}{wxobjectrefdata}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewSortedListModel::wxDataViewSortedListModel}\label{wxdataviewsortedlistmodelwxdataviewsortedlistmodel}
\func{}{wxDataViewSortedListModel}{\param{wxDataViewListModel* }{child}}
Constructor. {\it child} is the child data model the data of
which this model is supposed to present in a sorted way.
\membersection{wxDataViewSortedListModel::\destruct{wxDataViewSortedListModel}}\label{wxdataviewsortedlistmodeldtor}
\func{}{\destruct{wxDataViewSortedListModel}}{\void}
Destructor.
\membersection{wxDataViewSortedListModel::GetAscending}\label{wxdataviewsortedlistmodelgetascending}
\func{bool}{GetAscending}{\void}
Returns true if the data is sorted in ascending order.
\membersection{wxDataViewSortedListModel::Resort}\label{wxdataviewsortedlistmodelresort}
\membersection{wxDataViewModel::Resort}\label{wxdataviewmodelresort}
\func{void}{Resort}{\void}
Tell the model to resort its data.
Call this to initiate a resort after the sort function has
been changed.
\membersection{wxDataViewSortedListModel::SetAscending}\label{wxdataviewsortedlistmodelsetascending}
\membersection{wxDataViewModel::SetValue}\label{wxdataviewmodelsetvalue}
\func{void}{SetAscending}{\param{bool }{ascending}}
\func{bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
Set the sort order of the data.
This gets called in order to set a value in the data model.
The most common scenario is that the wxDataViewCtrl calls
this method after the user changed some data in the view.
Afterwards \helpref{ValueChanged}{wxdataviewmodelvaluechanged}
has to be called!
\membersection{wxDataViewModel::ValueChanged}\label{wxdataviewmodelvaluechanged}
\func{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.

View File

@ -0,0 +1,80 @@
\section{\class{wxDataViewModelNotifier}}\label{wxdataviewmodelnotifier}
A wxDataViewModelNotifier instance is owned by a
\helpref{wxDataViewModel}{wxdataviewmodel}
and mirrors its notification interface. See
the documentation of that class for further
information.
\wxheading{Derived from}
No base class
\wxheading{Include files}
<dataview.h>
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDataViewModelNotifier::wxDataViewModelNotifier}\label{wxdataviewmodelnotifierwxdataviewmodelnotifier}
\func{}{wxDataViewModelNotifier}{\void}
Constructor.
\membersection{wxDataViewModelNotifier::\destruct{wxDataViewModelNotifier}}\label{wxdataviewmodelnotifierdtor}
\func{}{\destruct{wxDataViewModelNotifier}}{\void}
Destructor.
\membersection{wxDataViewModelNotifier::Cleared}\label{wxdataviewmodelnotifiercleared}
\func{bool}{Cleared}{\void}
Called by owning model.
\membersection{wxDataViewModelNotifier::GetOwner}\label{wxdataviewmodelnotifiergetowner}
\func{wxDataViewModel*}{GetOwner}{\void}
Get owning wxDataViewModel.
\membersection{wxDataViewModelNotifier::ItemAdded}\label{wxdataviewmodelnotifieritemadded}
\func{bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
Called by owning model.
\membersection{wxDataViewModelNotifier::ItemChanged}\label{wxdataviewmodelnotifieritemchanged}
\func{bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}}
Called by owning model.
\membersection{wxDataViewModelNotifier::ItemDeleted}\label{wxdataviewmodelnotifieritemdeleted}
\func{bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}}
Called by owning model.
\membersection{wxDataViewModelNotifier::Resort}\label{wxdataviewmodelnotifierresort}
\func{void}{Resort}{\void}
Called by owning model.
\membersection{wxDataViewModelNotifier::SetOwner}\label{wxdataviewmodelnotifiersetowner}
\func{void}{SetOwner}{\param{wxDataViewModel* }{owner}}
Set owner of this notifier. Used internally.
\membersection{wxDataViewModelNotifier::ValueChanged}\label{wxdataviewmodelnotifiervaluechanged}
\func{bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}}
Called by owning model.