home *** CD-ROM | disk | FTP | other *** search
Wrap
/* GadTools layout toolkit ** ** Copyright © 1993-1994 by Olaf `Olsen' Barthel ** Freely distributable. */ #include "gtlayout_global.h" STATIC LONG __stdargs DefaultDispFunc(struct Gadget *gad,WORD value) { return(value); } VOID LIBENT LT_LevelWidth(REG(a0) LayoutHandle *handle,REG(a1) STRPTR levelFormat,REG(a2) DISPFUNC dispFunc,REG(d0) LONG min,REG(d1) LONG max,REG(a3) LONG *maxWidth,REG(a5) LONG *maxLen,REG(d2) BOOL fullCheck) { UBYTE buffer[80]; LONG localMaxWidth; LONG localMaxLen; LONG len; localMaxWidth = 0; localMaxLen = 0; if(handle) { if(!dispFunc) dispFunc = DefaultDispFunc; if(!levelFormat) levelFormat = "%ld"; if(fullCheck) { LONG i; for(i = min ; i <= max ; i++) { sprintf(buffer,levelFormat,(*dispFunc)(NULL,i)); len = strlen(buffer); if(len > localMaxLen) localMaxLen = len; len = TextLength(&handle -> RPort,buffer,len); if(len > localMaxWidth) localMaxWidth = len; } } else { sprintf(buffer,levelFormat,(*dispFunc)(NULL,min)); len = strlen(buffer); if(len > localMaxLen) localMaxLen = len; len = TextLength(&handle -> RPort,buffer,len); if(len > localMaxWidth) localMaxWidth = len; sprintf(buffer,levelFormat,(*dispFunc)(NULL,max)); len = strlen(buffer); if(len > localMaxLen) localMaxLen = len; len = TextLength(&handle -> RPort,buffer,len); if(len > localMaxWidth) localMaxWidth = len; } } if(maxLen) *maxLen = localMaxLen; if(maxWidth) *maxWidth = localMaxWidth + handle -> GlyphWidth; }