merge with 2.5 at r18679
[blender.git] / source / blender / blenkernel / BKE_font.h
1 /**
2  * blenlib/BKE_vfont.h (mar-2001 nzc)
3  *      
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef BKE_VFONT_H
32 #define BKE_VFONT_H
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 #include <wchar.h>
39
40 struct VFont;
41 struct Scene;
42 struct Object;
43 struct Curve;
44 struct objfnt;
45 struct TmpFont;
46 struct CharInfo;
47
48 struct chartrans {
49         float xof, yof;
50         float rot;
51         short linenr,charnr;
52         char dobreak;
53 };
54
55 typedef struct SelBox {
56         float x, y, w, h;
57 } SelBox;
58
59 typedef struct EditFont {       
60         wchar_t *copybuf;
61         wchar_t *copybufinfo;
62         
63         wchar_t *textbuf;
64         struct CharInfo *textbufinfo;
65         wchar_t *oldstr;
66         struct CharInfo *oldstrinfo;
67         
68         float textcurs[4][2];
69         
70 } EditFont;
71
72
73 void BKE_font_register_builtin(void *mem, int size);
74
75 void free_vfont(struct VFont *sc); 
76 void free_ttfont(void);
77 struct VFont *get_builtin_font(void);
78 struct VFont *load_vfont(char *name);
79 struct TmpFont *vfont_find_tmpfont(struct VFont *vfont);
80
81 struct chartrans *BKE_text_to_curve(struct Scene *scene, struct Object *ob, int mode);
82
83 int BKE_font_getselection(struct Object *ob, int *start, int *end);
84
85 void chtoutf8(unsigned long c, char *o);
86 void wcs2utf8s(char *dst, wchar_t *src);
87 int wcsleninu8(wchar_t *src);
88 int utf8towchar(wchar_t *w, char *c);
89
90 #ifdef __cplusplus
91 }
92 #endif
93
94 #endif
95