Implement save_and_quit for macos

This commit is contained in:
luboslenco
2025-10-15 19:52:21 +02:00
parent d40446bad6
commit 157dd4a647
+28
View File
@@ -1184,6 +1184,34 @@ void deviceRemoved(void *inContext, IOReturn inResult, void *inSender, IOHIDDevi
#endif
extern void (*iron_save_and_quit)(bool);
bool _save_and_quit_callback_internal() {
bool save = false;
NSString *title = [window title];
bool dirty = [title rangeOfString:@"* - ArmorPaint"].location != NSNotFound;
if (dirty) {
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"Project has been modified, save changes?"];
[alert addButtonWithTitle:@"Yes"];
[alert addButtonWithTitle:@"Cancel"];
[alert addButtonWithTitle:@"No"];
[alert setAlertStyle:NSAlertStyleWarning];
NSInteger res = [alert runModal];
if (res == NSAlertFirstButtonReturn) {
save = true;
}
else if (res == NSAlertThirdButtonReturn) {
save = false;
}
else { // Cancel
return false;
}
}
iron_save_and_quit(save);
return false;
}
volatile int iron_exec_async_done = 1;
void iron_exec_async(const char *path, char *argv[]) {}