diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2021-05-17 17:42:29 +0200 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2021-05-17 17:43:40 +0200 |
commit | 3fc6d0cd05f1c52825698e8807c706ed80c22da5 (patch) | |
tree | 01523cc5445c4628cabd4289337e879ad170ed0c | |
parent | 583cba31eb09c14abd0b217fe7ac2e9a60425d51 (diff) | |
download | erlang-3fc6d0cd05f1c52825698e8807c706ed80c22da5.tar.gz |
wx: Fix compile error
Make it compile when wxWidgets is built with "-enable-std".
Fixes GH-4834
-rw-r--r-- | lib/wx/c_src/wxe_return.cpp | 30 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_return.h | 6 |
2 files changed, 33 insertions, 3 deletions
diff --git a/lib/wx/c_src/wxe_return.cpp b/lib/wx/c_src/wxe_return.cpp index 7c3cab342a..bfd5fe3013 100644 --- a/lib/wx/c_src/wxe_return.cpp +++ b/lib/wx/c_src/wxe_return.cpp @@ -183,12 +183,38 @@ ERL_NIF_TERM wxeReturn::make(wxArrayString val) { return tail; } -ERL_NIF_TERM wxeReturn::make_list_objs(const wxObjectList& list, WxeApp *app, const char *cname) +ERL_NIF_TERM wxeReturn::make_list_objs(const wxSizerItemList& list, WxeApp *app, const char *cname) { ERL_NIF_TERM head, tail; ERL_NIF_TERM class_name = enif_make_atom(env, cname); tail = enif_make_list(env, 0); - for(wxObjectList::const_reverse_iterator it = list.rbegin(); it != list.rend(); ++it) { + for(wxSizerItemList::const_reverse_iterator it = list.rbegin(); it != list.rend(); ++it) { + void * ResultTmp = *it; + head = make_ref(app->getRef(ResultTmp,memenv), class_name); + tail = enif_make_list_cell(env, head, tail); + } + return tail; +} + +ERL_NIF_TERM wxeReturn::make_list_objs(const wxMenuItemList& list, WxeApp *app, const char *cname) +{ + ERL_NIF_TERM head, tail; + ERL_NIF_TERM class_name = enif_make_atom(env, cname); + tail = enif_make_list(env, 0); + for(wxMenuItemList::const_reverse_iterator it = list.rbegin(); it != list.rend(); ++it) { + void * ResultTmp = *it; + head = make_ref(app->getRef(ResultTmp,memenv), class_name); + tail = enif_make_list_cell(env, head, tail); + } + return tail; +} + +ERL_NIF_TERM wxeReturn::make_list_objs(const wxWindowList& list, WxeApp *app, const char *cname) +{ + ERL_NIF_TERM head, tail; + ERL_NIF_TERM class_name = enif_make_atom(env, cname); + tail = enif_make_list(env, 0); + for(wxWindowList::const_reverse_iterator it = list.rbegin(); it != list.rend(); ++it) { void * ResultTmp = *it; head = make_ref(app->getRef(ResultTmp,memenv), class_name); tail = enif_make_list_cell(env, head, tail); diff --git a/lib/wx/c_src/wxe_return.h b/lib/wx/c_src/wxe_return.h index 7f4a846a04..05509f6d88 100644 --- a/lib/wx/c_src/wxe_return.h +++ b/lib/wx/c_src/wxe_return.h @@ -62,7 +62,11 @@ public: ERL_NIF_TERM make_ext2term(wxETreeItemData * term); ERL_NIF_TERM make_list_strings(size_t size, wxString* atomName); - ERL_NIF_TERM make_list_objs(const wxObjectList& wx_list, WxeApp *app, const char *cname); + + ERL_NIF_TERM make_list_objs(const wxWindowList& wx_list, WxeApp *app, const char *cname); + ERL_NIF_TERM make_list_objs(const wxSizerItemList& wx_list, WxeApp *app, const char *cname); + ERL_NIF_TERM make_list_objs(const wxMenuItemList& wx_list, WxeApp *app, const char *cname); + ERL_NIF_TERM make_array_objs(wxGridCellCoordsArray& arr); // ERL_NIF_TERM make_array_objs(const wxList& wx_list, WxeApp *app, const char *cname); ERL_NIF_TERM make_array_objs(wxArrayTreeItemIds& arr); |