SatCat5
gui_icons.cc
1 // Copyright 2024-2025 The Aerospace Corporation.
3 // This file is a part of SatCat5, licensed under CERN-OHL-W v2 or later.
5 
6 #include <satcat5/gui_icons.h>
7 
12 
13 // Derived from Daniel Hepper's "font8x8" project, which is explicitly
14 // assigned to the public domain and requires no licensing considerations.
15 // https://github.com/dhepper/font8x8
16 static constexpr Icon8x8 BASIC_FONT_ICONS[] = {
17  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space)
18  {0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!)
19  {0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (")
20  {0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#)
21  {0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($)
22  {0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%)
23  {0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&)
24  {0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (')
25  {0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (()
26  {0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ())
27  {0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*)
28  {0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+)
29  {0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,)
30  {0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-)
31  {0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.)
32  {0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/)
33  {0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0)
34  {0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1)
35  {0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2)
36  {0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3)
37  {0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4)
38  {0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5)
39  {0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6)
40  {0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7)
41  {0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8)
42  {0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9)
43  {0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:)
44  {0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (;)
45  {0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<)
46  {0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=)
47  {0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>)
48  {0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?)
49  {0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@)
50  {0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A)
51  {0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B)
52  {0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C)
53  {0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D)
54  {0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E)
55  {0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F)
56  {0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G)
57  {0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H)
58  {0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I)
59  {0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J)
60  {0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K)
61  {0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L)
62  {0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M)
63  {0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N)
64  {0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O)
65  {0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P)
66  {0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q)
67  {0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R)
68  {0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S)
69  {0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T)
70  {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U)
71  {0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V)
72  {0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W)
73  {0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X)
74  {0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y)
75  {0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z)
76  {0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([)
77  {0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\‍)
78  {0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (])
79  {0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^)
80  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_)
81  {0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`)
82  {0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a)
83  {0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b)
84  {0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c)
85  {0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d)
86  {0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e)
87  {0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f)
88  {0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g)
89  {0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h)
90  {0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i)
91  {0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j)
92  {0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k)
93  {0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l)
94  {0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m)
95  {0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n)
96  {0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o)
97  {0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p)
98  {0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q)
99  {0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r)
100  {0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s)
101  {0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t)
102  {0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u)
103  {0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v)
104  {0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w)
105  {0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x)
106  {0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y)
107  {0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z)
108  {0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({)
109  {0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|)
110  {0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (})
111  {0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~)
112  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; // U+007F
113 
114 constexpr Font8x8 satcat5::gui::BASIC_FONT(BASIC_FONT_ICONS);
115 
116 // The Aerospace Corporation logo in various sizes.
117 // This icon was converted using "/sim/python/pixel_art.py".
119  {0x0000, 0x17E0, 0x1810, 0x3C0C, 0x5E04, 0x5F02, 0x9B82, 0x99C1,
120  0x98E1, 0x9FF1, 0x9FB9, 0x4002, 0x4002, 0x2004, 0x1008, 0x0FF0};
122  {0x02000000, 0x03000000, 0x039FFC00, 0x03FC1F00,
123  0x03E00380, 0x03F000E0, 0x07F80070, 0x0FFC0030,
124  0x1BFE0018, 0x1BFF000C, 0x33FF800C, 0x33EFC006,
125  0x63E7E006, 0x63E3F006, 0x63E1F802, 0x63E0FC03,
126  0x43E07E03, 0x43E03F03, 0x63FFDF83, 0x63FFCFC2,
127  0x63FFC7E2, 0x63FFC3F6, 0x30000006, 0x3000000C,
128  0x1800000C, 0x18000018, 0x0C000030, 0x06000070,
129  0x038000E0, 0x01C00380, 0x00781F00, 0x001FFC00};
130 
131 // A cat's paw or footprint.
133  {0x00, 0x14, 0x55, 0x41, 0x1C, 0x3E, 0x3E, 0x00};
134 
135 // The SatCat5 mascot in various sizes.
137  {0x09, 0xEF, 0x29, 0x29, 0xe9, 0x89, 0x89, 0xFE};
139  {0x0101, 0x0183, 0x6145, 0x7D39, 0x6501, 0x056D, 0x056D, 0x0511,
140  0x3D55, 0x4529, 0x4101, 0x4101, 0x4101, 0x4082, 0x3FFC, 0x0000};
141 
142 // Cat animations are derived from Elthen's Pixel Art Shop:
143 // https://elthen.itch.io/2d-pixel-art-cat-sprites
144 // The license permits derivative works and redistribution for
145 // both commercial or noncommercial projects *except for NFTs*.
146 // These icons were converted using "/sim/python/pixel_art.py".
148  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1B40,
149  0x1040, 0x1040, 0x1C20, 0x2220, 0x1E20, 0x051C, 0x0512, 0x07FE},
150  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040,
151  0x1B40, 0x1040, 0x1C20, 0x2220, 0x1E20, 0x051C, 0x0512, 0x07FE},
152  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0660, 0x0FA0, 0x0B40,
153  0x1040, 0x1040, 0x1C20, 0x2220, 0x1E20, 0x051C, 0x0512, 0x07FE},
154  {0x0000, 0x0000, 0x0000, 0x0000, 0x0660, 0x0FA0, 0x0B40, 0x1040,
155  0x1040, 0x1040, 0x1C20, 0x2220, 0x1E20, 0x051C, 0x0512, 0x07FE},
156  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1B40,
157  0x1040, 0x1040, 0x1C20, 0x2220, 0x1E20, 0x051C, 0x0512, 0x07FE},
158  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0, 0x1F40, 0x2840,
159  0x3040, 0x3B40, 0x3040, 0x2F20, 0x1820, 0x051C, 0x0512, 0x07FE},
160  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0, 0x0740, 0x1840,
161  0x2840, 0x3B40, 0x3040, 0x2F20, 0x1820, 0x051C, 0x0512, 0x07FE},
162  {0x0000, 0x0000, 0x0000, 0x0000, 0x00C0, 0x3F40, 0x2040, 0x1040,
163  0x1B40, 0x2440, 0x2C20, 0x1820, 0x0820, 0x051C, 0x0512, 0x07FE}};
164 constexpr Icon16x16 satcat5::gui::CAT_HISS[] = {
165  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
166  0x4914, 0x4114, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
167  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6606, 0x7A0A,
168  0x4B0A, 0x9ACA, 0x8232, 0x820C, 0x6008, 0x23E8, 0x2AE8, 0x3698},
169  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6606, 0x7A0A,
170  0x4BCA, 0x9A2A, 0x8212, 0x820C, 0x6008, 0x23E8, 0x2AE8, 0x3698},
171  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6606, 0x7BEA,
172  0x4A1A, 0x9A1A, 0x8202, 0x820C, 0x61C8, 0x23E8, 0x2AE8, 0x3698},
173  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6602, 0x7BE5,
174  0x4A1A, 0x9A04, 0x8208, 0x8208, 0x61C8, 0x23E8, 0x2AE8, 0x3698},
175  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6602, 0x7BE5,
176  0x4A1A, 0x9A04, 0x8208, 0x8208, 0x61C8, 0x23E8, 0x2AE8, 0x3698},
177  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6606, 0x7A0A,
178  0x4BCA, 0x9A3A, 0x8202, 0x820C, 0x6008, 0x23E8, 0x2AE8, 0x3698},
179  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
180  0x4914, 0x4114, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8}};
181 constexpr Icon16x16 satcat5::gui::CAT_PAW[] = {
182  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
183  0x2114, 0x4914, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
184  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
185  0x2114, 0x4914, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
186  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
187  0x2114, 0x4914, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
188  {0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x1400, 0x1598, 0x2294,
189  0x3094, 0x24A8, 0x20E8, 0x1008, 0x2008, 0x4A28, 0x7BE8, 0x06D8},
190  {0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x1400, 0x15B0, 0x22A8,
191  0x30A8, 0x24A8, 0x60E8, 0x8008, 0xF008, 0x0A28, 0x0BE8, 0x06D8},
192  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000, 0x5030, 0x5628,
193  0x8A28, 0xC214, 0x93F4, 0x8208, 0x8008, 0x8228, 0x3BE8, 0xC6D8},
194  {0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x1400, 0x1598, 0x2294,
195  0x3094, 0x2494, 0x60F4, 0x8008, 0xF008, 0x0A28, 0x0BE8, 0x06D8},
196  {0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x1400, 0x1580, 0x22B0,
197  0x30A8, 0x2494, 0x20F4, 0x1004, 0x2008, 0x4A28, 0x7BE8, 0x06D8}};
198 constexpr Icon16x16 satcat5::gui::CAT_POUNCE[] = {
199  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
200  0x1040, 0x1040, 0x0820, 0x0820, 0x0820, 0x151C, 0x1512, 0x1FFE},
201  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
202  0x1040, 0x1040, 0x0820, 0x0820, 0x0820, 0x151C, 0x1512, 0x1FFE},
203  {0x18C0, 0x1740, 0x1040, 0xF960, 0x9690, 0x5650, 0x5890, 0x3020,
204  0x1040, 0x0820, 0x0820, 0x1010, 0x1790, 0x186C, 0x0012, 0x000C},
205  {0x2E80, 0x2080, 0x3280, 0x2080, 0x60C0, 0x9920, 0xB210, 0x4A88,
206  0x0508, 0x09B4, 0x0AAA, 0x0CCA, 0x0004, 0x0000, 0x0000, 0x0000},
207  {0x000A, 0x198A, 0x1EB2, 0x20C4, 0x3084, 0x2484, 0x2084, 0x3034,
208  0x404C, 0x5E80, 0x6280, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000},
209  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x1994, 0x1E94,
210  0x2094, 0x20F4, 0x3284, 0x2004, 0x1002, 0x117A, 0x2E86, 0x3980},
211  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1E8C,
212  0x208A, 0x328A, 0x208A, 0x20FA, 0x1004, 0x1004, 0x1114, 0x1FFC},
213  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1E8C, 0x208A,
214  0x328A, 0x208A, 0x20FA, 0x1004, 0x1004, 0x1114, 0x15F4, 0x1B6C}};
215 constexpr Icon16x16 satcat5::gui::CAT_RUN[] = {
216  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
217  0x4914, 0x4114, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
218  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1E8C, 0x210A, 0x490A,
219  0x4114, 0x41F4, 0xEC0C, 0x9002, 0x7FFE, 0x0000, 0x0000, 0x0000},
220  {0x0000, 0x0000, 0x0000, 0x1980, 0x1E81, 0x2102, 0x4905, 0x410A,
221  0xCDFC, 0xF002, 0x7C0E, 0x03F0, 0x0000, 0x0000, 0x0000, 0x0000},
222  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1E83, 0x2105, 0x490A,
223  0x4114, 0x41F8, 0xEC0C, 0x9002, 0x7FFE, 0x0000, 0x0000, 0x0000},
224  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D0C,
225  0x2112, 0x492C, 0x4128, 0x41F8, 0x2008, 0x2228, 0x15D0, 0x1BF0},
226  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x3E9C, 0x2122,
227  0x492C, 0x41F8, 0x4008, 0x3048, 0x1A88, 0x2730, 0x19C0, 0x0000},
228  {0x0000, 0x0000, 0x0000, 0x0000, 0x19B0, 0x3EA8, 0x2128, 0x4914,
229  0x41F4, 0x4008, 0x30C8, 0x3B08, 0x3FF0, 0x0000, 0x0000, 0x0000},
230  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1998, 0x3E94, 0x2114,
231  0x4914, 0x41F4, 0x4008, 0x3048, 0x1A88, 0x2730, 0x19C0, 0x0000}};
232 constexpr Icon16x16 satcat5::gui::CAT_SIT[] = {
233  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
234  0x1040, 0x1040, 0x0820, 0x0820, 0x0820, 0x151C, 0x1512, 0x1FFE},
235  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
236  0x1040, 0x1040, 0x0820, 0x0820, 0x0838, 0x1514, 0x151A, 0x1FF6},
237  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
238  0x1040, 0x1040, 0x0820, 0x0820, 0x083C, 0x1512, 0x151E, 0x1FF0},
239  {0x0000, 0x0000, 0x0000, 0x0000, 0x18C0, 0x1740, 0x1040, 0x1940,
240  0x1040, 0x1040, 0x0820, 0x0820, 0x0826, 0x151A, 0x1514, 0x1FF8},
241  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1680, 0x0840, 0x1240,
242  0x1040, 0x1040, 0x0820, 0x0820, 0x0820, 0x151C, 0x1512, 0x1FFE},
243  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1680, 0x0840, 0x1240,
244  0x1040, 0x1040, 0x0820, 0x0820, 0x0838, 0x1514, 0x151A, 0x1FF6},
245  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1680, 0x0840, 0x1240,
246  0x1040, 0x1040, 0x0820, 0x0820, 0x083C, 0x1512, 0x151E, 0x1FF0},
247  {0x0000, 0x0000, 0x0000, 0x0000, 0x1980, 0x1680, 0x0840, 0x1240,
248  0x1040, 0x1040, 0x0820, 0x0820, 0x0826, 0x151A, 0x1514, 0x1FF8}};
249 constexpr Icon16x16 satcat5::gui::CAT_SLEEP[] = {
250  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
251  0x6300, 0x5D00, 0x41C0, 0x7730, 0x4108, 0x6F1E, 0x90A1, 0xFFFF},
252  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
253  0x6300, 0x5D00, 0x41C0, 0x7730, 0x4108, 0x6F1E, 0x90A1, 0xFFFF},
254  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
255  0x6300, 0x5D00, 0x41C0, 0x7730, 0x4108, 0x6F1E, 0x90A1, 0xFFFF},
256  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
257  0x6300, 0x5D00, 0x41C0, 0x7730, 0x4108, 0x6F1E, 0x90A1, 0xFFFF},
258  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
259  0x6300, 0x5D00, 0x41C0, 0x7730, 0x4108, 0x6F1E, 0x90A1, 0xFFFF},
260  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
261  0x6300, 0x5D00, 0x41E0, 0x7718, 0x4104, 0x6F1E, 0x90A1, 0xFFFF},
262  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
263  0x6300, 0x5D00, 0x41F0, 0x7708, 0x4104, 0x6F1E, 0x90A1, 0xFFFF},
264  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
265  0x6300, 0x5D00, 0x41E0, 0x7718, 0x4104, 0x6F1E, 0x90A1, 0xFFFF}};
266 constexpr Icon16x16 satcat5::gui::CAT_WALK[] = {
267  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3300, 0x3D18, 0x2114,
268  0x4914, 0x4114, 0x41F4, 0x2008, 0x2008, 0x2228, 0x2BE8, 0x36D8},
269  {0x0000, 0x0000, 0x0000, 0x0000, 0x6C00, 0x5A00, 0x2118, 0x4914,
270  0x410A, 0x41F2, 0x200C, 0x2008, 0x1A48, 0x17D4, 0x186C, 0x0000},
271  {0x0000, 0x0000, 0x0000, 0x0000, 0x3E00, 0x6900, 0x4903, 0x4102,
272  0x41FE, 0x2009, 0x304E, 0x4492, 0x3FFE, 0x0000, 0x0000, 0x0000},
273  {0x0000, 0x0000, 0x0000, 0x0000, 0x6C00, 0x5A00, 0x2100, 0x4900,
274  0x410E, 0x41F1, 0x200C, 0x200B, 0x1A48, 0x17D4, 0x186C, 0x0000},
275  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3600, 0x3D00, 0x2106,
276  0x4909, 0x4116, 0x41F5, 0x2008, 0x2008, 0x4004, 0x5BF4, 0x666C},
277  {0x0000, 0x0000, 0x0000, 0x0000, 0x6C00, 0x5A00, 0x2106, 0x4909,
278  0x4116, 0x41F4, 0x2008, 0x2008, 0x4228, 0x5DF4, 0x230C, 0x0000},
279  {0x0000, 0x0000, 0x0000, 0x0000, 0x3E0C, 0x610A, 0x4914, 0x4114,
280  0x41F4, 0x2008, 0x600C, 0x8022, 0xFE7C, 0x0180, 0x0000, 0x0000},
281  {0x0000, 0x0000, 0x0000, 0x0000, 0x6C00, 0x5A30, 0x2128, 0x4928,
282  0x4128, 0x41F4, 0x2008, 0x2008, 0x4228, 0x5DF4, 0x230C, 0x0000}};
The Font class maps characters to fixed-size icons.
Definition: gui_icons.h:86
"Icon" API for small monochrome images
const Icon16x16 CAT_PAW[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:136
const Icon32x32 AEROLOGO_ICON32
The Aerospace Corporation logo in various sizes.
Definition: gui_icons.cc:121
const Icon8x8 PAW_ICON8
A cat's paw or footprint.
Definition: gui_icons.cc:132
const Icon16x16 SATCAT5_ICON16
The SatCat5 mascot in various sizes.
Definition: gui_icons.cc:138
const Icon16x16 CAT_SLEEP[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:137
const Icon16x16 AEROLOGO_ICON16
The Aerospace Corporation logo in various sizes.
Definition: gui_icons.cc:118
const Icon16x16 CAT_RUN[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:137
const Icon16x16 CAT_WALK[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:137
const Icon16x16 CAT_GROOM[8]
Animations of a cat performing various activities.
Definition: gui_icons.cc:147
const Icon8x8 SATCAT5_ICON8
The SatCat5 mascot in various sizes.
Definition: gui_icons.cc:136
const Icon16x16 CAT_SIT[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:137
const Icon16x16 CAT_POUNCE[8]
Animations of a cat performing various activities.
Definition: gui_icons.h:136
Font< Icon8x8 > Font8x8
Font for 8x8 icons.
Definition: gui_icons.h:102
const Font8x8 BASIC_FONT
A basic fixed-width 8x8 font.
Plain-old-data struct for a 16x16 monochrome image.
Definition: gui_icons.h:46
Plain-old-data struct for a 32x32 monochrome image.
Definition: gui_icons.h:65
Plain-old-data struct for an 8x8 monochrome image.
Definition: gui_icons.h:25