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