Fix broken and missing DataView interface items for Phoenix

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2012-11-17 22:17:10 +00:00
parent fc95c9f7ab
commit 4e15d1caa0

View File

@@ -340,6 +340,10 @@ public:
virtual bool ValueChanged(const wxDataViewItem& item, virtual bool ValueChanged(const wxDataViewItem& item,
unsigned int col); unsigned int col);
virtual bool IsListModel() const;
virtual bool IsVirtualListModel() const;
protected: protected:
/** /**
@@ -366,7 +370,7 @@ public:
/** /**
Destructor. Destructor.
*/ */
virtual ~wxDataViewIndexListModel(); virtual ~wxDataViewListModel();
/** /**
Compare method that sorts the items by their index. Compare method that sorts the items by their index.
@@ -420,23 +424,58 @@ public:
/** /**
Returns the number of items (or rows) in the list. Returns the number of items (or rows) in the list.
*/ */
unsigned int GetCount() const; unsigned int GetCount() const = 0;
/**
Returns the wxDataViewItem at the given @e row.
*/
wxDataViewItem GetItem(unsigned int row) const;
/** /**
Returns the position of given @e item. Returns the position of given @e item.
*/ */
unsigned int GetRow(const wxDataViewItem& item) const; unsigned int GetRow(const wxDataViewItem& item) const = 0;
/** /**
Override this to allow getting values from the model. Override this to allow getting values from the model.
*/ */
virtual void GetValueByRow(wxVariant& variant, unsigned int row, virtual void GetValueByRow(wxVariant& variant, unsigned int row,
unsigned int col) const = 0; unsigned int col) const = 0;
/**
Called in order to set a value in the model.
*/
virtual bool SetValueByRow(const wxVariant& variant, unsigned int row,
unsigned int col) = 0;
};
/**
@class 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 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.
@see wxDataViewListModel for the API.
@library{wxadv}
@category{dvc}
*/
class wxDataViewIndexListModel : public wxDataViewListModel
{
public:
/**
Constructor.
*/
wxDataViewIndexListModel(unsigned int initial_size = 0);
/**
Returns the wxDataViewItem at the given @e row.
*/
wxDataViewItem GetItem(unsigned int row) const;
/** /**
Call this after if the data has to be read again from the model. Call this after if the data has to be read again from the model.
@@ -482,41 +521,6 @@ public:
*/ */
void RowsDeleted(const wxArrayInt& rows); void RowsDeleted(const wxArrayInt& rows);
/**
Called in order to set a value in the model.
*/
virtual bool SetValueByRow(const wxVariant& variant, unsigned int row,
unsigned int col) = 0;
};
/**
@class 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 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.
@see wxDataViewListModel for the API.
@library{wxadv}
@category{dvc}
*/
class wxDataViewIndexListModel : public wxDataViewListModel
{
public:
/**
Constructor.
*/
wxDataViewIndexListModel(unsigned int initial_size = 0);
}; };
/** /**
@@ -543,6 +547,55 @@ public:
*/ */
wxDataViewVirtualListModel(unsigned int initial_size = 0); wxDataViewVirtualListModel(unsigned int initial_size = 0);
/**
Returns the wxDataViewItem at the given @e row.
*/
wxDataViewItem GetItem(unsigned int row) 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);
}; };
@@ -591,6 +644,52 @@ public:
Call this to indicate that the item shall be displayed in italic text. Call this to indicate that the item shall be displayed in italic text.
*/ */
void SetItalic(bool set); void SetItalic(bool set);
/**
Returns true if the colour property has been set.
*/
bool HasColour() const;
/**
Returns this attribute's colour.
*/
const wxColour& GetColour() const;
/**
Returns true if any property affecting the font has been set.
*/
bool HasFont() const;
/**
Returns value of the bold property.
*/
bool GetBold() const;
/**
Returns value of the italics property.
*/
bool GetItalic() const;
/**
Returns true if the background colour property has been set.
*/
bool HasBackgroundColour() const;
/**
Returns the colour to be used for the background.
*/
const wxColour& GetBackgroundColour() const;
/**
Returns true if none of the properties have been set.
*/
bool IsDefault() const;
/**
Return the font based on the given one with this attribute applied to it.
*/
wxFont GetEffectiveFont(const wxFont& font) const;
}; };
@@ -822,6 +921,16 @@ public:
*/ */
virtual ~wxDataViewCtrl(); virtual ~wxDataViewCtrl();
/**
Create the control. Useful for two step creation.
*/
bool Create(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDataViewCtrlNameStr);
/** /**
Appends a wxDataViewColumn to the control. Returns @true on success. Appends a wxDataViewColumn to the control. Returns @true on success.
@@ -862,6 +971,25 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering a bitmap. Returns the wxDataViewColumn
created in the function or @NULL on failure.
*/
wxDataViewColumn* PrependBitmapColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependBitmapColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
//@{ //@{
/** /**
Appends a column for rendering a date. Returns the wxDataViewColumn Appends a column for rendering a date. Returns the wxDataViewColumn
@@ -884,6 +1012,28 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering a date. Returns the wxDataViewColumn
created in the function or @NULL on failure.
@note The @a align parameter is applied to both the column header and
the column renderer.
*/
wxDataViewColumn* PrependDateColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependDateColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
//@{ //@{
/** /**
Appends a column for rendering text with an icon. Returns the wxDataViewColumn Appends a column for rendering text with an icon. Returns the wxDataViewColumn
@@ -907,6 +1057,29 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering text with an icon. Returns the wxDataViewColumn
created in the function or @NULL on failure.
This method uses the wxDataViewIconTextRenderer class.
@note The @a align parameter is applied to both the column header and
the column renderer.
*/
wxDataViewColumn* PrependIconTextColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependIconTextColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
//@{ //@{
/** /**
Appends a column for rendering a progress indicator. Returns the Appends a column for rendering a progress indicator. Returns the
@@ -929,6 +1102,28 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering a progress indicator. Returns the
wxDataViewColumn created in the function or @NULL on failure.
@note The @a align parameter is applied to both the column header and
the column renderer.
*/
wxDataViewColumn* PrependProgressColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = 80,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependProgressColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = 80,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
//@{ //@{
/** /**
Appends a column for rendering text. Returns the wxDataViewColumn Appends a column for rendering text. Returns the wxDataViewColumn
@@ -951,6 +1146,28 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering text. Returns the wxDataViewColumn
created in the function or @NULL on failure.
@note The @a align parameter is applied to both the column header and
the column renderer.
*/
wxDataViewColumn* PrependTextColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependTextColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = -1,
wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
//@{ //@{
/** /**
Appends a column for rendering a toggle. Returns the wxDataViewColumn Appends a column for rendering a toggle. Returns the wxDataViewColumn
@@ -973,6 +1190,28 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE); int flags = wxDATAVIEW_COL_RESIZABLE);
//@} //@}
//@{
/**
Prepends a column for rendering a toggle. Returns the wxDataViewColumn
created in the function or @NULL on failure.
@note The @a align parameter is applied to both the column header and
the column renderer.
*/
wxDataViewColumn* PrependToggleColumn(const wxString& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = 30,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
wxDataViewColumn* PrependToggleColumn(const wxBitmap& label,
unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int width = 30,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
/** /**
Associates a wxDataViewModel with the control. Associates a wxDataViewModel with the control.
This increases the reference count of the model by 1. This increases the reference count of the model by 1.
@@ -989,16 +1228,6 @@ public:
*/ */
virtual void Collapse(const wxDataViewItem& item); virtual void Collapse(const wxDataViewItem& item);
/**
Create the control. Useful for two step creation.
*/
bool Create(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDataViewCtrlNameStr);
/** /**
Deletes given column. Deletes given column.
*/ */
@@ -1458,7 +1687,7 @@ enum wxDataViewCellRenderState
- wxDataViewSpinRenderer. - wxDataViewSpinRenderer.
- wxDataViewChoiceRenderer. - wxDataViewChoiceRenderer.
Additionally, the user can write own renderers by deriving from Additionally, the user can write their own renderers by deriving from
wxDataViewCustomRenderer. wxDataViewCustomRenderer.
The ::wxDataViewCellMode and ::wxDataViewCellRenderState flags accepted The ::wxDataViewCellMode and ::wxDataViewCellRenderState flags accepted
@@ -1578,6 +1807,21 @@ public:
editing process finished. editing process finished.
*/ */
virtual bool Validate(wxVariant& value); virtual bool Validate(wxVariant& value);
virtual bool HasEditorCtrl() const;
virtual wxWindow* CreateEditorCtrl(wxWindow * parent,
wxRect labelRect,
const wxVariant& value);
virtual bool GetValueFromEditorCtrl(wxWindow * editor,
wxVariant& value);
virtual bool StartEditing( const wxDataViewItem &item, wxRect labelRect );
virtual void CancelEditing();
virtual bool FinishEditing();
wxWindow *GetEditorCtrl();
protected:
wxDataViewCtrl* GetView() const;
}; };
@@ -1802,7 +2046,7 @@ public:
*/ */
wxDataViewCustomRenderer(const wxString& varianttype = "string", wxDataViewCustomRenderer(const wxString& varianttype = "string",
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int align = -1, bool no_init = false); int align = wxDVR_DEFAULT_ALIGNMENT);
/** /**
Destructor. Destructor.
@@ -1966,6 +2210,12 @@ public:
wxDataViewModel* model, wxDataViewModel* model,
const wxDataViewItem & item, const wxDataViewItem & item,
unsigned int col); unsigned int col);
protected:
/**
Helper for GetSize() implementations, respects attributes.
*/
wxSize GetTextExtent(const wxString& str) const;
}; };
@@ -3146,5 +3396,21 @@ public:
Return the last row that will be displayed. Return the last row that will be displayed.
*/ */
int GetCacheTo() const; int GetCacheTo() const;
wxDataViewItem GetItem() const;
void SetItem( const wxDataViewItem &item );
void SetEditCanceled(bool editCancelled);
void SetPosition( int x, int y );
void SetCache(int from, int to);
wxDataObject *GetDataObject() const;
void SetDataFormat( const wxDataFormat &format );
void SetDataSize( size_t size );
void SetDataBuffer( void* buf );
int GetDragFlags() const;
void SetDropEffect( wxDragResult effect );
}; };