Skip to content

Commit c5a5215

Browse files
author
N3xoX1
committed
Add System config screen
1 parent b0f36ca commit c5a5215

15 files changed

Lines changed: 390 additions & 90 deletions

lang/english/css/main_window.css

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,6 @@ ul#menu-bar
110110
font-family: 'Segoe UI', Arial, sans-serif;
111111
font-size: 0.9em;
112112
font-weight: 100;
113-
}
114-
115-
ul#menu-bar
116-
{
117113
behavior:menu-bar;
118114
flow: horizontal;
119115
padding: 0;
@@ -122,7 +118,7 @@ ul#menu-bar
122118

123119
ul#menu-bar > li
124120
{
125-
padding: 0.5em 0.5em 0.1em 0.5em;
121+
padding: 0.25em 0.5em 0.1em 0.5em;
126122
border: 1px solid transparent;
127123
margin:0;
128124
white-space:nowrap;
@@ -147,10 +143,11 @@ menu
147143
flow: vertical;
148144
display:none;
149145
margin:0;
150-
padding:0;
146+
padding: 0.2em;
151147
max-width:max-content;
152148
background: #31363b;
153149
color: #eff0f1;
150+
border: 1px solid #434242;
154151
}
155152

156153
@media (menu-animation-supported) {
@@ -172,7 +169,7 @@ menu li
172169
vertical-align:middle;
173170
foreground-repeat: no-repeat;
174171
foreground-position: left 2px top 50%;
175-
padding: 0.7em 1.8em 0.7em 1.3em;
172+
padding: 0.2em 1.8em 0.2em 1.3em;
176173
margin: 0;
177174
}
178175

@@ -200,6 +197,12 @@ menu li:has-child-of-type(menu):rtl
200197
foreground-position: top 50% left 2px;
201198
}
202199

200+
hr
201+
{
202+
padding: 0;
203+
margin: 0.2em 0;
204+
}
205+
203206
#MainContents
204207
{
205208
width: 100%%;
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
<html window-frame="solid-with-shadow" window-icon="window-icon.png">
2+
<head>
3+
<link href="main_window.css" rel="stylesheet" type="text/css" />
4+
<link href="input_config.css" rel="stylesheet" type="text/css" />
5+
<title>NxEmu Configuration</title>
6+
<style>
7+
#SettingsPage
8+
{
9+
flow: horizontal;
10+
width: 100%%;
11+
height: 100%%;
12+
}
13+
14+
#MainTabNav {
15+
width: 9em;
16+
height: 100%%;
17+
border: 1px solid #54575b;
18+
border-radius: 0.5em;
19+
background-color: #232629;
20+
margin: 0 0.4em 0 0;
21+
color: #ffffff;
22+
font-size: 0.9em;
23+
}
24+
25+
#MainTabNav > Page:first-child
26+
{
27+
border-radius: 0.5em 0.5em 0 0;
28+
}
29+
30+
#MainTabNav > Page
31+
{
32+
padding: 0.2em 0.5em;
33+
}
34+
35+
#MainTabNav > Page:visited
36+
{
37+
background: #287399;
38+
}
39+
40+
#ConfigContents {
41+
width: 100%%;
42+
height: 100%%;
43+
color: #ffffff;
44+
}
45+
46+
.checkbox-row,
47+
.slider-row
48+
{
49+
margin: 0 0 1em 0;
50+
}
51+
52+
.form-row .left,
53+
.form-row .right
54+
{
55+
width: 50%%;
56+
display: inline-block;
57+
}
58+
59+
@set styled-select < std-select-dropdown {
60+
:root {
61+
color: #FFF;
62+
padding: 0.1em;
63+
margin: 0 0 0.3em 0;
64+
width: 100%%;
65+
border: 1px solid #54575b;
66+
border-radius: .2em;
67+
background: #2F2F31;
68+
}
69+
:root:focus,
70+
:root:active {
71+
border-color: #3daee9;
72+
}
73+
:root:hover {
74+
background: #3C3C3C;
75+
}
76+
:root > popup.list {
77+
background-color: #2B2B2B;
78+
border-color: #1F1F1F;
79+
color: #FFF;
80+
}
81+
:root option {
82+
vertical-align: middle;
83+
padding: 0.3em;
84+
}
85+
:root > button {
86+
fill: #FFF;
87+
}
88+
}
89+
select:not([type]) {
90+
style-set: styled-select;
91+
}
92+
slider {
93+
display: inline-block;
94+
style-set: std-hslider;
95+
}
96+
97+
@set std-hslider < std-hslider-base {
98+
:root {
99+
background: #565a5e;
100+
padding: 7dip;
101+
background-clip: content-box;
102+
background-image: url(stock:block);
103+
background-repeat: no-repeat;
104+
background-position: 0 0;
105+
fill: color(accent);
106+
width: 8em;
107+
height: 0.3em;
108+
background-size: var(slider-position, 0px) 0.3em; // "value" part
109+
}
110+
:root > knob {
111+
size: 16dip;
112+
box-shadow: #aaa 1dip 1dip 1dip;
113+
background: color(accent);
114+
foreground: none;
115+
border: none;
116+
border-radius: 8dip;
117+
padding: 0;
118+
}
119+
120+
:root > knob::marker {
121+
content: parent-attr(value);
122+
size: 32dip 36dip;
123+
line-height: 32dip;
124+
text-align: center;
125+
background: no-repeat
126+
url(path:M8 2.1c1.1 0 2.2 0.5 3 1.3 0.8 0.9 1.3 1.9 1.3 3.1s-0.5 2.5-1.3 3.3l-3 3.1-3-3.1c-0.8-0.8-1.3-2-1.3-3.3 0-1.2 0.4-2.2 1.3-3.1 0.8-0.8 1.9-1.3 3-1.3z);
127+
background-size: 32dip 36dip;
128+
fill: color(lighten4);
129+
stroke: none;
130+
transform: translate(-8dip, -100%) scale(0);
131+
transition: transform 160ms;
132+
transform-origin: 50% 100%;
133+
filter: drop-shadow(1dip, 1dip, 1dip, #999);
134+
}
135+
136+
:root:focus > knob::marker,
137+
:root:hover > knob::marker {
138+
transform: translate(-8dip, -100%) scale(1);
139+
}
140+
}
141+
142+
input[type="checkbox"] {
143+
appearance:none;
144+
height: 1em;
145+
width: 1em;
146+
border: 1px solid #818183;
147+
background: none;
148+
border-radius: 0.3em;
149+
}
150+
151+
input[type="checkbox"]:checked {
152+
background: no-repeat 50% 50%;
153+
background-image: url(stock:checkmark);
154+
background-size: 0.7em;
155+
}
156+
</style>
157+
</head>
158+
<header>
159+
<window-caption role=window-caption><img src="window-icon-32.png" /><span>NxEmu Configuration</span></window-caption>
160+
<window-buttons>
161+
<window-button role="window-close"></window-button>
162+
</window-buttons>
163+
</header>
164+
<body>
165+
<div id="SettingsPage">
166+
<PageNav target="ConfigContents" id="MainTabNav">
167+
<Page contents="system_config_audio.html" label="Audio" Name="Audio" />
168+
</PageNav>
169+
<div id="ConfigContents" />
170+
</div>
171+
<div class="footer">
172+
<button role="window-close">OK</button>
173+
<button role="window-close">Cancel</button>
174+
</div>
175+
</body>
176+
</html>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<div class="input-group">
2+
<div class="group-title">Audio</div>
3+
<div class="form-row">
4+
<div class="left"><label for="audioOutputEngine">Output Engine:</label></div>
5+
<div class="right"><select id="audioOutputEngine"></select></div>
6+
</div>
7+
<div class="form-row">
8+
<div class="left"><label for="audioOutputDevice">Output Device:</label></div>
9+
<div class="right"><select id="audioOutputDevice"></select></div>
10+
</div>
11+
<div class="form-row">
12+
<div class="left"><label for="inputDevice">Input Device:</label></div>
13+
<div class="right"><select id="inputDevice"></select></div>
14+
</div>
15+
<div class="form-row">
16+
<div class="left"><label for="soundMode">Sound Output Mode:</label></div>
17+
<div class="right"><select id="soundMode"></select></div>
18+
</div>
19+
<div class="form-row slider-row">
20+
<div class="left"><label for="volume">Volume:</label></div>
21+
<div class="right"><input type="hslider" id="Volume" min="0" max="100" value="200" style="width: 20em" /><span id="VolumeDisplay">100%</span></div>
22+
</div>
23+
<div class="form-row checkbox-row">
24+
<div class="checkbox"><input type="checkbox" id="muteAudio"><label for="muteAudio">Mute audio</label></div>
25+
</div>
26+
<div class="form-row checkbox-row">
27+
<div class="checkbox"><input type="checkbox" id="muteBackground"><label for="muteBackground">Mute audio when in background</label></div>
28+
</div>
29+
</div>
30+

src/nxemu/main.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
#include <nxemu-core/version.h>
88
#include <sciter_ui.h>
99
#include <widgets/menubar.h>
10+
#include <widgets/page_nav.h>
1011
#include <windows.h>
1112

1213
void RegisterWidgets(ISciterUI & sciterUI)
1314
{
14-
WidgetMenuBar::Register(sciterUI);
15+
Register_WidgetMenuBar(sciterUI);
16+
Register_WidgetPageNav(sciterUI);
1517
}
1618

1719
int WINAPI WinMain(_In_ HINSTANCE /*hInstance*/, _In_opt_ HINSTANCE /*hPrevInstance*/, _In_ LPSTR /*lpszArgs*/, _In_ int /*nWinMode*/)

src/nxemu/nxemu.vcxproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,19 @@
4040
<ClCompile Include="user_interface\menu_item.cpp" />
4141
<ClCompile Include="user_interface\notification.cpp" />
4242
<ClCompile Include="user_interface\sciter_main_window.cpp" />
43-
<ClCompile Include="user_interface\settings\config_setting_section.cpp" />
43+
<ClCompile Include="user_interface\settings\system_config.cpp" />
4444
<ClCompile Include="user_interface\settings\input_config.cpp" />
45+
<ClCompile Include="user_interface\settings\system_config_audio.cpp" />
4546
</ItemGroup>
4647
<ItemGroup>
4748
<ClInclude Include="settings\ui_settings.h" />
4849
<ClInclude Include="user_interface\menu_item.h" />
4950
<ClInclude Include="user_interface\notification.h" />
5051
<ClInclude Include="user_interface\resource.h" />
5152
<ClInclude Include="user_interface\sciter_main_window.h" />
52-
<ClInclude Include="user_interface\settings\config_setting_section.h" />
53+
<ClInclude Include="user_interface\settings\system_config.h" />
5354
<ClInclude Include="user_interface\settings\input_config.h" />
55+
<ClInclude Include="user_interface\settings\system_config_audio.h" />
5456
</ItemGroup>
5557
<ItemGroup>
5658
<ProjectReference Include="..\..\external\sciterui\src\sciterui\sciterui.vcxproj">

src/nxemu/nxemu.vcxproj.filters

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,18 @@
4545
<ClCompile Include="user_interface\notification.cpp">
4646
<Filter>Source Files\user_interface</Filter>
4747
</ClCompile>
48-
<ClCompile Include="user_interface\settings\config_setting_section.cpp">
49-
<Filter>Source Files\user_interface\settings</Filter>
50-
</ClCompile>
5148
<ClCompile Include="user_interface\sciter_main_window.cpp">
5249
<Filter>Source Files\user_interface</Filter>
5350
</ClCompile>
5451
<ClCompile Include="user_interface\settings\input_config.cpp">
5552
<Filter>Source Files\user_interface\settings</Filter>
5653
</ClCompile>
54+
<ClCompile Include="user_interface\settings\system_config.cpp">
55+
<Filter>Source Files\user_interface\settings</Filter>
56+
</ClCompile>
57+
<ClCompile Include="user_interface\settings\system_config_audio.cpp">
58+
<Filter>Source Files\user_interface\settings</Filter>
59+
</ClCompile>
5760
</ItemGroup>
5861
<ItemGroup>
5962
<ClInclude Include="user_interface\resource.h">
@@ -68,15 +71,18 @@
6871
<ClInclude Include="user_interface\notification.h">
6972
<Filter>Header Files\user_interface</Filter>
7073
</ClInclude>
71-
<ClInclude Include="user_interface\settings\config_setting_section.h">
72-
<Filter>Header Files\user_interface\settings</Filter>
73-
</ClInclude>
7474
<ClInclude Include="user_interface\sciter_main_window.h">
7575
<Filter>Header Files\user_interface</Filter>
7676
</ClInclude>
7777
<ClInclude Include="user_interface\settings\input_config.h">
7878
<Filter>Header Files\user_interface\settings</Filter>
7979
</ClInclude>
80+
<ClInclude Include="user_interface\settings\system_config.h">
81+
<Filter>Header Files\user_interface\settings</Filter>
82+
</ClInclude>
83+
<ClInclude Include="user_interface\settings\system_config_audio.h">
84+
<Filter>Header Files\user_interface\settings</Filter>
85+
</ClInclude>
8086
</ItemGroup>
8187
<ItemGroup>
8288
<ResourceCompile Include="user_interface\nxemu.rc">

0 commit comments

Comments
 (0)