fix: quick port to c3 0.8.2
This commit is contained in:
parent
73619fe6c5
commit
cd371b5ee7
2 changed files with 102 additions and 102 deletions
48
input.c3
48
input.c3
|
|
@ -1,7 +1,7 @@
|
|||
module ugui::sdl3::ren;
|
||||
|
||||
import std::io;
|
||||
import std::ascii;
|
||||
import std::core::ascii;
|
||||
import ugui;
|
||||
import sdl3;
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ fn bool? Ctx.handle_events(&ctx)
|
|||
bool quit = false;
|
||||
ugui::ModKeys mod_set, mod_reset;
|
||||
ugui::MouseButtons btn;
|
||||
sdl3::Event e;
|
||||
sdl3::SdlEvent e;
|
||||
|
||||
while (sdl3::pollEvent(&e)) {
|
||||
switch (e.type) {
|
||||
|
|
@ -28,18 +28,18 @@ fn bool? Ctx.handle_events(&ctx)
|
|||
|
||||
bool down = e.type == KEY_DOWN;
|
||||
switch (e.key.key) {
|
||||
case sdl3::KEY_RCTRL: mod_set.rctrl = down; mod_reset.rctrl = !down;
|
||||
case sdl3::KEY_LCTRL: mod_set.lctrl = down; mod_reset.lctrl = !down;
|
||||
case sdl3::KEY_RSHIFT: mod_set.rshift = down; mod_reset.rshift = !down;
|
||||
case sdl3::KEY_LSHIFT: mod_set.lshift = down; mod_reset.lshift = !down;
|
||||
case sdl3::KEY_BACKSPACE: mod_set.bkspc = down; mod_reset.bkspc = !down;
|
||||
case sdl3::KEY_DELETE: mod_set.del = down; mod_reset.del = !down;
|
||||
case sdl3::KEY_HOME: mod_set.home = down; mod_reset.home = !down;
|
||||
case sdl3::KEY_END: mod_set.end = down; mod_reset.end = !down;
|
||||
case sdl3::KEY_UP: mod_set.up = down; mod_reset.up = !down;
|
||||
case sdl3::KEY_DOWN: mod_set.down = down; mod_reset.down = !down;
|
||||
case sdl3::KEY_LEFT: mod_set.left = down; mod_reset.left = !down;
|
||||
case sdl3::KEY_RIGHT: mod_set.right = down; mod_reset.right = !down;
|
||||
case KEY_RCTRL: mod_set.rctrl = down; mod_reset.rctrl = !down;
|
||||
case KEY_LCTRL: mod_set.lctrl = down; mod_reset.lctrl = !down;
|
||||
case KEY_RSHIFT: mod_set.rshift = down; mod_reset.rshift = !down;
|
||||
case KEY_LSHIFT: mod_set.lshift = down; mod_reset.lshift = !down;
|
||||
case KEY_BACKSPACE: mod_set.bkspc = down; mod_reset.bkspc = !down;
|
||||
case KEY_DELETE: mod_set.del = down; mod_reset.del = !down;
|
||||
case KEY_HOME: mod_set.home = down; mod_reset.home = !down;
|
||||
case KEY_END: mod_set.end = down; mod_reset.end = !down;
|
||||
case KEY_UP: mod_set.up = down; mod_reset.up = !down;
|
||||
case KEY_DOWN: mod_set.down = down; mod_reset.down = !down;
|
||||
case KEY_LEFT: mod_set.left = down; mod_reset.left = !down;
|
||||
case KEY_RIGHT: mod_set.right = down; mod_reset.right = !down;
|
||||
}
|
||||
ctx.input_mod_keys(mod_set, true);
|
||||
ctx.input_mod_keys(mod_reset, false);
|
||||
|
|
@ -49,12 +49,12 @@ fn bool? Ctx.handle_events(&ctx)
|
|||
// do manual text input, bummer
|
||||
ModKeys mod = ctx.get_mod();
|
||||
if (e.type == KEY_DOWN && (mod.lctrl || mod.rctrl)) {
|
||||
if (ascii::is_alnum_m((uint)e.key.key)) {
|
||||
if (ascii::is_alnum((char)e.key.key)) {
|
||||
ctx.input_char((char)e.key.key);
|
||||
}
|
||||
}
|
||||
|
||||
if (e.type == KEY_DOWN && e.key.key == sdl3::KEY_RETURN) ctx.input_char('\n');
|
||||
if (e.type == KEY_DOWN && e.key.key == KEY_RETURN) ctx.input_char('\n');
|
||||
|
||||
case TEXT_INPUT:
|
||||
ctx.input_text_utf8(((ZString)e.text.text).str_view());
|
||||
|
|
@ -70,13 +70,13 @@ fn bool? Ctx.handle_events(&ctx)
|
|||
ctx.input_mouse_wheel((short)e.wheel.integer_x, (short)e.wheel.integer_y);
|
||||
case MOUSE_BUTTON_DOWN: nextcase;
|
||||
case MOUSE_BUTTON_UP:
|
||||
sdl3::MouseButtonFlags mb = sdl3::getMouseState(null, null);
|
||||
sdl3::SdlMouseButtonFlags mb = sdl3::getMouseState(null, null);
|
||||
btn = {
|
||||
.btn_left = !!(mb & sdl3::BUTTON_LMASK),
|
||||
.btn_right = !!(mb & sdl3::BUTTON_RMASK),
|
||||
.btn_middle = !!(mb & sdl3::BUTTON_MMASK),
|
||||
.btn_4 = !!(mb & sdl3::BUTTON_X1MASK),
|
||||
.btn_5 = !!(mb & sdl3::BUTTON_X2MASK),
|
||||
.btn_left = !!(mb & LMASK),
|
||||
.btn_right = !!(mb & RMASK),
|
||||
.btn_middle = !!(mb & MMASK),
|
||||
.btn_4 = !!(mb & X1MASK),
|
||||
.btn_5 = !!(mb & X2MASK),
|
||||
};
|
||||
ctx.input_mouse_button(btn);
|
||||
//case POLL_SENTINEL: break;
|
||||
|
|
@ -88,10 +88,10 @@ fn bool? Ctx.handle_events(&ctx)
|
|||
return quit;
|
||||
}
|
||||
|
||||
fn void pre(sdl3::Window* win) => sdl3::startTextInput(win);
|
||||
fn void pre(sdl3::SdlWindow* win) => sdl3::startTextInput(win);
|
||||
|
||||
// TODO: this has to be a function of Ctx if we want to set the fps internally
|
||||
fn void wait_events(uint timeout_ms = 0)
|
||||
fn void wait_events(int timeout_ms = 0)
|
||||
{
|
||||
sdl3::waitEventTimeout(null, timeout_ms);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue