Three-in-one commit:
[blender-staging.git] / source / blender / ftfont / FTF_Api.h
1 /**
2  * $Id$ 
3  *
4  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version. The Blender
10  * Foundation also sells licenses for use in proprietary software under
11  * the Blender License.  See http://www.blender.org/BL/ for information
12  * about this.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  *
23  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24  * All rights reserved.
25  *
26  * The Original Code is: all of this file.
27  *
28  * Contributor(s): none yet.
29  *
30  * ***** END GPL/BL DUAL LICENSE BLOCK *****
31  */
32
33 #ifndef _FTF_API_H
34 #define _FTF_API_H
35
36 #define FTF_EXPORT
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 #include <stdio.h>
43 #include "FTF_Settings.h"
44
45 /**
46  * Set Font Size
47  * @param int size
48  */
49 FTF_EXPORT void FTF_SetSize(int size);
50
51 /**
52  * Get Font Size
53  * @return Font size
54  */
55 FTF_EXPORT int FTF_GetSize(void);
56
57 /**
58  * Ascender
59  * @return Ascend size
60  */
61 FTF_EXPORT int FTF_Ascender(void);
62
63 /**
64  * Descender
65  * @return Descend size
66  */
67 FTF_EXPORT int FTF_Descender(void);
68
69 /**
70  * String Translation and Code Conversion
71  * @param str source string
72  * @param ustr distnation string
73  * @param flag mode flag
74  */
75 FTF_EXPORT void FTF_TransConvString(char* str, char* ustr, unsigned int flag);
76
77 /**
78  * Draw a character at the current raster position.
79  * @param c the character to draw
80  * @param mode flag to forward to FTF_TransConvString()
81  * @return Width drawing
82  */
83 //FTF_EXPORT float FTF_DrawCharacter(char c, unsigned int flag);
84
85 /**
86  * Draws a string at the current raster postion.
87  * @param str The string to draw
88  * @param mode flag to forward to FTF_TransConvString()
89  * @return Width drawing
90  */
91 FTF_EXPORT float FTF_DrawString(char* str, unsigned int flag);
92
93
94 /**
95  * Get a character width
96  * @param mode flag to forward to FTF_TransConvString()
97  */
98 FTF_EXPORT float FTF_GetCharacterWidth(char c, unsigned int flag);
99
100
101 /**
102  * Get a string width
103  * @param mode flag to forward to FTF_TransConvString()
104  */
105 FTF_EXPORT float FTF_GetStringWidth(char* str, unsigned int flag);
106
107 /**
108  * Get Bounding Box
109  * @param llx
110  * @param lly
111  * @param llz
112  * @param urx
113  * @param ury
114  * @param urz
115  * @param mode flag to forward to FTF_TransConvString()
116  * not test yet.
117  */
118 FTF_EXPORT void FTF_GetBoundingBox(char* str, float*llx, float *lly, float *llz, float *urx, float *ury, float *urz, unsigned int flag);
119
120 /**
121  * Following stuff added by phase, ton
122  */
123
124 /**
125  * SetFontSize
126  * @param size
127  */
128 FTF_EXPORT void FTF_SetFontSize(char size);
129
130 /**
131  * SetFont
132  * @param str
133  * @param size
134  */
135 FTF_EXPORT int FTF_SetFont(const unsigned char* str, int datasize, int fontsize);
136
137 /**
138  * SetLanguage
139  * @param str
140  * not test yet.
141  */
142 FTF_EXPORT void FTF_SetLanguage(char* str);
143
144 /**
145  * SetLanguage
146  * @param str
147  * not tested yet.
148  */
149 FTF_EXPORT void FTF_SetEncoding(char* str);
150
151 FTF_EXPORT void FTF_SetPosition(float x, float y);
152 FTF_EXPORT void FTF_SetMode(int mode);
153 FTF_EXPORT void FTF_SetScale(float fsize);
154
155 FTF_EXPORT void FTF_End(void);
156
157 #ifdef __cplusplus
158 }
159 #endif
160
161 #endif /* __FTF_API_H */
162