Added arrow preservation and varying text column widths (#115)

This commit is contained in:
Josh Goldberg
2019-09-23 13:36:31 +09:00
committed by GitHub
parent 6ff0620ecf
commit 6b3f2b643a
4 changed files with 182 additions and 134 deletions
+110 -120
View File
@@ -474,14 +474,12 @@
"dev": true
},
"areaspawnr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/areaspawnr/-/areaspawnr-0.7.2.tgz",
"integrity": "sha512-RyktgexSwZ/dVQs3M+m7EadXaAPjrvoQxpiiI7Wow7Hj9EwmTBx7dYEXRaWze1pELvIRmy8HPJ2lgqcNodnr9g==",
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/areaspawnr/-/areaspawnr-0.7.4.tgz",
"integrity": "sha512-OB1l+Q7VeizyZKCpo0qGgiUQIWN8J+ijw9yUqct+LH1zOZ3oT9av7GIqllQkvR9ohADjJ3mpwLZ2P3sUqVL3Zg==",
"requires": {
"itemsholdr": "^0.7.0",
"mapscreatr": "^0.7.1",
"mapscreenr": "^0.7.0",
"objectmakr": "^0.7.0"
"mapscreatr": "^0.7.6",
"mapscreenr": "^0.7.3"
}
},
"argparse": {
@@ -617,9 +615,9 @@
"dev": true
},
"audioplayr": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/audioplayr/-/audioplayr-0.7.3.tgz",
"integrity": "sha512-uKa707YKUFnyAJfiyQNjpg7T8NZIpmw1jrUjB9J98A1sY+LvCLX7sKCA/qIgAcK8K3fq25WVdzqJG1ZJ9+Yhaw=="
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/audioplayr/-/audioplayr-0.7.5.tgz",
"integrity": "sha512-yugmRfYAlYbxu6IUXk4JwkM322MvLzpl/g+XndAXZVGSfjTrbzfTkwtfzjEEr0SzPR81eRhC1xd2HfMTastNmg=="
},
"babel-code-frame": {
"version": "6.26.0",
@@ -675,9 +673,9 @@
}
},
"babyioc": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/babyioc/-/babyioc-0.7.4.tgz",
"integrity": "sha512-DNG7x0S0K8CbWEiFwyP1JGGYmfg5QTuFNKEEO7VwYnYpXe4W/v6uSD/PQM9xFfY6BBSCg6X5T2vVMsbKXPWWEA=="
"version": "0.7.7",
"resolved": "https://registry.npmjs.org/babyioc/-/babyioc-0.7.7.tgz",
"integrity": "sha512-Yrt19nysG5ed6mrYEc+WYTex3TrASlsXmU1ROj3UHVtlNiKz7qk8iuDyez3BK2GCKR5qabnPbccj/KBkxgizxg=="
},
"balanced-match": {
"version": "1.0.0",
@@ -1070,9 +1068,9 @@
}
},
"changelinr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/changelinr/-/changelinr-0.7.2.tgz",
"integrity": "sha512-GVjB0/yy5v4gehiLQ+zhyq0cnbzYpNw1mFxGZBbcoY9L4Tw1O1bYbtW/0q5yKr0qnC1+02Lt0+kSPiN2UK67bQ=="
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/changelinr/-/changelinr-0.7.4.tgz",
"integrity": "sha512-hfKToYz/QHmlgD36EFH4gDu9zoaKPFm/IfU3eP9om7nMWtPQyhGzK++35RX72uFTg1LYIHspZPcAeIR9xQ3YxA=="
},
"check-error": {
"version": "1.0.2",
@@ -1172,11 +1170,11 @@
}
},
"classcyclr": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/classcyclr/-/classcyclr-0.7.3.tgz",
"integrity": "sha512-0jO+bJ64CyMPUB79wvQaYDczyNz/6LwPiLH1DmHDk2bPUHfHB18qTU3qmWNux1dA6IBW7J6QiaCsHH4gQsGWfA==",
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/classcyclr/-/classcyclr-0.7.5.tgz",
"integrity": "sha512-ELfbAbA5AhYbAhXM06zzZobU8mI1LESMxUFcXqMtqT1aJAvbtpm4boW+JZPycfQHEL7ESDB4dpIq9MxdjvRXrw==",
"requires": {
"timehandlr": "^0.7.3"
"timehandlr": "^0.7.4"
}
},
"cli-boxes": {
@@ -1595,9 +1593,9 @@
"dev": true
},
"devicelayr": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/devicelayr/-/devicelayr-0.7.4.tgz",
"integrity": "sha512-bJCF0yW0gWVxjMDUhUL2mXTZpuz6EdX0ClNiX5bDmkIgj2IHmc7mpPL9Uu3uhStzrW8a9XRgkTPyxH7rKz9FJw==",
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/devicelayr/-/devicelayr-0.7.6.tgz",
"integrity": "sha512-y8sA8QCanGufXZiXEWXCrQnW1HCbyDWKOY/cJJat6DAZqWtgdyMInM453aL97oA4uAHyy7nGKSGU5s67yx6Niw==",
"requires": {
"inputwritr": "^0.7.2"
}
@@ -1653,33 +1651,40 @@
}
},
"eightbittr": {
"version": "0.7.21",
"resolved": "https://registry.npmjs.org/eightbittr/-/eightbittr-0.7.21.tgz",
"integrity": "sha512-DtKiyM0I6tS0E6kCnBQVFX/EVijIm2YMn8j8viSYbjN+Qoc9AsavSQhY9Pb+eKFwtGVUt7maA5+rK3bjnsMuNQ==",
"version": "0.7.28",
"resolved": "https://registry.npmjs.org/eightbittr/-/eightbittr-0.7.28.tgz",
"integrity": "sha512-ZJB5ROY8U6IKZ9mbFqYL806lSzRshvO6uTOhFaeVJ2hqv5TXc/HW4jIXM7+TOSuvpdJ48+HiACFMWwOzeQthXg==",
"requires": {
"areaspawnr": "^0.7.2",
"audioplayr": "^0.7.3",
"babyioc": "^0.7.4",
"changelinr": "^0.7.2",
"classcyclr": "^0.7.3",
"devicelayr": "^0.7.4",
"fpsanalyzr": "^0.7.6",
"frametickr": "^0.7.6",
"groupholdr": "^0.7.7",
"inputwritr": "^0.7.2",
"itemsholdr": "^0.7.8",
"mapscreatr": "^0.7.5",
"mapscreenr": "^0.7.2",
"modattachr": "^0.7.6",
"numbermakr": "^0.7.1",
"objectmakr": "^0.7.5",
"pixeldrawr": "^0.7.5",
"pixelrendr": "^0.7.2",
"quadskeepr": "^0.7.2",
"sceneplayr": "^0.7.1",
"thinghittr": "^0.7.1",
"timehandlr": "^0.7.4",
"touchpassr": "^0.7.2"
"areaspawnr": "^0.7.4",
"audioplayr": "^0.7.5",
"babyioc": "^0.7.7",
"changelinr": "^0.7.4",
"classcyclr": "^0.7.5",
"devicelayr": "^0.7.6",
"fpsanalyzr": "^0.7.8",
"frametickr": "^0.7.8",
"groupholdr": "^0.7.11",
"inputwritr": "^0.7.4",
"itemsholdr": "^0.7.10",
"mapscreatr": "^0.7.7",
"mapscreenr": "^0.7.4",
"modattachr": "^0.7.8",
"numbermakr": "^0.7.3",
"objectmakr": "^0.7.7",
"pixeldrawr": "^0.7.8",
"pixelrendr": "^0.7.4",
"quadskeepr": "^0.7.4",
"sceneplayr": "^0.7.2",
"thinghittr": "^0.7.2",
"timehandlr": "^0.7.5",
"touchpassr": "^0.7.3"
},
"dependencies": {
"timehandlr": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/timehandlr/-/timehandlr-0.7.5.tgz",
"integrity": "sha512-25nfzMhPiJcZ6E0Yx5GD1bdic8yplzHmYb4hQG9jfVwJfmP9ATLwakkIkQHKlEviXSdP6JyLuShG4rb85EGkSQ=="
}
}
},
"elliptic": {
@@ -2219,9 +2224,9 @@
"dev": true
},
"fpsanalyzr": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/fpsanalyzr/-/fpsanalyzr-0.7.6.tgz",
"integrity": "sha512-7p1md4lW7fthkKCxAPcur9D51RNicXb6ccefy4Sd2OrG0ljqpjRwpaRPgbYniJg9fylr8VXrucLpakaW1R+9Rg=="
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/fpsanalyzr/-/fpsanalyzr-0.7.8.tgz",
"integrity": "sha512-EVKOjj7wZ8RQwhCxee9yZif9pVQJmzdQeqQCoKgGmbxbbOZFdI/Q3KDI7D08VbjS9SDo7xUN3rd8r9B1U/Bgjw=="
},
"fragment-cache": {
"version": "0.2.1",
@@ -2233,9 +2238,9 @@
}
},
"frametickr": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/frametickr/-/frametickr-0.7.6.tgz",
"integrity": "sha512-cFrDocuOc+lDW1KKKuRabrAazR1jb9GUw/cj485Y7VEG18NMDJgcs+2Or6eDwBTg9PpUKyQJ6hCQGOrs96sTxg=="
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/frametickr/-/frametickr-0.7.8.tgz",
"integrity": "sha512-zWq++XEqI6udjUR8z17Xm5TToYkAt2RAR9cn0LRkhMFf8l8UyU0Zl9GHA3PLuO1RIb069G6ffIe4MpecJleEZg=="
},
"from2": {
"version": "2.3.0",
@@ -2955,9 +2960,9 @@
"dev": true
},
"groupholdr": {
"version": "0.7.7",
"resolved": "https://registry.npmjs.org/groupholdr/-/groupholdr-0.7.7.tgz",
"integrity": "sha512-KABbMCtOBC6AnSJY74k3UvyMV6Gsvbcmkk5EgBdfSQ8wTS6r1sHeMV6VjP3xJKjZSvbKvMPv6831f2vd7gR4eA=="
"version": "0.7.11",
"resolved": "https://registry.npmjs.org/groupholdr/-/groupholdr-0.7.11.tgz",
"integrity": "sha512-BiTVoY0EvWaX8MIIYbf10Or8/FIJH6nLqMfxHKY/wxta7T2SlMGF9/NOLt9uwhR0I9g7lQNKSJX4hi1e8dqejQ=="
},
"growl": {
"version": "1.10.5",
@@ -3207,9 +3212,9 @@
"dev": true
},
"inputwritr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/inputwritr/-/inputwritr-0.7.2.tgz",
"integrity": "sha512-iuV+hSwmpD/LQsHVbRoFo4qfBryKHFiRvhbdoMQVLH0LGKqzjVSUOPOnbhYk9j+lw6NWv/3niHAo2P77O2NllQ=="
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/inputwritr/-/inputwritr-0.7.4.tgz",
"integrity": "sha512-nOJ3kcm2+0H3UftvwYVXqBY6vabx6Bgh50I/TwOkTQbuCBcYzeFK9213uhhg/dGVaWxjnWT56eZNmWlqCgZyEw=="
},
"interpret": {
"version": "1.2.0",
@@ -3530,9 +3535,9 @@
}
},
"itemsholdr": {
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/itemsholdr/-/itemsholdr-0.7.8.tgz",
"integrity": "sha512-/Pg7mbOBgDeAqqZWT49XUxzTVucptl7A6EALXGFpnRtchj6/6hjlkgdNbEMscDNVnvs3g8dMoqSsg/LADZO+8A=="
"version": "0.7.10",
"resolved": "https://registry.npmjs.org/itemsholdr/-/itemsholdr-0.7.10.tgz",
"integrity": "sha512-o+f6yPRfy2NxjKiGSoAjyuA/eiGWxdBuQmPgpvsjTFzA+j2xqvN3PJGnJpzwU80piuLf7SSxS04GLexoY/nk2A=="
},
"jju": {
"version": "1.4.0",
@@ -3860,18 +3865,18 @@
}
},
"mapscreatr": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/mapscreatr/-/mapscreatr-0.7.5.tgz",
"integrity": "sha1-JDPb9DnKfcWfEiW07G/rnWI0wTQ=",
"version": "0.7.7",
"resolved": "https://registry.npmjs.org/mapscreatr/-/mapscreatr-0.7.7.tgz",
"integrity": "sha512-40cSYa5PDSrXzf4fIDdNG3QC6ru4M0qbElRcKjksll2wSUN99Wri1HdBV8jte+IH/qudIiXzb902o2qTWrhi6w==",
"requires": {
"itemsholdr": "^0.7.4",
"objectmakr": "^0.7.4"
"itemsholdr": "^0.7.8",
"objectmakr": "^0.7.5"
}
},
"mapscreenr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/mapscreenr/-/mapscreenr-0.7.2.tgz",
"integrity": "sha512-l2vNEns0G2QvnRzAdiBPDaBdbwCiOrFQrBlMntAq1tQwDsUJRi2FoBivfJy06QIJsJbEslqf5iOzvTxa1CWpgg=="
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/mapscreenr/-/mapscreenr-0.7.4.tgz",
"integrity": "sha512-tWEBiEYchT7QdgxmyebzcpWMqePd+dx2xt42+SoaZo9M74KWwsMTxwoX3AcDmL2SXuaMLWw3lx3D5BeDDCEj1Q=="
},
"marked": {
"version": "0.4.0",
@@ -4186,9 +4191,9 @@
}
},
"modattachr": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/modattachr/-/modattachr-0.7.6.tgz",
"integrity": "sha512-U1Hx7qJi4F6glDrzKYRkJPHqiB1rzao3yyRSrvc5HHZacRrLcNV/dyelL/bte86Nj0iFQc30xqUYQGiKMbyujg==",
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/modattachr/-/modattachr-0.7.8.tgz",
"integrity": "sha512-kwbBcr50gZyCHr6a+WZUvhFxTUot5LwArGrvjkizBRrPqStf+E1yn1rLfxhZRXPOrVxWeDZA/stoq21saFya9g==",
"requires": {
"itemsholdr": "^0.7.8"
}
@@ -4515,9 +4520,9 @@
"dev": true
},
"numbermakr": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/numbermakr/-/numbermakr-0.7.1.tgz",
"integrity": "sha512-1sO377JDK3ZRDKutkixkt6to3FU71w3C0HZnIiXkReaQR5JfXqJmJmm9ONAUpf7jUCZeioKhJKkYdDY/pdPk5w=="
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/numbermakr/-/numbermakr-0.7.3.tgz",
"integrity": "sha512-NBX1OcbyQFdtp98Bb2iTm+r6xkub2qPMV5A6y2G3vjU4clkK1KugSEBpEeQpfmGXPjl4Yr1kQ33zO/2ai1YplQ=="
},
"object-assign": {
"version": "4.1.1",
@@ -4603,9 +4608,9 @@
}
},
"objectmakr": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/objectmakr/-/objectmakr-0.7.5.tgz",
"integrity": "sha512-ugCb3/Gm7kG1u7/TLkQpqGSmP4Dab/JTtRUWMmFANA+xIFpnHzRZcH68lwN18rv7W7WCwrsoeAvYdpxTA28FoA=="
"version": "0.7.7",
"resolved": "https://registry.npmjs.org/objectmakr/-/objectmakr-0.7.7.tgz",
"integrity": "sha512-d3mi0cbpFcjA1Cb9KlmVIMxSu8/1lLI1aGKA1Q7Zq+oEu68N2FN6ftIXWsXQne5vWDMIftFg9Wg9mlTtLksitA=="
},
"once": {
"version": "1.4.0",
@@ -4879,17 +4884,17 @@
"dev": true
},
"pixeldrawr": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/pixeldrawr/-/pixeldrawr-0.7.6.tgz",
"integrity": "sha512-XPomedoY9K9l1UZi/fDmYfMKBf74hsVGDVldbZf7GpmD+9N9+0WQYSTM6OCveyqnJL1s4LsRvGH3SbiqUKZshA==",
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/pixeldrawr/-/pixeldrawr-0.7.8.tgz",
"integrity": "sha512-hSvH9wBDiKXxEAnTMtXsTbXwQe69YdBBLILvh/1BK0jtDBPF9YqGvgB34FoYMKtQXumifuwLR9x1B2llFghpUg==",
"requires": {
"pixelrendr": "^0.7.2"
}
},
"pixelrendr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/pixelrendr/-/pixelrendr-0.7.2.tgz",
"integrity": "sha512-gtHLoQUk9y1NvZyCptko5usLh2pjpCpUuAPu69qJnR8K2U+otFexYG+YW5y2r19xVc9aPvG+IvIW2FQSbd/GGQ==",
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/pixelrendr/-/pixelrendr-0.7.4.tgz",
"integrity": "sha512-1qir6LxerxwsKEgZthKjcqzS87RzUKjFv/ElvFrsei+qkNNPUX5q5VygweqLB12QzHkgcdh61Kjs9Gns29zPZA==",
"requires": {
"changelinr": "^0.7.2",
"stringfilr": "^0.7.5"
@@ -5061,9 +5066,9 @@
}
},
"quadskeepr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/quadskeepr/-/quadskeepr-0.7.2.tgz",
"integrity": "sha512-JC19tVp4DTrMe3M2YiKi3K4BMshUOY7Hl0UvVAUR3DbnTThiVJw5kuuvHhGU6gAoVTHZG2L3ZeumbXB/Kz2fnQ=="
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/quadskeepr/-/quadskeepr-0.7.4.tgz",
"integrity": "sha512-/lRu5qfvahm1J0CzOWBv81dJPYKZmjGXxBl/2BjPx5+E2lsEiZ+Ur8STfTWpE3ZyATl0jBB/qeSzPNmlMmfilg=="
},
"querystring": {
"version": "0.2.0",
@@ -5396,9 +5401,9 @@
}
},
"sceneplayr": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/sceneplayr/-/sceneplayr-0.7.1.tgz",
"integrity": "sha512-mxbSHCdS80NKmegCbY2i3E5eEO66Rf9nd6Y7kNrijZBZGpctkM1gVDesIwTnePNwh91Zn+OviVLW9jKfTdWdqA=="
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/sceneplayr/-/sceneplayr-0.7.3.tgz",
"integrity": "sha512-PJZccJQiO1LAssg86obUdcFAbA4D0PjtmpGEnyYTFt/WqabxhxrGejOj2TqH6fvoibHTll9wQFkbEWjZ1zVTxQ=="
},
"schema-utils": {
"version": "1.0.0",
@@ -5917,9 +5922,9 @@
}
},
"stringfilr": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/stringfilr/-/stringfilr-0.7.5.tgz",
"integrity": "sha512-ehSj/GoA+w2HvJvbgO+DFLO1gHm60a06YEspSTi4onFoujgQOVeMqXYiNhQiBEmoTYobTGh6xKO07jbX5E+/EA=="
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/stringfilr/-/stringfilr-0.7.6.tgz",
"integrity": "sha512-7EOhzKSdticTewxqVQhrjSmQ+euNU5AXv8hrhtSBz9IXbQZAWVujDnd/6oIH2sA5T82elAJJwlwovMxTuRx7zg=="
},
"strip-ansi": {
"version": "4.0.0",
@@ -6076,26 +6081,11 @@
}
},
"thinghittr": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/thinghittr/-/thinghittr-0.7.1.tgz",
"integrity": "sha512-VlG/frka6XmWHTAUg0Qc9dIg6qwrifsFJDHl2SDt50unW/02DGqKCM/AXD3RIuivLU3uE6KRcbc5m5wZm+jz8g==",
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/thinghittr/-/thinghittr-0.7.2.tgz",
"integrity": "sha512-oeOd0zReLr30UZGs3ibx+ugCtZlKkzFjSN68zR9VbLBuRimCSOp+ITX1T7ogGIMPEVFNmVN1GtAKw7AmotEPpQ==",
"requires": {
"quadskeepr": "^0.5.2"
},
"dependencies": {
"objectmakr": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/objectmakr/-/objectmakr-0.5.3.tgz",
"integrity": "sha1-Q/8kEAJBsdtIfl9ff7Njoymcfss="
},
"quadskeepr": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/quadskeepr/-/quadskeepr-0.5.3.tgz",
"integrity": "sha1-TzleYLBuWJiL7Yc8mVXMg/0vCPg=",
"requires": {
"objectmakr": "^0.5.3"
}
}
"quadskeepr": "^0.7.3"
}
},
"through2": {
@@ -6183,12 +6173,12 @@
}
},
"touchpassr": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/touchpassr/-/touchpassr-0.7.2.tgz",
"integrity": "sha512-IGnRVlfPSDdNNtqc2vNOfMes4PS2ho0QtHJ6Jmrs3AoGl8P2KY1NVWbPJiDGm2Z3IBp6oT2+xEQi0Twx0JwKcQ==",
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/touchpassr/-/touchpassr-0.7.3.tgz",
"integrity": "sha512-MDJ5UBVF5VlfqzCTmuLwJzcBf7k82HuuMo+fkkx0r2LFU+TY19s2hxDaeApfVQov4fGi5rniPYLHKzgB8y2+QQ==",
"requires": {
"inputwritr": "^0.7.0",
"itemsholdr": "^0.7.0"
"inputwritr": "^0.7.2",
"itemsholdr": "^0.7.8"
}
},
"tree-kill": {
+1 -1
View File
@@ -8,7 +8,7 @@
"url": "https://github.com/FullScreenShenanigans/MenuGraphr/issues"
},
"dependencies": {
"eightbittr": "^0.7.21",
"eightbittr": "^0.7.28",
"timehandlr": "^0.7.4"
},
"description": "In-game menu and dialog creation and management for EightBittr.",
+26 -1
View File
@@ -205,6 +205,11 @@ export interface IListMenuSchema extends IMenuSchema {
*/
saveIndex?: boolean;
/**
* Whether to register the "A" key on every index shift.
*/
selectIndex?: boolean;
/**
* Names of menus whose whose selected indices that should be cleared when this menu is deleted.
*/
@@ -571,6 +576,11 @@ export interface IListMenu extends IListMenuBase, IListMenuSchema, IMenu {
*/
optionChildren: any[];
/**
* Class names for the menu's arrow when active or inactive, it it shouldn't be hidden when inactive.
*/
preserveArrow?: IListMenuPreserveArrow;
/**
* A summary of the menu's progress through its list.
*/
@@ -584,7 +594,7 @@ export interface IListMenu extends IListMenuBase, IListMenuSchema, IMenu {
/**
* How wide each column of text should be in the grid, if not text width.
*/
textColumnWidth?: number;
textColumnWidth?: number | number[];
/**
* How wide this is.
@@ -704,6 +714,21 @@ export interface IListMenuOptions {
selectedIndex?: [number, number];
}
/**
* Class names for the menu's arrow when active or inactive, it it shouldn't be hidden when inactive.
*/
export interface IListMenuPreserveArrow {
/**
* Class name to add to the arrow when the menu is active.
*/
classActive: string;
/**
* Class name to add to the arrow when the menu is inactive.
*/
classInactive: string;
}
/**
* A summary of the menu's progress through its list.
*/
+45 -12
View File
@@ -517,7 +517,9 @@ export class MenuGraphr implements IMenuGraphr {
if (!menu.singleColumnList && y > menu.bottom - textHeight + 1) {
y = top;
left += menu.textColumnWidth || textWidth;
left += menu.textColumnWidth instanceof Array
? menu.textColumnWidth[option.columnNumber]
: menu.textColumnWidth || textWidth;
column = [];
menu.grid.push(column);
}
@@ -606,7 +608,17 @@ export class MenuGraphr implements IMenuGraphr {
menu.arrow = character = this.eightBitter.objectMaker.make<IThing>("CharArrowRight");
menu.children.push(character);
character.hidden = (this.activeMenu !== menu);
if (menu.preserveArrow) {
this.eightBitter.graphics.classes.addClass(
menu.arrow,
this.activeMenu === menu
? menu.preserveArrow.classActive
: menu.preserveArrow.classInactive,
);
} else {
character.hidden = this.activeMenu !== menu;
}
option = menu.grid[menu.selectedIndex[0]][menu.selectedIndex[1]];
@@ -639,9 +651,9 @@ export class MenuGraphr implements IMenuGraphr {
* @param dy How far along the menu's grid to shift vertically.
*/
public shiftSelectedIndex(name: string, dx: number, dy: number): void {
const menu: IListMenu = this.getExistingMenu(name) as IListMenu;
const textProperties: any = this.eightBitter.objectMaker.getPrototypeOf("Text");
const textPaddingY: number = menu.textPaddingY || textProperties.paddingY || 0;
const menu = this.getExistingMenu(name) as IListMenu;
const textProperties = this.eightBitter.objectMaker.getPrototypeOf<IText>("Text");
const textPaddingY = menu.textPaddingY || textProperties.paddingY || 0;
let x: number;
let y: number;
@@ -670,7 +682,7 @@ export class MenuGraphr implements IMenuGraphr {
menu.selectedIndex[0] = x;
menu.selectedIndex[1] = y;
const option: IGridCell = this.getMenuSelectedOption(name);
const option = this.getMenuSelectedOption(name);
if (menu.scrollingItems) {
this.scrollListThings(name, dy, textPaddingY);
@@ -682,6 +694,10 @@ export class MenuGraphr implements IMenuGraphr {
if (menu.saveIndex) {
this.eightBitter.itemsHolder.setItem(name, menu.selectedIndex);
}
if (menu.selectIndex) {
this.registerA();
}
}
/**
@@ -692,8 +708,8 @@ export class MenuGraphr implements IMenuGraphr {
* @param y The new vertical value for the index.
*/
public setSelectedIndex(name: string, x: number, y: number): void {
const menu: IListMenu = this.getExistingMenu(name) as IListMenu;
const selectedIndex: [number, number] = menu.selectedIndex;
const menu = this.getExistingMenu(name) as IListMenu;
const selectedIndex = menu.selectedIndex;
this.shiftSelectedIndex(name, x - selectedIndex[0], y - selectedIndex[1]);
}
@@ -1231,9 +1247,18 @@ export class MenuGraphr implements IMenuGraphr {
* @param name The name of the menu.
*/
private activateMenuList(name: string): void {
const menu: IListMenu = this.menus[name] as IListMenu;
const menu = this.menus[name] as IListMenu;
if (!menu || !menu.arrow) {
return;
}
if (menu && menu.arrow) {
if (menu.preserveArrow) {
this.eightBitter.graphics.classes.switchClass(
menu.arrow,
menu.preserveArrow.classInactive,
menu.preserveArrow.classActive,
);
} else {
menu.arrow.hidden = false;
}
}
@@ -1244,9 +1269,17 @@ export class MenuGraphr implements IMenuGraphr {
* @param name The name of the menu.
*/
private deactivateMenuList(name: string): void {
const menu: IListMenu = this.menus[name] as IListMenu;
const menu = this.menus[name] as IListMenu;
if (!menu || !menu.arrow) {
return;
}
if (menu && menu.arrow) {
if (menu.preserveArrow) {
this.eightBitter.graphics.classes.switchClass(
menu.arrow,
menu.preserveArrow.classActive,
menu.preserveArrow.classInactive);
} else {
menu.arrow.hidden = true;
}
}