From 1ab4aff2738d8511da32e787796606646799f0ac Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 20 Aug 2007 22:29:18 +0000 Subject: [PATCH] Updated docs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/classes.tex | 3 +- docs/latex/wx/dataviewctrl.tex | 138 ++++++----- docs/latex/wx/dataviewindexlistmodel.tex | 105 ++++++++ docs/latex/wx/dataviewmodel.tex | 297 +++++++++-------------- docs/latex/wx/dataviewmodelnotifier.tex | 80 ++++++ 5 files changed, 378 insertions(+), 245 deletions(-) create mode 100644 docs/latex/wx/dataviewindexlistmodel.tex create mode 100644 docs/latex/wx/dataviewmodelnotifier.tex diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex index 189c681a9d..403e07a9ce 100644 --- a/docs/latex/wx/classes.tex +++ b/docs/latex/wx/classes.tex @@ -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 diff --git a/docs/latex/wx/dataviewctrl.tex b/docs/latex/wx/dataviewctrl.tex index 1a573158b5..7f29939f65 100644 --- a/docs/latex/wx/dataviewctrl.tex +++ b/docs/latex/wx/dataviewctrl.tex @@ -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}} + +Return true if the item is selected. -Returns {\it true} if the row is selected, {\it false} otherwise. +\membersection{wxDataViewCtrl::Select}\label{wxdataviewctrlselect} -\membersection{wxDataViewCtrl::SetSelection}\label{wxdataviewctrlsetselection} +\func{void}{Select}{\param{const wxDataViewItem \& }{item}} -\func{virtual void}{SetSelection}{\param{int }{row}} +Select the given item. -Sets the selection. Use -1 to unselect all rows. +\membersection{wxDataViewCtrl::SelectAll}\label{wxdataviewctrlselectall} -\membersection{wxDataViewCtrl::SetSelectionRange}\label{wxdataviewctrlsetselectionrange} +\func{void}{SelectAll}{\void} -\func{virtual void}{SetSelectionRange}{\param{unsigned int }{from}, \param{unsigned int }{to}} +Select all items. -Set a range of selection. +\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 the given item. + +\membersection{wxDataViewCtrl::UnselectAll}\label{wxdataviewctrlunselectall} + +\func{void}{UnselectAll}{\void} -Unselect a particular row. +Unselect all item. This method only has effect if multiple +selections are allowed. diff --git a/docs/latex/wx/dataviewindexlistmodel.tex b/docs/latex/wx/dataviewindexlistmodel.tex new file mode 100644 index 0000000000..74d35d2c52 --- /dev/null +++ b/docs/latex/wx/dataviewindexlistmodel.tex @@ -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} + + + +\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. \ No newline at end of file diff --git a/docs/latex/wx/dataviewmodel.tex b/docs/latex/wx/dataviewmodel.tex index 7ec14918d3..c5063807b1 100644 --- a/docs/latex/wx/dataviewmodel.tex +++ b/docs/latex/wx/dataviewmodel.tex @@ -3,271 +3,200 @@ 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{wxObjectRefData}{wxobjectrefdata} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\membersection{wxDataViewModel::wxDataViewModel}\label{wxdataviewmodelwxdataviewmodel} - -\func{}{wxDataViewModel}{\void} - -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 +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. -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}. - - - -wxDataViewModel and this class (as indeed the entire wxDataViewCtrl +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{wxDataListViewListModelNotifier}{wxdataviewlistmodelnotifier} +\helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier} which link this class to the specific implementations on the supported platforms so that e.g. calling -\helpref{ValueChanged}{wxdataviewlistmodelvaluechanged} +\helpref{ValueChanged}{wxdataviewmodelvaluechanged} 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. +\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} -\helpref{wxDataViewModel}{wxdataviewmodel}\\ \helpref{wxObjectRefData}{wxobjectrefdata} \wxheading{Include files} +\wxheading{Library} -\membersection{wxDataViewListModel::wxDataViewListModel}\label{wxdataviewlistmodelwxdataviewlistmodel} - -\func{}{wxDataViewListModel}{\void} - -Constructor. - -\membersection{wxDataViewListModel::\destruct{wxDataViewListModel}}\label{wxdataviewlistmodeldtor} - -\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}} +\helpref{wxAdv}{librarieslist} -Override this to indicate what type of data is stored in the -column specified by {\it col}. This should return a string -indicating the type of data as reported by \helpref{wxVariant}{wxvariant}. +\membersection{wxDataViewModel::wxDataViewModel}\label{wxdataviewmodelwxdataviewmodel} -\membersection{wxDataViewListModel::GetRowCount}\label{wxdataviewlistmodelgetrowcount} +\func{}{wxDataViewModel}{\void} -\func{virtual unsigned int}{GetRowCount}{\void} +Constructor. -Override this to indicate, how many rows the list -model has. -\membersection{wxDataViewListModel::GetValue}\label{wxdataviewlistmodelgetvalue} +\membersection{wxDataViewModel::\destruct{wxDataViewModel}}\label{wxdataviewmodeldtor} -\func{virtual void}{GetValue}{\param{wxVariant\& }{variant}, \param{unsigned int }{col}, \param{unsigned int }{row}} +\func{}{\destruct{wxDataViewModel}}{\void} -Override this to indicate the value of a given value -in the list model. A \helpref{wxVariant}{wxvariant} -is used to store the data. +Destructor. This should not be called directly. Use DecRef() instead. -\membersection{wxDataViewListModel::RemoveNotifier}\label{wxdataviewlistmodelremovenotifier} -\func{void}{RemoveNotifier}{\param{wxDataViewListModelNotifier* }{notifier}} +\membersection{wxDataViewModel::AddNotifier}\label{wxdataviewmodeladdnotifier} -Removes the notifier from the list of notifiers. +\func{void}{AddNotifier}{\param{wxDataViewModelNotifier* }{notifier}} -See also \helpref{AddNotifier}{wxdataviewlistmodeladdnotifier}. +Adds a \helpref{wxDataViewModelNotifier}{wxdataviewlistmodelnotifier} +to the model. -\membersection{wxDataViewListModel::RowAppended}\label{wxdataviewlistmodelrowappended} +\membersection{wxDataViewModel::Cleared}\label{wxdataviewmodelcleared} -\func{virtual bool}{RowAppended}{\void} +\func{bool}{Cleared}{\void} -Call this if a row has been appended to the list model. +Called to inform the model that all data has been deleted. -\membersection{wxDataViewListModel::RowChanged}\label{wxdataviewlistmodelrowchanged} +\membersection{wxDataViewModel::Compare}\label{wxdataviewmodelcompare} -\func{virtual bool}{RowChanged}{\param{unsigned int }{row}} +\func{int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}} -Call this if the values of this row have been changed. +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::RowDeleted}\label{wxdataviewlistmodelrowdeleted} +\membersection{wxDataViewModel::GetColumnCount}\label{wxdataviewmodelgetcolumncount} -\func{virtual bool}{RowDeleted}{\param{unsigned int }{row}} +\constfunc{unsigned int}{GetColumnCount}{\void} -Call this if this row has been deleted. +Override this to indicate the number of columns in the model. -\membersection{wxDataViewListModel::RowInserted}\label{wxdataviewlistmodelrowinserted} +\membersection{wxDataViewModel::GetColumnType}\label{wxdataviewmodelgetcolumntype} -\func{virtual bool}{RowInserted}{\param{unsigned int }{before}} +\constfunc{wxString}{GetColumnType}{\param{unsigned int }{col}} -Call this if a row has been inserted. +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::RowPrepended}\label{wxdataviewlistmodelrowprepended} +\membersection{wxDataViewModel::GetFirstChild}\label{wxdataviewmodelgetfirstchild} -\func{virtual bool}{RowPrepended}{\void} +\constfunc{wxDataViewItem}{GetFirstChild}{\param{const wxDataViewItem\& }{parent}} -Call this if a row has been prepended. +To be removed. -\membersection{wxDataViewListModel::RowsReordered}\label{wxdataviewlistmodelrowsreordered} +\membersection{wxDataViewModel::GetNextSibling}\label{wxdataviewmodelgetnextsibling} -\func{virtual bool}{RowsReordered}{\param{unsigned int* }{new\_order}} +\constfunc{wxDataViewItem}{GetNextSibling}{\param{const wxDataViewItem\& }{item}} -Call this if the rows have been reorderd. +To be removed. -\membersection{wxDataViewListModel::SetValue}\label{wxdataviewlistmodelsetvalue} +\membersection{wxDataViewModel::GetParent}\label{wxdataviewmodelgetparent} -\func{virtual bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{unsigned int }{col}, \param{unsigned int }{row}} +\constfunc{wxDataViewItem}{GetParent}{\param{const wxDataViewItem\& }{item}} -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. +Override this to indicate which wxDataViewItem representing the parent +of {\it item} or an invalid wxDataViewItem if {\it item} is the root item. +\membersection{wxDataViewModel::GetValue}\label{wxdataviewmodelgetvalue} -\membersection{wxDataViewListModel::ValueChanged}\label{wxdataviewlistmodelvaluechanged} +\constfunc{void}{GetValue}{\param{wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} -\func{virtual bool}{ValueChanged}{\param{unsigned int }{col}, \param{unsigned int }{row}} +Override this to indicate the value of {\it item} +A \helpref{wxVariant}{wxvariant} is used to store the data. -Call this if a value in the model has been changed. +\membersection{wxDataViewModel::IsContainer}\label{wxdataviewmodeliscontainer} +\constfunc{bool}{IsContainer}{\param{const wxDataViewItem\& }{item}} -\section{\class{wxDataViewSortedListModel}}\label{wxdataviewsortedlistmodel} +Override this to indicate of {\it item} is a container, i.e. if +it can have child items. -This class is used for sorting data. It does not contain any -data itself. Rather, it provides a sorted interface for -another list model. +\membersection{wxDataViewModel::ItemAdded}\label{wxdataviewmodelitemadded} -Currently, the sorting algorithm isn't thread safe. This needs -to be fixed. +\func{bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} -\wxheading{Derived from} +Call this to inform the model that an item has been added +to the data. -\helpref{wxDataViewListModel}{wxdataviewlistmodel}\\ -\helpref{wxDataViewModel}{wxdataviewmodel}\\ -\helpref{wxObjectRefData}{wxobjectrefdata} +\membersection{wxDataViewModel::ItemChanged}\label{wxdataviewmodelitemchanged} -\wxheading{Include files} +\func{bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}} - +Call this to inform the model that an item has changed. -\membersection{wxDataViewSortedListModel::wxDataViewSortedListModel}\label{wxdataviewsortedlistmodelwxdataviewsortedlistmodel} +\membersection{wxDataViewModel::ItemDeleted}\label{wxdataviewmodelitemdeleted} -\func{}{wxDataViewSortedListModel}{\param{wxDataViewListModel* }{child}} +\func{bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} -Constructor. {\it child} is the child data model the data of -which this model is supposed to present in a sorted way. +Call this to inform the model that an item has been deleted. -\membersection{wxDataViewSortedListModel::\destruct{wxDataViewSortedListModel}}\label{wxdataviewsortedlistmodeldtor} +\membersection{wxDataViewModel::RemoveNotifier}\label{wxdataviewmodelremovenotifier} -\func{}{\destruct{wxDataViewSortedListModel}}{\void} +\func{void}{RemoveNotifier}{\param{wxDataViewModelNotifier* }{notifier}} -Destructor. +Remove the {\it notifier} from the list of notifiers. -\membersection{wxDataViewSortedListModel::GetAscending}\label{wxdataviewsortedlistmodelgetascending} +\membersection{wxDataViewModel::Resort}\label{wxdataviewmodelresort} -\func{bool}{GetAscending}{\void} +\func{void}{Resort}{\void} -Returns true if the data is sorted in ascending order. +Call this to initiate a resort after the sort function has +been changed. -\membersection{wxDataViewSortedListModel::Resort}\label{wxdataviewsortedlistmodelresort} +\membersection{wxDataViewModel::SetValue}\label{wxdataviewmodelsetvalue} -\func{void}{Resort}{\void} +\func{bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} -Tell the model to resort its 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{wxDataViewSortedListModel::SetAscending}\label{wxdataviewsortedlistmodelsetascending} +\membersection{wxDataViewModel::ValueChanged}\label{wxdataviewmodelvaluechanged} -\func{void}{SetAscending}{\param{bool }{ascending}} +\func{bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} -Set the sort order of the data. +Call this to inform this model that a value in +the model has been changed. diff --git a/docs/latex/wx/dataviewmodelnotifier.tex b/docs/latex/wx/dataviewmodelnotifier.tex new file mode 100644 index 0000000000..9e7708b60d --- /dev/null +++ b/docs/latex/wx/dataviewmodelnotifier.tex @@ -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} + + + +\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. -- 2.45.2