| 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 |  | 
|---|