X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2a648479df44228ca01da2cbffb389034c037d65..d554697139c4e47e8c06a24bbaf4a99f826b6c30:/interface/wx/dataview.h diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index 8779ef96f9..e6260676f3 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -421,7 +421,7 @@ public: unsigned int col) const; /** - Returns the number of items (i.e. rows) in the list. + Returns the number of items (or rows) in the list. */ unsigned int GetCount() const; @@ -614,8 +614,9 @@ public: /** Constructor. */ - wxDataViewItem(void* id = NULL); + wxDataViewItem(); wxDataViewItem(const wxDataViewItem& item); + explicit wxDataViewItem(void* id); //@} /** @@ -630,6 +631,61 @@ public: }; +// ---------------------------------------------------------------------------- +// wxDataViewCtrl flags +// ---------------------------------------------------------------------------- + +// size of a wxDataViewRenderer without contents: +#define wxDVC_DEFAULT_RENDERER_SIZE 20 + +// the default width of new (text) columns: +#define wxDVC_DEFAULT_WIDTH 80 + +// the default width of new toggle columns: +#define wxDVC_TOGGLE_DEFAULT_WIDTH 30 + +// the default minimal width of the columns: +#define wxDVC_DEFAULT_MINWIDTH 30 + +// The default alignment of wxDataViewRenderers is to take +// the alignment from the column it owns. +#define wxDVR_DEFAULT_ALIGNMENT -1 + +#define wxDV_SINGLE 0x0000 // for convenience +#define wxDV_MULTIPLE 0x0001 // can select multiple items + +#define wxDV_NO_HEADER 0x0002 // column titles not visible +#define wxDV_HORIZ_RULES 0x0004 // light horizontal rules between rows +#define wxDV_VERT_RULES 0x0008 // light vertical rules between columns + +#define wxDV_ROW_LINES 0x0010 // alternating colour in rows +#define wxDV_VARIABLE_LINE_HEIGHT 0x0020 // variable line height + +// events + +wxEventType wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED; + +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED; + +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU; + +wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK; +wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK; +wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED; +wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED; +wxEventType wxEVT_COMMAND_DATAVIEW_CACHE_HINT; + +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE; +wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP; /** @class wxDataViewCtrl @@ -704,7 +760,11 @@ public: @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)} Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event. @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)} - Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event + generated when the user right clicks inside the control. Notice that + this menu is generated even if the click didn't occur on any valid + item, in this case wxDataViewEvent::GetItem() simply returns an + invalid item. @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)} Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICKED event. @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)} @@ -1015,13 +1075,35 @@ public: */ wxDataViewModel* GetModel(); + /** + Returns the number of currently selected items. + + This method may be called for both the controls with single and + multiple selections and returns the number of selected item, possibly + 0, in any case. + + @since 2.9.3 + */ + virtual int GetSelectedItemsCount() const; + /** Returns first selected item or an invalid item if none is selected. + + This method may be called for both the controls with single and + multiple selections but returns an invalid item if more than one item + is selected in the latter case, use HasSelection() to determine if + there are any selected items when using multiple selection. */ virtual wxDataViewItem GetSelection() const; /** Fills @a sel with currently selected items and returns their number. + + This method may be called for both the controls with single and + multiple selections. In the single selection case it returns the array + with at most one element in it. + + @see GetSelectedItemsCount() */ virtual int GetSelections(wxDataViewItemArray& sel) const; @@ -1031,6 +1113,20 @@ public: */ virtual wxDataViewColumn* GetSortingColumn() const; + /** + Returns true if any items are currently selected. + + This method may be called for both the controls with single and + multiple selections. + + Calling this method is equivalent to calling GetSelectedItemsCount() + and comparing its result with 0 but is more clear and might also be + implemented more efficiently in the future. + + @since 2.9.3 + */ + bool HasSelection() const; + /** Hittest. */