Add docs to wxDataViewCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2006-10-07 17:34:00 +00:00
parent 1286b7ba6c
commit b6b9d5562c
6 changed files with 1066 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
\section{\class{wxDataViewColumn}}\label{wxdataviewcolumn}
This class represents a column in a \helpref{wxDataViewCtrl}{wxdataviewctrl}.
One wxDataViewColumn is bound to one column in the data model,
to which the wxDataViewCtrl has been associated.
An instance of \helpref{wxDataViewRenderer}{wxdataviewrenderer} is used by
this class to render its data.
\wxheading{Constants}
These flags define behavi
{\small
\begin{verbatim}
enum wxDataViewColumnFlags
{
wxDATAVIEW_COL_RESIZABLE = 1, // the user can resize the column
wxDATAVIEW_COL_SORTABLE = 2, // same as SetSortable()
wxDATAVIEW_COL_HIDDEN = 4 // column is hidden
};
\end{verbatim}
}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewColumn::wxDataViewColumn}\label{wxdataviewcolumnwxdataviewcolumn}
\func{}{wxDataViewColumn}{\param{const wxString\& }{title}, \param{wxDataViewRenderer* }{renderer}, \param{unsigned int }{model\_column}, \param{int }{width = 80}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}}
\func{}{wxDataViewColumn}{\param{const wxBitmap\& }{bitmap}, \param{wxDataViewRenderer* }{renderer}, \param{unsigned int }{model\_column}, \param{int }{width = 80}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}}
Constructors.
\membersection{wxDataViewColumn::\destruct{wxDataViewColumn}}\label{wxdataviewcolumndtor}
\func{}{\destruct{wxDataViewColumn}}{\void}
Destructor.
\membersection{wxDataViewColumn::GetBitmap}\label{wxdataviewcolumngetbitmap}
\func{const wxBitmap\&}{GetBitmap}{\void}
Returns the bitmap in the header of the column, if any.
\membersection{wxDataViewColumn::GetModelColumn}\label{wxdataviewcolumngetmodelcolumn}
\func{unsigned int}{GetModelColumn}{\void}
Returns the index of the column of the model, which this
wxDataViewColumn is displaying.
\membersection{wxDataViewColumn::GetOwner}\label{wxdataviewcolumngetowner}
\func{wxDataViewCtrl*}{GetOwner}{\void}
Returns the owning \helpref{wxDataViewCtrl}{wxdataviewctrl}.
\membersection{wxDataViewColumn::GetRenderer}\label{wxdataviewcolumngetrenderer}
\func{wxDataViewRenderer*}{GetRenderer}{\void}
Returns the renderer of this wxDataViewColumn.
See also \helpref{wxDataViewRenderer}{wxdataviewrenderer}.
\membersection{wxDataViewColumn::GetSortable}\label{wxdataviewcolumngetsortable}
\func{bool}{GetSortable}{\void}
Returns true if the column is sortable.
See \helpref{SetSortable}{wxdataviewcolumnsetsortable}
\membersection{wxDataViewColumn::GetWidth}\label{wxdataviewcolumngetwidth}
\func{int}{GetWidth}{\void}
Returns the width of the column.
\membersection{wxDataViewColumn::IsSortOrderAscending}\label{wxdataviewcolumnissortorderascending}
\func{bool}{IsSortOrderAscending}{\void}
Returns true, if the sort order is ascending.
See also \helpref{SetSortOrder}{wxdataviewcolumnsetsortorder}
\membersection{wxDataViewColumn::SetAlignment}\label{wxdataviewcolumnsetalignment}
\func{void}{SetAlignment}{\param{wxAlignment }{align}}
Set the alignment of the column header.
\membersection{wxDataViewColumn::SetBitmap}\label{wxdataviewcolumnsetbitmap}
\func{void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}}
Set the bitmap of the column header.
\membersection{wxDataViewColumn::SetSortOrder}\label{wxdataviewcolumnsetsortorder}
\func{void}{SetSortOrder}{\param{bool }{ascending}}
Indicate the sort order if the implementation of the
wxDataViewCtrl supports it, most commonly by showing
a little arrow. Use this in conjunction with
\helpref{wxDataViewSortedListModel::SetAscending}{wxdataviewsortedlistmodelsetascending}
to sort the actual data.
\membersection{wxDataViewColumn::SetSortable}\label{wxdataviewcolumnsetsortable}
\func{void}{SetSortable}{\param{bool }{sortable}}
Indicate that the column is sortable. This is only to provide a
visual hint in the column (such as a sort order indicator). It
will not actually sort the data. Use a
\helpref{wxDataViewSortedListModel}{wxdataviewsortedlistmodel}
to so the sorting.
\membersection{wxDataViewColumn::SetTitle}\label{wxdataviewcolumnsettitle}
\func{void}{SetTitle}{\param{const wxString\& }{title}}
Set the title of the column header to {\it title}.

