1 /** 2 ** BCC2GRX - Interfacing Borland based graphics programs to LIBGRX 3 ** Copyright (C) 1993-97 by Hartmut Schirmer 4 ** 5 ** 6 ** Contact : Hartmut Schirmer 7 ** Feldstrasse 118 8 ** D-24105 Kiel 9 ** Germany 10 ** 11 ** e-mail : hsc@techfak.uni-kiel.de 12 ** 13 ** This file is part of the GRX graphics library. 14 ** 15 ** The GRX graphics library is free software; you can redistribute it 16 ** and/or modify it under some conditions; see the "copying.grx" file 17 ** for details. 18 ** 19 ** This library is distributed in the hope that it will be useful, 20 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 21 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22 ** 23 **/ 24 25 #include "text.h" 26 27 /* ----------------------------------------------------------------- */ __gr_text_Width(int len,const char * txt)28int __gr_text_Width(int len, const char *txt) { 29 int sum; 30 31 _DO_INIT_CHECK_RV(0); 32 __gr_text_init(); 33 if (TXT.font == DEFAULT_FONT) 34 return 8*ZERO2ONE(TXT.charsize) * len; 35 if (TXT.font >= FirstGrxFont && TXT.font <= LastGrxFont) { 36 Style.txo_font = (GrFont *)Fonts[TXT.font]; 37 Style.txo_direct = GR_TEXT_RIGHT; 38 return GrStringWidth((char *) txt, len, &Style); 39 } 40 sum = 0; 41 while (len-- > 0) 42 sum += fntptr[*((uchar *)txt++)].width * __gr_text_multx / __gr_text_divx; 43 return sum; 44 } 45 46 /* ----------------------------------------------------------------- */ 47 textwidth(const char * textstring)48int textwidth( const char *textstring) { 49 return __gr_text_Width(strlen(textstring), textstring); 50 } 51