summaryrefslogtreecommitdiff
path: root/lib/wx/c_src/wxe_nif.c
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2020-10-16 13:57:25 +0200
committerDan Gudmundsson <dgud@erlang.org>2020-12-21 11:51:56 +0100
commit9f9dba1cb5860adbea63fc668a02fed00a6e847a (patch)
tree9bd139d427c84800bbe26c183304a33341d0d3dd /lib/wx/c_src/wxe_nif.c
parent2d41154f6b2cd7413c97af69a45862b472625d5f (diff)
downloaderlang-9f9dba1cb5860adbea63fc668a02fed00a6e847a.tar.gz
Build all wx consts
So a lookup on atom can be done. Also test that the integer values in wx.hrl don't change when it is run on different backends. Make changes to the above is true.
Diffstat (limited to 'lib/wx/c_src/wxe_nif.c')
-rw-r--r--lib/wx/c_src/wxe_nif.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/wx/c_src/wxe_nif.c b/lib/wx/c_src/wxe_nif.c
index 26551b1af0..e923f1146d 100644
--- a/lib/wx/c_src/wxe_nif.c
+++ b/lib/wx/c_src/wxe_nif.c
@@ -33,6 +33,9 @@ ERL_NIF_TERM WXE_ATOM_error;
ERL_NIF_TERM WXE_ATOM_wx_ref;
ERL_NIF_TERM WXE_ATOM__wx_invoke_cb_;
+ERL_NIF_TERM WXE_ATOM_define;
+ERL_NIF_TERM WXE_ATOM_global;
+
ERL_NIF_TERM WXE_ATOM_wxWindow;
ERL_NIF_TERM WXE_ATOM_wxSizer;
@@ -159,6 +162,13 @@ static ERL_NIF_TERM wxe_debug_driver(ErlNifEnv* env, int argc, const ERL_NIF_TER
}
+static ERL_NIF_TERM wxe_get_consts(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
+{
+ meta_command(env, WXE_GET_CONSTS, NULL);
+ return WXE_ATOM_ok;
+}
+
+
// Callback
static void wxe_destroy_env(ErlNifEnv* env, void *obj)
{
@@ -190,7 +200,8 @@ static ErlNifFunc nif_funcs[] =
{"init_opengl", 1, wx_init_opengl},
{"make_env", 0, wxe_make_env},
{"delete_env", 1, wxe_delete_env},
- {"debug_driver", 1, wxe_debug_driver}
+ {"debug_driver", 1, wxe_debug_driver},
+ {"get_consts_impl", 0, wxe_get_consts}
};
void wxe_init_atoms(ErlNifEnv *env) {
@@ -206,6 +217,9 @@ void wxe_init_atoms(ErlNifEnv *env) {
WXE_ATOM_error = enif_make_atom(env, "_wxe_error_");
WXE_ATOM__wx_invoke_cb_ = enif_make_atom(env, "_wx_invoke_cb_");
+ WXE_ATOM_define = enif_make_atom(env, "define");
+ WXE_ATOM_global = enif_make_atom(env, "global");
+
WXE_ATOM_wxWindow = enif_make_atom(env, "wxWindow");
WXE_ATOM_wxSizer = enif_make_atom(env, "wxSizer");
WXE_ATOM_wxDC = enif_make_atom(env, "wxDC");