View File

@@ -0,0 +1,230 @@
\section{\class{wxDataViewCtrl}}\label{wxdataviewctrl}
This class and its documentation are work in progress and
certainly 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. Currently,
only the tabular form is implemented. 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
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
in turn owns 1 instance of a
\helpref{wxDataViewRenderer}{wxdataviewrenderer} to render its
cells. A number of standard renderers for rendering text, dates,
images, toggle, a progress bar etc. are provided. Additionally,
the user can write custom renderes deriving from
\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer}
for displaying anything.
All data transfer from the control to the model and the user
code is done through \helpref{wxVariant}{wxvariant} which can
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 only be implemented for GTK+ and
there are only barely working stubs for a generic implementation.
It is planned to implement the control natively under OS X
and use generic code under Windows (and elsewhere).
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxDV\_SINGLE}}{Single selection mode. This is the default.}
\twocolitem{\windowstyle{wxDV\_MULTIPLE}}{Multiple selection mode.}
\end{twocollist}
\wxheading{Event handling}
To process input from a dataview control, use the following event handler
macros to direct input to member functions that take a
\helpref{wxDataViewEvent}{wxdataviewevent} argument.
\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\_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}
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewCtrl::wxDataViewCtrl}\label{wxdataviewctrlwxdataviewctrl}
\func{}{wxDataViewCtrl}{\void}
\func{}{wxDataViewCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}}
Constructor. Calls \helpref{Create}{wxdataviewctrlcreate}.
\membersection{wxDataViewCtrl::\destruct{wxDataViewCtrl}}\label{wxdataviewctrldtor}
\func{}{\destruct{wxDataViewCtrl}}{\void}
Destructor.
\membersection{wxDataViewCtrl::AppendColumn}\label{wxdataviewctrlappendcolumn}
\func{virtual bool}{AppendColumn}{\param{wxDataViewColumn* }{col}}
Add a \helpref{wxDataViewColumn}{wxdataviewcolumn} to the control. Note
that there is a number of short cut methods which implicitly create
a \helpref{wxDataViewColumn}{wxdataviewcolumn} and a
\helpref{wxDataViewRenderer}{wxataviewrenderer} for it (see below).
\membersection{wxDataViewCtrl::AppendBitmapColumn}\label{wxdataviewctrlappendbitmapcolumn}
\func{bool}{AppendBitmapColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}}
\func{bool}{AppendBitmapColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}}
Appends a column for rendering a bitmap.
\membersection{wxDataViewCtrl::AppendDateColumn}\label{wxdataviewctrlappenddatecolumn}
\func{bool}{AppendDateColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}, \param{int }{width = -1}}
\func{bool}{AppendDateColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}, \param{int }{width = -1}}
Appends a column for rendering a date.
\membersection{wxDataViewCtrl::AppendProgressColumn}\label{wxdataviewctrlappendprogresscolumn}
\func{bool}{AppendProgressColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 80}}
\func{bool}{AppendProgressColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 80}}
Appends a column for rendering a progress indicator.
\membersection{wxDataViewCtrl::AppendTextColumn}\label{wxdataviewctrlappendtextcolumn}
\func{bool}{AppendTextColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}}
\func{bool}{AppendTextColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}}
Appends a column for rendering text.
\membersection{wxDataViewCtrl::AppendToggleColumn}\label{wxdataviewctrlappendtogglecolumn}
\func{bool}{AppendToggleColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 30}}
\func{bool}{AppendToggleColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 30}}
Appends a column for rendering a toggle.
\membersection{wxDataViewCtrl::AssociateModel}\label{wxdataviewctrlassociatemodel}
\func{virtual bool}{AssociateModel}{\param{wxDataViewListModel* }{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.
\membersection{wxDataViewCtrl::Create}\label{wxdataviewctrlcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}}
Create the control. Useful for two step creation.
\membersection{wxDataViewCtrl::ClearColumns}\label{wxdataviewctrlclearcolumns}
\func{virtual bool}{ClearColumns}{\void}
Removes all columns.
\membersection{wxDataViewCtrl::ClearSelection}\label{wxdataviewctrlclearselection}
\func{void}{ClearSelection}{\void}
Unselects all rows.
\membersection{wxDataViewCtrl::DeleteColumn}\label{wxdataviewctrldeletecolumn}
\func{virtual bool}{DeleteColumn}{\param{unsigned int }{pos}}
Deletes given column.
\membersection{wxDataViewCtrl::GetColumn}\label{wxdataviewctrlgetcolumn}
\func{virtual wxDataViewColumn*}{GetColumn}{\param{unsigned int }{pos}}
Returns pointer to the column.
\membersection{wxDataViewCtrl::GetModel}\label{wxdataviewctrlgetmodel}
\func{virtual wxDataViewListModel*}{GetModel}{\void}
Returns pointer to the data model associated with the
control (if any).
\membersection{wxDataViewCtrl::GetNumberOfColumns}\label{wxdataviewctrlgetnumberofcolumns}
\func{virtual unsigned int}{GetNumberOfColumns}{\void}
Returns the number of columns.
\membersection{wxDataViewCtrl::GetSelection}\label{wxdataviewctrlgetselection}
\constfunc{virtual int}{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.
\membersection{wxDataViewCtrl::GetSelections}\label{wxdataviewctrlgetselections}
\constfunc{virtual int}{GetSelections}{\param{wxArrayInt\& }{aSelections}}
Returns the number of selected rows and fills an array of int
with the indeces of the selected rows.
\membersection{wxDataViewCtrl::IsSelected}\label{wxdataviewctrlisselected}
\constfunc{virtual bool}{IsSelected}{\param{unsigned int }{row}}
Returns {\it true} if the row is selected, {\it false} otherwise.
\membersection{wxDataViewCtrl::SetSelection}\label{wxdataviewctrlsetselection}
\func{virtual void}{SetSelection}{\param{int }{row}}
Sets the selection. Use -1 to unselect all rows.
\membersection{wxDataViewCtrl::SetSelectionRange}\label{wxdataviewctrlsetselectionrange}
\func{virtual void}{SetSelectionRange}{\param{unsigned int }{from}, \param{unsigned int }{to}}
Set a range of selection.
\membersection{wxDataViewCtrl::SetSelections}\label{wxdataviewctrlsetselections}
\func{virtual void}{SetSelections}{\param{const wxArrayInt\& }{aSelections}}
Set the selection to the array of int.
\membersection{wxDataViewCtrl::Unselect}\label{wxdataviewctrlunselect}
\func{virtual void}{Unselect}{\param{unsigned int }{row}}
Unselect a particular row.

View File

@@ -0,0 +1,92 @@
\section{\class{wxDataViewEvent}}\label{wxdataviewevent}
wxDataViewEvent - the event class for the wxDataViewCtrl notifications
\wxheading{Derived from}
\helpref{wxNotifyEvent}{wxnotifyevent}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewEvent::wxDataViewEvent}\label{wxdatavieweventwxdataviewevent}
\func{}{wxDataViewEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{winid = 0}}
\func{}{wxDataViewEvent}{\param{const wxDataViewEvent\& }{event}}
\membersection{wxDataViewEvent::Clone}\label{wxdatavieweventclone}
\constfunc{wxEvent*}{Clone}{\void}
\membersection{wxDataViewEvent::GetColumn}\label{wxdatavieweventgetcolumn}
\constfunc{int}{GetColumn}{\void}
\membersection{wxDataViewEvent::GetDataViewColumn}\label{wxdatavieweventgetdataviewcolumn}
\func{wxDataViewColumn*}{GetDataViewColumn}{\void}
\membersection{wxDataViewEvent::GetModel}\label{wxdatavieweventgetmodel}
\constfunc{wxDataViewModel*}{GetModel}{\void}
\membersection{wxDataViewEvent::GetRow}\label{wxdatavieweventgetrow}
\constfunc{int}{GetRow}{\void}
\membersection{wxDataViewEvent::GetValue}\label{wxdatavieweventgetvalue}
\constfunc{const wxVariant\&}{GetValue}{\void}
\membersection{wxDataViewEvent::IsEditCancelled}\label{wxdatavieweventiseditcancelled}
\constfunc{bool}{IsEditCancelled}{\void}
Was cell editing canceled? For wxEVT\_COMMAND\_DATAVIEW\_END\_CELL\_EDIT only.
\membersection{wxDataViewEvent::SetColumn}\label{wxdatavieweventsetcolumn}
\func{void}{SetColumn}{\param{int }{col}}
\membersection{wxDataViewEvent::SetDataViewColumn}\label{wxdatavieweventsetdataviewcolumn}
\func{void}{SetDataViewColumn}{\param{wxDataViewColumn* }{col}}
For wxEVT\_DATAVIEW\_COLUMN\_HEADER\_CLICKED only.
\membersection{wxDataViewEvent::SetEditCanceled}\label{wxdatavieweventseteditcanceled}
\func{void}{SetEditCanceled}{\param{bool }{editCancelled}}
\membersection{wxDataViewEvent::SetModel}\label{wxdatavieweventsetmodel}
\func{void}{SetModel}{\param{wxDataViewModel* }{model}}
\membersection{wxDataViewEvent::SetRow}\label{wxdatavieweventsetrow}
\func{void}{SetRow}{\param{int }{row}}
\membersection{wxDataViewEvent::SetValue}\label{wxdatavieweventsetvalue}
\func{void}{SetValue}{\param{const wxVariant\& }{value}}

View File

@@ -0,0 +1,89 @@
\section{\class{wxDataViewListModelNotifier}}\label{wxdataviewlistmodelnotifier}
A wxDataViewListModelNotifier instance is owned by a
\helpref{wxDataViewListModel}{wxdataviewlistmodel}
and mostly mirrors its interface. See the documentation
of that class for further information.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewListModelNotifier::wxDataViewListModelNotifier}\label{wxdataviewlistmodelnotifierwxdataviewlistmodelnotifier}
\func{}{wxDataViewListModelNotifier}{\void}
Constructor.
\membersection{wxDataViewListModelNotifier::\destruct{wxDataViewListModelNotifier}}\label{wxdataviewlistmodelnotifierdtor}
\func{}{\destruct{wxDataViewListModelNotifier}}{\void}
Destructor.
\membersection{wxDataViewListModelNotifier::Cleared}\label{wxdataviewlistmodelnotifiercleared}
\func{bool}{Cleared}{\void}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::GetOwner}\label{wxdataviewlistmodelnotifiergetowner}
\func{wxDataViewListModel*}{GetOwner}{\void}
Returns the owning \helpref{wxDataViewListModel}{wxdataviewlistmodel}.
\membersection{wxDataViewListModelNotifier::RowAppended}\label{wxdataviewlistmodelnotifierrowappended}
\func{bool}{RowAppended}{\void}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::RowChanged}\label{wxdataviewlistmodelnotifierrowchanged}
\func{bool}{RowChanged}{\param{unsigned int }{row}}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::RowDeleted}\label{wxdataviewlistmodelnotifierrowdeleted}
\func{bool}{RowDeleted}{\param{unsigned int }{row}}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::RowInserted}\label{wxdataviewlistmodelnotifierrowinserted}
\func{bool}{RowInserted}{\param{unsigned int }{before}}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::RowPrepended}\label{wxdataviewlistmodelnotifierrowprepended}
\func{bool}{RowPrepended}{\void}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::RowsReordered}\label{wxdataviewlistmodelnotifierrowsreordered}
\func{bool}{RowsReordered}{\param{unsigned int* }{new\_order}}
Called by owning list model.
\membersection{wxDataViewListModelNotifier::SetOwner}\label{wxdataviewlistmodelnotifiersetowner}
\func{void}{SetOwner}{\param{wxDataViewListModel* }{owner}}
Set the owning \helpref{wxDataViewListModel}{wxdataviewlistmodel}. This
method is called by the \helpref{wxDataViewListModel::AddNotifier}{wxdataviewlistmodeladdnotifier}.
\membersection{wxDataViewListModelNotifier::ValueChanged}\label{wxdataviewlistmodelnotifiervaluechanged}
\func{bool}{ValueChanged}{\param{unsigned int }{col}, \param{unsigned int }{row}}
Called by owning list model.

