Sebastian Kuschel reports that pfd_closing can be called for a socket
[u/mdw/putty] / unix / gtkfont.h
CommitLineData
f96e9a61 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 */
13struct unifont_vtable; /* contents internal to gtkfont.c */
14typedef 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'.
f96e9a61 24 */
572820e1 25 int public_charset;
f96e9a61 26
27 /*
28 * Font dimensions needed by clients.
29 */
30 int width, height, ascent, descent;
0affbab4 31
32 /*
33 * Indicates whether this font is capable of handling all glyphs
34 * (Pango fonts can do this because Pango automatically supplies
35 * missing glyphs from other fonts), or whether it would like a
36 * fallback font to cope with missing glyphs.
37 */
38 int want_fallback;
f96e9a61 39} unifont;
40
41unifont *unifont_create(GtkWidget *widget, const char *name,
42 int wide, int bold,
43 int shadowoffset, int shadowalways);
44void unifont_destroy(unifont *font);
45void unifont_draw_text(GdkDrawable *target, GdkGC *gc, unifont *font,
572820e1 46 int x, int y, const wchar_t *string, int len,
f96e9a61 47 int wide, int bold, int cellwidth);
48
49/*
0affbab4 50 * This function behaves exactly like the low-level unifont_create,
51 * except that as well as the requested font it also allocates (if
52 * necessary) a fallback font for filling in replacement glyphs.
53 *
54 * Return value is usable with unifont_destroy and unifont_draw_text
55 * as if it were an ordinary unifont.
56 */
57unifont *multifont_create(GtkWidget *widget, const char *name,
58 int wide, int bold,
59 int shadowoffset, int shadowalways);
60
61/*
f96e9a61 62 * Unified font selector dialog. I can't be bothered to do a
63 * proper GTK subclassing today, so this will just be an ordinary
64 * data structure with some useful members.
65 *
66 * (Of course, these aren't the only members; this structure is
67 * contained within a bigger one which holds data visible only to
68 * the implementation.)
69 */
70typedef struct unifontsel {
71 void *user_data; /* settable by the user */
72 GtkWindow *window;
73 GtkWidget *ok_button, *cancel_button;
74} unifontsel;
75
76unifontsel *unifontsel_new(const char *wintitle);
77void unifontsel_destroy(unifontsel *fontsel);
78void unifontsel_set_name(unifontsel *fontsel, const char *fontname);
79char *unifontsel_get_name(unifontsel *fontsel);
80
81#endif /* PUTTY_GTKFONT_H */