Cleaned up assets folder, added promptfont, started config menu UI

This commit is contained in:
Mr-Wiseguy 2023-12-29 16:49:26 -05:00
parent c0abf1a203
commit 525092fd60
21 changed files with 1148 additions and 712 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

83
assets/config_menu.rml Normal file
View File

@ -0,0 +1,83 @@
<rml>
<head>
<link type="text/rcss" href="rml.rcss"/>
<link type="text/rcss" href="recomp.rcss"/>
<title>Inventory</title>
<style>
body
{
width: 100%;
height: 100%;
}
/* Hide the window icon. */
div#title_bar div#icon
{
display: none;
}
.flex-grid {
display: flex;
}
.col {
flex: 1;
text-align: center;
}
#tab_graphics:selected {
nav-down:#ar_original;
}
</style>
</head>
<body class="window">
<!-- <handle move_target="#document"> -->
<div id="window" style="display:flex; flex-flow: column; text-align:center; background-color:rgba(0,0,0,0)">
<div style="flex:1 1 auto">
<tabset>
<tab id="tab_graphics" autofocus>Graphics</tab>
<panel>
<form>
<div style="width:700dp; border-radius:0dp; height:auto; padding:16dp; text-align:left; margin-left:auto; margin-right:auto; font-effect: outline(2dp black); font-size:24dp; background:rgba(50,50,50,200);">
<label style="padding:4dp;">Aspect Ratio</label><br/>
<hr/>
<div style="padding:2dp;">
<input type="radio" name="aspectratio" id="ar_original"/>
<label for="ar_original">Original</label>
<input type="radio" name="aspectratio" id="ar_expand" checked="checked" style="nav-right:none"/>
<label for="ar_expand">Expand</label>
</div>
<br/>
<label style="padding:4dp;">Refresh Rate</label><br/>
<hr/>
<p style="padding:2dp;">
<input type="radio" name="refreshrate" id="rr_original"/>
<label for="rr_original">Original</label>
<input type="radio" name="refreshrate" id="rr_display"/>
<label for="rr_display">Display</label>
<input type="radio" name="refreshrate" id="rr_manual" checked="checked" style="nav-up:#ar_expand;nav-right:none"/>
<label for="rr_manual">Manual</label>
<br/>
<input id="rr_manual_input" type="range" min="60" max="1000" style="font:normal;flex:1;nav-up:auto;nav-down:auto;" value="60"/>
</p>
</div>
</form>
</panel>
<tab>Controls</tab>
<panel>
</panel>
<tab>Sound</tab>
<panel>
</panel>
</tabset>
</div>
<div style="flex:0 1 80dp;display:flex; justify-content: space-between; width:100%; max-width:800dp; align-self:center;">
<label style="text-align:center; font-size:24dp;"><span style="font-family:promptfont; font-size:40dp">&#x2424;&#x242B;</span><span style="font-size:24dp;">Navigate</span></label>
<label style="text-align:center; font-size:24dp;"><span style="font-family:promptfont; font-size:40dp">&#x242E;</span><span style="font-size:24dp;">Accept</span></label>
<label style="text-align:center; font-size:24dp;"><span style="font-family:promptfont; font-size:40dp">&#x242F;</span><span style="font-size:24dp;">Exit</span></label>
<!-- <label><span style="font-family:promptfont;">&#x21F3;</span> Navigate</label>
<label><span style="font-family:promptfont;">&#x21A7;</span> Accept</label> -->
</div>
</div>
<!-- </handle> -->
<!-- <handle size_target="#document" style="position: absolute; width: 16dp; height: 16dp; bottom: 0px; right: 0px; cursor: resize;"></handle> -->
</body>
</rml>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,574 +0,0 @@
$font-stack: LatoLatin;
$font-size: 20dp;
body
{
font-family: $font-stack;
font-weight: normal;
font-style: normal;
font-size: $font-size;
color: white;
}
// body.window
// {
// padding-top: 43dp;
// padding-bottom: 20dp;
// min-width: 250dp;
// max-width: 800dp;
// min-height: 135dp;
// max-height: 700dp;
// }
div#title_bar
{
z-index: 1;
position: absolute;
top: 7dp;
left: 0;
text-align: left;
vertical-align: bottom;
}
div#title_bar div#icon
{
position: absolute;
left: 15dp;
top: -4dp;
width: 51dp;
height: 39dp;
}
div#title_bar span
{
padding-left: 85dp;
padding-right: 25dp;
padding-top: 18dp;
padding-bottom: 43dp;
vertical-align: top;
line-height: 24dp;
font-size: 20dp;
font-weight: bold;
font-effect: glow(1dp black);
decorator: tiled-horizontal( title-bar-l, title-bar-c, title-bar-r );
}
div#window
{
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 10dp 15dp;
// decorator: tiled-box(
// window-tl, window-t, window-tr,
// window-l, window-c, window-r,
// window-bl, window-b, window-br
// );
background-color: rgb(0, 65, 100);
border-color: rgb(255, 0, 0);
}
div#content
{
z-index: 2;
width: auto;
height: 100%;
overflow: hidden auto;
text-align: center;
}
p
{
text-align: left;
margin-bottom: 1em;
}
h1
{
margin-left: 0.4em;
margin-bottom: 0.4em;
text-align: left;
font-size: 16dp;
font-weight: bold;
font-effect: glow(1dp 1dp 1dp 1dp #1117);
}
input,
select
{
margin-left: 20dp;
}
input.submit
{
margin-left: 0;
}
button,
input.submit
{
display: inline-block;
width: 159dp;
height: 33dp;
padding-top: 12dp;
font-size: 16dp;
text-align: center;
tab-index: auto;
decorator: image(button);
}
button:focus,
input.submit:focus
{
font-effect: blur(3dp #fff);
}
button:hover,
input.submit:hover
{
decorator: image(button-hover);
}
button:active,
input.submit:active
{
decorator: image(button-active);
}
input.submit:disabled
{
decorator: image(button);
image-color: rgba(50, 150, 150, 120);
cursor: unavailable;
}
input.text, input.password
{
box-sizing: border-box;
height: 31dp;
padding: 11dp 10dp 0;
decorator: tiled-horizontal( text-l, text-c, auto ); /* Right becomes mirrored left */
cursor: text;
text-align: left;
}
textarea
{
padding: 14dp 12dp 10dp;
decorator: ninepatch( textarea, textarea-inner, 1.0 );
cursor: text;
text-align: left;
}
input.text,
input.password,
select,
textarea
{
color: #333;
font-size: 13dp;
}
table input.text
{
box-sizing: border-box;
width: 100%;
height: 18dp;
margin: 0;
padding: 0 5dp;
line-height: 1.0;
border-width: 1dp;
border-color: black;
background-color: white;
font-size: 15dp;
decorator: none;
}
select
{
width: 175dp;
height: 37dp;
}
select selectvalue
{
width: auto;
margin-right: 30dp;
height: 25dp;
padding: 12dp 10dp 0dp 10dp;
decorator: image( selectvalue );
}
select selectarrow
{
width: 30dp;
height: 37dp;
decorator: image( selectarrow );
}
select:hover selectarrow
{
decorator: image( selectarrow-hover );
}
select:active selectarrow,
select selectarrow:checked
{
decorator: image( selectarrow-active );
}
select selectbox
{
margin-left: 1dp;
margin-top: -7dp;
margin-bottom: -10dp;
width: 162dp;
padding: 1dp 4dp 4dp 4dp;
}
select selectbox,
tbody
{
decorator: tiled-box(
selectbox-tl, selectbox-t, selectbox-tr,
selectbox-l, selectbox-c, auto, /* auto mirrors left */
selectbox-bl, selectbox-b, selectbox-br
);
}
select selectbox option
{
width: auto;
padding: 3dp 0 3dp 6dp;
background: #DDDD;
}
select selectbox option:nth-child(even),
tr:nth-child(even)
{
background: #FFFFFFA0;
}
select selectbox option:checked
{
font-weight: bold;
}
select selectbox option:hover
{
background: #FF5D5D;
}
input.radio,
input.checkbox
{
width: 30dp;
height: 30dp;
vertical-align: -11dp;
}
input.radio
{
decorator: image(radio);
}
input.radio:hover
{
decorator: image(radio-hover);
}
input.radio:active
{
decorator: image(radio-active);
}
input.radio:checked
{
decorator: image(radio-checked);
}
input.radio:checked:hover
{
decorator: image(radio-checked-hover);
}
input.radio:checked:active
{
decorator: image(radio-checked-active);
}
input.checkbox
{
decorator: image(checkbox);
}
input.checkbox:hover
{
decorator: image(checkbox-hover);
}
input.checkbox:active
{
decorator: image(checkbox-active);
}
input.checkbox:checked
{
decorator: image(checkbox-checked);
}
input.checkbox:checked:hover
{
decorator: image(checkbox-checked-hover);
}
input.checkbox:checked:active
{
decorator: image(checkbox-checked-active);
}
input.range {
width: 200dp;
height: 32dp;
vertical-align: -12dp;
}
input.range slidertrack {
margin-top: 3dp;
height: 22dp;
image-color: #ecc;
decorator: ninepatch( range-track, range-track-inner, 1.0 );
}
input.range sliderbar {
margin-left: -8dp;
margin-right: -7dp;
margin-top: -3dp;
width: 34dp;
height: 23dp;
decorator: image( range-bar );
}
input.range sliderbar:hover, input.range slidertrack:hover + sliderbar {
image-color: #cc0;
}
input.range sliderbar:active, input.range slidertrack:active + sliderbar {
image-color: #c80;
}
input.range sliderarrowdec, input.range sliderarrowinc {
width: 17dp;
height: 17dp;
margin-top: 6dp;
}
input.range sliderarrowdec { decorator: image( range-dec ); }
input.range sliderarrowinc { decorator: image( range-inc ); }
input.range sliderarrowdec:hover { decorator: image( range-dec-hover ); }
input.range sliderarrowinc:hover { decorator: image( range-inc-hover ); }
input.range sliderarrowdec:active { decorator: image( range-dec-active ); }
input.range sliderarrowinc:active { decorator: image( range-inc-active ); }
thead tr {
height: 35dp;
decorator: tiled-horizontal( tableheader-l, tableheader-c, tableheader-r );
}
thead td {
padding-top: 11dp;
}
tbody {
/* Margin left/right only affects the background positioning for the decorator, not the cell placement */
margin-left: 5dp;
margin-right: 4dp;
/* Padding top/bottom adds extra spacing between the header row and the body, and between the body and table bottom */
padding-top: 4dp;
padding-bottom: 4dp;
}
tbody tr {
margin-left: 9dp;
margin-right: 8dp;
color: black;
}
expand
{
display: block;
margin: 1dp 0 1dp 5dp;
height: 17dp;
width: 17dp;
decorator: image( expand );
}
expand:hover
{
decorator: image( expand-hover );
}
expand:active
{
decorator: image( expand-active );
}
expand.collapsed
{
decorator: image( expand-collapsed );
}
expand.collapsed:hover
{
decorator: image( expand-collapsed-hover );
}
expand.collapsed:active
{
decorator: image( expand-collapsed-active );
}
scrollbarvertical
{
margin-top: -6dp;
margin-bottom: -6dp;
margin-right: -11dp;
width: 27dp;
}
scrollbarvertical slidertrack
{
decorator: tiled-vertical( slidertrack-t, slidertrack-c, slidertrack-b );
}
scrollbarvertical slidertrack:active
{
image-color: #aaa;
}
scrollbarvertical sliderbar
{
margin-left: 4dp;
width: 23dp;
min-height: 46dp;
decorator: tiled-vertical( sliderbar-t, sliderbar-c, sliderbar-b );
}
scrollbarvertical sliderbar:hover
{
decorator: tiled-vertical( sliderbar-hover-t, sliderbar-hover-c, sliderbar-hover-b );
}
scrollbarvertical sliderbar:active
{
decorator: tiled-vertical( sliderbar-active-t, sliderbar-active-c, sliderbar-active-b );
}
scrollbarvertical sliderarrowdec,
scrollbarvertical sliderarrowinc
{
width: 27dp;
height: 24dp;
}
scrollbarvertical sliderarrowdec
{
decorator: image( sliderarrowdec );
}
scrollbarvertical sliderarrowdec:hover
{
decorator: image( sliderarrowdec-hover );
}
scrollbarvertical sliderarrowdec:active
{
decorator: image( sliderarrowdec-active );
}
scrollbarvertical sliderarrowinc
{
decorator: image( sliderarrowinc );
}
scrollbarvertical sliderarrowinc:hover
{
decorator: image( sliderarrowinc-hover );
}
scrollbarvertical sliderarrowinc:active
{
decorator: image( sliderarrowinc-active );
}
scrollbarhorizontal
{
width: 0;
height: 0;
}
textarea scrollbarvertical
{
cursor: arrow;
margin: 10dp 0 4dp 0;
width: 12dp;
}
textarea scrollbarvertical slidertrack
{
decorator: none;
}
textarea scrollbarvertical sliderbar
{
margin-left: 2dp;
width: 10dp;
min-height: 16dp;
}
textarea scrollbarvertical sliderarrowdec,
textarea scrollbarvertical sliderarrowinc
{
width: 0;
height: 0;
}
textarea scrollbarhorizontal
{
cursor: arrow;
margin-left: 7dp;
height: 12dp;
}
textarea scrollbarhorizontal sliderbar
{
background-color: #BC0000CC;
height: 8dp;
min-width: 10dp;
}
textarea scrollbarhorizontal sliderbar:hover
{
background-color: #B82500CC;
}
textarea scrollbarhorizontal sliderbar:active
{
background-color: #770000CC;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

View File

@ -1,134 +0,0 @@
@spritesheet theme
{
src: invader.tga;
/* For high dpi screens, designates the scaling it is intended to be shown at. */
resolution: 1x;
/**
The following specifies a list of sprite names and associated rectangles into the image given above.
Any sprite given here can be specified in a decorator. Their names must be globally unique.
Rectangles are specified as: x y width height. With the origin assumed to be at the top left corner.
*/
title-bar-l: 147px 0px 82px 85px;
title-bar-c: 229px 0px 1px 85px;
title-bar-r: 231px 0px 15px 85px;
/* huditems are vertically flipped titlebars */
huditem-l: 147px 55px 82px -55px;
huditem-c: 229px 55px 1px -55px;
huditem-r: 231px 55px 15px -55px;
icon-help: 128px 152px 51px 39px;
icon-invader: 179px 152px 51px 39px;
icon-game: 230px 152px 51px 39px;
icon-hiscore: 281px 152px 51px 39px;
icon-waves: 332px 152px 51px 39px;
icon-flag: 336px 191px 51px 39px;
icon-lives: 383px 152px 51px 39px;
icon-score: 434px 152px 51px 39px;
window-tl: 0px 0px 133px 140px;
window-t: 134px 0px 1px 140px;
window-tr: 136px 0px 10px 140px;
window-l: 0px 139px 10px 1px;
window-c: 11px 139px 1px 1px;
window-r: 10px 139px -10px 1px; /* mirrored left */
window-bl: 0px 140px 11px 11px;
window-b: 11px 140px 1px 11px;
window-br: 136px 140px 10px 11px;
button: 247px 0px 159px 45px;
button-hover: 247px 45px 159px 45px;
button-active: 247px 90px 159px 45px;
button-inner: 259px 19px 135px 1px;
button-inner-hover: 259px 64px 135px 1px;
button-inner-active: 259px 109px 135px 1px;
text-l: 162px 192px 14px 31px;
text-c: 176px 192px 1px 31px;
textarea: 162px 193px 145px 31px;
textarea-inner: 173px 206px 127px 10px;
selectbox-tl: 281px 275px 11px 9px;
selectbox-t: 292px 275px 1px 9px;
selectbox-tr: 294px 275px 11px 9px;
selectbox-l: 281px 283px 11px 1px;
selectbox-c: 292px 283px 1px 1px;
selectbox-bl: 281px 285px 11px 11px;
selectbox-b: 292px 285px 1px 11px;
selectbox-br: 294px 285px 11px 11px;
selectvalue: 162px 192px 145px 37px;
selectvalue-hover: 162px 230px 145px 37px;
selectarrow: 307px 192px 30px 37px;
selectarrow-hover: 307px 230px 30px 37px;
selectarrow-active: 307px 268px 30px 37px;
radio: 407px 0px 30px 30px;
radio-hover: 437px 0px 30px 30px;
radio-active: 467px 0px 30px 30px;
radio-checked: 407px 30px 30px 30px;
radio-checked-hover: 437px 30px 30px 30px;
radio-checked-active: 467px 30px 30px 30px;
checkbox: 407px 60px 30px 30px;
checkbox-hover: 437px 60px 30px 30px;
checkbox-active: 467px 60px 30px 30px;
checkbox-checked: 407px 90px 30px 30px;
checkbox-checked-hover: 437px 90px 30px 30px;
checkbox-checked-active: 467px 90px 30px 30px;
tableheader-l: 127px 192px 16px 31px;
tableheader-c: 143px 192px 2px 31px;
tableheader-r: 145px 192px 15px 31px;
expand: 3px 232px 17px 17px;
expand-hover: 21px 232px 17px 17px;
expand-active: 39px 232px 17px 17px;
expand-collapsed: 3px 250px 17px 17px;
expand-collapsed-hover: 21px 250px 17px 17px;
expand-collapsed-active: 39px 250px 17px 17px;
slidertrack-t: 70px 199px 27px 2px;
slidertrack-c: 70px 201px 27px 1px;
slidertrack-b: 70px 202px 27px 2px;
sliderbar-t: 56px 152px 23px 23px;
sliderbar-c: 56px 175px 23px 1px;
sliderbar-b: 56px 176px 23px 22px;
sliderbar-hover-t: 80px 152px 23px 23px;
sliderbar-hover-c: 80px 175px 23px 1px;
sliderbar-hover-b: 80px 176px 23px 22px;
sliderbar-active-t: 104px 152px 23px 23px;
sliderbar-active-c: 104px 175px 23px 1px;
sliderbar-active-b: 104px 176px 23px 22px;
sliderarrowdec: 0px 152px 27px 24px;
sliderarrowdec-hover: 0px 177px 27px 24px;
sliderarrowdec-active: 0px 202px 27px 24px;
sliderarrowinc: 28px 152px 27px 24px;
sliderarrowinc-hover: 28px 177px 27px 24px;
sliderarrowinc-active: 28px 202px 27px 24px;
range-track: 219px 194px 3px 32px;
range-track-inner: 220px 204px 1px 14px;
range-bar: 127px 191px 34px 32px;
range-dec: 3px 232px 17px 17px;
range-dec-hover: 21px 232px 17px 17px;
range-dec-active: 39px 232px 17px 17px;
range-inc: 3px 250px 17px 17px;
range-inc-hover: 21px 250px 17px 17px;
range-inc-active: 39px 250px 17px 17px;
progress-l: 103px 267px 13px 34px;
progress-c: 116px 267px 54px 34px;
progress-r: 170px 267px 13px 34px;
progress-fill-l: 110px 302px 6px 34px;
progress-fill-c: 140px 302px 6px 34px;
progress-fill-r: 170px 302px 6px 34px;
gauge: 0px 271px 100px 86px;
gauge-fill: 0px 356px 100px 86px;
}

View File

@ -2,8 +2,7 @@
<head>
<title>Launcher</title>
<link type="text/rcss" href="rml.rcss"/>
<link type="text/rcss" href="invader_spritesheet.rcss"/>
<link type="text/rcss" href="invader.rcss"/>
<link type="text/rcss" href="recomp.rcss"/>
<style>
body
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@ -0,0 +1,91 @@
This Font Software is licensed under the SIL Open Font License,
Version 1.1. This license is copied below, and is also available
with a FAQ at <http://scripts.sil.org/OFL>
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -0,0 +1,23 @@
## About PromptFont
This is a font designed for button prompts in games. It includes the base alphabet, as well as icons for modifier and control keys, and gamepad buttons. All the icons included in the font are custom made and available under the same [SIL Open Font Licence](LICENSE.txt). Included trademarks however of course still belong to their respective owners.
PromptFont is based on the Xolonium font by Severin Meyer.
## Attribution
If you use this font in your project please leave an attribution notice in your credits like this:
> PromptFont by Yukari "Shinmera" Hafner, available at https://shinmera.com/promptfont
## Special Glyphs
Please see the included ``glyphs.json`` file for all the relevant glyphs in the font. It includes the code point of every glyph along with a unique name to address it with and a general category. You should be able to use it to create an equivalent mapping of glyphs in your engine of choice.
## Engine Specifics
Since there's far too many engines out there and their methods vary a lot, we can't include guides in this repository. For specifics on how to use this font in your engine of choice, please consult their documentation on importing custom fonts and custom glyph ranges, and how to write text with specific unicode codepoints. Since this is literally just a font, it should not prove too difficult.
## Contributing Glyphs
For a brief guide on what to watch out for if you'd like to contribute to this font, please see the [CONTRIBUTING.md](CONTRIBUTING.md) file. If you'd like to request new glyphs to be added, please comment on the [issue ticket]().
## Support
If you'd like to support the continued development of PromptFont, please consider becoming a backer on Patreon:
[![Patreon](https://filebox.tymoon.eu//file/TWpjeU9RPT0=)](https://patreon.com/shinmera)

View File

@ -0,0 +1,335 @@
@font-face{font-family:'promptfont'; src:url('promptfont.ttf');}
.pf{font-family:promptfont;}
.pf-exchange::after{content:'\u2194';}
.pf-reverse::after{content:'\u2195';}
.pf-left-trigger-lt::after{content:'\u2196';}
.pf-right-trigger-rt::after{content:'\u2197';}
.pf-left-shoulder-lb::after{content:'\u2198';}
.pf-right-shoulder-rb::after{content:'\u2199';}
.pf-left-trigger-zl::after{content:'\u219A';}
.pf-right-trigger-zr::after{content:'\u219B';}
.pf-left-shoulder-l::after{content:'\u219C';}
.pf-right-shoulder-r::after{content:'\u219D';}
.pf-dpad-left::after{content:'\u219E';}
.pf-dpad-up::after{content:'\u219F';}
.pf-dpad-right::after{content:'\u21A0';}
.pf-dpad-down::after{content:'\u21A1';}
.pf-dpad-left-right::after{content:'\u21A2';}
.pf-dpad-up-down::after{content:'\u21A3';}
.pf-button-left-x::after{content:'\u21A4';}
.pf-button-up-y::after{content:'\u21A5';}
.pf-button-right-b::after{content:'\u21A6';}
.pf-button-down-a::after{content:'\u21A7';}
.pf-left-analog-clockwise::after{content:'\u21A9';}
.pf-left-analog-counter::after{content:'\u21AA';}
.pf-right-analog-clockwise::after{content:'\u21AB';}
.pf-right-analog-counter::after{content:'\u21AC';}
.pf-both-analog-clockwise::after{content:'\u21AD';}
.pf-both-analog-counter::after{content:'\u21AE';}
.pf-left-shoulder-l1::after{content:'\u21B0';}
.pf-right-shoulder-r1::after{content:'\u21B1';}
.pf-left-trigger-l2::after{content:'\u21B2';}
.pf-right-trigger-r2::after{content:'\u21B3';}
.pf-dpad-left-down::after{content:'\u21B4';}
.pf-dpad-up-right::after{content:'\u21B5';}
.pf-analog-clockwise::after{content:'\u21B6';}
.pf-analog-counter::after{content:'\u21B7';}
.pf-both-analog-click::after{content:'\u21B9';}
.pf-left-analog-click::after{content:'\u21BA';}
.pf-right-analog-click::after{content:'\u21BB';}
.pf-left-analog-left::after{content:'\u21BC';}
.pf-right-analog-left::after{content:'\u21BD';}
.pf-left-analog-up::after{content:'\u21BE';}
.pf-right-analog-up::after{content:'\u21BF';}
.pf-left-analog-right::after{content:'\u21C0';}
.pf-right-analog-right::after{content:'\u21C1';}
.pf-left-analog-down::after{content:'\u21C2';}
.pf-right-analog-down::after{content:'\u21C3';}
.pf-left-analog-left-right::after{content:'\u21C4';}
.pf-left-analog-up-down::after{content:'\u21C5';}
.pf-right-analog-left-right::after{content:'\u21C6';}
.pf-analog-left::after{content:'\u21C7';}
.pf-analog-up::after{content:'\u21C8';}
.pf-analog-right::after{content:'\u21C9';}
.pf-analog-down::after{content:'\u21CA';}
.pf-left-analog::after{content:'\u21CB';}
.pf-right-analog::after{content:'\u21CC';}
.pf-dpad::after{content:'\u21CE';}
.pf-button-x::after{content:'\u21D0';}
.pf-button-y::after{content:'\u21D1';}
.pf-button-b::after{content:'\u21D2';}
.pf-button-a::after{content:'\u21D3';}
.pf-analog-left-right::after{content:'\u21D4';}
.pf-analog-up-down::after{content:'\u21D5';}
.pf-analog-up-left::after{content:'\u21D6';}
.pf-analog-up-right::after{content:'\u21D7';}
.pf-analog-down-right::after{content:'\u21D8';}
.pf-analog-down-left::after{content:'\u21D9';}
.pf-left-analog-touch::after{content:'\u21DA';}
.pf-right-analog-touch::after{content:'\u21DB';}
.pf-left-trigger-pull::after{content:'\u21DC';}
.pf-right-trigger-pull::after{content:'\u21DD';}
.pf-dpad-right-down::after{content:'\u21DE';}
.pf-dpad-left-up::after{content:'\u21DF';}
.pf-button-square::after{content:'\u21E0';}
.pf-button-triangle::after{content:'\u21E1';}
.pf-button-circle::after{content:'\u21E2';}
.pf-button-cross::after{content:'\u21E3';}
.pf-steam-menu::after{content:'\u21E4';}
.pf-options-menu::after{content:'\u21E5';}
.pf-dualshock-share::after{content:'\u21E6';}
.pf-dualshock-touchpad::after{content:'\u21E7';}
.pf-dualshock-options::after{content:'\u21E8';}
.pf-gamecube-z::after{content:'\u21E9';}
.pf-back-trigger-z::after{content:'\u21EA';}
.pf-button-c::after{content:'\u21EB';}
.pf-button-z::after{content:'\u21EC';}
.pf-button-alt-1::after{content:'\u21ED';}
.pf-button-alt-2::after{content:'\u21EE';}
.pf-left-analog-any::after{content:'\u21F1';}
.pf-right-analog-any::after{content:'\u21F2';}
.pf-analog-any::after{content:'\u21F3';}
.pf-right-analog-up-down::after{content:'\u21F5';}
.pf-select-share::after{content:'\u21F7';}
.pf-start::after{content:'\u21F8';}
.pf-home-menu::after{content:'\u21F9';}
.pf-share-capture::after{content:'\u21FA';}
.pf-burger-menu::after{content:'\u21FB';}
.pf-minus::after{content:'\u21FD';}
.pf-plus::after{content:'\u21FE';}
.pf-joycon-dpad-left::after{content:'\u21FF';}
.pf-joycon-dpad-up::after{content:'\u2200';}
.pf-joycon-dpad-right::after{content:'\u2201';}
.pf-joycon-dpad-down::after{content:'\u2202';}
.pf-joycon-sl::after{content:'\u2203';}
.pf-joycon-sr::after{content:'\u2204';}
.pf-lenovo-legion-quick-settings::after{content:'\u2205';}
.pf-dualsense-share::after{content:'\u2206';}
.pf-dualsense-touchpad::after{content:'\u2207';}
.pf-dualsense-options::after{content:'\u2208';}
.pf-ayaneo-lc::after{content:'\u2209';}
.pf-ayaneo-rc::after{content:'\u220A';}
.pf-ayaneo-wave::after{content:'\u220B';}
.pf-ayn-home::after{content:'\u220C';}
.pf-ayn-lcc::after{content:'\u220D';}
.pf-gpd-c1::after{content:'\u220E';}
.pf-gpd-c2::after{content:'\u220F';}
.pf-onexplayer-keyboard::after{content:'\u2210';}
.pf-onexplayer-turbo::after{content:'\u2211';}
.pf-m1::after{content:'\u2212';}
.pf-m2::after{content:'\u2213';}
.pf-m3::after{content:'\u2214';}
.pf-y1::after{content:'\u2215';}
.pf-y2::after{content:'\u2216';}
.pf-y3::after{content:'\u2217';}
.pf-onexplayer-function::after{content:'\u2218';}
.pf-onexplayer-home::after{content:'\u2219';}
.pf-left-trackpad-any::after{content:'\u2264';}
.pf-right-trackpad-any::after{content:'\u2265';}
.pf-left-trackpad-click::after{content:'\u2266';}
.pf-right-trackpad-click::after{content:'\u2267';}
.pf-left-trackpad-touch::after{content:'\u2268';}
.pf-right-trackpad-touch::after{content:'\u2269';}
.pf-left-trackpad-left::after{content:'\u226E';}
.pf-right-trackpad-left::after{content:'\u226F';}
.pf-left-trackpad-up::after{content:'\u2270';}
.pf-right-trackpad-up::after{content:'\u2271';}
.pf-left-trackpad-right::after{content:'\u2272';}
.pf-right-trackpad-right::after{content:'\u2273';}
.pf-left-trackpad-down::after{content:'\u2274';}
.pf-right-trackpad-down::after{content:'\u2275';}
.pf-steamdeck-l4::after{content:'\u2276';}
.pf-steamdeck-r4::after{content:'\u2277';}
.pf-steamdeck-l5::after{content:'\u2278';}
.pf-steamdeck-r5::after{content:'\u2279';}
.pf-xbox-dpad-left::after{content:'\u227A';}
.pf-xbox-dpad-up::after{content:'\u227B';}
.pf-xbox-dpad-right::after{content:'\u227C';}
.pf-xbox-dpad-down::after{content:'\u227D';}
.pf-xbox-dpad-left-right::after{content:'\u227E';}
.pf-xbox-dpad-up-down::after{content:'\u227F';}
.pf-xbox-dpad-left-up::after{content:'\u2280';}
.pf-xbox-dpad-right-up::after{content:'\u2281';}
.pf-xbox-dpad-left-down::after{content:'\u2282';}
.pf-xbox-dpad-right-down::after{content:'\u2283';}
.pf-xbox-dpad::after{content:'\u2284';}
.pf-pin::after{content:'\u2316';}
.pf-tabs::after{content:'\u23CD';}
.pf-back::after{content:'\u23CE';}
.pf-home-screen::after{content:'\u23CF';}
.pf-horizontal-dots::after{content:'\u23D0';}
.pf-vertical-dots::after{content:'\u23D1';}
.pf-hamburger-menu::after{content:'\u23D2';}
.pf-arrow-left::after{content:'\u23F4';}
.pf-arrow-up::after{content:'\u23F5';}
.pf-arrow-right::after{content:'\u23F6';}
.pf-arrow-down::after{content:'\u23F7';}
.pf-wasd::after{content:'\u2423';}
.pf-arrow-keys::after{content:'\u2424';}
.pf-ijkl::after{content:'\u2425';}
.pf-fn::after{content:'\u2426';}
.pf-ctrl::after{content:'\u2427';}
.pf-alt::after{content:'\u2428';}
.pf-shift::after{content:'\u2429';}
.pf-super::after{content:'\u242A';}
.pf-tab::after{content:'\u242B';}
.pf-caps::after{content:'\u242C';}
.pf-backspace::after{content:'\u242D';}
.pf-enter::after{content:'\u242E';}
.pf-esc::after{content:'\u242F';}
.pf-prtsc::after{content:'\u2430';}
.pf-scrlk::after{content:'\u2431';}
.pf-pause::after{content:'\u2432';}
.pf-numlock::after{content:'\u2433';}
.pf-insert::after{content:'\u2434';}
.pf-home::after{content:'\u2435';}
.pf-page-up::after{content:'\u2436';}
.pf-delete::after{content:'\u2437';}
.pf-end::after{content:'\u2438';}
.pf-page-down::after{content:'\u2439';}
.pf-space::after{content:'\u243A';}
.pf-gamepad::after{content:'\u243C';}
.pf-keyboard::after{content:'\u243D';}
.pf-mouse::after{content:'\u243E';}
.pf-mouse-and-keyboard::after{content:'\u243F';}
.pf-f1::after{content:'\u2460';}
.pf-f2::after{content:'\u2461';}
.pf-f3::after{content:'\u2462';}
.pf-f4::after{content:'\u2463';}
.pf-f5::after{content:'\u2464';}
.pf-f6::after{content:'\u2465';}
.pf-f7::after{content:'\u2466';}
.pf-f8::after{content:'\u2467';}
.pf-f9::after{content:'\u2468';}
.pf-f10::after{content:'\u2469';}
.pf-f11::after{content:'\u246A';}
.pf-f12::after{content:'\u246B';}
.pf-empty-keycap::after{content:'\u248F';}
.pf-1::after{content:'\u24F5';}
.pf-2::after{content:'\u24F6';}
.pf-3::after{content:'\u24F7';}
.pf-4::after{content:'\u24F8';}
.pf-5::after{content:'\u24F9';}
.pf-6::after{content:'\u24FA';}
.pf-7::after{content:'\u24FB';}
.pf-8::after{content:'\u24FC';}
.pf-9::after{content:'\u24FD';}
.pf-0::after{content:'\u24FF';}
.pf-star::after{content:'\u2605';}
.pf-skull::after{content:'\u2620';}
.pf-frown::after{content:'\u2639';}
.pf-smile::after{content:'\u263A';}
.pf-empty-heart::after{content:'\u2661';}
.pf-heart::after{content:'\u2665';}
.pf-d4::after{content:'\u2673';}
.pf-d6::after{content:'\u2674';}
.pf-d8::after{content:'\u2675';}
.pf-d10::after{content:'\u2676';}
.pf-d12::after{content:'\u2677';}
.pf-d20::after{content:'\u2678';}
.pf-d6-1::after{content:'\u2680';}
.pf-d6-2::after{content:'\u2681';}
.pf-d6-3::after{content:'\u2682';}
.pf-d6-4::after{content:'\u2683';}
.pf-d6-5::after{content:'\u2684';}
.pf-d6-6::after{content:'\u2685';}
.pf-flag::after{content:'\u2691';}
.pf-gears-options-settings::after{content:'\u2699';}
.pf-cross::after{content:'\u2717';}
.pf-question::after{content:'\u2753';}
.pf-exclamation::after{content:'\u2757';}
.pf-mouse-button-1::after{content:'\u278A';}
.pf-mouse-button-2::after{content:'\u278B';}
.pf-mouse-button-3::after{content:'\u278C';}
.pf-mouse-button-4::after{content:'\u278D';}
.pf-mouse-button-5::after{content:'\u278E';}
.pf-mouse-button-6::after{content:'\u278F';}
.pf-mouse-button-7::after{content:'\u2790';}
.pf-mouse-button-8::after{content:'\u2791';}
.pf-scroll-up::after{content:'\u27F0';}
.pf-scroll-down::after{content:'\u27F1';}
.pf-left-click::after{content:'\u27F5';}
.pf-right-click::after{content:'\u27F6';}
.pf-middle-click::after{content:'\u27F7';}
.pf-mouse-left-right::after{content:'\u27FA';}
.pf-mouse-up-down::after{content:'\u27FB';}
.pf-mouse-any::after{content:'\u27FC';}
.pf-box-crate::after{content:'\u2B1B';}
.pf-playstation::after{content:'\uE000';}
.pf-xbox::after{content:'\uE001';}
.pf-nintendo-switch::after{content:'\uE002';}
.pf-ayaneo::after{content:'\uE003';}
.pf-lenovo-legion::after{content:'\uE004';}
.pf-rog-ally-armoury::after{content:'\uE005';}
.pf-rog-alloy-command::after{content:'\uE006';}
.pf-apple-mac::after{content:'\uE007';}
.pf-windows::after{content:'\uE008';}
.pf-linux::after{content:'\uE009';}
.pf-bsd::after{content:'\uE00A';}
.pf-key-0::after{content:'\uFF10';}
.pf-key-1::after{content:'\uFF11';}
.pf-key-2::after{content:'\uFF12';}
.pf-key-3::after{content:'\uFF13';}
.pf-key-4::after{content:'\uFF14';}
.pf-key-5::after{content:'\uFF15';}
.pf-key-6::after{content:'\uFF16';}
.pf-key-7::after{content:'\uFF17';}
.pf-key-8::after{content:'\uFF18';}
.pf-key-9::after{content:'\uFF19';}
.pf-key-a::after{content:'\uFF21';}
.pf-key-b::after{content:'\uFF22';}
.pf-key-c::after{content:'\uFF23';}
.pf-key-d::after{content:'\uFF24';}
.pf-key-e::after{content:'\uFF25';}
.pf-key-f::after{content:'\uFF26';}
.pf-key-g::after{content:'\uFF27';}
.pf-key-h::after{content:'\uFF28';}
.pf-key-i::after{content:'\uFF29';}
.pf-key-j::after{content:'\uFF2A';}
.pf-key-k::after{content:'\uFF2B';}
.pf-key-l::after{content:'\uFF2C';}
.pf-key-m::after{content:'\uFF2D';}
.pf-key-n::after{content:'\uFF2E';}
.pf-key-o::after{content:'\uFF2F';}
.pf-key-p::after{content:'\uFF30';}
.pf-key-q::after{content:'\uFF31';}
.pf-key-r::after{content:'\uFF32';}
.pf-key-s::after{content:'\uFF33';}
.pf-key-t::after{content:'\uFF34';}
.pf-key-u::after{content:'\uFF35';}
.pf-key-v::after{content:'\uFF36';}
.pf-key-w::after{content:'\uFF37';}
.pf-key-x::after{content:'\uFF38';}
.pf-key-y::after{content:'\uFF39';}
.pf-key-z::after{content:'\uFF3A';}
.pf-headphones::after{content:'\u1F3A7';}
.pf-music::after{content:'\u1F3B6';}
.pf-fish::after{content:'\u1F41F';}
.pf-dance-pad::after{content:'\u1F483';}
.pf-laptop::after{content:'\u1F4BB';}
.pf-diskette::after{content:'\u1F4BE';}
.pf-write::after{content:'\u1F4DD';}
.pf-phone::after{content:'\u1F4F1';}
.pf-camera::after{content:'\u1F4F7';}
.pf-speaker::after{content:'\u1F508';}
.pf-light-gun::after{content:'\u1F52B';}
.pf-sfx-sound-effect-noise::after{content:'\u1F56C';}
.pf-steering-wheel::after{content:'\u1F578';}
.pf-fight-stick-joystick::after{content:'\u1F579';}
.pf-vr-headset::after{content:'\u1F57B';}
.pf-vr-controller::after{content:'\u1F57C';}
.pf-flight-stick::after{content:'\u1F57D';}
.pf-cpu-processor::after{content:'\u1F5A5';}
.pf-web-internet-link::after{content:'\u1F5A7';}
.pf-gpu-graphics-card::after{content:'\u1F5A8';}
.pf-ram-memory::after{content:'\u1F5AA';}
.pf-usb-stick::after{content:'\u1F5AB';}
.pf-database::after{content:'\u1F5AC';}
.pf-hard-disk-drive::after{content:'\u1F5B4';}
.pf-screen-video::after{content:'\u1F5B5';}
.pf-text-entry-edit::after{content:'\u1F5B9';}
.pf-speaking-voice::after{content:'\u1F5E3';}
.pf-language::after{content:'\u1F5E9';}
.pf-exit-quit-leave::after{content:'\u1F6AA';}
.pf-information::after{content:'\u1F6C8';}
.pf-shopping-cart::after{content:'\u1F6D2';}

Binary file not shown.

610
assets/recomp.rcss Normal file
View File

@ -0,0 +1,610 @@
* {
box-sizing:border-box;
font-effect: outline(2dp black);
}
hr {
display:block;
background:black;
padding:1.5dp;
}
body {
font-family: LatoLatin;
font-weight: normal;
font-style: normal;
font-size: 20dp;
color: #fff
}
/* div {
focus:none;
tab-index:none;
} */
div#title_bar {
z-index: 1;
position: absolute;
top: 7dp;
left: 0;
text-align: left;
vertical-align: bottom
}
div#title_bar div#icon {
position: absolute;
left: 15dp;
top: -4dp;
width: 51dp;
height: 39dp
}
div#title_bar span {
padding-left: 85dp;
padding-right: 25dp;
padding-top: 18dp;
padding-bottom: 43dp;
vertical-align: top;
line-height: 24dp;
font-size: 20dp;
font-weight: bold;
font-effect: glow(1dp black);
/* decorator: tiled-horizontal(title-bar-l, title-bar-c, title-bar-r) */
}
div#window {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 10dp 15dp;
background-color: #004164;
border-color: red
}
div#content {
z-index: 2;
width: auto;
height: 100%;
overflow: hidden auto;
text-align: center
}
p {
text-align: left;
margin-bottom: 4dp;
}
h1 {
margin-left: .4em;
margin-bottom: .4em;
text-align: left;
font-size: 16dp;
font-weight: bold;
font-effect: glow(1dp 1dp 1dp 1dp rgba(17, 17, 17, 0.4666666667))
}
input,
select {
/* margin-left: 20dp */
}
input.submit {
margin-left: 0
}
button,
input.submit {
display: inline-block;
/* width: 100dp;
padding: 4dp; */
text-align: center;
/* tab-index: auto; */
/* border-radius: 5dp; */
background-color: rgb(120, 120, 120);
/* vertical-align: center; */
height: auto;
width: 100%;
}
button:focus,
input.submit:focus {
font-effect: blur(3dp #fff);
background-color: rgb(120, 120, 120);
}
button:hover,
input.submit:hover {
background-color: rgb(150, 150, 150);
}
button:active,
input.submit:active {
background-color: rgb(100, 100, 100);
}
input.submit:disabled {
/* decorator: image(button); */
image-color: #329696;
cursor: unavailable
}
input.text,
input.password {
box-sizing: border-box;
height: 31dp;
padding: 11dp 10dp 0;
/* decorator: tiled-horizontal(text-l, text-c, auto); */
cursor: text;
text-align: left
}
textarea {
padding: 14dp 12dp 10dp;
/* decorator: ninepatch(textarea, textarea-inner, 1); */
cursor: text;
text-align: left
}
input.text,
input.password,
select,
textarea {
/* color: #333; */
/* font-size: 13dp */
height: auto;
}
table input.text {
box-sizing: border-box;
width: 100%;
/* height: 18dp; */
margin: 0;
/* padding: 0 5dp; */
line-height: 1;
border-width: 1dp;
border-color: #000;
background-color: #fff;
font-size: 15dp;
decorator: none;
height: auto;
/* vertical-align: center; */
}
select {
display: inline-block;
/* width: 175dp; */
/* height: 37dp; */
/* height: auto; */
text-align: left;
box-sizing:border-box;
/* padding: 4dp; */
vertical-align: center;
padding: 4dp;
border-radius: 5dp;
background-color: rgb(120, 120, 120);
width: 100%;
}
select selectvalue {
height: auto;
/* padding: 4dp; */
/* margin-right: 30dp; */
/* height: 25dp; */
/* padding: 4dp; */
/* decorator: image(selectvalue) */
}
select:hover selectvalue {
/* margin-right: 30dp; */
/* height: 25dp; */
/* padding: 4dp; */
background-color: rgb(150, 150, 150);
/* decorator: image(selectvalue) */
}
select selectarrow {
/* width: 30dp; */
/* height: 37dp; */
/* decorator: image(selectarrow) */
/* background-color: black; */
/* appearance: none; */
}
select:hover selectarrow {
/* decorator: image(selectarrow-hover) */
}
select:active selectarrow,
select selectarrow:checked {
/* decorator: image(selectarrow-active) */
}
select selectbox {
/* margin-left: 1dp; */
/* margin-top: -7dp; */
/* margin-bottom: -10dp; */
/* width: 162dp; */
/* padding: 1dp 4dp 4dp 4dp */
}
select selectbox,
tbody {
background-color: rgb(120,120,120);
/* decorator: tiled-box(selectbox-tl, selectbox-t, selectbox-tr, selectbox-l, selectbox-c, auto, selectbox-bl, selectbox-b, selectbox-br) */
}
select selectbox option {
width: auto;
background-color: rgb(120, 120, 120)
}
select selectbox option:nth-child(even),
tr:nth-child(even) {
background-color: rgb(100, 100, 100)
}
select selectbox option:checked {
font-weight:bold;
color:rgb(255,255,255);
}
select selectbox option:hover {
background: rgb(150,150,150)
}
input.radio,
input.checkbox {
/* width: 30dp; */
height: 30dp;
/* vertical-align: -11dp; */
margin-top: 4dp;
margin-bottom: 4dp;
flex: 1;
tab-index:auto;
focus:auto;
nav-up:auto;
nav-down:auto;
nav-right:auto;
nav-left:auto;
}
input.radio + label {
/* background: rgb(120,120,120); */
/* font-effect: outline(2dp black); */
color: gray;
/* flex: 1; */
text-align:center;
tab-index:none;
focus:auto;
/* display:none; */
/* decorator: image(radio) */
}
#rr_manual:not(:checked) ~ #rr_manual_input {
/* background: rgb(120,120,120); */
/* font-effect: outline(2dp black); */
display:none;
/* display:none; */
/* decorator: image(radio) */
}
input.radio:checked + label {
/* background: rgb(72, 102, 255); */
color: white;
border-bottom:1dp;
/* decorator: image(radio-checked) */
}
input.radio:hover + label {
color:#329696;
/* background: rgb(150,150,150); */
}
input.radio:focus + label {
color:#329696;
/* background: rgb(150,150,150); */
}
input.radio:checked:hover + label {
border-bottom:1dp;
/* background: rgb(150,150,150); */
}
tabset {
font:bold;
margin:1dp;
focus:auto;
nav-up:auto;
nav-down:auto;
nav-right:auto;
nav-left:auto;
}
tab {
padding:4dp;
background-color:rgb(120,120,120);
margin:2dp;
tab-index:auto;
focus:auto;
nav-up:auto;
nav-down:auto;
nav-right:auto;
nav-left:auto;
}
tab:hover {
color:#329696;
}
tab:selected {
border-top: 2dp;
border-color: white;
}
tab:focus {
color:#329696;
}
panel {
margin:1dp;
}
/* input.radio:checked:hover + label {
background: rgb(150,150,150);
} */
/* input.radio:checked:active {
decorator: image(radio-checked-active)
} */
/* input.checkbox {
decorator: image(checkbox)
}
input.checkbox:hover {
decorator: image(checkbox-hover)
}
input.checkbox:active {
decorator: image(checkbox-active)
}
input.checkbox:checked {
decorator: image(checkbox-checked)
}
input.checkbox:checked:hover {
decorator: image(checkbox-checked-hover)
}
input.checkbox:checked:active {
decorator: image(checkbox-checked-active)
} */
input.range {
height: 32dp;
margin:auto;
width:80%;
}
input.range slidertrack {
margin-top: 7dp;
height: 6dp;
image-color: #ecc;
/* decorator: ninepatch(range-track, range-track-inner, 1) */
background-color:white;
border-width:1dp;
border-color:black;
}
input.range sliderbar {
margin-left: -8dp;
margin-right: -8dp;
/* margin-top: -3dp; */
width: 20dp;
height: 20dp;
background-color:white;
border-color:black;
border-width:3dp;
border-radius:10dp;
/* decorator: image(range-bar) */
}
input.range sliderbar:hover,
input.range slidertrack:hover+sliderbar {
image-color: #cc0
}
input.range sliderbar:active,
input.range sliderbar:focus {
background-color:#329696;
}
input.range sliderarrowdec,
input.range sliderarrowinc {
/* width: 17dp;
height: 17dp;
margin-top: 6dp; */
display:none;
}
/* input.range sliderarrowdec {
decorator: image(range-dec)
}
input.range sliderarrowinc {
decorator: image(range-inc)
}
input.range sliderarrowdec:hover {
decorator: image(range-dec-hover)
}
input.range sliderarrowinc:hover {
decorator: image(range-inc-hover)
}
input.range sliderarrowdec:active {
decorator: image(range-dec-active)
}
input.range sliderarrowinc:active {
decorator: image(range-inc-active)
} */
thead tr {
height: 35dp;
/* decorator: tiled-horizontal(tableheader-l, tableheader-c, tableheader-r) */
}
thead td {
padding-top: 11dp
}
tbody {
margin-left: 5dp;
margin-right: 4dp;
padding-top: 4dp;
padding-bottom: 4dp
}
tbody tr {
margin-left: 9dp;
margin-right: 8dp;
color: #000
}
expand {
display: block;
margin: 1dp 0 1dp 5dp;
height: 17dp;
width: 17dp;
/* decorator: image(expand) */
}
/* expand:hover {
decorator: image(expand-hover)
}
expand:active {
decorator: image(expand-active)
}
expand.collapsed {
decorator: image(expand-collapsed)
}
expand.collapsed:hover {
decorator: image(expand-collapsed-hover)
}
expand.collapsed:active {
decorator: image(expand-collapsed-active)
} */
scrollbarvertical {
margin-top: -6dp;
margin-bottom: -6dp;
margin-right: -11dp;
width: 27dp
}
scrollbarvertical slidertrack {
/* decorator: tiled-vertical(slidertrack-t, slidertrack-c, slidertrack-b) */
}
scrollbarvertical slidertrack:active {
image-color: #aaa
}
scrollbarvertical sliderbar {
margin-left: 4dp;
width: 23dp;
min-height: 46dp;
/* decorator: tiled-vertical(sliderbar-t, sliderbar-c, sliderbar-b) */
}
/* scrollbarvertical sliderbar:hover {
decorator: tiled-vertical(sliderbar-hover-t, sliderbar-hover-c, sliderbar-hover-b)
} */
/* scrollbarvertical sliderbar:active {
decorator: tiled-vertical(sliderbar-active-t, sliderbar-active-c, sliderbar-active-b)
} */
scrollbarvertical sliderarrowdec,
scrollbarvertical sliderarrowinc {
width: 27dp;
height: 24dp
}
/* scrollbarvertical sliderarrowdec {
decorator: image(sliderarrowdec)
}
scrollbarvertical sliderarrowdec:hover {
decorator: image(sliderarrowdec-hover)
}
scrollbarvertical sliderarrowdec:active {
decorator: image(sliderarrowdec-active)
}
scrollbarvertical sliderarrowinc {
decorator: image(sliderarrowinc)
}
scrollbarvertical sliderarrowinc:hover {
decorator: image(sliderarrowinc-hover)
}
scrollbarvertical sliderarrowinc:active {
decorator: image(sliderarrowinc-active)
} */
scrollbarhorizontal {
width: 0;
height: 0
}
textarea scrollbarvertical {
cursor: arrow;
margin: 10dp 0 4dp 0;
width: 12dp
}
textarea scrollbarvertical slidertrack {
decorator: none
}
textarea scrollbarvertical sliderbar {
margin-left: 2dp;
width: 10dp;
min-height: 16dp
}
textarea scrollbarvertical sliderarrowdec,
textarea scrollbarvertical sliderarrowinc {
width: 0;
height: 0
}
textarea scrollbarhorizontal {
cursor: arrow;
margin-left: 7dp;
height: 12dp
}
textarea scrollbarhorizontal sliderbar {
background-color: rgba(188, 0, 0, .8);
height: 8dp;
min-width: 10dp
}
textarea scrollbarhorizontal sliderbar:hover {
background-color: rgba(184, 37, 0, .8)
}
textarea scrollbarhorizontal sliderbar:active {
background-color: rgba(119, 0, 0, .8)
}

