a wxVariant.
@library{wxbase}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewIconText : public wxObject
{
wxDataViewEvent - the event class for the wxDataViewCtrl notifications
@library{wxadv}
- @category{FIXME}
+ @category{events,dvc}
*/
class wxDataViewEvent : public wxNotifyEvent
{
-/**
- @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);
-};
-
-
-
-/**
- @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) const;
-
- /**
- Returns the position of given @e item.
- */
- unsigned int GetRow(const wxDataViewItem& item) const;
-
- /**
- Override this to allow getting values from the model.
- */
- void GetValue(wxVariant& variant, unsigned int row,
- unsigned int col) const;
-
- /**
- 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
@wxheader{dataview.h}
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
{
/**
- @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,
- const wxDataViewItem & item,
- unsigned int col );
+ 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. @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:
+ 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.
*/
- virtual wxDC* GetDC();
+ 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,
- const wxDataViewItem & item,
- unsigned int col );
+ 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,
- const wxDataViewItem & item,
- unsigned int col);
+ 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,
- const wxDataViewItem & item,
- unsigned int col);
+ 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);
};
wxDataViewTextRendererText().
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewItemAttr
{
wxDataViewModel::GetChildren.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewItem
{
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);
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.
in-place editing if desired.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewTextRenderer : public wxDataViewRenderer
{
*/
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 );
};
wxDataViewProgressRenderer
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewProgressRenderer : public wxDataViewRenderer
{
/**
*/
- wxDataViewProgressRenderer(const wxString& label = wxEmptyString,
- const wxString& varianttype = "long",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
-};
+ wxDataViewProgressRenderer(const wxString& label = wxEmptyString,
+ const wxString& varianttype = "long",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
+};
+
+
+
+/**
+ @class wxDataViewSpinRenderer
+ @wxheader{dataview.h}
+
+ This is a specialized renderer for rendering integer values. It
+ supports modifying the values in-place by using a wxSpinCtrl.
+ The renderer only support variants of type @e long.
+
+ @library{wxbase}
+ @category{dvc}
+*/
+class wxDataViewSpinRenderer : public wxDataViewCustomRenderer
+{
+public:
+ /**
+ 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 align = wxDVR_DEFAULT_ALIGNMENT);
+};
+
+
+
+/**
+ @class wxDataViewToggleRenderer
+ @wxheader{dataview.h}
+
+ wxDataViewToggleRenderer
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewToggleRenderer : public wxDataViewRenderer
+{
+public:
+ /**
+
+ */
+ wxDataViewToggleRenderer(const wxString& varianttype = "bool",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+};
+
+
+
+/**
+ @class wxDataViewDateRenderer
+ @wxheader{dataview.h}
+
+ wxDataViewDateRenderer
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewDateRenderer : public wxDataViewRenderer
+{
+public:
+ /**
+
+ */
+ wxDataViewDateRenderer(const wxString& varianttype = "datetime",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE);
+};
+
+
+
+/**
+ @class wxDataViewTextRendererAttr
+ @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.
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewTextRendererAttr : public wxDataViewTextRenderer
+{
+public:
+ /**
+
+ */
+ wxDataViewTextRendererAttr(const wxString& varianttype = "string",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT);
+};
+
+
+
+/**
+ @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:
+ /**
+ Constructor.
+ */
+ wxDataViewCustomRenderer(const wxString& varianttype = "string",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
+
+ /**
+ Destructor.
+ */
+ ~wxDataViewCustomRenderer();
+
+ /**
+ Override this to react to double clicks or ENTER. This method will
+ only be called in wxDATAVIEW_CELL_ACTIVATABLE mode.
+ */
+ virtual bool Activate( wxRect cell,
+ wxDataViewModel* model,
+ const wxDataViewItem & item,
+ unsigned int col );
+
+ /**
+ 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:
+ */
+ virtual wxControl* CreateEditorCtrl(wxWindow* parent,
+ wxRect labelRect,
+ const wxVariant& value);
+
+ /**
+ Create DC on request. Internal.
+ */
+ virtual wxDC* GetDC();
+
+ /**
+ Return size required to show content.
+ */
+ virtual wxSize GetSize();
+
+ /**
+ Overrride this so that the renderer can get the value
+ from the editor control (pointed to by @e editor):
+ */
+ virtual bool GetValueFromEditorCtrl(wxControl* editor,
+ wxVariant& value);
+
+ /**
+ Override this and make it return @e @true in order to
+ indicate that this renderer supports in-place editing.
+ */
+ virtual bool HasEditorCtrl();
+
+ /**
+ Overrride this to react to a left click. This method will
+ only be called in wxDATAVIEW_CELL_ACTIVATABLE mode.
+ */
+ virtual bool LeftClick( wxPoint cursor,
+ wxRect cell,
+ wxDataViewModel * model,
+ const wxDataViewItem & item,
+ unsigned int col );
+
+ /**
+ Override this to render the cell. Before this is called,
+ wxDataViewRenderer::SetValue was called
+ so that this instance knows what to render.
+ */
+ virtual bool Render(wxRect cell, wxDC* dc, int state);
+
+ /**
+ 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.
+ */
+ bool RenderText(const wxString& text, int xoffset, wxRect cell,
+ wxDC* dc, int state);
+
+ /**
+ Overrride this to start a drag operation. Not yet
+ supported
+ */
+ virtual bool StartDrag(wxPoint cursor, wxRect cell,
+ wxDataViewModel* model,
+ const wxDataViewItem & item,
+ unsigned int col);
+};
+
+
+
+/**
+ @class wxDataViewBitmapRenderer
+ @wxheader{dataview.h}
+
+ wxDataViewBitmapRenderer
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewBitmapRenderer : public wxDataViewRenderer
+{
+public:
+ /**
+
+ */
+ wxDataViewBitmapRenderer(const wxString& varianttype = "wxBitmap",
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT,
+};
+
+
+
+/**
+ @class wxDataViewColumn
+ @wxheader{dataview.h}
+
+ 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{dvc}
+*/
+class wxDataViewColumn : public wxObject
+{
+public:
+ //@{
+ /**
+ Constructors.
+ */
+ 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.
+ */
+ ~wxDataViewColumn();
+
+ /**
+ 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();
-/**
- @class wxDataViewSpinRenderer
- @wxheader{dataview.h}
+ /**
+ Returns @true if the column is sortable.
+ See SetSortable()
+ */
+ bool GetSortable();
- This is a specialized renderer for rendering integer values. It
- supports modifying the values in-place by using a wxSpinCtrl.
- The renderer only support variants of type @e long.
+ /**
+ Returns the width of the column.
+ */
+ int GetWidth();
- @library{wxbase}
- @category{FIXME}
-*/
-class wxDataViewSpinRenderer : public wxDataViewCustomRenderer
-{
-public:
/**
- Constructor. @a min and @a max indicate the minimum und
- maximum values of for the wxSpinCtrl.
+ Returns @true, if the sort order is ascending.
+ See also SetSortOrder()
*/
- wxDataViewSpinRenderer(int min, int max,
- wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
- int alignment = wxDVR_DEFAULT_ALIGNMENT);
-};
+ 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);
-/**
- @class wxDataViewToggleRenderer
- @wxheader{dataview.h}
+ /**
+ 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);
- wxDataViewToggleRenderer
+ /**
+ Indicate the sort order if the implementation of the
+ wxDataViewCtrl supports it, most commonly by showing
+ a little arrow.
+ */
+ void SetSortOrder(bool ascending);
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewToggleRenderer : public wxDataViewRenderer
-{
-public:
/**
+ 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.
*/
- wxDataViewToggleRenderer(const wxString& varianttype = "bool",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT);
+ void SetTitle(const wxString& title);
};
to the wxDataViewCtrl class simpler.
@library{wxbase}
- @category{ctrl}
- @appearance{dataviewtreectrl.png}
+ @category{ctrl,dvc}
+ <!-- @appearance{dataviewtreectrl.png} -->
*/
class wxDataViewTreeCtrl : public wxDataViewCtrl
{
This comes at the price of much reduced flexibility.
@library{wxadv}
- @category{FIXME}
+ @category{dvc}
*/
class wxDataViewTreeStore : public wxDataViewModel
{
void SetItemIcon(const wxDataViewItem& item, const wxIcon& icon);
};
-
-
-/**
- @class wxDataViewDateRenderer
- @wxheader{dataview.h}
-
- wxDataViewDateRenderer
-
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewDateRenderer : public wxDataViewRenderer
-{
-public:
- /**
-
- */
- wxDataViewDateRenderer(const wxString& varianttype = "datetime",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE);
-};
-
-
-
-/**
- @class wxDataViewTextRendererAttr
- @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.
-
- @library{wxadv}
- @category{FIXME}
-*/
-class wxDataViewTextRendererAttr : public wxDataViewTextRenderer
-{
-public:
- /**
-
- */
- wxDataViewTextRendererAttr(const wxString& varianttype = "string",
- wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
- int align = wxDVR_DEFAULT_ALIGNMENT);
-};
-
-
-
-/**
- @class wxDataViewColumn
- @wxheader{dataview.h}
-
- 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}
-*/
-class wxDataViewColumn : public wxObject
-{
-public:
- //@{
- /**
- Constructors.
- */
- 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.
- */
- ~wxDataViewColumn();
-
- /**
- 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();
-
- /**
- 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);
-};
-