X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0a66d92372d38600f2b993a541f5788064fba2d..50f8c98e06db4ab6e9752aa12cc86ee989ae9dd4:/include/wx/mac/carbon/databrow.h diff --git a/include/wx/mac/carbon/databrow.h b/include/wx/mac/carbon/databrow.h index fb1bb27b6d..dcf94af9bb 100644 --- a/include/wx/mac/carbon/databrow.h +++ b/include/wx/mac/carbon/databrow.h @@ -53,17 +53,16 @@ typedef SInt32 SRefCon; #if wxUSE_GUI -#include "wx/hashmap.h" - #include "wx/mac/private.h" WX_DEFINE_ARRAY_SIZE_T(size_t,wxArrayDataBrowserItemID); // ============================================================================ -// DataBrowser Wrapper +// wxMacDataBrowserTableViewControl // ============================================================================ // -// basing on DataBrowserItemIDs +// this is a wrapper class for the Mac OS X data browser environment, +// it covers all general data brower functionality, // // data browser's property IDs have a reserved ID range from 0 - 1023 @@ -108,6 +107,7 @@ public: OSStatus GetDefaultColumnWidth(UInt16 *width ) const; // returns the default column width in pixels OSStatus GetDefaultRowHeight (UInt16 * height ) const; OSStatus GetHeaderButtonHeight(UInt16 *height ); + OSStatus GetPartBounds (DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect* bounds); OSStatus GetRowHeight (DataBrowserItemID item , UInt16 *height) const; OSStatus GetScrollPosition (UInt32* top, UInt32 *left) const; @@ -120,6 +120,7 @@ public: OSStatus SetHasScrollBars( bool horiz, bool vert ); OSStatus SetHeaderButtonHeight( UInt16 height ); OSStatus SetHiliteStyle( DataBrowserTableViewHiliteStyle hiliteStyle ); + OSStatus SetIndent(float Indent); OSStatus SetRowHeight( DataBrowserItemID item , UInt16 height); OSStatus SetScrollPosition( UInt32 top , UInt32 left ); @@ -127,18 +128,20 @@ public: // column handling // OSStatus GetColumnCount (UInt32* numColumns) const; - OSStatus GetColumnID (DataBrowserTableViewColumnIndex position, DataBrowserTableViewColumnID* id); - OSStatus GetFreePropertyID(DataBrowserPropertyID* id) const; // this method returns a property id that is valid and currently not used; if it cannot be found 'errDataBrowerPropertyNotSupported' is returned - OSStatus GetPropertyColumn(DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex* index) const; + OSStatus GetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex* index) const; // returns for the passed property the corresponding column index + OSStatus GetFreePropertyID(DataBrowserPropertyID* propertyID) const; // this method returns a property id that is valid and currently not used; if it cannot be found 'errDataBrowerPropertyNotSupported' is returned OSStatus GetPropertyFlags (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags *flags ) const; - + OSStatus GetPropertyID (DataBrowserItemDataRef itemData, DataBrowserPropertyID* propertyID); // returns for the passed item data reference the corresponding property ID + OSStatus GetPropertyID (DataBrowserTableViewColumnIndex index, DataBrowserPropertyID* propertyID); // returns for the passed column index the corresponding property ID + OSStatus IsUsedPropertyID(DataBrowserPropertyID propertyID) const; // checks if passed property id is used by the control; no error is returned if the id exists - OSStatus RemoveColumn(DataBrowserTableViewColumnIndex position); + OSStatus RemoveColumnByProperty(DataBrowserTableViewColumnID propertyID); + OSStatus RemoveColumnByIndex (DataBrowserTableViewColumnIndex index); - OSStatus SetColumnPosition (DataBrowserPropertyID column, DataBrowserTableViewColumnIndex position); - OSStatus SetDisclosureColumn(DataBrowserPropertyID property, Boolean expandableRows ); - OSStatus SetPropertyFlags (DataBrowserPropertyID property, DataBrowserPropertyFlags flags ); + OSStatus SetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index); + OSStatus SetDisclosureColumn(DataBrowserPropertyID propertyID, Boolean expandableRows=true); + OSStatus SetPropertyFlags (DataBrowserPropertyID propertyID, DataBrowserPropertyFlags flags); // // item handling @@ -155,7 +158,7 @@ public: return this->GetItemCount(kDataBrowserNoItem,true,kDataBrowserItemAnyState,numItems); } OSStatus GetItemCount (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, ItemCount* numItems) const; - OSStatus GetItemID (DataBrowserTableViewRowIndex row, DataBrowserItemID * item) const; + OSStatus GetItemID (DataBrowserTableViewRowIndex row, DataBrowserItemID* item) const; OSStatus GetItems (DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, Handle items) const; OSStatus GetItemRow (DataBrowserItemID item, DataBrowserTableViewRowIndex* row) const; @@ -175,11 +178,11 @@ public: OSStatus UpdateItems(void) // updates all items { - return this->UpdateItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty,kDataBrowserNoItem); + return this->UpdateItems(kDataBrowserNoItem,0,NULL,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty); } OSStatus UpdateItems(DataBrowserItemID const* item) // updates all columns of item { - return this->UpdateItems(kDataBrowserNoItem,1,item,kDataBrowserItemNoProperty,kDataBrowserNoItem); + return this->UpdateItems(kDataBrowserNoItem,1,item,kDataBrowserItemNoProperty,kDataBrowserItemNoProperty); } OSStatus UpdateItems(DataBrowserItemID container, UInt32 numItems, DataBrowserItemID const* items, DataBrowserPropertyID preSortProperty, DataBrowserPropertyID propertyID) const; @@ -199,10 +202,19 @@ public: // item sorting // OSStatus GetSortOrder (DataBrowserSortOrder* order) const; - OSStatus GetSortProperty(DataBrowserPropertyID* column) const; + OSStatus GetSortProperty(DataBrowserPropertyID* propertyID) const; + + OSStatus Resort(DataBrowserItemID container=kDataBrowserNoItem, Boolean sortChildren=true); OSStatus SetSortOrder (DataBrowserSortOrder order); - OSStatus SetSortProperty(DataBrowserPropertyID column); + OSStatus SetSortProperty(DataBrowserPropertyID propertyID); + +// +// container handling +// + OSStatus CloseContainer(DataBrowserItemID containerID); + + OSStatus OpenContainer(DataBrowserItemID containerID); protected : // @@ -225,9 +237,14 @@ private: }; // ============================================================================ -// Databrowser class for the list view control +// wxMacDataBrowserListViewControl // ============================================================================ // +// this class is a wrapper for a list view which incorporates all general +// data browser functionality of the inherited table view control class; +// the term list view is in this case Mac OS X specific and is not related +// to any wxWidget naming conventions +// class wxMacDataBrowserListViewControl : public wxMacDataBrowserTableViewControl { public: @@ -249,38 +266,19 @@ private: // ============================================================================ -// Databrowser class for the data view list control model +// wxMacDataViewDataBrowserListViewControl // ============================================================================ // - -// -// Hash maps used by the data browser for the data view model +// internal interface class between wxDataViewCtrl (wxWidget) and the data +// browser (Mac OS X) // -WX_DECLARE_HASH_MAP(DataBrowserItemID,unsigned long,wxIntegerHash,wxIntegerEqual,ItemIDRowNumberHashMap); // stores for each item ID the model's row number - class wxMacDataViewDataBrowserListViewControl : public wxMacDataBrowserListViewControl { public: // // constructors / destructor - wxMacDataViewDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style); - -// -// item ID and model matching // - void ClearItemIDRowPairs(void); // removes all ID row pairs - - bool DeleteItemIDRowPair(DataBrowserItemID itemID); // if the id has been removed, 'true' is returned, 'false' is returned if the id did not exist or another error occurred - - bool GetRowIndex(unsigned long& rowIndex, DataBrowserItemID itemID) const; // returns 'true' and the rowIndex if the id has been found in the map, otherwise 'false' is returned and rowIndex remains untouched - - bool InsertItemIDRowPair(DataBrowserItemID itemID, unsigned long rowIndex); // the pair will only be inserted if the item ID does not exist before the call - - void RenumberItemIDRowIndices (unsigned int* newIndices); // for each item ID - row index pair the row index is changed - void RenumberItemIDRowIndicesDeletion (unsigned long decreaseFromIndex); // decreases all row indices by one that are equal or larger than 'decreaseFromIndex' - void RenumberItemIDRowIndicesInsertion(unsigned long increaseFromIndex); // increases all row indices by one that are equal or larger than 'increaseFromIndex' - - void ReverseRowIndexNumbering(void); // reverses the order of the indices + wxMacDataViewDataBrowserListViewControl(wxWindow* peer, wxPoint const& pos, wxSize const& size, long style); protected: // @@ -292,10 +290,6 @@ protected: virtual OSStatus DataBrowserGetSetItemDataProc (DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean getValue); private: -// -// variables -// - ItemIDRowNumberHashMap m_itemIDRowNumberMap; // contains for each data browser ID the corresponding line number in the model }; typedef wxMacDataViewDataBrowserListViewControl* wxMacDataViewDataBrowserListViewControlPointer;