1 | /* $Id$ $Revision$ */ |
2 | /* vim:set shiftwidth=4 ts=8: */ |
3 | |
4 | /************************************************************************* |
5 | * Copyright (c) 2011 AT&T Intellectual Property |
6 | * All rights reserved. This program and the accompanying materials |
7 | * are made available under the terms of the Eclipse Public License v1.0 |
8 | * which accompanies this distribution, and is available at |
9 | * http://www.eclipse.org/legal/epl-v10.html |
10 | * |
11 | * Contributors: See CVS logs. Details at http://www.graphviz.org/ |
12 | *************************************************************************/ |
13 | |
14 | #ifndef TEXTSPAN_H |
15 | #define TEXTSPAN_H |
16 | |
17 | #ifdef __cplusplus |
18 | extern "C" { |
19 | #endif |
20 | |
21 | /* Bold, Italic, Underline, Sup, Sub, Strike */ |
22 | /* Stored in textfont_t.flags, which is 7 bits, so full */ |
23 | /* Probably should be moved to textspan_t */ |
24 | #define HTML_BF (1 << 0) |
25 | #define HTML_IF (1 << 1) |
26 | #define HTML_UL (1 << 2) |
27 | #define HTML_SUP (1 << 3) |
28 | #define HTML_SUB (1 << 4) |
29 | #define HTML_S (1 << 5) |
30 | #define HTML_OL (1 << 6) |
31 | |
32 | typedef struct _PostscriptAlias { |
33 | char* name; |
34 | char* family; |
35 | char* weight; |
36 | char* stretch; |
37 | char* style; |
38 | int xfig_code; |
39 | char* svg_font_family; |
40 | char* svg_font_weight; |
41 | char* svg_font_style; |
42 | } PostscriptAlias; |
43 | |
44 | /* font information |
45 | * If name or color is NULL, or size < 0, that attribute |
46 | * is unspecified. |
47 | */ |
48 | typedef struct { |
49 | char* name; |
50 | char* color; |
51 | PostscriptAlias *postscript_alias; |
52 | double size; |
53 | unsigned int flags:7; /* HTML_UL, HTML_IF, HTML_BF, etc. */ |
54 | unsigned int cnt:(sizeof(unsigned int) * 8 - 7); /* reference count */ |
55 | } textfont_t; |
56 | |
57 | /* atomic unit of text emitted using a single htmlfont_t */ |
58 | typedef struct { |
59 | char *str; /* stored in utf-8 */ |
60 | textfont_t *font; |
61 | void *layout; |
62 | void (*free_layout) (void *layout); /* FIXME - this is ugly */ |
63 | double yoffset_layout, yoffset_centerline; |
64 | pointf size; |
65 | char just; /* 'l' 'n' 'r' */ /* FIXME */ |
66 | } textspan_t; |
67 | |
68 | #ifdef __cplusplus |
69 | } |
70 | #endif |
71 | #endif |
72 | |