diff options
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/text_edit.cpp | 7 | ||||
-rw-r--r-- | scene/gui/view_panner.cpp | 29 | ||||
-rw-r--r-- | scene/gui/view_panner.h | 1 |
3 files changed, 10 insertions, 27 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 3d426b8bf3..2f5c05859f 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -1072,12 +1072,7 @@ void TextEdit::_notification(int p_what) { if (rtl) { gutter_rect.position.x = size.width - gutter_rect.position.x - gutter_rect.size.x; } - - Variant args[3] = { line, g, Rect2(gutter_rect) }; - const Variant *argp[] = { &args[0], &args[1], &args[2] }; - Callable::CallError ce; - Variant ret; - gutter.custom_draw_callback.callp(argp, 3, ret, ce); + gutter.custom_draw_callback.call(line, g, Rect2(gutter_rect)); } } break; } diff --git a/scene/gui/view_panner.cpp b/scene/gui/view_panner.cpp index 6d1905f111..fc03f2d887 100644 --- a/scene/gui/view_panner.cpp +++ b/scene/gui/view_panner.cpp @@ -47,7 +47,7 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) float zoom_factor = mb->get_factor() <= 0 ? 1.0 : mb->get_factor(); zoom_factor = ((scroll_zoom_factor - 1.0) * zoom_factor) + 1.0; float zoom = (scroll_vec.x + scroll_vec.y) > 0 ? 1.0 / scroll_zoom_factor : scroll_zoom_factor; - callback_helper(zoom_callback, varray(zoom, mb->get_position(), p_event)); + zoom_callback.call(zoom, mb->get_position(), p_event); return true; } else { Vector2 panning = scroll_vec * mb->get_factor(); @@ -58,7 +58,7 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) } else if (mb->is_shift_pressed()) { panning = Vector2(panning.y, panning.x); } - callback_helper(pan_callback, varray(-panning * scroll_speed, p_event)); + pan_callback.call(-panning * scroll_speed, p_event); return true; } } else { @@ -71,14 +71,14 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) } else if (mb->is_shift_pressed()) { panning = Vector2(panning.y, panning.x); } - callback_helper(pan_callback, varray(-panning * scroll_speed, p_event)); + pan_callback.call(-panning * scroll_speed, p_event); return true; } else if (!mb->is_shift_pressed()) { // Compute the zoom factor. float zoom_factor = mb->get_factor() <= 0 ? 1.0 : mb->get_factor(); zoom_factor = ((scroll_zoom_factor - 1.0) * zoom_factor) + 1.0; float zoom = (scroll_vec.x + scroll_vec.y) > 0 ? 1.0 / scroll_zoom_factor : scroll_zoom_factor; - callback_helper(zoom_callback, varray(zoom, mb->get_position(), p_event)); + zoom_callback.call(zoom, mb->get_position(), p_event); return true; } } @@ -108,9 +108,9 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) if (mm.is_valid()) { if (is_dragging) { if (p_canvas_rect != Rect2()) { - callback_helper(pan_callback, varray(Input::get_singleton()->warp_mouse_motion(mm, p_canvas_rect), p_event)); + pan_callback.call(Input::get_singleton()->warp_mouse_motion(mm, p_canvas_rect), p_event); } else { - callback_helper(pan_callback, varray(mm->get_relative(), p_event)); + pan_callback.call(mm->get_relative(), p_event); } return true; } @@ -119,13 +119,13 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) Ref<InputEventMagnifyGesture> magnify_gesture = p_event; if (magnify_gesture.is_valid()) { // Zoom gesture - callback_helper(zoom_callback, varray(magnify_gesture->get_factor(), magnify_gesture->get_position(), p_event)); + zoom_callback.call(magnify_gesture->get_factor(), magnify_gesture->get_position(), p_event); return true; } Ref<InputEventPanGesture> pan_gesture = p_event; if (pan_gesture.is_valid()) { - callback_helper(pan_callback, varray(-pan_gesture->get_delta() * scroll_speed, p_event)); + pan_callback.call(-pan_gesture->get_delta() * scroll_speed, p_event); } Ref<InputEventScreenDrag> screen_drag = p_event; @@ -134,7 +134,7 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect) // This set of events also generates/is generated by // InputEventMouseButton/InputEventMouseMotion events which will be processed instead. } else { - callback_helper(pan_callback, varray(screen_drag->get_relative(), p_event)); + pan_callback.call(screen_drag->get_relative(), p_event); } } @@ -157,17 +157,6 @@ void ViewPanner::release_pan_key() { is_dragging = false; } -void ViewPanner::callback_helper(Callable p_callback, Vector<Variant> p_args) { - const Variant **argptr = (const Variant **)alloca(sizeof(Variant *) * p_args.size()); - for (int i = 0; i < p_args.size(); i++) { - argptr[i] = &p_args[i]; - } - - Variant result; - Callable::CallError ce; - p_callback.callp(argptr, p_args.size(), result, ce); -} - void ViewPanner::set_callbacks(Callable p_pan_callback, Callable p_zoom_callback) { pan_callback = p_pan_callback; zoom_callback = p_zoom_callback; diff --git a/scene/gui/view_panner.h b/scene/gui/view_panner.h index 60d36ca04c..5aec2d4f6b 100644 --- a/scene/gui/view_panner.h +++ b/scene/gui/view_panner.h @@ -68,7 +68,6 @@ private: Callable pan_callback; Callable zoom_callback; - void callback_helper(Callable p_callback, Vector<Variant> p_args); ControlScheme control_scheme = SCROLL_ZOOMS; public: |