Beispiel #1
0
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;
}
Beispiel #2
0
OSStatus wxMacDataBrowserControl::GetColumnWidth( DataBrowserPropertyID column , UInt16 *width ) const
{
    return GetDataBrowserTableViewNamedColumnWidth( m_controlRef , column , width );
}