aboutsummaryrefslogtreecommitdiffstats
path: root/src/sdl_window.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdl_window.erl')
-rw-r--r--src/sdl_window.erl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sdl_window.erl b/src/sdl_window.erl
index 802e20c..24a4622 100644
--- a/src/sdl_window.erl
+++ b/src/sdl_window.erl
@@ -45,6 +45,7 @@
-export([set_display_mode/2]).
-export([set_fullscreen/2]).
-export([set_gamma_ramp/4]).
+-export([set_hit_test_callback/3]).
-export([set_icon/2]).
-export([set_max_size/3]).
-export([set_min_size/3]).
@@ -55,6 +56,7 @@
-export([set_size/3]).
-export([set_title/2]).
-export([show/1]).
+-export([unset_hit_test_callback/1]).
-opaque window() :: <<>>.
-export_type([window/0]).
@@ -237,6 +239,11 @@ set_gamma_ramp(Window, Red, Green, Blue) ->
esdl2:set_window_gamma_ramp(Window, Red, Green, Blue),
receive {'_nif_thread_ret_', Ret} -> Ret end.
+-spec set_hit_test_callback(window(), module(), atom()) -> ok | sdl:error().
+set_hit_test_callback(Window, Module, Function) ->
+ esdl2:set_window_hit_test(Window, Module, Function),
+ receive {'_nif_thread_ret_', Ret} -> Ret end.
+
-spec set_icon(window(), sdl_surface:surface()) -> ok.
set_icon(Window, Surface) ->
esdl2:set_window_icon(Window, Surface),
@@ -279,3 +286,8 @@ set_title(Window, Title) ->
-spec show(window()) -> ok.
show(Window) ->
esdl2:show_window(Window).
+
+-spec unset_hit_test_callback(window()) -> ok | sdl:error().
+unset_hit_test_callback(Window) ->
+ esdl2:set_window_hit_test_remove(Window),
+ receive {'_nif_thread_ret_', Ret} -> Ret end.