Skip to content

Commit b84d565

Browse files
authored
Merge pull request #443 from wlx-team/feat-editbox
Editbox, wgui fixes, doc
2 parents 46f3a54 + 124d817 commit b84d565

File tree

26 files changed

+823
-187
lines changed

26 files changed

+823
-187
lines changed

dash-frontend/assets/gui/dashboard.xml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,18 @@
9393
position="absolute" width="100%" height="100%"
9494
gradient="radial" color="#44BBFF11" color2="#00000000" />
9595

96-
<div
97-
id="content"
98-
flex_direction="column"
99-
overflow_x="scroll"
100-
overflow_y="scroll"
101-
padding="16"
102-
gap="8"
103-
width="100%"
104-
min_height="100%"
105-
>
106-
<!-- filled-in at runtime -->
96+
<div overflow_x="scroll" overflow_y="scroll" width="100%" height="100%">
97+
<div
98+
id="content"
99+
flex_direction="column"
100+
padding="16"
101+
gap="8"
102+
width="100%"
103+
height="100%"
104+
>
105+
<!-- filled-in at runtime -->
106+
</div>
107107
</div>
108-
109108
<div position="absolute" id="popup_manager" width="100%" height="100%" />
110109
</rectangle>
111110
<!-- BOTTOM PANEL -->

dash-frontend/assets/gui/tab/apps.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
flex_direction="row"
4545
flex_wrap="wrap"
4646
gap="4"
47-
overflow_y="scroll"
4847
/>
4948
</elements>
5049
</layout>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<layout>
22
<elements>
33
<div id="running_games_list_parent" align_self="center" />
4-
<div id="game_list_parent" align_items="center" flex_direction="column" gap="8" overflow_y="scroll" />
4+
<div id="game_list_parent" align_items="center" flex_direction="column" gap="8" />
55
</elements>
66
</layout>

dash-frontend/src/util/wgui_simple.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use wgui::{
55
widget::label::{WidgetLabel, WidgetLabelParams},
66
};
77

8+
#[allow(dead_code)]
89
pub fn create_label(layout: &mut Layout, parent: WidgetID, content: Translation) -> anyhow::Result<()> {
910
let label = WidgetLabel::create(
1011
&mut layout.state.globals.get(),

dash-frontend/src/views/app_launcher.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ enum CompositorMode {
5050
enum Task {
5151
SetCompositor(CompositorMode),
5252
SetRes(ResMode),
53-
SetPos(PosMode), // TODO?
5453
SetOrientation(OrientationMode),
5554
SetAutoStart(bool),
5655
Launch,
@@ -295,7 +294,6 @@ impl View {
295294
match task {
296295
Task::SetCompositor(mode) => self.compositor_mode = mode,
297296
Task::SetRes(mode) => self.res_mode = mode,
298-
Task::SetPos(mode) => self.pos_mode = mode,
299297
Task::SetOrientation(mode) => self.orientation_mode = mode,
300298
Task::SetAutoStart(auto_start) => self.auto_start = auto_start,
301299
Task::Launch => self.action_launch(interface, data),

uidev/assets/gui/various_widgets.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,18 @@
5959
</div>
6060
</rectangle>
6161

62-
<rectangle macro="rect">
63-
<label text="Context menu test" />
64-
<Button id="button_context_menu" text="Show context menu" />
65-
</rectangle>
62+
<div>
63+
<rectangle macro="rect">
64+
<label text="Context menu test" />
65+
<Button id="button_context_menu" text="Show context menu" />
66+
</rectangle>
67+
<rectangle macro="rect">
68+
<label text="Editbox test" />
69+
<EditBox text="Initial text. Test, abcdef." width="400" />
70+
71+
<EditBox margin_left="42" margin_top="42" margin_bottom="40" width="200" />
72+
</rectangle>
73+
</div>
6674

6775
<rectangle macro="rect">
6876
<label text="visibility test" weight="bold" />

uidev/src/main.rs

Lines changed: 48 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
use glam::{vec2, Vec2};
2-
use std::sync::Arc;
3-
use testbed::{testbed_any::TestbedAny, Testbed};
1+
use glam::{Vec2, vec2};
2+
use std::{rc::Rc, sync::Arc};
3+
use testbed::{Testbed, testbed_any::TestbedAny};
4+
use tracing_subscriber::EnvFilter;
45
use tracing_subscriber::filter::LevelFilter;
56
use tracing_subscriber::layer::SubscriberExt;
67
use tracing_subscriber::util::SubscriberInitExt;
7-
use tracing_subscriber::EnvFilter;
88
use vulkan::init_window;
99
use vulkano::{
10+
Validated, VulkanError,
1011
command_buffer::CommandBufferUsage,
1112
format::Format,
12-
image::{view::ImageView, ImageUsage},
13+
image::{ImageUsage, view::ImageView},
1314
swapchain::{
14-
acquire_next_image, ColorSpace, CompositeAlpha, PresentMode, Surface, SurfaceInfo, Swapchain,
15-
SwapchainCreateInfo, SwapchainPresentInfo,
15+
ColorSpace, CompositeAlpha, PresentMode, Surface, SurfaceInfo, Swapchain, SwapchainCreateInfo,
16+
SwapchainPresentInfo, acquire_next_image,
1617
},
1718
sync::GpuFuture,
18-
Validated, VulkanError,
1919
};
2020
use wgui::{
21-
event::{MouseButtonIndex, MouseDownEvent, MouseMotionEvent, MouseUpEvent, MouseWheelEvent},
22-
gfx::{cmd::WGfxClearMode, WGfx},
21+
event::{MouseButtonEvent, MouseButtonIndex, MouseMotionEvent, MouseWheelEvent},
22+
gfx::{WGfx, cmd::WGfxClearMode},
2323
renderer_vk::{self},
2424
};
2525
use winit::{
@@ -32,7 +32,7 @@ use wlx_common::{audio, timestep::Timestep};
3232
use crate::{
3333
rate_limiter::RateLimiter,
3434
testbed::{
35-
testbed_dashboard::TestbedDashboard, testbed_generic::TestbedGeneric, TestbedUpdateParams,
35+
TestbedUpdateParams, testbed_dashboard::TestbedDashboard, testbed_generic::TestbedGeneric,
3636
},
3737
};
3838

@@ -174,7 +174,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
174174
testbed
175175
.layout()
176176
.push_event(
177-
&wgui::event::Event::MouseDown(MouseDownEvent {
177+
&wgui::event::Event::MouseDown(MouseButtonEvent {
178178
pos: mouse / scale,
179179
index: MouseButtonIndex::Left,
180180
device: 0,
@@ -187,7 +187,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
187187
testbed
188188
.layout()
189189
.push_event(
190-
&wgui::event::Event::MouseUp(MouseUpEvent {
190+
&wgui::event::Event::MouseUp(MouseButtonEvent {
191191
pos: mouse / scale,
192192
index: MouseButtonIndex::Left,
193193
device: 0,
@@ -221,33 +221,46 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
221221
..
222222
} => {
223223
if event.state == ElementState::Pressed {
224-
if event.physical_key == PhysicalKey::Code(KeyCode::F10) {
225-
debug_draw_enabled = !debug_draw_enabled;
226-
if debug_draw_enabled {
227-
log::info!(
228-
"Debug draw enabled\n\tAqua: widget boundary\n\tMagenta: Scissoring (separate render pass)"
229-
);
224+
if !event.repeat {
225+
if event.physical_key == PhysicalKey::Code(KeyCode::F10) {
226+
debug_draw_enabled = !debug_draw_enabled;
227+
if debug_draw_enabled {
228+
log::info!(
229+
"Debug draw enabled\n\tAqua: widget boundary\n\tMagenta: Scissoring (separate render pass)"
230+
);
231+
}
232+
testbed.layout().mark_redraw();
230233
}
231-
testbed.layout().mark_redraw();
232-
}
233234

234-
if event.physical_key == PhysicalKey::Code(KeyCode::F11) {
235-
testbed.layout().print_tree();
236-
}
235+
if event.physical_key == PhysicalKey::Code(KeyCode::F11) {
236+
testbed.layout().print_tree();
237+
}
237238

238-
if event.physical_key == PhysicalKey::Code(KeyCode::Equal) {
239-
scale *= 1.25;
240-
render_context
241-
.update_viewport(&mut shared_context, swapchain_size, scale)
242-
.unwrap();
243-
}
239+
if event.physical_key == PhysicalKey::Code(KeyCode::Equal) {
240+
scale *= 1.25;
241+
render_context
242+
.update_viewport(&mut shared_context, swapchain_size, scale)
243+
.unwrap();
244+
}
244245

245-
if event.physical_key == PhysicalKey::Code(KeyCode::Minus) {
246-
scale *= 0.75;
247-
render_context
248-
.update_viewport(&mut shared_context, swapchain_size, scale)
249-
.unwrap();
246+
if event.physical_key == PhysicalKey::Code(KeyCode::Minus) {
247+
scale *= 0.75;
248+
render_context
249+
.update_viewport(&mut shared_context, swapchain_size, scale)
250+
.unwrap();
251+
}
250252
}
253+
254+
testbed
255+
.layout()
256+
.push_event(
257+
&wgui::event::Event::TextInput(wgui::event::TextInputEvent {
258+
text: event.text.map(|text| Rc::from(text.as_str())),
259+
}),
260+
&mut (),
261+
&mut (),
262+
)
263+
.unwrap();
251264
}
252265
}
253266
Event::WindowEvent {

wayvr/src/gui/panel/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ use wgui::{
1414
drawing,
1515
event::{
1616
CallbackDataCommon, Event as WguiEvent, EventAlterables, EventCallback, EventListenerID,
17-
EventListenerKind, InternalStateChangeEvent, MouseButtonIndex, MouseDownEvent,
18-
MouseLeaveEvent, MouseMotionEvent, MouseUpEvent, MouseWheelEvent,
17+
EventListenerKind, InternalStateChangeEvent, MouseButtonEvent, MouseButtonIndex,
18+
MouseLeaveEvent, MouseMotionEvent, MouseWheelEvent,
1919
},
2020
gfx::cmd::WGfxClearMode,
2121
i18n::Translation,
@@ -416,13 +416,13 @@ impl<S: 'static> OverlayBackend for GuiPanel<S> {
416416
};
417417

418418
let e = if pressed {
419-
WguiEvent::MouseDown(MouseDownEvent {
419+
WguiEvent::MouseDown(MouseButtonEvent {
420420
pos: hit.uv * self.layout.content_size,
421421
index,
422422
device: hit.pointer,
423423
})
424424
} else {
425-
WguiEvent::MouseUp(MouseUpEvent {
425+
WguiEvent::MouseUp(MouseButtonEvent {
426426
pos: hit.uv * self.layout.content_size,
427427
index,
428428
device: hit.pointer,

wayvr/src/overlays/dashboard.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ use wayvr_ipc::{
88
};
99
use wgui::{
1010
event::{
11-
Event as WguiEvent, MouseButtonIndex, MouseDownEvent, MouseLeaveEvent, MouseMotionEvent,
12-
MouseUpEvent, MouseWheelEvent,
11+
Event as WguiEvent, MouseButtonEvent, MouseButtonIndex, MouseLeaveEvent, MouseMotionEvent,
12+
MouseWheelEvent,
1313
},
1414
gfx::cmd::WGfxClearMode,
1515
renderer_vk::context::Context as WguiContext,
@@ -247,13 +247,13 @@ impl OverlayBackend for DashFrontend {
247247
};
248248

249249
let e = if pressed {
250-
WguiEvent::MouseDown(MouseDownEvent {
250+
WguiEvent::MouseDown(MouseButtonEvent {
251251
pos: hit.uv * self.inner.layout.content_size,
252252
index,
253253
device: hit.pointer,
254254
})
255255
} else {
256-
WguiEvent::MouseUp(MouseUpEvent {
256+
WguiEvent::MouseUp(MouseButtonEvent {
257257
pos: hit.uv * self.inner.layout.content_size,
258258
index,
259259
device: hit.pointer,

wayvr/src/overlays/keyboard/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use regex::Regex;
3232
use slotmap::{SlotMap, new_key_type};
3333
use wgui::{
3434
drawing,
35-
event::{InternalStateChangeEvent, MouseButton, MouseButtonIndex},
35+
event::{InternalStateChangeEvent, MouseButtonEvent, MouseButtonIndex},
3636
};
3737
use wlx_common::windowing::{OverlayWindowState, Positioning};
3838
use wlx_common::{
@@ -390,7 +390,7 @@ fn handle_press(
390390
app: &mut AppState,
391391
key: &KeyState,
392392
keyboard: &mut KeyboardState,
393-
button: MouseButton,
393+
button: MouseButtonEvent,
394394
) {
395395
match &key.button_state {
396396
KeyButtonData::Key { vk, pressed } => {

0 commit comments

Comments
 (0)