diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index aa21218..4ccd9c1 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -6,6 +6,8 @@ MwWidget wmain; void destroy(MwWidget handle, void* user, void* call) { + (void)handle; + (void)call; MwMessageBoxDestroy(user); } diff --git a/examples/basic/messagebox.c b/examples/basic/messagebox.c index 73c01dc..86bb044 100644 --- a/examples/basic/messagebox.c +++ b/examples/basic/messagebox.c @@ -2,6 +2,8 @@ #include void ok(MwWidget handle, void* user, void* call) { + (void)handle; + (void)call; MwMessageBoxDestroy(user); } diff --git a/src/core.c b/src/core.c index b48b590..88f0af9 100644 --- a/src/core.c +++ b/src/core.c @@ -62,6 +62,7 @@ static void llclosehandler(MwLL handle, void* data) { } } else { h->close = 1; + MwDispatchUserHandler(h, MwNcloseHandler, NULL); } } diff --git a/src/messagebox.c b/src/messagebox.c index c6e1691..ac5ed4b 100644 --- a/src/messagebox.c +++ b/src/messagebox.c @@ -19,6 +19,12 @@ static void spawn_button(MwWidget handle, int x, int y, int id, const char* text handle->opaque = mb; } +static void messagebox_close(MwWidget handle, void* user, void* call) { + (void)user; + (void)call; + MwMessageBoxDestroy(handle); +} + MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) { MwWidget window; MwPoint p; @@ -95,6 +101,8 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi MwLLSetSizeHints(window->lowlevel, w, h, w, h); MwLLMakePopup(window->lowlevel, handle->lowlevel); + MwAddUserHandler(window, MwNcloseHandler, messagebox_close, NULL); + return window; }