From 2cee542e78c989d012a0ad7760e93fed06ad3d68 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Sat, 22 Nov 2025 18:41:15 +0100 Subject: [PATCH] implement File -> Exit menu item --- application/application.c | 15 +++++++++++++-- application/application.h | 3 +++ ui/motif/toolkit.c | 2 +- ui/motif/window.c | 2 +- ui/ui/toolkit.h | 1 + 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/application/application.c b/application/application.c index a83f73c..f7dbc05 100644 --- a/application/application.c +++ b/application/application.c @@ -39,8 +39,8 @@ static Window app_player_window = 0; void AppInitMenu(void) { ui_menu("File") { - ui_menuitem(.label = "Open"); - ui_menuitem(.label = "Exit"); + ui_menuitem(.label = "Open", .onclick = ActionOpen); + ui_menuitem(.label = "Exit", .onclick = ActionExit); } ui_menu("Playback") { ui_menu_toggleitem(.label = "Repeat", .varname = "repeat", .onchange = ActionPlayRepeat); @@ -116,6 +116,17 @@ void AppSetPlayerWindow(Window w) { +void ActionOpen(UiEvent *event, void *userdata) { + +} + +void ActionExit(UiEvent *event, void *userdata) { + MainWindow *win = event->window; + WindowClosePlayer(win); + ShutdownInstanceSocket(ui_motif_get_display()); + ui_app_quit(); +} + void ActionPlayRepeat(UiEvent *event, void *userdata) { if(event->set) { return; diff --git a/application/application.h b/application/application.h index 41591c7..f53649a 100644 --- a/application/application.h +++ b/application/application.h @@ -134,6 +134,9 @@ void AppStart(UiEvent *event, AppStartupSettings *settings); void AppMainLoop(XtAppContext app); +void ActionOpen(UiEvent *event, void *userdata); +void ActionExit(UiEvent *event, void *userdata); + void ActionPlayRepeat(UiEvent *event, void *userdata); void ActionPlayRepeatList(UiEvent *event, void *userdata); void ActionPlayAutoPlayCB(UiEvent *event, void *userdata); diff --git a/ui/motif/toolkit.c b/ui/motif/toolkit.c index 7e14250..3859000 100644 --- a/ui/motif/toolkit.c +++ b/ui/motif/toolkit.c @@ -161,7 +161,7 @@ void ui_main() { } } -void ui_exit_mainloop() { +void ui_app_quit() { XtAppSetExitFlag(app); } diff --git a/ui/motif/window.c b/ui/motif/window.c index 7c3f638..439230a 100644 --- a/ui/motif/window.c +++ b/ui/motif/window.c @@ -50,7 +50,7 @@ void ui_window_widget_destroy(UiObject *obj) { uic_object_destroy(obj); nwindows--; if(nwindows == 0) { - ui_exit_mainloop(); + ui_app_quit(); } } diff --git a/ui/ui/toolkit.h b/ui/ui/toolkit.h index 80175dc..e65f0e5 100644 --- a/ui/ui/toolkit.h +++ b/ui/ui/toolkit.h @@ -542,6 +542,7 @@ UIEXPORT int ui_app_save_settings(void); UIEXPORT void ui_app_exit_on_shutdown(UiBool exitapp); UIEXPORT void ui_main(void); +UIEXPORT void ui_app_quit(void); UIEXPORT void ui_show(UiObject *obj); UIEXPORT void ui_close(UiObject *obj); -- 2.47.3