summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/wx/c_src/wxe_return.cpp30
-rw-r--r--lib/wx/c_src/wxe_return.h6
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);