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