static OSStatus OPL_DSNItemViewItemDataCallback(ControlRef itemView, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { OSStatus err; CFStringRef dsn; static IconRef folderIcon = 0; static IconRef dsnIcon = 0; IconRef icon = 0; if (changeValue) return errDataBrowserPropertyNotSupported; // Get TestPool instance OPL_DSNList *dsnlist = OPL_DSNList::get(itemView); if (!dsnlist) return errDataBrowserPropertyNotSupported; // Get test item dsn = dsnlist->getItem(itemID); CFStringRef str; switch (property) { case kItemViewDSNL: str = dsn; break; case kItemViewFDSNL: if (folderIcon == 0) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericFolderIcon, &folderIcon); if (dsnIcon == 0) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericDocumentIcon, &dsnIcon); icon = dsnlist->getItemType(itemID) ? folderIcon : dsnIcon; str = dsn; break; default: return errDataBrowserPropertyNotSupported; } // resize columns SInt16 outBaseline; Point ioBound; err = GetThemeTextDimensions(str, kThemeSystemFont, kThemeStateActive, false, &ioBound, &outBaseline); require_noerr(err, error); UInt16 width; err = GetDataBrowserTableViewNamedColumnWidth(itemView, property, &width); require_noerr(err, error); if (width < ioBound.h + 20) { err = SetDataBrowserTableViewNamedColumnWidth(itemView, property, ioBound.h + 20); require_noerr(err, error); } // set item data text err = SetDataBrowserItemDataText(itemData, str); require_noerr(err, error); if (icon) SetDataBrowserItemDataIcon(itemData, icon); error: return err; }
OSStatus wxMacDataBrowserControl::GetColumnWidth( DataBrowserPropertyID column , UInt16 *width ) const { return GetDataBrowserTableViewNamedColumnWidth( m_controlRef , column , width ); }