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)28 int __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)48 int textwidth( const char *textstring) {
49   return __gr_text_Width(strlen(textstring), textstring);
50 }
51