1 /*
2     Ming, an SWF output library
3     Copyright (C) 2001  Opaque Industries - http://www.opaque.net/
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Lesser General Public
7     License as published by the Free Software Foundation; either
8     version 2.1 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Lesser General Public License for more details.
14 
15     You should have received a copy of the GNU Lesser General Public
16     License along with this library; if not, write to the Free Software
17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19 
20 /* text.h
21  *
22  * $Id$
23  *
24  * Notice: This header file contains declarations of functions and types that
25  * are just used internally. All library functions and types that are supposed
26  * to be publicly accessable are defined in ./src/ming.h.
27  */
28 
29 #ifndef SWF_TEXT_H_INCLUDED
30 #define SWF_TEXT_H_INCLUDED
31 
32 #include "ming.h"
33 #include "output.h"
34 
35 
36 typedef struct SWFTextRecord_s *SWFTextRecord;
37 
38 #define SWF_TEXT_STATE_CHANGE (1<<7)
39 #define SWF_TEXT_HAS_FONT     (1<<3)
40 #define SWF_TEXT_HAS_COLOR    (1<<2)
41 #define SWF_TEXT_HAS_Y        (1<<1)
42 #define SWF_TEXT_HAS_X        (1<<0)
43 
44 void SWFOutput_writeText(SWFOutput out, SWFText text);
45 
46 void SWFTextRecord_setFontCharacter(SWFTextRecord record, SWFFontCharacter font);
47 
48 void SWFText_setScaledHeight(SWFText text, int height);
49 
50 void SWFText_scaledMoveTo(SWFText text, int x, int y);
51 
52 void SWFText_setScaledSpacing(SWFText text, int spacing);
53 
54 int SWFText_getScaledStringWidth(SWFText text, const char *string);
55 
56 int SWFText_getScaledUTF8StringWidth(SWFText text, const char *string);
57 
58 int SWFText_getScaledWideStringWidth(SWFText text, const unsigned short *string);
59 
60 short SWFText_getScaledAscent(SWFText text);
61 
62 short SWFText_getScaledDescent(SWFText text);
63 
64 short SWFText_getScaledLeading(SWFText text);
65 
66 void SWFText_resolveCodes(SWFText text);
67 
68 SWFTextRecord newSWFTextRecord();
69 
70 void destroySWFTextRecord(SWFTextRecord record);
71 
72 int SWFTextRecord_getString(SWFTextRecord record, unsigned short** outStr);
73 
74 SWFTextRecord SWFText_getInitialRecord(SWFText text);
75 
76 SWFTextRecord SWFTextRecord_getNextRecord(SWFTextRecord record);
77 
78 SWFFont SWFTextRecord_getUnresolvedFont(SWFTextRecord record);
79 
80 void SWFTextRecord_setFontCharacter(SWFTextRecord record, SWFFontCharacter font);
81 
82 #endif /* SWF_TEXT_H_INCLUDED */
83