From b6b9d5562cd4aaa36211831c1875366a4dface18 Mon Sep 17 00:00:00 2001
From: Robert Roebling <robert@roebling.de>
Date: Sat, 7 Oct 2006 17:34:00 +0000
Subject: [PATCH]   Add docs to wxDataViewCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/dataviewcolumn.tex            | 138 ++++++++++
 docs/latex/wx/dataviewctrl.tex              | 230 +++++++++++++++++
 docs/latex/wx/dataviewevent.tex             |  92 +++++++
 docs/latex/wx/dataviewlistmodelnotifier.tex |  89 +++++++
 docs/latex/wx/dataviewmodel.tex             | 245 ++++++++++++++++++
 docs/latex/wx/dataviewrenderer.tex          | 272 ++++++++++++++++++++
 6 files changed, 1066 insertions(+)
 create mode 100644 docs/latex/wx/dataviewcolumn.tex
 create mode 100644 docs/latex/wx/dataviewctrl.tex
 create mode 100644 docs/latex/wx/dataviewevent.tex
 create mode 100644 docs/latex/wx/dataviewlistmodelnotifier.tex
 create mode 100644 docs/latex/wx/dataviewmodel.tex
 create mode 100644 docs/latex/wx/dataviewrenderer.tex

diff --git a/docs/latex/wx/dataviewcolumn.tex b/docs/latex/wx/dataviewcolumn.tex
new file mode 100644
index 0000000000..c309b9547c
--- /dev/null
+++ b/docs/latex/wx/dataviewcolumn.tex
@@ -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}.
+
diff --git a/docs/latex/wx/dataviewctrl.tex b/docs/latex/wx/dataviewctrl.tex
new file mode 100644
index 0000000000..5b357d31ca
--- /dev/null
+++ b/docs/latex/wx/dataviewctrl.tex
@@ -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.
+
diff --git a/docs/latex/wx/dataviewevent.tex b/docs/latex/wx/dataviewevent.tex
new file mode 100644
index 0000000000..38974eacf5
--- /dev/null
+++ b/docs/latex/wx/dataviewevent.tex
@@ -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}}
+
diff --git a/docs/latex/wx/dataviewlistmodelnotifier.tex b/docs/latex/wx/dataviewlistmodelnotifier.tex
new file mode 100644
index 0000000000..21fda2f8a5
--- /dev/null
+++ b/docs/latex/wx/dataviewlistmodelnotifier.tex
@@ -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.
diff --git a/docs/latex/wx/dataviewmodel.tex b/docs/latex/wx/dataviewmodel.tex
new file mode 100644
index 0000000000..fb8a80c79f
--- /dev/null
+++ b/docs/latex/wx/dataviewmodel.tex
@@ -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.
+
diff --git a/docs/latex/wx/dataviewrenderer.tex b/docs/latex/wx/dataviewrenderer.tex
new file mode 100644
index 0000000000..50900ec218
--- /dev/null
+++ b/docs/latex/wx/dataviewrenderer.tex
@@ -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.
+
+
+
-- 
2.45.2

