diff options
author | Juan Linietsky <reduzio@gmail.com> | 2017-05-20 12:38:03 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2017-05-20 17:05:38 -0300 |
commit | 5b3709d3096df737b8bb2344446be818b0389bfe (patch) | |
tree | 649a0989b1494f3c4687d59e503310f4e6bbeb40 /platform/haiku/haiku_direct_window.cpp | |
parent | 93f9a83062dbe74474a4a7928758c5cf5588238e (diff) | |
download | redot-engine-5b3709d3096df737b8bb2344446be818b0389bfe.tar.gz |
Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
Diffstat (limited to 'platform/haiku/haiku_direct_window.cpp')
-rw-r--r-- | platform/haiku/haiku_direct_window.cpp | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/platform/haiku/haiku_direct_window.cpp b/platform/haiku/haiku_direct_window.cpp index fb6d9afd85..4a9f8c780d 100644 --- a/platform/haiku/haiku_direct_window.cpp +++ b/platform/haiku/haiku_direct_window.cpp @@ -151,35 +151,35 @@ void HaikuDirectWindow::HandleMouseButton(BMessage *message) { } */ - InputEvent mouse_event; - mouse_event.type = InputEvent::MOUSE_BUTTON; + Ref<InputEvent> mouse_event; + mouse_event.type = Ref<InputEvent>::MOUSE_BUTTON; mouse_event.device = 0; mouse_event.mouse_button.mod = GetKeyModifierState(modifiers); - mouse_event.mouse_button.button_mask = GetMouseButtonState(buttons); - mouse_event.mouse_button.x = where.x; - mouse_event.mouse_button.y = where.y; + mouse_event->get_button_mask() = GetMouseButtonState(buttons); + mouse_event->get_pos().x = where.x; + mouse_event->get_pos().y = where.y; mouse_event.mouse_button.global_x = where.x; mouse_event.mouse_button.global_y = where.y; switch (button) { default: case B_PRIMARY_MOUSE_BUTTON: - mouse_event.mouse_button.button_index = 1; + mouse_event->get_button_index() = 1; break; case B_SECONDARY_MOUSE_BUTTON: - mouse_event.mouse_button.button_index = 2; + mouse_event->get_button_index() = 2; break; case B_TERTIARY_MOUSE_BUTTON: - mouse_event.mouse_button.button_index = 3; + mouse_event->get_button_index() = 3; break; } - mouse_event.mouse_button.pressed = (message->what == B_MOUSE_DOWN); + mouse_event->is_pressed() = (message->what == B_MOUSE_DOWN); - if (message->what == B_MOUSE_DOWN && mouse_event.mouse_button.button_index == 1) { + if (message->what == B_MOUSE_DOWN && mouse_event->get_button_index() == 1) { int32 clicks = message->FindInt32("clicks"); if (clicks > 1) { @@ -207,12 +207,12 @@ void HaikuDirectWindow::HandleMouseMoved(BMessage *message) { Point2i rel = pos - last_mouse_position; - InputEvent motion_event; - motion_event.type = InputEvent::MOUSE_MOTION; + Ref<InputEvent> motion_event; + motion_event.type = Ref<InputEvent>::MOUSE_MOTION; motion_event.device = 0; motion_event.mouse_motion.mod = GetKeyModifierState(modifiers); - motion_event.mouse_motion.button_mask = GetMouseButtonState(buttons); + motion_event->get_button_mask() = GetMouseButtonState(buttons); motion_event.mouse_motion.x = pos.x; motion_event.mouse_motion.y = pos.y; input->set_mouse_position(pos); @@ -221,8 +221,8 @@ void HaikuDirectWindow::HandleMouseMoved(BMessage *message) { motion_event.mouse_motion.speed_x = input->get_last_mouse_speed().x; motion_event.mouse_motion.speed_y = input->get_last_mouse_speed().y; - motion_event.mouse_motion.relative_x = rel.x; - motion_event.mouse_motion.relative_y = rel.y; + motion_event->get_relative().x = rel.x; + motion_event->get_relative().y = rel.y; last_mouse_position = pos; @@ -235,22 +235,22 @@ void HaikuDirectWindow::HandleMouseWheelChanged(BMessage *message) { return; } - InputEvent mouse_event; - mouse_event.type = InputEvent::MOUSE_BUTTON; + Ref<InputEvent> mouse_event; + mouse_event.type = Ref<InputEvent>::MOUSE_BUTTON; mouse_event.device = 0; - mouse_event.mouse_button.button_index = wheel_delta_y < 0 ? 4 : 5; + mouse_event->get_button_index() = wheel_delta_y < 0 ? 4 : 5; mouse_event.mouse_button.mod = GetKeyModifierState(last_key_modifier_state); - mouse_event.mouse_button.button_mask = last_button_mask; - mouse_event.mouse_button.x = last_mouse_position.x; - mouse_event.mouse_button.y = last_mouse_position.y; + mouse_event->get_button_mask() = last_button_mask; + mouse_event->get_pos().x = last_mouse_position.x; + mouse_event->get_pos().y = last_mouse_position.y; mouse_event.mouse_button.global_x = last_mouse_position.x; mouse_event.mouse_button.global_y = last_mouse_position.y; - mouse_event.mouse_button.pressed = true; + mouse_event->is_pressed() = true; input->parse_input_event(mouse_event); - mouse_event.mouse_button.pressed = false; + mouse_event->is_pressed() = false; input->parse_input_event(mouse_event); } @@ -271,13 +271,13 @@ void HaikuDirectWindow::HandleKeyboardEvent(BMessage *message) { return; } - InputEvent event; - event.type = InputEvent::KEY; + Ref<InputEvent> event; + event.type = Ref<InputEvent>::KEY; event.device = 0; event.key.mod = GetKeyModifierState(modifiers); - event.key.pressed = (message->what == B_KEY_DOWN); - event.key.scancode = KeyMappingHaiku::get_keysym(raw_char, key); - event.key.echo = message->HasInt32("be:key_repeat"); + event->is_pressed() = (message->what == B_KEY_DOWN); + event->get_scancode() = KeyMappingHaiku::get_keysym(raw_char, key); + event->is_echo() = message->HasInt32("be:key_repeat"); event.key.unicode = 0; const char *bytes = NULL; @@ -286,9 +286,9 @@ void HaikuDirectWindow::HandleKeyboardEvent(BMessage *message) { } //make it consistent across platforms. - if (event.key.scancode == KEY_BACKTAB) { - event.key.scancode = KEY_TAB; - event.key.mod.shift = true; + if (event->get_scancode() == KEY_BACKTAB) { + event->get_scancode() = KEY_TAB; + event->get_shift() = true; } input->parse_input_event(event); @@ -308,13 +308,13 @@ void HaikuDirectWindow::HandleKeyboardModifierEvent(BMessage *message) { int32 key = old_modifiers ^ modifiers; - InputEvent event; - event.type = InputEvent::KEY; + Ref<InputEvent> event; + event.type = Ref<InputEvent>::KEY; event.device = 0; event.key.mod = GetKeyModifierState(modifiers); - event.key.pressed = ((modifiers & key) != 0); - event.key.scancode = KeyMappingHaiku::get_modifier_keysym(key); - event.key.echo = false; + event->is_pressed() = ((modifiers & key) != 0); + event->get_scancode() = KeyMappingHaiku::get_modifier_keysym(key); + event->is_echo() = false; event.key.unicode = 0; input->parse_input_event(event); |