/////////////////////////////////////////////////////////////////////////////
// Name: dataview.h
-// Purpose: documentation for wxDataViewIconText class
+// Purpose: interface of wxDataViewIconText
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
a wxVariant.
@library{wxbase}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewIconText : public wxObject
{
/**
Gets the icon.
*/
- const wxIcon GetIcon();
+ const wxIcon GetIcon() const;
/**
Gets the text.
*/
- wxString GetText();
+ wxString GetText() const;
/**
Set the icon.
};
+
/**
@class wxDataViewEvent
@wxheader{dataview.h}
wxDataViewEvent - the event class for the wxDataViewCtrl notifications
@library{wxadv}
- @category{FIXME}
+ @category{events,dvc}
*/
class wxDataViewEvent : public wxNotifyEvent
{
public:
//@{
/**
-
+
*/
- wxDataViewEvent(wxEventType commandType = wxEVT_@NULL,
+ wxDataViewEvent(wxEventType commandType = wxEVT_NULL,
int winid = 0);
wxDataViewEvent(const wxDataViewEvent& event);
//@}
/**
Used to clone the event.
*/
- wxEvent* Clone();
+ wxEvent* Clone() const;
/**
Returns the position of the column in the control or -1
if no column field was set by the event emitter.
*/
- int GetColumn();
+ int GetColumn() const;
/**
Returns a pointer to the wxDataViewColumn from which
/**
Returns the wxDataViewModel associated with the event.
*/
- wxDataViewModel* GetModel();
+ wxDataViewModel* GetModel() const;
/**
Returns a the position of a context menu event in screen coordinates.
*/
- wxPoint GetPosition();
+ wxPoint GetPosition() const;
/**
Returns a reference to a value.
*/
- const wxVariant GetValue();
+ const wxVariant GetValue() const;
/**
-
+
*/
void SetColumn(int col);
void SetDataViewColumn(wxDataViewColumn* col);
/**
-
+
*/
void SetModel(wxDataViewModel* model);
/**
-
- */
- void SetValue(const wxVariant& value);
-};
-
-
-/**
- @class wxDataViewIconTextRenderer
- @wxheader{dataview.h}
- The wxDataViewIconTextRenderer class is used to display text with
- a small icon next to it as it is typically done in a file manager.
- This classes uses the wxDataViewIconText
- helper class to store its data. wxDataViewIonText can be converted
- to a from a wxVariant using the left shift
- operator.
-
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewIconTextRenderer : public wxDataViewRenderer
-{
-public:
- /**
-
*/
- wxDataViewIconTextRenderer(const wxString& varianttype = "wxDataViewIconText",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+ void SetValue(const wxVariant& value);
};
-/**
- @class wxDataViewIndexListModel
- @wxheader{dataview.h}
-
- 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
- wxDataViewIndexListModel::Compare method
- which sorts the model's data by the index.
-
- This model is special in the it is implemented differently under OS X
- and other platforms. Under OS X a wxDataViewItem is always persistent
- and this is also the case for this class. Under other platforms, the
- meaning of a wxDataViewItem is changed to reflect a row number for
- wxDataViewIndexListModel. The consequence of this is that
- wxDataViewIndexListModel can be used as a virtual model with an
- almost infinate number of items on platforms other than OS X.
-
- @library{wxbase}
- @category{FIXME}
-*/
-class wxDataViewIndexListModel : public wxDataViewModel
-{
-public:
- /**
- Constructor.
- */
- wxDataViewIndexListModel(unsigned int initial_size = 0);
-
- /**
- Destructor.
- */
- ~wxDataViewIndexListModel();
-
- /**
- Compare method that sorts the items by their index.
- */
- int Compare(const wxDataViewItem& item1,
- const wxDataViewItem& item2,
- unsigned int column, bool ascending);
-
- /**
- Oberride this to indicate that the row has special font attributes.
- This only affects the
- wxDataViewTextRendererText renderer.
-
- See also wxDataViewItemAttr.
- */
- bool GetAttr(unsigned int row, unsigned int col,
- wxDataViewItemAttr& attr);
-
- /**
- Returns the wxDataViewItem at the given @e row.
- */
- wxDataViewItem GetItem(unsigned int row);
-
- /**
- Returns the position of given @e item.
- */
- unsigned int GetRow(const wxDataViewItem& item);
-
- /**
- Override this to allow getting values from the model.
- */
- void GetValue(wxVariant& variant, unsigned int row,
- unsigned int col);
-
- /**
- Call this after if the data has to be read again from
- the model. This is useful after major changes when
- calling the methods below (possibly thousands of times)
- doesn't make sense.
- */
- void Reset(unsigned int new_size);
-
- /**
- Call this after a row has been appended to the model.
- */
- void RowAppended();
-
- /**
- Call this after a row has been changed.
- */
- void RowChanged(unsigned int row);
-
- /**
- Call this after a row has been deleted.
- */
- void RowDeleted(unsigned int row);
-
- /**
- Call this after a row has been inserted at the given position.
- */
- void RowInserted(unsigned int before);
-
- /**
- Call this after a row has been prepended to the model.
- */
- void RowPrepended();
-
- /**
- Call this after a value has been changed.
- */
- void RowValueChanged(unsigned int row, unsigned int col);
-
- /**
- Call this after rows have been deleted. The array will internally
- get copied and sorted in descending order so that the rows with
- the highest position will be deleted first.
- */
- void RowsDeleted(const wxArrayInt& rows);
-
- /**
- Called in order to set a value in the model.
- */
- bool SetValue(const wxVariant& variant, unsigned int row,
- unsigned int col);
-};
-
/**
@class wxDataViewModel
Currently wxWidgets provides the following models apart
from the base model:
wxDataViewIndexListModel,
+ wxDataViewVirtualListModel,
wxDataViewTreeStore.
Note that wxDataViewModel is reference counted, derives from
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewModel : public wxObjectRefData
{
The compare function to be used by control. The default compare function
sorts by container and other items separately and in ascending order.
Override this for a different sorting behaviour.
-
See also HasDefaultCompare().
*/
virtual int Compare(const wxDataViewItem& item1,
/**
Oberride this to indicate that the item has special font attributes.
This only affects the
- wxDataViewTextRendererText renderer.
-
+ wxDataViewTextRendererText() renderer.
See also wxDataViewItemAttr.
*/
bool GetAttr(const wxDataViewItem& item, unsigned int col,
an item. Returns the number of items.
*/
virtual unsigned int GetChildren(const wxDataViewItem& item,
- wxDataViewItemArray& children);
+ wxDataViewItemArray& children) const;
/**
Override this to indicate the number of columns in the model.
*/
- virtual unsigned int GetColumnCount();
+ virtual unsigned int GetColumnCount() const;
/**
Override this to indicate what type of data is stored in the
column specified by @e col. This should return a string
indicating the type of data as reported by wxVariant.
*/
- virtual wxString GetColumnType(unsigned int col);
+ virtual wxString GetColumnType(unsigned int col) const;
/**
Override this to indicate which wxDataViewItem representing the parent
- of @e item or an invalid wxDataViewItem if the the root item is
+ of @a item or an invalid wxDataViewItem if the the root item is
the parent item.
*/
- virtual wxDataViewItem GetParent(const wxDataViewItem& item);
+ virtual wxDataViewItem GetParent(const wxDataViewItem& item) const;
/**
Override this to indicate the value of @e item
*/
virtual void GetValue(wxVariant& variant,
const wxDataViewItem& item,
- unsigned int col);
+ unsigned int col) const;
/**
Override this method to indicate if a container item merely
acts a normal item with entries for futher columns. By
default returns @e @false.
*/
- virtual bool HasContainerColumns(const wxDataViewItem& item);
+ virtual bool HasContainerColumns(const wxDataViewItem& item) const;
/**
Override this to indicate that the model provides a default compare
should be used. See also wxDataViewIndexListModel
for a model which makes use of this.
*/
- virtual bool HasDefaultCompare();
+ virtual bool HasDefaultCompare() const;
/**
- Override this to indicate of @e item is a container, i.e. if
+ Override this to indicate of @a item is a container, i.e. if
it can have child items.
*/
- virtual bool IsContainer(const wxDataViewItem& item);
+ virtual bool IsContainer(const wxDataViewItem& item) const;
/**
Call this to inform the model that an item has been added
/**
Call this to inform the model that an item has changed.
-
This will eventually emit a wxEVT_DATAVIEW_ITEM_VALUE_CHANGED
event (in which the column fields will not be set) to the user.
*/
/**
Call this to inform the model that several items have changed.
-
This will eventually emit wxEVT_DATAVIEW_ITEM_VALUE_CHANGED
events (in which the column fields will not be set) to the user.
*/
const wxDataViewItemArray& items);
/**
- Remove the @e notifier from the list of notifiers.
+ Remove the @a notifier from the list of notifiers.
*/
void RemoveNotifier(wxDataViewModelNotifier* notifier);
been changed. This is also called from wxDataViewCtrl's
internal editing code, e.g. when editing a text field
in the control.
-
This will eventually emit a wxEVT_DATAVIEW_ITEM_VALUE_CHANGED
event to the user.
*/
};
+
/**
- @class wxDataViewCustomRenderer
+ @class wxDataViewIndexListModel
@wxheader{dataview.h}
- You need to derive a new class from wxDataViewCustomRenderer in
- order to write a new renderer. You need to override at least
- wxDataViewRenderer::SetValue,
- wxDataViewRenderer::GetValue,
- wxDataViewCustomRenderer::GetSize
- and wxDataViewCustomRenderer::Render.
-
- If you want your renderer to support in-place editing then you
- also need to override
- wxDataViewCustomRenderer::HasEditorCtrl,
- wxDataViewCustomRenderer::CreateEditorCtrl
- and wxDataViewCustomRenderer::GetValueFromEditorCtrl.
- Note that a special event handler will be pushed onto that
- editor control which handles ENTER and focus out events
- in order to end the editing.
+ 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 wxDataViewIndexListModel::Compare
+ method which sorts the model's data by the index.
+
+ This model is not a virtual model since the control stores
+ each wxDataViewItem. Use wxDataViewVirtualListModel if you
+ need to display millions of items or have other reason to
+ use a virtual control.
- @library{wxadv}
- @category{FIXME}
+ @library{wxbase}
+ @category{dvc}
*/
-class wxDataViewCustomRenderer : public wxDataViewRenderer
+class wxDataViewIndexListModel : public wxDataViewModel
{
public:
/**
Constructor.
*/
- wxDataViewCustomRenderer(const wxString& varianttype = "string",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
- bool no_init = @false);
+ wxDataViewIndexListModel(unsigned int initial_size = 0);
/**
Destructor.
*/
- ~wxDataViewCustomRenderer();
+ ~wxDataViewIndexListModel();
/**
- Override this to react to double clicks or ENTER.
+ Compare method that sorts the items by their index.
*/
- virtual bool Activate(wxRect cell, wxDataViewModel* model,
- unsigned int col,
- unsigned int row);
+ int Compare(const wxDataViewItem& item1,
+ const wxDataViewItem& item2,
+ unsigned int column, bool ascending);
/**
- Override this to create the actual editor control once editing
- is about to start. @e parent is the parent of the editor
- control, @e labelRect indicates the position and
- size of the editor control and @e value is its initial value:
+ Oberride this to indicate that the row has special font attributes.
+ This only affects the
+ wxDataViewTextRendererText() renderer.
+ See also wxDataViewItemAttr.
*/
- virtual wxControl* CreateEditorCtrl(wxWindow * parent,
- wxRect labelRect,
- const wxVariant & value);
+ bool GetAttr(unsigned int row, unsigned int col,
+ wxDataViewItemAttr& attr);
/**
- Create DC on request. Internal.
+ Returns the wxDataViewItem at the given @e row.
*/
-#define virtual wxDC* GetDC() /* implementation is private */
+ wxDataViewItem GetItem(unsigned int row) const;
/**
- Return size required to show content.
+ Returns the position of given @e item.
*/
- virtual wxSize GetSize();
+ unsigned int GetRow(const wxDataViewItem& item) const;
/**
- Overrride this so that the renderer can get the value
- from the editor control (pointed to by @e editor):
+ Override this to allow getting values from the model.
*/
- virtual bool GetValueFromEditorCtrl(wxControl* editor,
- wxVariant & value);
+ void GetValue(wxVariant& variant, unsigned int row,
+ unsigned int col) const;
/**
- Override this and make it return @e @true in order to
- indicate that this renderer supports in-place editing.
+ Call this after if the data has to be read again from
+ the model. This is useful after major changes when
+ calling the methods below (possibly thousands of times)
+ doesn't make sense.
*/
- virtual bool HasEditorCtrl();
+ void Reset(unsigned int new_size);
/**
- Overrride this to react to a left click.
+ Call this after a row has been appended to the model.
*/
- virtual bool LeftClick(wxPoint cursor, wxRect cell,
- wxDataViewModel* model,
- unsigned int col,
- unsigned int row);
+ void RowAppended();
/**
- Override this to render the cell. Before this is called,
- wxDataViewRenderer::SetValue was called
- so that this instance knows what to render.
+ Call this after a row has been changed.
*/
- virtual bool Render(wxRect cell, wxDC* dc, int state);
+ void RowChanged(unsigned int row);
/**
- This method should be called from within Render()
- whenever you need to render simple text. This will ensure that the
- correct colour, font and vertical alignment will be chosen so the
- text will look the same as text drawn by native renderers.
+ Call this after a row has been deleted.
*/
- bool RenderText(const wxString& text, int xoffset, wxRect cell,
- wxDC* dc, int state);
+ void RowDeleted(unsigned int row);
/**
- Overrride this to react to a right click.
+ Call this after a row has been inserted at the given position.
*/
- virtual bool RightClick(wxPoint cursor, wxRect cell,
- wxDataViewModel* model,
- unsigned int col,
- unsigned int row);
+ void RowInserted(unsigned int before);
/**
- Overrride this to start a drag operation.
+ Call this after a row has been prepended to the model.
*/
- virtual bool StartDrag(wxPoint cursor, wxRect cell,
- wxDataViewModel* model,
- unsigned int col,
- unsigned int row);
+ void RowPrepended();
+
+ /**
+ Call this after a value has been changed.
+ */
+ void RowValueChanged(unsigned int row, unsigned int col);
+
+ /**
+ Call this after rows have been deleted. The array will internally
+ get copied and sorted in descending order so that the rows with
+ the highest position will be deleted first.
+ */
+ void RowsDeleted(const wxArrayInt& rows);
+
+ /**
+ Called in order to set a value in the model.
+ */
+ bool SetValue(const wxVariant& variant, unsigned int row,
+ unsigned int col);
};
+
/**
- @class wxDataViewBitmapRenderer
+ @class wxDataViewVirtualListModel
@wxheader{dataview.h}
- wxDataViewBitmapRenderer
+ wxDataViewVirtualListModel is a specialized data model which lets
+ you address an item by its position (row) rather than its
+ wxDataViewItem and as such offers the exact same interface as
+ wxDataViewIndexListModel. The important difference is that under
+ platforms other than OS X, using this model will result in a
+ truely virtual control able to handle millions of items as the
+ control doesn't store any item (a feature not supported by the
+ Carbon API under OS X).
- @library{wxadv}
- @category{FIXME}
+ @see wxDataViewIndexListModel for the API.
+
+ @library{wxbase}
+ @category{dvc}
*/
-class wxDataViewBitmapRenderer : public wxDataViewRenderer
+class wxDataViewVirtualListModel : public wxDataViewModel
{
public:
/**
-
+ Constructor.
*/
- wxDataViewBitmapRenderer(const wxString& varianttype = "wxBitmap",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+ wxDataViewVirtualListModel(unsigned int initial_size = 0);
};
+
/**
@class wxDataViewItemAttr
@wxheader{dataview.h}
This class is used to indicate to a wxDataViewCtrl
- that a certain Item has extra font attributes
+ that a certain Item() has extra font attributes
for its renderer. For this, it is required to override
wxDataViewModel::GetAttr.
Attributes are currently only supported by
- wxDataViewTextRendererText.
+ wxDataViewTextRendererText().
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewItemAttr
{
};
+
/**
@class wxDataViewItem
@wxheader{dataview.h}
wxDataViewModel::GetChildren.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewItem
{
public:
//@{
/**
-
+
*/
- wxDataViewItem(void* id = @NULL);
+ wxDataViewItem(void* id = NULL);
wxDataViewItem(const wxDataViewItem& item);
//@}
/**
Returns the ID.
*/
-#define void* GetID() /* implementation is private */
+ void* GetID() const;
/**
Returns @true if the ID is not @e @NULL.
*/
-#define bool IsOk() /* implementation is private */
+ bool IsOk() const;
};
+
/**
@class wxDataViewCtrl
@wxheader{dataview.h}
from wxVariant::GetType.
@beginStyleTable
- @style{wxDV_SINGLE}:
+ @style{wxDV_SINGLE}
Single selection mode. This is the default.
- @style{wxDV_MULTIPLE}:
+ @style{wxDV_MULTIPLE}
Multiple selection mode.
- @style{wxDV_ROW_LINES}:
+ @style{wxDV_ROW_LINES}
Use alternating colours for rows if supported by platform and theme.
- @style{wxDV_HORIZ_RULES}:
+ @style{wxDV_HORIZ_RULES}
Display fine rules between row if supported.
- @style{wxDV_VERT_RULES}:
+ @style{wxDV_VERT_RULES}
Display fine rules between columns is supported.
+ @style{wxDV_VARIABLE_LINE_HEIGHT}
+ Allow variable line heights. This can be inefficient when displaying large number of items.
@endStyleTable
@library{wxadv}
- @category{ctrl}
- @appearance{dataviewctrl.png}
+ @category{ctrl,dvc}
+ <!-- @appearance{dataviewctrl.png} -->
*/
class wxDataViewCtrl : public wxControl
{
public:
- //@{
/**
- Constructor. Calls Create().
+ Default Constructor.
*/
wxDataViewCtrl();
+
+ /**
+ Constructor. Calls Create().
+ */
wxDataViewCtrl(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator);
- //@}
/**
Destructor.
*/
~wxDataViewCtrl();
+ /**
+ Appends a wxDataViewColumn to the control. Returns @true on success.
+ Note that there is a number of short cut methods which implicitly create
+ a wxDataViewColumn and a wxDataViewRenderer for it (see below).
+ */
+ virtual bool AppendColumn(wxDataViewColumn* col);
+
+ /**
+ Prepends a wxDataViewColumn to the control. Returns @true on success.
+ Note that there is a number of short cut methods which implicitly create
+ a wxDataViewColumn and a wxDataViewRenderer for it.
+ */
+ virtual bool PrependColumn(wxDataViewColumn* col);
+
+ /**
+ Inserts a wxDataViewColumn to the control. Returns @true on success.
+ */
+ virtual bool InsertColumn(unsigned int pos, wxDataViewColumn* col);
+
//@{
/**
Appends a column for rendering a bitmap. Returns the wxDataViewColumn
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
- /**
- Add a wxDataViewColumn to the control. Returns
- @e @true on success.
-
- Note that there is a number of short cut methods which implicitly create
- a wxDataViewColumn and a
- wxDataViewRenderer for it (see below).
- */
- virtual bool AppendColumn(wxDataViewColumn* col);
-
//@{
/**
Appends a column for rendering a date. Returns the wxDataViewColumn
created in the function or @NULL on failure.
+
+ NB: The @e align parameter is applied to both the column header and
+ the column renderer.
*/
wxDataViewColumn* AppendDateColumn(const wxString& label,
unsigned int model_column,
//@{
/**
Appends a column for rendering text with an icon. Returns the wxDataViewColumn
- created in the function or @NULL on failure. This uses the
- wxDataViewIconTextRenderer.
+ created in the function or @NULL on failure. This method uses the
+ wxDataViewIconTextRenderer class.
+
+ NB: The @e align parameter is applied to both the column header and
+ the column renderer.
*/
wxDataViewColumn* AppendIconTextColumn(const wxString& label,
unsigned int model_column,
//@{
/**
Appends a column for rendering a progress indicator. Returns the
- wxDataViewColumn
- created in the function or @NULL on failure.
+ wxDataViewColumn created in the function or @NULL on failure.
+
+ NB: The @e align parameter is applied to both the column header and
+ the column renderer.
*/
wxDataViewColumn* AppendProgressColumn(const wxString& label,
unsigned int model_column,
/**
Appends a column for rendering text. Returns the wxDataViewColumn
created in the function or @NULL on failure.
+
+ NB: The @e align parameter is applied to both the column header and
+ the column renderer.
*/
wxDataViewColumn* AppendTextColumn(const wxString& label,
unsigned int model_column,
/**
Appends a column for rendering a toggle. Returns the wxDataViewColumn
created in the function or @NULL on failure.
+
+ NB: The @e align parameter is applied to both the column header and
+ the column renderer.
*/
wxDataViewColumn* AppendToggleColumn(const wxString& label,
unsigned int model_column,
//@}
/**
- Associates a wxDataViewModel with the
- control. This increases the reference count of the model by 1.
+ Associates a wxDataViewModel with the control. This increases the reference
+ count of the model by 1.
*/
virtual bool AssociateModel(wxDataViewModel* model);
/**
Collapses the item.
*/
- void Collapse(const wxDataViewItem & item);
+ void Collapse(const wxDataViewItem& item);
/**
Create the control. Useful for two step creation.
/**
Call this to ensure that the given item is visible.
*/
- void EnsureVisible(const wxDataViewItem & item,
- const wxDataViewColumn* column = @NULL);
+ void EnsureVisible(const wxDataViewItem& item,
+ const wxDataViewColumn* column = NULL);
/**
Expands the item.
*/
- void Expand(const wxDataViewItem & item);
+ void Expand(const wxDataViewItem& item);
/**
- Returns pointer to the column. @e pos refers to the
+ Returns pointer to the column. @a pos refers to the
position in the control which may change after reordering
columns by the user.
*/
- virtual wxDataViewColumn* GetColumn(unsigned int pos);
+ virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
/**
Returns the number of columns.
*/
- virtual unsigned int GetColumnCount();
+ virtual unsigned int GetColumnCount() const;
/**
Returns the position of the column or -1 if not found in the control.
*/
- virtual int GetColumnPosition(const wxDataViewColumn* column);
+ virtual int GetColumnPosition(const wxDataViewColumn* column) const;
/**
Returns column containing the expanders.
*/
- wxDataViewColumn * GetExpanderColumn();
+ wxDataViewColumn* GetExpanderColumn() const;
/**
Returns indentation.
*/
- int GetIndent();
+ int GetIndent() const;
/**
Returns item rect.
*/
wxRect GetItemRect(const wxDataViewItem& item,
- const wxDataViewColumn * col = @NULL);
+ const wxDataViewColumn* col = NULL) const;
/**
Returns pointer to the data model associated with the
control (if any).
*/
- virtual wxDataViewModel* GetModel();
+ virtual wxDataViewModel* GetModel() const;
/**
Returns first selected item or an invalid item if none is selected.
*/
- wxDataViewItem GetSelection();
+ wxDataViewItem GetSelection() const;
/**
- Fills @e sel with currently selected items and returns
+ Fills @a sel with currently selected items and returns
their number.
*/
- int GetSelections(wxDataViewItemArray & sel);
+ int GetSelections(wxDataViewItemArray& sel) const;
/**
Returns the wxDataViewColumn currently responsible for sorting
or @NULL if none has been selected.
*/
- virtual wxDataViewColumn* GetSortingColumn();
+ virtual wxDataViewColumn* GetSortingColumn() const;
/**
Hittest.
*/
void HitTest(const wxPoint& point, wxDataViewItem& item,
- wxDataViewColumn *& col);
+ wxDataViewColumn*& col) const;
/**
Return @true if the item is selected.
*/
- bool IsSelected(const wxDataViewItem & item);
+ bool IsSelected(const wxDataViewItem& item) const;
/**
Select the given item.
*/
- void Select(const wxDataViewItem & item);
+ void Select(const wxDataViewItem& item);
/**
Select all items.
/**
Set which column shall contain the tree-like expanders.
*/
- void SetExpanderColumn(wxDataViewColumn * col);
+ void SetExpanderColumn(wxDataViewColumn* col);
/**
Sets the indendation.
/**
Sets the selection to the array of wxDataViewItems.
*/
- void SetSelections(const wxDataViewItemArray & sel);
+ void SetSelections(const wxDataViewItemArray& sel);
/**
Unselect the given item.
*/
- void Unselect(const wxDataViewItem & item);
+ void Unselect(const wxDataViewItem& item);
/**
Unselect all item. This method only has effect if multiple
};
+
/**
@class wxDataViewModelNotifier
@wxheader{dataview.h}
information.
@library{wxbase}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewModelNotifier
{
/**
Get owning wxDataViewModel.
*/
- wxDataViewModel* GetOwner();
+ wxDataViewModel* GetOwner() const;
/**
Called by owning model.
};
+
/**
@class wxDataViewRenderer
@wxheader{dataview.h}
- This class is used by wxDataViewCtrl to
- render the individual cells. One instance of a renderer class is
- owned by wxDataViewColumn. There is
- a number of ready-to-use renderers provided:
+ This class is used by wxDataViewCtrl to render the individual cells.
+ One instance of a renderer class is owned by a wxDataViewColumn. There
+ is a number of ready-to-use renderers provided:
wxDataViewTextRenderer,
wxDataViewTextRendererAttr,
wxDataViewIconTextRenderer,
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewRenderer : public wxObject
{
public:
/**
- Constructor.
+ Constructor.
*/
wxDataViewRenderer(const wxString& varianttype,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
- int alignment = wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL);
+ int align = wxDVR_DEFAULT_ALIGNMENT );
+
+ /**
+ Returns the alignment. See SetAlignment()
+ */
+ virtual int GetAlignment() const;
/**
Returns the cell mode.
/**
Returns pointer to the owning wxDataViewColumn.
*/
- virtual wxDataViewColumn* GetOwner();
+ virtual wxDataViewColumn* GetOwner() const;
/**
This methods retrieves the value from the renderer in order to
*/
virtual wxString GetVariantType();
+ /**
+ Sets the alignment of the renderer's content. The default value
+ of wxDVR_DEFAULT_ALIGMENT indicates that the content should
+ have the same alignment as the column header. The method is
+ not implemented under OS X and the renderer always aligns its
+ contents as the column header on that platform. The other platforms
+ support both vertical and horizontal alignment.
+ */
+ virtual void SetAlignment( int align );
/**
Sets the owning wxDataViewColumn. This
is usually called from within wxDataViewColumn.
a certain aspect (e.g. max number of characters or only alphanumeric
input, ASCII only etc.). Return @e @false if the value is
not valid.
-
Please note that due to implementation limitations, this validation
is done after the editing control already is destroyed and the
editing process finished.
};
+
/**
@class wxDataViewTextRenderer
@wxheader{dataview.h}
in-place editing if desired.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewTextRenderer : public wxDataViewRenderer
{
public:
/**
-
+
*/
wxDataViewTextRenderer(const wxString& varianttype = "string",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
+};
+
+
+
+/**
+ @class wxDataViewIconTextRenderer
+ @wxheader{dataview.h}
+
+ The wxDataViewIconTextRenderer class is used to display text with
+ a small icon next to it as it is typically done in a file manager.
+ This classes uses the wxDataViewIconText
+ helper class to store its data. wxDataViewIonText can be converted
+ to a from a wxVariant using the left shift
+ operator.
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewIconTextRenderer : public wxDataViewRenderer
+{
+public:
+ /**
+
+ */
+ wxDataViewIconTextRenderer(const wxString& varianttype = "wxDataViewIconText",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
};
+
/**
@class wxDataViewProgressRenderer
@wxheader{dataview.h}
wxDataViewProgressRenderer
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewProgressRenderer : public wxDataViewRenderer
{
public:
/**
-
+
*/
wxDataViewProgressRenderer(const wxString& label = wxEmptyString,
const wxString& varianttype = "long",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
};
+
/**
@class wxDataViewSpinRenderer
@wxheader{dataview.h}
The renderer only support variants of type @e long.
@library{wxbase}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewSpinRenderer : public wxDataViewCustomRenderer
{
public:
/**
- Constructor. @e min and @e max indicate the minimum und
+ Constructor. @a min and @a max indicate the minimum und
maximum values of for the wxSpinCtrl.
*/
wxDataViewSpinRenderer(int min, int max,
wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
- int alignment = wxDVR_DEFAULT_ALIGNMENT);
+ int align = wxDVR_DEFAULT_ALIGNMENT);
};
+
/**
@class wxDataViewToggleRenderer
@wxheader{dataview.h}
wxDataViewToggleRenderer
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewToggleRenderer : public wxDataViewRenderer
{
public:
/**
-
+
*/
wxDataViewToggleRenderer(const wxString& varianttype = "bool",
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
};
+
/**
- @class wxDataViewTreeCtrl
+ @class wxDataViewDateRenderer
@wxheader{dataview.h}
- This class is a wxDataViewCtrl which internally
- uses a wxDataViewTreeStore and forwards
- most of its API to that class. Additionally, it uses a wxImageList
- to store a list of icons. The main purpose of this class is to look
- like a wxTreeCtrl to make a transition from it
- to the wxDataViewCtrl class simpler.
+ wxDataViewDateRenderer
- @library{wxbase}
- @category{ctrl}
- @appearance{dataviewtreectrl.png}
+ @library{wxadv}
+ @category{dvc}
*/
-class wxDataViewTreeCtrl : public wxDataViewCtrl
+class wxDataViewDateRenderer : public wxDataViewRenderer
{
public:
- //@{
/**
- Constructor. Calls Create().
- */
- wxDataViewTreeCtrl();
- wxDataViewTreeCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDV_NO_HEADER,
- const wxValidator& validator = wxDefaultValidator);
- //@}
- /**
- Destructor. Deletes the image list if any.
*/
- ~wxDataViewTreeCtrl();
+ wxDataViewDateRenderer(const wxString& varianttype = "datetime",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE);
+};
- /**
-
- */
- wxDataViewItem AppendContainer(const wxDataViewItem& parent,
- const wxString& text,
- int icon = -1,
- int expanded = -1,
- wxClientData* data = @NULL);
- /**
-
- */
- wxDataViewItem AppendItem(const wxDataViewItem& parent,
- const wxString& text,
- int icon = -1,
- wxClientData* data = @NULL);
- /**
- Creates the control and a wxDataViewTreeStore as
- its internal model.
- */
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDV_NO_HEADER,
- const wxValidator& validator = wxDefaultValidator);
+/**
+ @class wxDataViewTextRendererAttr
+ @wxheader{dataview.h}
- /**
- Calls the identical method from wxDataViewTreeStore.
- */
- void DeleteAllItems();
+ The same as wxDataViewTextRenderer but with
+ support for font attributes. Font attributes are currently only supported
+ under GTK+ and MSW.
- /**
- Calls the identical method from wxDataViewTreeStore.
- */
- void DeleteChildren(const wxDataViewItem& item);
+ See also wxDataViewModel::GetAttr and
+ wxDataViewItemAttr.
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewTextRendererAttr : public wxDataViewTextRenderer
+{
+public:
/**
- Calls the identical method from wxDataViewTreeStore.
- */
- void DeleteItem(const wxDataViewItem& item);
- /**
- Calls the identical method from wxDataViewTreeStore.
*/
- int GetChildCount(const wxDataViewItem& parent);
+ wxDataViewTextRendererAttr(const wxString& varianttype = "string",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT);
+};
- /**
- Returns the image list.
- */
- wxImageList* GetImageList();
- /**
- Calls the identical method from wxDataViewTreeStore.
- */
- wxClientData* GetItemData(const wxDataViewItem& item);
+/**
+ @class wxDataViewCustomRenderer
+ @wxheader{dataview.h}
+
+ You need to derive a new class from wxDataViewCustomRenderer in
+ order to write a new renderer. You need to override at least
+ wxDataViewRenderer::SetValue,
+ wxDataViewRenderer::GetValue,
+ wxDataViewCustomRenderer::GetSize
+ and wxDataViewCustomRenderer::Render.
+
+ If you want your renderer to support in-place editing then you
+ also need to override
+ wxDataViewCustomRenderer::HasEditorCtrl,
+ wxDataViewCustomRenderer::CreateEditorCtrl
+ and wxDataViewCustomRenderer::GetValueFromEditorCtrl.
+ Note that a special event handler will be pushed onto that
+ editor control which handles ENTER and focus out events
+ in order to end the editing.
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewCustomRenderer : public wxDataViewRenderer
+{
+public:
/**
- Calls the identical method from wxDataViewTreeStore.
+ Constructor.
*/
- const wxIcon GetItemExpandedIcon(const wxDataViewItem& item);
+ wxDataViewCustomRenderer(const wxString& varianttype = "string",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
/**
- Calls the identical method from wxDataViewTreeStore.
+ Destructor.
*/
- const wxIcon GetItemIcon(const wxDataViewItem& item);
+ ~wxDataViewCustomRenderer();
/**
- Calls the identical method from wxDataViewTreeStore.
+ Override this to react to double clicks or ENTER. This method will
+ only be called in wxDATAVIEW_CELL_ACTIVATABLE mode.
*/
- wxString GetItemText(const wxDataViewItem& item);
+ virtual bool Activate( wxRect cell,
+ wxDataViewModel* model,
+ const wxDataViewItem & item,
+ unsigned int col );
/**
- Calls the identical method from wxDataViewTreeStore.
+ Override this to create the actual editor control once editing
+ is about to start. @a parent is the parent of the editor
+ control, @a labelRect indicates the position and
+ size of the editor control and @a value is its initial value:
*/
- wxDataViewItem GetNthChild(const wxDataViewItem& parent,
- unsigned int pos);
+ virtual wxControl* CreateEditorCtrl(wxWindow* parent,
+ wxRect labelRect,
+ const wxVariant& value);
- //@{
/**
- Returns the store.
+ Create DC on request. Internal.
*/
- wxDataViewTreeStore* GetStore();
- const wxDataViewTreeStore* GetStore();
- //@}
+ virtual wxDC* GetDC();
/**
- Calls the same method from wxDataViewTreeStore but uess
- and index position in the image list instead of a wxIcon.
+ Return size required to show content.
*/
- wxDataViewItem InsertContainer(const wxDataViewItem& parent,
- const wxDataViewItem& previous,
- const wxString& text,
- int icon = -1,
- int expanded = -1,
- wxClientData* data = @NULL);
+ virtual wxSize GetSize();
/**
- Calls the same method from wxDataViewTreeStore but uess
- and index position in the image list instead of a wxIcon.
+ Overrride this so that the renderer can get the value
+ from the editor control (pointed to by @e editor):
*/
- wxDataViewItem InsertItem(const wxDataViewItem& parent,
- const wxDataViewItem& previous,
- const wxString& text,
- int icon = -1,
- wxClientData* data = @NULL);
+ virtual bool GetValueFromEditorCtrl(wxControl* editor,
+ wxVariant& value);
/**
- Calls the same method from wxDataViewTreeStore but uess
- and index position in the image list instead of a wxIcon.
+ Override this and make it return @e @true in order to
+ indicate that this renderer supports in-place editing.
*/
- wxDataViewItem PrependContainer(const wxDataViewItem& parent,
- const wxString& text,
- int icon = -1,
- int expanded = -1,
- wxClientData* data = @NULL);
+ virtual bool HasEditorCtrl();
/**
- Calls the same method from wxDataViewTreeStore but uess
- and index position in the image list instead of a wxIcon.
+ Overrride this to react to a left click. This method will
+ only be called in wxDATAVIEW_CELL_ACTIVATABLE mode.
*/
- wxDataViewItem PrependItem(const wxDataViewItem& parent,
- const wxString& text,
- int icon = -1,
- wxClientData* data = @NULL);
+ virtual bool LeftClick( wxPoint cursor,
+ wxRect cell,
+ wxDataViewModel * model,
+ const wxDataViewItem & item,
+ unsigned int col );
/**
- Sets the image list.
+ Override this to render the cell. Before this is called,
+ wxDataViewRenderer::SetValue was called
+ so that this instance knows what to render.
*/
- void SetImageList(wxImageList* imagelist);
+ virtual bool Render(wxRect cell, wxDC* dc, int state);
/**
- Calls the identical method from wxDataViewTreeStore.
+ This method should be called from within Render()
+ whenever you need to render simple text. This will ensure that the
+ correct colour, font and vertical alignment will be chosen so the
+ text will look the same as text drawn by native renderers.
*/
- void SetItemData(const wxDataViewItem& item, wxClientData* data);
+ bool RenderText(const wxString& text, int xoffset, wxRect cell,
+ wxDC* dc, int state);
/**
- Calls the identical method from wxDataViewTreeStore.
+ Overrride this to start a drag operation. Not yet
+ supported
*/
- void SetItemExpandedIcon(const wxDataViewItem& item,
- const wxIcon& icon);
+ virtual bool StartDrag(wxPoint cursor, wxRect cell,
+ wxDataViewModel* model,
+ const wxDataViewItem & item,
+ unsigned int col);
+};
- /**
- Calls the identical method from wxDataViewTreeStore.
- */
- void SetItemIcon(const wxDataViewItem& item, const wxIcon& icon);
+
+/**
+ @class wxDataViewBitmapRenderer
+ @wxheader{dataview.h}
+
+ wxDataViewBitmapRenderer
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewBitmapRenderer : public wxDataViewRenderer
+{
+public:
/**
- Calls the identical method from wxDataViewTreeStore.
+
*/
- void SetItemText(const wxDataViewItem& item,
- const wxString& text);
+ wxDataViewBitmapRenderer(const wxString& varianttype = "wxBitmap",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT,
};
+
/**
- @class wxDataViewTreeStore
+ @class wxDataViewColumn
@wxheader{dataview.h}
- wxDataViewTreeStore is a specialised wxDataViewModel
- for displaying simple trees very much like wxTreeCtrl
- does and it offers a similar API. This class actually stores the entire
- tree (therefore its name) and implements all virtual methods from the base
- class so it can be used directly without having to derive any class from it.
- This comes at the price of much reduced flexibility.
+ This class represents a column in a wxDataViewCtrl.
+ One wxDataViewColumn is bound to one column in the data model,
+ to which the wxDataViewCtrl has been associated.
+
+ An instance of wxDataViewRenderer is used by
+ this class to render its data.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
-class wxDataViewTreeStore : public wxDataViewModel
+class wxDataViewColumn : public wxObject
{
public:
+ //@{
/**
- Constructor. Creates the invisible root node internally.
+ Constructors.
*/
- wxDataViewTreeStore();
+ wxDataViewColumn(const wxString& title,
+ wxDataViewRenderer* renderer,
+ unsigned int model_column,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTRE,
+ int flags = wxDATAVIEW_COL_RESIZABLE);
+ wxDataViewColumn(const wxBitmap& bitmap,
+ wxDataViewRenderer* renderer,
+ unsigned int model_column,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTRE,
+ int flags = wxDATAVIEW_COL_RESIZABLE);
+ //@}
/**
Destructor.
*/
- ~wxDataViewTreeStore();
+ ~wxDataViewColumn();
/**
- Append a container.
+ Returns the bitmap in the header of the column, if any.
+ */
+ const wxBitmap GetBitmap();
+
+ /**
+ Returns the index of the column of the model, which this
+ wxDataViewColumn is displaying.
+ */
+ unsigned int GetModelColumn();
+
+ /**
+ Returns the owning wxDataViewCtrl.
+ */
+ wxDataViewCtrl* GetOwner() const;
+
+ /**
+ Returns the renderer of this wxDataViewColumn.
+ See also wxDataViewRenderer.
+ */
+ wxDataViewRenderer* GetRenderer();
+
+ /**
+ Returns @true if the column is reorderable.
+ */
+ bool GetReorderable();
+
+ /**
+ Returns @true if the column is sortable.
+ See SetSortable()
+ */
+ bool GetSortable();
+
+ /**
+ Returns the width of the column.
+ */
+ int GetWidth();
+
+ /**
+ Returns @true, if the sort order is ascending.
+ See also SetSortOrder()
+ */
+ bool IsSortOrderAscending();
+
+ /**
+ Set the alignment of the column header.
+ */
+ void SetAlignment(wxAlignment align);
+
+ /**
+ Set the bitmap of the column header.
+ */
+ void SetBitmap(const wxBitmap& bitmap);
+
+ /**
+ Indicate wether the column can be reordered by the
+ user using the mouse. This is typically implemented
+ visually by dragging the header button around.
+ */
+ void SetReorderable(bool reorderable);
+
+ /**
+ Indicate the sort order if the implementation of the
+ wxDataViewCtrl supports it, most commonly by showing
+ a little arrow.
+ */
+ void SetSortOrder(bool ascending);
+
+ /**
+ Indicate that the column is sortable. This does
+ not show any sorting indicate yet, but it does
+ make the column header clickable. Call
+ SetSortOrder()
+ afterwards to actually make the sort indicator appear.
+ If @a sortable is @false, the column header is
+ no longer clickable and the sort indicator (little
+ arrow) will disappear.
+ */
+ void SetSortable(bool sortable);
+
+ /**
+ Set the title of the column header to @e title.
+ */
+ void SetTitle(const wxString& title);
+};
+
+
+
+/**
+ @class wxDataViewTreeCtrl
+ @wxheader{dataview.h}
+
+ This class is a wxDataViewCtrl which internally
+ uses a wxDataViewTreeStore and forwards
+ most of its API to that class. Additionally, it uses a wxImageList
+ to store a list of icons. The main purpose of this class is to look
+ like a wxTreeCtrl to make a transition from it
+ to the wxDataViewCtrl class simpler.
+
+ @library{wxbase}
+ @category{ctrl,dvc}
+ <!-- @appearance{dataviewtreectrl.png} -->
+*/
+class wxDataViewTreeCtrl : public wxDataViewCtrl
+{
+public:
+ //@{
+ /**
+ Constructor. Calls Create().
+ */
+ wxDataViewTreeCtrl();
+ wxDataViewTreeCtrl(wxWindow* parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDV_NO_HEADER,
+ const wxValidator& validator = wxDefaultValidator);
+ //@}
+
+ /**
+ Destructor. Deletes the image list if any.
+ */
+ ~wxDataViewTreeCtrl();
+
+ /**
+
*/
wxDataViewItem AppendContainer(const wxDataViewItem& parent,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- const wxIcon& expanded = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ int expanded = -1,
+ wxClientData* data = NULL);
/**
- Append an item.
+
*/
wxDataViewItem AppendItem(const wxDataViewItem& parent,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ wxClientData* data = NULL);
/**
- Delete all item in the model.
+ Creates the control and a wxDataViewTreeStore as
+ its internal model.
+ */
+ bool Create(wxWindow* parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDV_NO_HEADER,
+ const wxValidator& validator = wxDefaultValidator);
+
+ /**
+ Calls the identical method from wxDataViewTreeStore.
*/
void DeleteAllItems();
/**
- Delete all children of the item, but not the item itself.
+ Calls the identical method from wxDataViewTreeStore.
*/
void DeleteChildren(const wxDataViewItem& item);
/**
- Delete this item.
+ Calls the identical method from wxDataViewTreeStore.
*/
void DeleteItem(const wxDataViewItem& item);
/**
- Return the number of children of item.
+ Calls the identical method from wxDataViewTreeStore.
*/
- int GetChildCount(const wxDataViewItem& parent);
+ int GetChildCount(const wxDataViewItem& parent) const;
/**
- Returns the client data asoociated with the item.
+ Returns the image list.
*/
- wxClientData* GetItemData(const wxDataViewItem& item);
+ wxImageList* GetImageList();
/**
- Returns the icon to display in expanded containers.
+ Calls the identical method from wxDataViewTreeStore.
*/
- const wxIcon GetItemExpandedIcon(const wxDataViewItem& item);
+ wxClientData* GetItemData(const wxDataViewItem& item) const;
/**
- Returns the icon of the item.
+ Calls the identical method from wxDataViewTreeStore.
*/
- const wxIcon GetItemIcon(const wxDataViewItem& item);
+ const wxIcon GetItemExpandedIcon(const wxDataViewItem& item) const;
/**
- Returns the text of the item.
+ Calls the identical method from wxDataViewTreeStore.
*/
- wxString GetItemText(const wxDataViewItem& item);
+ const wxIcon GetItemIcon(const wxDataViewItem& item) const;
/**
- Returns the nth child item of item.
+ Calls the identical method from wxDataViewTreeStore.
+ */
+ wxString GetItemText(const wxDataViewItem& item) const;
+
+ /**
+ Calls the identical method from wxDataViewTreeStore.
*/
wxDataViewItem GetNthChild(const wxDataViewItem& parent,
- unsigned int pos);
+ unsigned int pos) const;
+ //@{
/**
- Inserts a container after @e previous.
+ Returns the store.
+ */
+ wxDataViewTreeStore* GetStore() const;
+ const wxDataViewTreeStore* GetStore() const;
+ //@}
+
+ /**
+ Calls the same method from wxDataViewTreeStore but uess
+ and index position in the image list instead of a wxIcon.
*/
wxDataViewItem InsertContainer(const wxDataViewItem& parent,
const wxDataViewItem& previous,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- const wxIcon& expanded = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ int expanded = -1,
+ wxClientData* data = NULL);
/**
- Inserts an item after @e previous.
+ Calls the same method from wxDataViewTreeStore but uess
+ and index position in the image list instead of a wxIcon.
*/
wxDataViewItem InsertItem(const wxDataViewItem& parent,
const wxDataViewItem& previous,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ wxClientData* data = NULL);
/**
- Inserts a container before the first child item or @e parent.
+ Calls the same method from wxDataViewTreeStore but uess
+ and index position in the image list instead of a wxIcon.
*/
wxDataViewItem PrependContainer(const wxDataViewItem& parent,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- const wxIcon& expanded = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ int expanded = -1,
+ wxClientData* data = NULL);
/**
- Inserts an item before the first child item or @e parent.
+ Calls the same method from wxDataViewTreeStore but uess
+ and index position in the image list instead of a wxIcon.
*/
wxDataViewItem PrependItem(const wxDataViewItem& parent,
const wxString& text,
- const wxIcon& icon = wxNullIcon,
- wxClientData* data = @NULL);
+ int icon = -1,
+ wxClientData* data = NULL);
/**
- Sets the client data associated with the item.
+ Sets the image list.
+ */
+ void SetImageList(wxImageList* imagelist);
+
+ /**
+ Calls the identical method from wxDataViewTreeStore.
*/
void SetItemData(const wxDataViewItem& item, wxClientData* data);
/**
- Sets the expanded icon for the item.
+ Calls the identical method from wxDataViewTreeStore.
*/
void SetItemExpandedIcon(const wxDataViewItem& item,
const wxIcon& icon);
/**
- Sets the icon for the item.
+ Calls the identical method from wxDataViewTreeStore.
*/
void SetItemIcon(const wxDataViewItem& item, const wxIcon& icon);
-};
-
-
-/**
- @class wxDataViewDateRenderer
- @wxheader{dataview.h}
-
- wxDataViewDateRenderer
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewDateRenderer : public wxDataViewRenderer
-{
-public:
/**
-
+ Calls the identical method from wxDataViewTreeStore.
*/
- wxDataViewDateRenderer(const wxString& varianttype = "datetime",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE);
+ void SetItemText(const wxDataViewItem& item,
+ const wxString& text);
};
+
/**
- @class wxDataViewTextRendererAttr
+ @class wxDataViewTreeStore
@wxheader{dataview.h}
- The same as wxDataViewTextRenderer but with
- support for font attributes. Font attributes are currently only supported
- under GTK+ and MSW.
-
- See also wxDataViewModel::GetAttr and
- wxDataViewItemAttr.
+ wxDataViewTreeStore is a specialised wxDataViewModel
+ for displaying simple trees very much like wxTreeCtrl
+ does and it offers a similar API. This class actually stores the entire
+ tree (therefore its name) and implements all virtual methods from the base
+ class so it can be used directly without having to derive any class from it.
+ This comes at the price of much reduced flexibility.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
-class wxDataViewTextRendererAttr : public wxDataViewTextRenderer
+class wxDataViewTreeStore : public wxDataViewModel
{
public:
/**
-
+ Constructor. Creates the invisible root node internally.
*/
- wxDataViewTextRendererAttr(const wxString& varianttype = "string",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
- int align = wxDVR_DEFAULT_ALIGNMENT);
-};
-
+ wxDataViewTreeStore();
-/**
- @class wxDataViewColumn
- @wxheader{dataview.h}
+ /**
+ Destructor.
+ */
+ ~wxDataViewTreeStore();
- This class represents a column in a wxDataViewCtrl.
- One wxDataViewColumn is bound to one column in the data model,
- to which the wxDataViewCtrl has been associated.
+ /**
+ Append a container.
+ */
+ wxDataViewItem AppendContainer(const wxDataViewItem& parent,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ const wxIcon& expanded = wxNullIcon,
+ wxClientData* data = NULL);
- An instance of wxDataViewRenderer is used by
- this class to render its data.
+ /**
+ Append an item.
+ */
+ wxDataViewItem AppendItem(const wxDataViewItem& parent,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ wxClientData* data = NULL);
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewColumn : public wxObject
-{
-public:
- //@{
/**
- Constructors.
+ Delete all item in the model.
*/
- wxDataViewColumn(const wxString& title,
- wxDataViewRenderer* renderer,
- unsigned int model_column,
- int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTRE,
- int flags = wxDATAVIEW_COL_RESIZABLE);
- wxDataViewColumn(const wxBitmap& bitmap,
- wxDataViewRenderer* renderer,
- unsigned int model_column,
- int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTRE,
- int flags = wxDATAVIEW_COL_RESIZABLE);
- //@}
+ void DeleteAllItems();
/**
- Destructor.
+ Delete all children of the item, but not the item itself.
*/
- ~wxDataViewColumn();
+ void DeleteChildren(const wxDataViewItem& item);
/**
- Returns the bitmap in the header of the column, if any.
+ Delete this item.
*/
- const wxBitmap GetBitmap();
+ void DeleteItem(const wxDataViewItem& item);
/**
- Returns the index of the column of the model, which this
- wxDataViewColumn is displaying.
+ Return the number of children of item.
*/
- unsigned int GetModelColumn();
+ int GetChildCount(const wxDataViewItem& parent) const;
/**
- Returns the owning wxDataViewCtrl.
+ Returns the client data asoociated with the item.
*/
- wxDataViewCtrl* GetOwner();
+ wxClientData* GetItemData(const wxDataViewItem& item) const;
/**
- Returns the renderer of this wxDataViewColumn.
-
- See also wxDataViewRenderer.
+ Returns the icon to display in expanded containers.
*/
- wxDataViewRenderer* GetRenderer();
+ const wxIcon GetItemExpandedIcon(const wxDataViewItem& item) const;
/**
- Returns @true if the column is reorderable.
+ Returns the icon of the item.
*/
- bool GetReorderable();
+ const wxIcon GetItemIcon(const wxDataViewItem& item) const;
/**
- Returns @true if the column is sortable.
-
- See SetSortable()
+ Returns the text of the item.
*/
- bool GetSortable();
+ wxString GetItemText(const wxDataViewItem& item) const;
/**
- Returns the width of the column.
+ Returns the nth child item of item.
*/
- int GetWidth();
+ wxDataViewItem GetNthChild(const wxDataViewItem& parent,
+ unsigned int pos) const;
/**
- Returns @true, if the sort order is ascending.
-
- See also SetSortOrder()
+ Inserts a container after @e previous.
*/
- bool IsSortOrderAscending();
+ wxDataViewItem InsertContainer(const wxDataViewItem& parent,
+ const wxDataViewItem& previous,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ const wxIcon& expanded = wxNullIcon,
+ wxClientData* data = NULL);
/**
- Set the alignment of the column header.
+ Inserts an item after @e previous.
*/
- void SetAlignment(wxAlignment align);
+ wxDataViewItem InsertItem(const wxDataViewItem& parent,
+ const wxDataViewItem& previous,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ wxClientData* data = NULL);
/**
- Set the bitmap of the column header.
+ Inserts a container before the first child item or @e parent.
*/
- void SetBitmap(const wxBitmap& bitmap);
+ wxDataViewItem PrependContainer(const wxDataViewItem& parent,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ const wxIcon& expanded = wxNullIcon,
+ wxClientData* data = NULL);
/**
- Indicate wether the column can be reordered by the
- user using the mouse. This is typically implemented
- visually by dragging the header button around.
+ Inserts an item before the first child item or @e parent.
*/
- void SetReorderable(bool reorderable);
+ wxDataViewItem PrependItem(const wxDataViewItem& parent,
+ const wxString& text,
+ const wxIcon& icon = wxNullIcon,
+ wxClientData* data = NULL);
/**
- Indicate the sort order if the implementation of the
- wxDataViewCtrl supports it, most commonly by showing
- a little arrow.
+ Sets the client data associated with the item.
*/
- void SetSortOrder(bool ascending);
+ void SetItemData(const wxDataViewItem& item, wxClientData* data);
/**
- Indicate that the column is sortable. This does
- not show any sorting indicate yet, but it does
- make the column header clickable. Call
- SetSortOrder()
- afterwards to actually make the sort indicator appear.
- If @e sortable is @false, the column header is
- no longer clickable and the sort indicator (little
- arrow) will disappear.
+ Sets the expanded icon for the item.
*/
- void SetSortable(bool sortable);
+ void SetItemExpandedIcon(const wxDataViewItem& item,
+ const wxIcon& icon);
/**
- Set the title of the column header to @e title.
+ Sets the icon for the item.
*/
- void SetTitle(const wxString& title);
+ void SetItemIcon(const wxDataViewItem& item, const wxIcon& icon);
};
+