File 3291-Change-the-taskbar-api-to-be-forward-compat.patch of Package erlang
From 78c67c71f99fb4c5f47220f49cbe1f788eb176ee Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Mon, 7 Dec 2020 09:58:09 +0100
Subject: [PATCH] Change the taskbar api to be forward compat
The API will change to an option list in OTP-24,
so change the API now before it is used.
---
lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl | 15 +++++++++------
lib/wx/examples/simple/menu.erl | 4 +---
lib/wx/src/gen/wxTaskBarIcon.erl | 15 +++++++++------
3 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl b/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
index 71e756157f..cde9c5ead6 100644
--- a/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
+++ b/lib/wx/api_gen/wx_extra/wxTaskBarIcon.erl
@@ -31,12 +31,15 @@ new() ->
%% <pre>Callback() -> term()</pre>
%%
%% See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconwxtaskbaricon">external documentation</a>.
--spec new(function()) -> wxTaskBarIcon().
-new(F) when is_function(F)->
- Fun = fun([_]) ->
- #wx_ref{type=wxMenu,ref=ThisRef} = F(),
- <<ThisRef:32/?UI>>
- end,
+-spec new([Option]) -> wxTaskBarIcon() when
+ Option :: {'createPopupMenu', fun(() -> wxMenu:wxMenu())}.
+new([]) ->
+ new();
+new([{createPopupMenu, F}]) when is_function(F) ->
+ Fun = fun([_]) ->
+ #wx_ref{type=wxMenu,ref=ThisRef} = F(),
+ <<ThisRef:32/?UI>>
+ end,
BinFun = <<(wxe_util:get_cbId(Fun)):32/?UI, 0:32>>,
wxe_util:construct(?wxTaskBarIcon_new, BinFun).
wxTaskBarIcon_new>>
diff --git a/lib/wx/examples/simple/menu.erl b/lib/wx/examples/simple/menu.erl
index 6765af2cc3..a81a1a6efa 100644
--- a/lib/wx/examples/simple/menu.erl
+++ b/lib/wx/examples/simple/menu.erl
@@ -90,9 +90,7 @@
start() ->
Wx = wx:new(),
Frame = wx:batch(fun() -> create_frame(Wx) end),
- Taskbar = wxTaskBarIcon:new(fun() ->
- create_dummy_menu()
- end),
+ Taskbar = wxTaskBarIcon:new([{createPopupMenu, fun() -> create_dummy_menu() end}]),
wxWindow:show(Frame),
Path = filename:dirname(code:which(?MODULE)),
wxTaskBarIcon:setIcon(Taskbar, wxIcon:new(filename:join(Path,"sample.xpm"), [{type, ?wxBITMAP_TYPE_XPM}])),
diff --git a/lib/wx/src/gen/wxTaskBarIcon.erl b/lib/wx/src/gen/wxTaskBarIcon.erl
index 66888abcd1..2f06d906ea 100644
--- a/lib/wx/src/gen/wxTaskBarIcon.erl
+++ b/lib/wx/src/gen/wxTaskBarIcon.erl
@@ -50,12 +50,15 @@ new() ->
%% <pre>Callback() -> term()</pre>
%%
%% See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconwxtaskbaricon">external documentation</a>.
--spec new(function()) -> wxTaskBarIcon().
-new(F) when is_function(F)->
- Fun = fun([_]) ->
- #wx_ref{type=wxMenu,ref=ThisRef} = F(),
- <<ThisRef:32/?UI>>
- end,
+-spec new([Option]) -> wxTaskBarIcon() when
+ Option :: {'createPopupMenu', fun(() -> wxMenu:wxMenu())}.
+new([]) ->
+ new();
+new([{createPopupMenu, F}]) when is_function(F) ->
+ Fun = fun([_]) ->
+ #wx_ref{type=wxMenu,ref=ThisRef} = F(),
+ <<ThisRef:32/?UI>>
+ end,
BinFun = <<(wxe_util:get_cbId(Fun)):32/?UI, 0:32>>,
wxe_util:construct(?wxTaskBarIcon_new, BinFun).
%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxtaskbaricon.html#wxtaskbariconpopupmenu">external documentation</a>.
--
2.26.2