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