summaryrefslogtreecommitdiff
path: root/include/ncurses/acs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/ncurses/acs.hpp')
-rw-r--r--include/ncurses/acs.hpp164
1 files changed, 164 insertions, 0 deletions
diff --git a/include/ncurses/acs.hpp b/include/ncurses/acs.hpp
new file mode 100644
index 0000000..5686385
--- /dev/null
+++ b/include/ncurses/acs.hpp
@@ -0,0 +1,164 @@
+#ifndef INCLUDE_NCURSES_ACS_HPP_
+#define INCLUDE_NCURSES_ACS_HPP_
+
+#include <ncurses/utils/flags.hpp>
+
+namespace NCURSES_CPP_NAMESPACE {
+
+template <char U> class acs_type {
+public:
+ operator chtype() const NCURSES_CPP_NOEXCEPT { return NCURSES_ACS(U); }
+};
+
+namespace acs {
+
+static const auto ulcorner = acs_type<'l'>();
+static const auto llcorner = acs_type<'m'>();
+static const auto urcorner = acs_type<'k'>();
+static const auto lrcorner = acs_type<'j'>();
+static const auto ltee = acs_type<'t'>();
+static const auto rtee = acs_type<'u'>();
+static const auto btee = acs_type<'v'>();
+static const auto ttee = acs_type<'w'>();
+static const auto hline = acs_type<'q'>();
+static const auto vline = acs_type<'x'>();
+static const auto plus = acs_type<'n'>();
+static const auto s1 = acs_type<'o'>();
+static const auto s9 = acs_type<'s'>();
+static const auto diamond = acs_type<'`'>();
+static const auto ckboard = acs_type<'a'>();
+static const auto degree = acs_type<'f'>();
+static const auto plminus = acs_type<'g'>();
+static const auto bullet = acs_type<'~'>();
+static const auto larrow = acs_type<','>();
+static const auto rarrow = acs_type<'+'>();
+static const auto darrow = acs_type<'.'>();
+static const auto uarrow = acs_type<'-'>();
+static const auto board = acs_type<'h'>();
+static const auto lantern = acs_type<'i'>();
+static const auto block = acs_type<'0'>();
+static const auto s3 = acs_type<'p'>();
+static const auto s7 = acs_type<'r'>();
+static const auto lequal = acs_type<'y'>();
+static const auto gequal = acs_type<'z'>();
+static const auto pi = acs_type<'{'>();
+static const auto nequal = acs_type<'|'>();
+static const auto sterling = acs_type<'}'>();
+
+}; // namespace acs
+
+template <char U> class wacs_type {
+public:
+ // TODO: maybe not const, maybe smart ptr
+ operator const cchar_t *() const NCURSES_CPP_NOEXCEPT {
+ return NCURSES_WACS(U);
+ }
+};
+
+namespace wacs {
+
+static const auto bssb = wacs_type<'l'>();
+static const auto ssbb = wacs_type<'m'>();
+static const auto bbss = wacs_type<'k'>();
+static const auto sbbs = wacs_type<'j'>();
+static const auto sbss = wacs_type<'u'>();
+static const auto sssb = wacs_type<'t'>();
+static const auto ssbs = wacs_type<'v'>();
+static const auto bsss = wacs_type<'w'>();
+static const auto bsbs = wacs_type<'q'>();
+static const auto sbsb = wacs_type<'x'>();
+static const auto ssss = wacs_type<'n'>();
+
+static const auto ulcorner = bssb;
+static const auto llcorner = ssbb;
+static const auto urcorner = bbss;
+static const auto lrcorner = sbbs;
+static const auto rtee = sbss;
+static const auto ltee = sssb;
+static const auto btee = ssbs;
+static const auto ttee = bsss;
+static const auto hline = bsbs;
+static const auto vline = sbsb;
+static const auto plus = ssss;
+
+static const auto s1 = wacs_type<'o'>();
+static const auto s9 = wacs_type<'s'>();
+static const auto diamond = wacs_type<'`'>();
+static const auto ckboard = wacs_type<'a'>();
+static const auto degree = wacs_type<'f'>();
+static const auto plminus = wacs_type<'g'>();
+static const auto bullet = wacs_type<'~'>();
+
+/* Teletype 5410v1 symbols */
+static const auto larrow = wacs_type<','>();
+static const auto rarrow = wacs_type<'+'>();
+static const auto darrow = wacs_type<'.'>();
+static const auto uarrow = wacs_type<'-'>();
+static const auto board = wacs_type<'h'>();
+static const auto lantern = wacs_type<'i'>();
+static const auto block = wacs_type<'0'>();
+
+/* ncurses extensions */
+static const auto s3 = wacs_type<'p'>();
+static const auto s7 = wacs_type<'r'>();
+static const auto lequal = wacs_type<'y'>();
+static const auto gequal = wacs_type<'z'>();
+static const auto pi = wacs_type<'{'>();
+static const auto nequal = wacs_type<'|'>();
+static const auto sterling = wacs_type<'}'>();
+
+/* double lines */
+static const auto bddb = wacs_type<'C'>();
+static const auto ddbb = wacs_type<'D'>();
+static const auto bbdd = wacs_type<'B'>();
+static const auto dbbd = wacs_type<'A'>();
+static const auto dbdd = wacs_type<'G'>();
+static const auto dddb = wacs_type<'F'>();
+static const auto ddbd = wacs_type<'H'>();
+static const auto bddd = wacs_type<'I'>();
+static const auto bdbd = wacs_type<'R'>();
+static const auto dbdb = wacs_type<'Y'>();
+static const auto dddd = wacs_type<'E'>();
+
+static const auto d_ulcorner = bddb;
+static const auto d_llcorner = ddbb;
+static const auto d_urcorner = bbdd;
+static const auto d_lrcorner = dbbd;
+static const auto d_rtee = dbdd;
+static const auto d_ltee = dddb;
+static const auto d_btee = ddbd;
+static const auto d_ttee = bddd;
+static const auto d_hline = bdbd;
+static const auto d_vline = dbdb;
+static const auto d_plus = dddd;
+
+/* thick lines */
+static const auto bttb = wacs_type<'L'>();
+static const auto ttbb = wacs_type<'M'>();
+static const auto bbtt = wacs_type<'K'>();
+static const auto tbbt = wacs_type<'J'>();
+static const auto tbtt = wacs_type<'U'>();
+static const auto tttb = wacs_type<'T'>();
+static const auto ttbt = wacs_type<'V'>();
+static const auto bttt = wacs_type<'W'>();
+static const auto btbt = wacs_type<'Q'>();
+static const auto tbtb = wacs_type<'X'>();
+static const auto tttt = wacs_type<'N'>();
+
+static const auto t_ulcorner = bttb;
+static const auto t_llcorner = ttbb;
+static const auto t_urcorner = bbtt;
+static const auto t_lrcorner = tbbt;
+static const auto t_rtee = tbtt;
+static const auto t_ltee = tttb;
+static const auto t_btee = ttbt;
+static const auto t_ttee = bttt;
+static const auto t_hline = btbt;
+static const auto t_vline = tbtb;
+static const auto t_plus = tttt;
+
+} // namespace wacs
+
+} // namespace NCURSES_CPP_NAMESPACE
+
+#endif // INCLUDE_NCURSES_ACS_HPP_