]> asedeno.scripts.mit.edu Git - PuTTY.git/blob - unix/gtkfont.h
Merge from trunk again (because I want the helpful diagnostic code
[PuTTY.git] / unix / gtkfont.h
1 /*
2  * Header file for gtkfont.c. Has to be separate from unix.h
3  * because it depends on GTK data types, hence can't be included
4  * from cross-platform code (which doesn't go near GTK).
5  */
6
7 #ifndef PUTTY_GTKFONT_H
8 #define PUTTY_GTKFONT_H
9
10 /*
11  * Exports from gtkfont.c.
12  */
13 struct unifont_vtable;                 /* contents internal to gtkfont.c */
14 typedef struct unifont {
15     const struct unifont_vtable *vt;
16     /*
17      * `Non-static data members' of the `class', accessible to
18      * external code.
19      */
20
21     /*
22      * public_charset is the charset used when the user asks for
23      * `Use font encoding'.
24      * 
25      * real_charset is the charset used when translating text into
26      * a form suitable for sending to unifont_draw_text().
27      * 
28      * They can differ. For example, public_charset might be
29      * CS_ISO8859_1 while real_charset is CS_ISO8859_1_X11.
30      */
31     int public_charset, real_charset;
32
33     /*
34      * Font dimensions needed by clients.
35      */
36     int width, height, ascent, descent;
37 } unifont;
38
39 unifont *unifont_create(char *name, int wide, int bold,
40                         int shadowoffset, int shadowalways);
41 void unifont_destroy(unifont *font);
42 void unifont_draw_text(GdkDrawable *target, GdkGC *gc, unifont *font,
43                        int x, int y, const char *string, int len,
44                        int wide, int bold);
45
46 #endif /* PUTTY_GTKFONT_H */