1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
/*
* faces.h
*
* definition of the faces used by a2ps
* Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
* Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
*
*/
/*
* This file is part of a2ps.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* $Id: faces.h,v 1.1.1.1.2.1 2007/12/29 01:58:17 mhatta Exp $
*/
#ifndef _FACES_H_
#define _FACES_H_
struct a2ps_job;
/*
* Rationale for the values of the faces.
* - We want to keep the interval as small as possible
* - We want to be able to strip as fast as possible: masking.
*
* Therefore we want to have a single bit to test the comments.
* We also want, for the same reason, Invisible to be 0.
*
* I came down to 6 bits. If somebody has something better,
* I'll take it!
* 5 4 3 2 1 0
* +- Weak/Strong
* +++++--- Keyword/Label/String/Symbol/Error
* +--------- Comment
* +----------- Comment strong.
*
* What gives:
* 000000 Invisible 0
* 000001 Plain 1
* 000010 Keyword 2
* 000011 Keyword_strong 3
* 000100 Label 4
* 000101 Label_strong 5
* 000110 String 6
* 001000 Symbol 8
* 001010 Error (the face "Error") 10
* 010000 Comment 16
* 100000 Comment_strong. 32
*
* Note that we can't use the bit Weak/Strong for the Comment Weak/Strong
* (i.e., 01000/01001) because masking upon Comment_strong would
* be positive with any Strong face, which is definitely not what we
* want.
*/
/* liba2ps.h:begin */
/*
* Available faces. No_face should never be given to liba2ps.
*/
enum face_e {
No_face = -1,
First_face = 0,
Plain = 0,
Keyword = 1,
Keyword_strong = 2,
Label = 3,
Label_strong = 4,
String = 5,
Symbol = 6,
Error = 7,
Comment = 8,
Comment_strong = 9,
Last_face = 9
};
/* liba2ps.h:end */
/*
* What must be the dimension of the array indexed
* by the faces? I.e. last plus one.
*/
#define NB_FACES 10 /* Up to Comment_strong */
/* List of the faces really used */
extern enum face_e base_faces [];
enum face_e string_to_face PARAMS ((const char * string));
const char * face_eo_ps PARAMS ((enum face_e face));
const char * face_to_string PARAMS ((enum face_e face));
void face_self_print PARAMS ((enum face_e face, FILE * stream));
void init_face_eo_font PARAMS ((struct a2ps_job * job));
void face_eo_font_free PARAMS ((char * face_eo_font [NB_FACES]));
void check_face_eo_font PARAMS ((struct a2ps_job * job));
int face_eo_font_is_set PARAMS ((struct a2ps_job * job));
void face_set_font PARAMS ((struct a2ps_job * job,
enum face_e face, const char * font_name));
#endif
|