]> uap-core.de Git - uwplayer.git/commitdiff
implement File -> Exit menu item default
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 22 Nov 2025 17:41:15 +0000 (18:41 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 22 Nov 2025 17:41:15 +0000 (18:41 +0100)
application/application.c
application/application.h
ui/motif/toolkit.c
ui/motif/window.c
ui/ui/toolkit.h

index a83f73cc9133d7514f73f7fcc3579bf3a6872d92..f7dbc053610dd0861404880f8e36b6436530d64d 100644 (file)
@@ -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;
index 41591c7a09e3c422dea0edbcd9bfe70dbd786c97..f53649abf22343e0f81dde00f32087d82f6c372f 100644 (file)
@@ -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);
index 7e14250ce4e02827b26548d77d12c6194bc1f268..3859000ec225cf4af9851e55807188b159ce2071 100644 (file)
@@ -161,7 +161,7 @@ void ui_main() {
     }
 }
 
-void ui_exit_mainloop() {
+void ui_app_quit() {
     XtAppSetExitFlag(app);
 }
 
index 7c3f638b3bfc459cf0fb90354a0057e24253ff74..439230a6ceced20442b5457832f2f01e459b111c 100644 (file)
@@ -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();
     }
 }
 
index 80175dc9dd5a4fdc4e1e76b6813fa47adcdb3546..e65f0e59dc345ca967d9bf7ba9b00278cfc46508 100644 (file)
@@ -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);