View File

@ -19,6 +19,7 @@ namespace recomp {
enum class Menu {
Launcher,
Config,
None
};

View File

@ -26,6 +26,7 @@ bool sdl_event_filter(void* userdata, SDL_Event* event) {
ChangeWindow();
}
}
recomp::queue_event(*event);
break;
case SDL_EventType::SDL_CONTROLLERDEVICEADDED:
{

View File

@ -617,6 +617,7 @@ struct {
}
documents.emplace(recomp::Menu::Launcher, context->LoadDocument("assets/launcher.rml"));
documents.emplace(recomp::Menu::Config, context->LoadDocument("assets/config_menu.rml"));
}
} rml;
} UIContext;
@ -661,6 +662,7 @@ void init_hook(RT64::RenderInterface* interface, RT64::RenderDevice* device) {
{"LatoLatin-Bold.ttf", false},
{"LatoLatin-BoldItalic.ttf", false},
{"NotoEmoji-Regular.ttf", true},
{"promptfont/promptfont.ttf", false},
};
for (const FontFace& face : font_faces) {
@ -681,7 +683,7 @@ bool recomp::try_deque_event(SDL_Event& out) {
return ui_event_queue.try_dequeue(out);
}
std::atomic<recomp::Menu> open_menu = recomp::Menu::Launcher;
std::atomic<recomp::Menu> open_menu = recomp::Menu::Config;//Launcher;
void draw_hook(RT64::RenderCommandList* command_list, RT64::RenderTexture* swap_chain_texture) {
int num_keys;