View File

@@ -0,0 +1,245 @@
\section{\class{wxDataViewModel}}\label{wxdataviewmodel}
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.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewModel::wxDataViewModel}\label{wxdataviewmodelwxdataviewmodel}
\func{}{wxDataViewModel}{\void}
\membersection{wxDataViewModel::\destruct{wxDataViewModel}}\label{wxdataviewmodeldtor}
\func{}{\destruct{wxDataViewModel}}{\void}
\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.
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 {\it ValueChanged()}
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.
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.
\wxheading{Derived from}
\helpref{wxDataViewModel}{wxdataviewmodel}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewListModel::wxDataViewListModel}\label{wxdataviewlistmodelwxdataviewlistmodel}
\func{}{wxDataViewListModel}{\void}
\membersection{wxDataViewListModel::\destruct{wxDataViewListModel}}\label{wxdataviewlistmodeldtor}
\func{}{\destruct{wxDataViewListModel}}{\void}
\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::AddViewingColumn}\label{wxdataviewlistmodeladdviewingcolumn}
\func{void}{AddViewingColumn}{\param{wxDataViewColumn* }{view\_column}, \param{unsigned int }{model\_column}}
Used internally. Used for maintaining a list of
\helpref{wxDataViewColumn}{wxdataviewcolumn} that
display a certain column of this model.
\membersection{wxDataViewListModel::Cleared}\label{wxdataviewlistmodelcleared}
\func{bool}{Cleared}{\void}
Call this if all data in your model has been cleared.
\membersection{wxDataViewListModel::GetColType}\label{wxdataviewlistmodelgetcoltype}
\func{virtual wxString}{GetColType}{\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::GetNumberOfCols}\label{wxdataviewlistmodelgetnumberofcols}
\func{virtual unsigned int}{GetNumberOfCols}{\void}
Override this to indicate, how many columns the list
model has.
\membersection{wxDataViewListModel::GetNumberOfRows}\label{wxdataviewlistmodelgetnumberofrows}
\func{virtual unsigned int}{GetNumberOfRows}{\void}
Override this to indicate, how many rows the list
model has.
\membersection{wxDataViewListModel::GetValue}\label{wxdataviewlistmodelgetvalue}
\func{virtual void}{GetValue}{\param{wxVariant\& }{variant}, \param{unsigned int }{col}, \param{unsigned int }{row}}
Override this to indicate the value of a given value
in the list model. A \helpref{wxVariant}{wxvariant}
is used to store the data.
\membersection{wxDataViewListModel::RemoveNotifier}\label{wxdataviewlistmodelremovenotifier}
\func{void}{RemoveNotifier}{\param{wxDataViewListModelNotifier* }{notifier}}
Removes the notifier from the list of notifiers.
See also \helpref{AddNotifier}{{wxdataviewlistmodeladdnotifier}.
\membersection{wxDataViewListModel::RemoveViewingColumn}\label{wxdataviewlistmodelremoveviewingcolumn}
\func{void}{RemoveViewingColumn}{\param{wxDataViewColumn* }{column}}
Used internally. Used for maintaining a list of
\helpref{wxDataViewColumn}{wxdataviewcolumn} that
display a certain column of this model.
\membersection{wxDataViewListModel::RowAppended}\label{wxdataviewlistmodelrowappended}
\func{virtual bool}{RowAppended}{\void}
Call this if a row has been appended to the list model.
\membersection{wxDataViewListModel::RowChanged}\label{wxdataviewlistmodelrowchanged}
\func{virtual bool}{RowChanged}{\param{unsigned int }{row}}
Call this if the values of this row have been changed.
\membersection{wxDataViewListModel::RowDeleted}\label{wxdataviewlistmodelrowdeleted}
\func{virtual bool}{RowDeleted}{\param{unsigned int }{row}}
Call this if this row has been deleted.
\membersection{wxDataViewListModel::RowInserted}\label{wxdataviewlistmodelrowinserted}
\func{virtual bool}{RowInserted}{\param{unsigned int }{before}}
Call this if a row has been inserted.
\membersection{wxDataViewListModel::RowPrepended}\label{wxdataviewlistmodelrowprepended}
\func{virtual bool}{RowPrepended}{\void}
Call this if a row has been prepended.
\membersection{wxDataViewListModel::RowsReordered}\label{wxdataviewlistmodelrowsreordered}
\func{virtual bool}{RowsReordered}{\param{unsigned int* }{new\_order}}
Call this if the rows have been reorderd.
\membersection{wxDataViewListModel::SetValue}\label{wxdataviewlistmodelsetvalue}
\func{virtual bool}{SetValue}{\param{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}
\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}
\func{void}{Resort}{\void}
Tell the model to resort its data.
\membersection{wxDataViewSortedListModel::SetAscending}\label{wxdataviewsortedlistmodelsetascending}
\func{void}{SetAscending}{\param{bool }{ascending}}
Set the sort order of the data.

View File

@@ -0,0 +1,272 @@
\section{\class{wxDataViewRenderer}}\label{wxdataviewrenderer}
This class is used by \helpref{wxDataViewCtrl}{wxdataviewctrl} to
render the individual cells. One instance of a renderer class is
owned by \helpref{wxDataViewColumn}{wxdataviewcolumn}. There is
a number of ready-to-use renderers provided:
\helpref{wxDataViewTextRenderer}{wxdataviewtextrenderer},
\helpref{wxDataViewToggleRenderer}{wxdataviewtogglerenderer},
\helpref{wxDataViewProgressRenderer}{wxdataviewprogressrenderer},
\helpref{wxDataViewBitmapRenderer}{wxdataviewbitmaprenderer},
\helpref{wxDataViewDateRenderer}{wxdataviewdaterenderer}.
Additionally, the user can write own renderers by deriving from
\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer}.
These flags control the behaviour of the renderer and they
are used for controlling in what mode the renderer shall
render its contents:
{\small
\begin{verbatim}
enum wxDataViewCellMode
{
wxDATAVIEW_CELL_INERT,
wxDATAVIEW_CELL_ACTIVATABLE,
wxDATAVIEW_CELL_EDITABLE
};
enum wxDataViewCellRenderState
{
wxDATAVIEW_CELL_SELECTED = 1,
wxDATAVIEW_CELL_PRELIT = 2,
wxDATAVIEW_CELL_INSENSITIVE = 4,
wxDATAVIEW_CELL_FOCUSED = 8
};
\end{verbatim}
}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewRenderer::wxDataViewRenderer}\label{wxdataviewrendererwxdataviewrenderer}
\func{}{wxDataViewRenderer}{\param{const wxString\& }{varianttype}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
Constructor.
\membersection{wxDataViewRenderer::GetMode}\label{wxdataviewrenderergetmode}
\func{virtual wxDataViewCellMode}{GetMode}{\void}
Returns the cell mode.
\membersection{wxDataViewRenderer::GetOwner}\label{wxdataviewrenderergetowner}
\func{virtual wxDataViewColumn*}{GetOwner}{\void}
Returns pointer to the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}.
\membersection{wxDataViewRenderer::GetValue}\label{wxdataviewrenderergetvalue}
\func{virtual bool}{GetValue}{\param{wxVariant\& }{value}}
This methods retrieves the value from the renderer in order to
transfer the value back to the data model. Returns {\it false}
on failure.
\membersection{wxDataViewRenderer::GetVariantType}\label{wxdataviewrenderergetvarianttype}
\func{virtual wxString}{GetVariantType}{\void}
Returns a string with the type of the \helpref{wxVariant}{wxvariant}
supported by this renderer.
\membersection{wxDataViewRenderer::SetOwner}\label{wxdataviewrenderersetowner}
\func{virtual void}{SetOwner}{\param{wxDataViewColumn* }{owner}}
Sets the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}. This
is usually called from within wxDataViewColumn.
\membersection{wxDataViewRenderer::SetValue}\label{wxdataviewrenderersetvalue}
\func{virtual bool}{SetValue}{\param{const wxVariant\& }{value}}
Set the value of the renderer (and thus its cell) to {\it value}.
The internal code will then render this cell with this data.
\membersection{wxDataViewRenderer::Validate}\label{wxdataviewrenderervalidate}
\func{virtual bool}{Validate}{\param{wxVariant\& }{value}}
To be implemented.
\section{\class{wxDataViewTextRenderer}}\label{wxdataviewtextrenderer}
wxDataViewTextRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewTextRenderer::wxDataViewTextRenderer}\label{wxdataviewtextrendererwxdataviewtextrenderer}
\func{}{wxDataViewTextRenderer}{\param{const wxString\& }{varianttype = wxT("string")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
\section{\class{wxDataViewProgressRenderer}}\label{wxdataviewprogressrenderer}
wxDataViewProgressRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewProgressRenderer::wxDataViewProgressRenderer}\label{wxdataviewprogressrendererwxdataviewprogressrenderer}
\func{}{wxDataViewProgressRenderer}{\param{const wxString\& }{label = wxEmptyString}, \param{const wxString\& }{varianttype = wxT("long")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
\section{\class{wxDataViewToggleRenderer}}\label{wxdataviewtogglerenderer}
wxDataViewToggleRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewToggleRenderer::wxDataViewToggleRenderer}\label{wxdataviewtogglerendererwxdataviewtogglerenderer}
\func{}{wxDataViewToggleRenderer}{\param{const wxString\& }{varianttype = wxT("bool")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
\section{\class{wxDataViewBitmapRenderer}}\label{wxdataviewbitmaprenderer}
wxDataViewBitmapRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewBitmapRenderer::wxDataViewBitmapRenderer}\label{wxdataviewbitmaprendererwxdataviewbitmaprenderer}
\func{}{wxDataViewBitmapRenderer}{\param{const wxString\& }{varianttype = wxT("wxBitmap")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}}
\section{\class{wxDataViewDateRenderer}}\label{wxdataviewdaterenderer}
wxDataViewDateRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewDateRenderer::wxDataViewDateRenderer}\label{wxdataviewdaterendererwxdataviewdaterenderer}
\func{}{wxDataViewDateRenderer}{\param{const wxString\& }{varianttype = wxT("datetime")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}}
\section{\class{wxDataViewCustomRenderer}}\label{wxdataviewcustomrenderer}
wxDataViewCustomRenderer
\wxheading{Derived from}
\helpref{wxDataViewRenderer}{wxdataviewrenderer}
\wxheading{Include files}
<wx/dataview.h>
\membersection{wxDataViewCustomRenderer::wxDataViewCustomRenderer}\label{wxdataviewcustomrendererwxdataviewcustomrenderer}
\func{}{wxDataViewCustomRenderer}{\param{const wxString\& }{varianttype = wxT("string")}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{bool }{no\_init = false}}
Constructor.
\membersection{wxDataViewCustomRenderer::\destruct{wxDataViewCustomRenderer}}\label{wxdataviewcustomrendererdtor}
\func{}{\destruct{wxDataViewCustomRenderer}}{\void}
Destructor.
\membersection{wxDataViewCustomRenderer::Activate}\label{wxdataviewcustomrendereractivate}
\func{virtual bool}{Activate}{\param{wxRect }{cell}, \param{wxDataViewListModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
Override this to react to double clicks or <ENTER>.
\membersection{wxDataViewCustomRenderer::GetDC}\label{wxdataviewcustomrenderergetdc}
\func{virtual wxDC*}{GetDC}{\void}
Create DC on request. Internal.
\membersection{wxDataViewCustomRenderer::GetSize}\label{wxdataviewcustomrenderergetsize}
\func{virtual wxSize}{GetSize}{\void}
Return size required to show content.
\membersection{wxDataViewCustomRenderer::LeftClick}\label{wxdataviewcustomrendererleftclick}
\func{virtual bool}{LeftClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewListModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
Overrride this to react to a left click.
\membersection{wxDataViewCustomRenderer::Render}\label{wxdataviewcustomrendererrender}
\func{virtual bool}{Render}{\param{wxRect }{cell}, \param{wxDC* }{dc}, \param{int }{state}}
Override this to render the cell. Before this is called,
\helpref{SetValue}{wxdataviewrenderersetvalue} was called
so that this instance knows what to render.
\membersection{wxDataViewCustomRenderer::RightClick}\label{wxdataviewcustomrendererrightclick}
\func{virtual bool}{RightClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewListModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
Overrride this to react to a right click.
\membersection{wxDataViewCustomRenderer::StartDrag}\label{wxdataviewcustomrendererstartdrag}
\func{virtual bool}{StartDrag}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewListModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}}
Overrride this to start a drag operation.