_screen is only valid between show/hide.
[AROS.git] / rom / intuition / intuitextlength.c
blobc46f856ed7242fcc9b0c92eabf063379aa849f7f
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4 $Id$
5 */
7 #include <proto/graphics.h>
9 #include "intuition_intern.h"
11 /*****************************************************************************
13 NAME */
14 #include <intuition/intuition.h>
15 #include <proto/intuition.h>
17 AROS_LH1(LONG, IntuiTextLength,
19 /* SYNOPSIS */
20 AROS_LHA(struct IntuiText *, iText, A0),
22 /* LOCATION */
23 struct IntuitionBase *, IntuitionBase, 55, Intuition)
25 /* FUNCTION
26 Measure the length of the IntuiText passed to the function. Further
27 IntuiTexts in iText->NextText are ignored. The length is measured in
28 pixels.
30 INPUTS
31 iText - The size of this text. If iText->ITextFont contains NULL,
32 the system's font is used (and *not* the font of the currently
33 active screen!).
35 RESULT
36 The width of the text in pixels.
38 NOTES
40 EXAMPLE
42 BUGS
44 SEE ALSO
46 INTERNALS
48 *****************************************************************************/
50 AROS_LIBFUNC_INIT
52 struct GfxBase *GfxBase = GetPrivIBase(IntuitionBase)->GfxBase;
53 struct RastPort rp;
54 struct TextFont *newfont = NULL;
55 LONG width;
57 DEBUG_INTUITEXTLENGTH(dprintf("IntuiTextLength(itext 0x%lx)\n",iText));
59 SANITY_CHECKR(iText,0)
61 InitRastPort(&rp);
63 if (iText->ITextFont)
65 newfont = OpenFont(iText->ITextFont);
67 if (newfont)
68 SetFont(&rp, newfont);
71 width = TextLength(&rp, iText->IText, strlen(iText->IText));
73 if (newfont)
74 CloseFont(newfont);
76 return width;
78 AROS_LIBFUNC_EXIT
79 } /* IntuiTextLength */