void TimeAttributeText::FitValue(BString *result, const BPoseView *view) { if (fValueDirty) fValue = ReadValue(); fOldWidth = fColumn->Width(); fTruncatedWidth = TruncTime(result, fValue, view, fOldWidth); fDirty = false; }
void GenericAttributeText::FitValue(BString* outString, const BPoseView* view) { if (fValueDirty) ReadValue(&fFullValueText); fOldWidth = fColumn->Width(); if (!fValueIsDefined) { *outString = "-"; fTruncatedWidth = TruncString(outString, fFullValueText.String(), fFullValueText.Length(), view, fOldWidth); fDirty = false; return; } char buffer[256]; switch (fColumn->AttrType()) { case B_SIZE_T_TYPE: TruncFileSizeBase(outString, fValue.int32t, view, fOldWidth); return; case B_SSIZE_T_TYPE: if (fValue.int32t > 0) { TruncFileSizeBase(outString, fValue.int32t, view, fOldWidth); return; } sprintf(buffer, "%s", strerror(fValue.int32t)); fFullValueText = buffer; break; case B_STRING_TYPE: fTruncatedWidth = TruncString(outString, fFullValueText.String(), fFullValueText.Length(), view, fOldWidth); fDirty = false; return; case B_OFF_T_TYPE: // As a side effect update the fFullValueText to the string // representation of value TruncFileSize(&fFullValueText, fValue.off_tt, view, 100000); fTruncatedWidth = TruncFileSize(outString, fValue.off_tt, view, fOldWidth); fDirty = false; return; case B_TIME_TYPE: // As a side effect update the fFullValueText to the string // representation of value TruncTime(&fFullValueText, fValue.time_tt, view, 100000); fTruncatedWidth = TruncTime(outString, fValue.time_tt, view, fOldWidth); fDirty = false; return; case B_BOOL_TYPE: // For now use true/false, would be nice to be able to set // the value text sprintf(buffer, "%s", fValue.boolt ? "true" : "false"); fFullValueText = buffer; break; case B_CHAR_TYPE: // Make sure no non-printable characters are displayed: if (!isprint(fValue.uint8t)) { *outString = "-"; fTruncatedWidth = TruncString(outString, fFullValueText.String(), fFullValueText.Length(), view, fOldWidth); fDirty = false; return; } sprintf(buffer, "%c", fValue.uint8t); fFullValueText = buffer; break; case B_INT8_TYPE: sprintf(buffer, "%d", fValue.int8t); fFullValueText = buffer; break; case B_UINT8_TYPE: sprintf(buffer, "%d", fValue.uint8t); fFullValueText = buffer; break; case B_INT16_TYPE: sprintf(buffer, "%d", fValue.int16t); fFullValueText = buffer; break; case B_UINT16_TYPE: sprintf(buffer, "%d", fValue.uint16t); fFullValueText = buffer; break; case B_INT32_TYPE: sprintf(buffer, "%" B_PRId32, fValue.int32t); fFullValueText = buffer; break; case B_UINT32_TYPE: sprintf(buffer, "%" B_PRId32, fValue.uint32t); fFullValueText = buffer; break; case B_INT64_TYPE: sprintf(buffer, "%" B_PRId64, fValue.int64t); fFullValueText = buffer; break; case B_UINT64_TYPE: sprintf(buffer, "%" B_PRId64, fValue.uint64t); fFullValueText = buffer; break; case B_FLOAT_TYPE: snprintf(buffer, sizeof(buffer), "%g", fValue.floatt); fFullValueText = buffer; break; case B_DOUBLE_TYPE: snprintf(buffer, sizeof(buffer), "%g", fValue.doublet); fFullValueText = buffer; break; default: *outString = "-"; fTruncatedWidth = TruncString(outString, fFullValueText.String(), fFullValueText.Length(), view, fOldWidth); fDirty = false; return; } fTruncatedWidth = TruncString(outString, buffer, (ssize_t)strlen(buffer), view, fOldWidth); fDirty = false; }