summaryrefslogtreecommitdiffstats
path: root/scene/gui
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/text_edit.cpp7
-rw-r--r--scene/gui/view_panner.cpp29
-rw-r--r--scene/gui/view_panner.h1
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: