1 /*
2 Copyright (C) 2016-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: dk4font.ctr
12 */
13 
14 /**	@file dk4font.c The dk4font module.
15 */
16 
17 
18 #include "dk4conf.h"
19 #include <libdk4gra/dk4font.h>
20 
21 
22 #include <stdio.h>
23 
24 #if	DK4_HAVE_STDLIB_H
25 #include <stdlib.h>
26 #endif
27 
28 #if	DK4_HAVE_UNISTD_H
29 #include <unistd.h>
30 #endif
31 
32 
33 
34 
35 
36 static const char * const	dk4font_ps_names[] = {
37 /* 0 */
38 "Times-Roman",
39 
40 /* 1 */
41 "Times-Italic",
42 
43 /* 2 */
44 "Times-Bold",
45 
46 /* 3 */
47 "Times-BoldItalic",
48 
49 /* 4 */
50 "AvantGarde-Book",
51 
52 /* 5 */
53 "AvantGarde-BookOblique",
54 
55 /* 6 */
56 "AvantGarde-Demi",
57 
58 /* 7 */
59 "AvantGarde-DemiOblique",
60 
61 /* 8 */
62 "Bookman-Light",
63 
64 /* 9 */
65 "Bookman-LightItalic",
66 
67 /* 10 */
68 "Bookman-Demi",
69 
70 /* 11 */
71 "Bookman-DemiItalic",
72 
73 /* 12 */
74 "Courier",
75 
76 /* 13 */
77 "Courier-Oblique",
78 
79 /* 14 */
80 "Courier-Bold",
81 
82 /* 15 */
83 "Courier-BoldOblique",
84 
85 /* 16 */
86 "Helvetica",
87 
88 /* 17 */
89 "Helvetica-Oblique",
90 
91 /* 18 */
92 "Helvetica-Bold",
93 
94 /* 19 */
95 "Helvetica-BoldOblique",
96 
97 /* 20 */
98 "Helvetica-Narrow",
99 
100 /* 21 */
101 "Helvetica-Narrow-Oblique",
102 
103 /* 22 */
104 "Helvetica-Narrow-Bold",
105 
106 /* 23 */
107 "Helvetica-Narrow-BoldOblique",
108 
109 /* 24 */
110 "NewCenturySchlbk-Roman",
111 
112 /* 25 */
113 "NewCenturySchlbk-Italic",
114 
115 /* 26 */
116 "NewCenturySchlbk-Bold",
117 
118 /* 27 */
119 "NewCenturySchlbk-BoldItalic",
120 
121 /* 28 */
122 "Palatino-Roman",
123 
124 /* 29 */
125 "Palatino-Italic",
126 
127 /* 30 */
128 "Palatino-Bold",
129 
130 /* 31 */
131 "Palatino-BoldItalic",
132 
133 /* 32 */
134 "Symbol",
135 
136 /* 33 */
137 "ZapfChancery-MediumItalic",
138 
139 /* 34 */
140 "ZapfDingbats",
141 
142 NULL
143 
144 };
145 
146 
147 
148 static const char * const	dk4font_tex_family_names[] = {
149 /* 0 */
150 "ptm",
151 
152 /* 1 */
153 "ptm",
154 
155 /* 2 */
156 "ptm",
157 
158 /* 3 */
159 "ptm",
160 
161 /* 4 */
162 "pag",
163 
164 /* 5 */
165 "pag",
166 
167 /* 6 */
168 "pag",
169 
170 /* 7 */
171 "pag",
172 
173 /* 8 */
174 "pbk",
175 
176 /* 9 */
177 "pbk",
178 
179 /* 10 */
180 "pbk",
181 
182 /* 11 */
183 "pbk",
184 
185 /* 12 */
186 "pcr",
187 
188 /* 13 */
189 "pcr",
190 
191 /* 14 */
192 "pcr",
193 
194 /* 15 */
195 "pcr",
196 
197 /* 16 */
198 "phv",
199 
200 /* 17 */
201 "phv",
202 
203 /* 18 */
204 "phv",
205 
206 /* 19 */
207 "phv",
208 
209 /* 20 */
210 "phv",
211 
212 /* 21 */
213 "phv",
214 
215 /* 22 */
216 "phv",
217 
218 /* 23 */
219 "phv",
220 
221 /* 24 */
222 "pnc",
223 
224 /* 25 */
225 "pnc",
226 
227 /* 26 */
228 "pnc",
229 
230 /* 27 */
231 "pnc",
232 
233 /* 28 */
234 "ppl",
235 
236 /* 29 */
237 "ppl",
238 
239 /* 30 */
240 "ppl",
241 
242 /* 31 */
243 "ppl",
244 
245 /* 32 */
246 "psy",
247 
248 /* 33 */
249 "pzc",
250 
251 /* 34 */
252 "pzd",
253 
254 NULL
255 
256 };
257 
258 
259 
260 static const char * const	dk4font_tex_names[] = {
261 /* 0 */
262 "ptmr",
263 
264 /* 1 */
265 "ptmri",
266 
267 /* 2 */
268 "ptmb",
269 
270 /* 3 */
271 "ptmbi",
272 
273 /* 4 */
274 "pagk",
275 
276 /* 5 */
277 "pagko",
278 
279 /* 6 */
280 "pagd",
281 
282 /* 7 */
283 "pagdo",
284 
285 /* 8 */
286 "pbkl",
287 
288 /* 9 */
289 "pbkli",
290 
291 /* 10 */
292 "pbkd",
293 
294 /* 11 */
295 "pbkdi",
296 
297 /* 12 */
298 "pcrr",
299 
300 /* 13 */
301 "pcrro",
302 
303 /* 14 */
304 "pcrb",
305 
306 /* 15 */
307 "pcrbo",
308 
309 /* 16 */
310 "phvr",
311 
312 /* 17 */
313 "phvro",
314 
315 /* 18 */
316 "phvb",
317 
318 /* 19 */
319 "phvbo",
320 
321 /* 20 */
322 "phvrrn",
323 
324 /* 21 */
325 "phvron",
326 
327 /* 22 */
328 "phvbrn",
329 
330 /* 23 */
331 "phvbon",
332 
333 /* 24 */
334 "pncr",
335 
336 /* 25 */
337 "pncri",
338 
339 /* 26 */
340 "pncb",
341 
342 /* 27 */
343 "pncbi",
344 
345 /* 28 */
346 "pplr",
347 
348 /* 29 */
349 "pplri",
350 
351 /* 30 */
352 "pplb",
353 
354 /* 31 */
355 "pplbi",
356 
357 /* 32 */
358 "psyr",
359 
360 /* 33 */
361 "pzcmi",
362 
363 /* 34 */
364 "pzdr",
365 
366 NULL
367 
368 };
369 
370 
371 
372 const int	dk4font_features[] = {
373 0,
374 DK4_FONT_FEATURE_ITALIC,
375 DK4_FONT_FEATURE_BOLD,
376 (DK4_FONT_FEATURE_ITALIC | DK4_FONT_FEATURE_BOLD),
377 DK4_FONT_FEATURE_SANS_SERIF,
378 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_OBLIQUE),
379 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_BOLD),
380 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_OBLIQUE),
381 0,
382 DK4_FONT_FEATURE_ITALIC,
383 DK4_FONT_FEATURE_BOLD,
384 (DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_ITALIC),
385 DK4_FONT_FEATURE_TTY,
386 (DK4_FONT_FEATURE_TTY | DK4_FONT_FEATURE_OBLIQUE),
387 (DK4_FONT_FEATURE_TTY | DK4_FONT_FEATURE_BOLD),
388 (DK4_FONT_FEATURE_TTY | DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_OBLIQUE),
389 DK4_FONT_FEATURE_SANS_SERIF,
390 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_OBLIQUE),
391 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_BOLD),
392 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_OBLIQUE),
393 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_NARROW),
394 (
395 	DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_NARROW
396 	| DK4_FONT_FEATURE_OBLIQUE
397 ),
398 (DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_NARROW | DK4_FONT_FEATURE_BOLD),
399 (
400 	DK4_FONT_FEATURE_SANS_SERIF | DK4_FONT_FEATURE_NARROW
401 	| DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_OBLIQUE
402 ),
403 0,
404 DK4_FONT_FEATURE_ITALIC,
405 DK4_FONT_FEATURE_BOLD,
406 (DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_ITALIC),
407 0,
408 DK4_FONT_FEATURE_ITALIC,
409 DK4_FONT_FEATURE_BOLD,
410 (DK4_FONT_FEATURE_BOLD | DK4_FONT_FEATURE_ITALIC),
411 DK4_FONT_FEATURE_SYMBOL,
412 DK4_FONT_FEATURE_ITALIC,
413 DK4_FONT_FEATURE_SYMBOL
414 };
415 
416 
417 const char *
dk4font_get_ps_name(dk4_font_number_t fno)418 dk4font_get_ps_name(dk4_font_number_t fno)
419 {
420 	if (DK4_FONT_PS_MAX >= fno) {
421 		return (dk4font_ps_names[fno]);
422 	}
423 	return NULL;
424 }
425 
426 
427 
428 const char *
dk4font_get_latex_family_name(dk4_font_number_t fno)429 dk4font_get_latex_family_name(dk4_font_number_t fno)
430 {
431 	if (DK4_FONT_PS_MAX >= fno) {
432 		return (dk4font_tex_family_names[fno]);
433 	}
434 	return NULL;
435 }
436 
437 
438 
439 const char *
dk4font_get_latex_font_name(dk4_font_number_t fno)440 dk4font_get_latex_font_name(dk4_font_number_t fno)
441 {
442 	if (DK4_FONT_PS_MAX >= fno) {
443 		return (dk4font_tex_names[fno]);
444 	}
445 	return NULL;
446 }
447 
448 
449 
450 int
dk4font_get_features(dk4_font_number_t fno)451 dk4font_get_features(dk4_font_number_t fno)
452 {
453 	if (DK4_FONT_PS_MAX >= fno) {
454 		return (dk4font_features[fno]);
455 	}
456 	return 0;
457 }
458 
459 
460 
461 dk4_font_number_t
dk4font_number_from_int(int fno)462 dk4font_number_from_int(int fno)
463 {
464 	dk4_font_number_t	back = DK4_FONT_TIMES_ROMAN;
465 	if ((DK4_FONT_TIMES_ROMAN <= fno) && (DK4_FONT_MAX >= fno)) {
466 		back = (dk4_font_number_t)fno;
467 	}
468 	return back;
469 }
470 
471 
472 
473 int
dk4font_get_family(dk4_font_number_t fno)474 dk4font_get_family(dk4_font_number_t fno)
475 {
476 	return (DK4_FONT_FEATURE_FT_MASK & dk4font_get_features(fno));
477 }
478 
479 
480 
481 /* vim: set ai sw=4 ts=4 : */
482