1 /**
2  * Glyphs module, defining a lot of common glyphs for dcell.
3  *
4  * Copyright: Copyright 2022 Garrett D'Amore
5  * Authors: Garrett D'Amore
6  * License:
7  *   Distributed under the Boost Software License, Version 1.0.
8  *   (See accompanying file LICENSE or https://www.boost.org/LICENSE_1_0.txt)
9  *   SPDX-License-Identifier: BSL-1.0
10  */
11 module dcell.glyph;
12 
13 /** 
14  * Common symbols.
15  */
16 class Glyph
17 {
18     public enum
19     {
20         sterling = '£',
21         downArrow = '↓',
22         leftArrow = '←',
23         rightArrow = '→',
24         upArrow = '↑',
25         bullet = '·',
26         board = '░',
27         checkerBoard = '▒',
28         degree = '°',
29         diamond = '◆',
30         greaterThanEqual = '≥',
31         pi = 'π',
32         horizLine = '─',
33         lantern = '§',
34         plus = '┼',
35         lessThanEqual = '≤',
36         lowerLeftCorner = '└',
37         lowerRightCorner = '┘',
38         notEqual = '≠',
39         plusMinus = '±',
40         s1 = '⎺',
41         s3 = '⎻',
42         s7 = '⎼',
43         s9 = '⎽',
44         block = '█',
45         topTee = '┬',
46         rightTee = '┤',
47         leftTee = '├',
48         bottomTee = '┴',
49         upperLeftCorner = '┌',
50         upperRightCorner = '┐',
51         vertLine = '│',
52     }
53 
54     static immutable string[dchar] fallbacks;
55 
56     shared static this()
57     {
58         fallbacks[sterling] = "f";
59         fallbacks[downArrow] = "v";
60         fallbacks[leftArrow] = "<";
61         fallbacks[rightArrow] = ">";
62         fallbacks[upArrow] = "^";
63         fallbacks[bullet] = "o";
64         fallbacks[board] = "#";
65         fallbacks[checkerBoard] = ":";
66         fallbacks[degree] = "\\";
67         fallbacks[diamond] = "+";
68         fallbacks[greaterThanEqual] = ">";
69         fallbacks[pi] = "*";
70         fallbacks[horizLine] = "-";
71         fallbacks[lantern] = "#";
72         fallbacks[plus] = "+";
73         fallbacks[lessThanEqual] = "<";
74         fallbacks[lowerLeftCorner] = "+";
75         fallbacks[lowerRightCorner] = "+";
76         fallbacks[notEqual] = "!";
77         fallbacks[plusMinus] = "#";
78         fallbacks[s1] = "~";
79         fallbacks[s3] = "-";
80         fallbacks[s7] = "-";
81         fallbacks[s9] = "_";
82         fallbacks[block] = "#";
83         fallbacks[topTee] = "+";
84         fallbacks[rightTee] = "+";
85         fallbacks[leftTee] = "+";
86         fallbacks[bottomTee] = "+";
87         fallbacks[upperLeftCorner] = "+";
88         fallbacks[upperRightCorner] = "+";
89         fallbacks[vertLine] = "|";
90     }
91 }