showMessageBox method
int
showMessageBox(
- String title,
- String message,
- List<
MessageBoxButton> buttons, { - Window? window,
- List<
MessageBoxFlags> ? flags,
Show a message box.
Implementation
int showMessageBox(
final String title,
final String message,
final List<MessageBoxButton> buttons, {
final Window? window,
final List<MessageBoxFlags>? flags,
}) {
final titlePointer = title.toCharPointer();
final messagePointer = message.toCharPointer();
final a = malloc<SDL_MessageBoxButtonData>(buttons.length);
for (var i = 0; i < buttons.length; i++) {
final button = buttons[i];
final textPointer = button.text.toCharPointer();
a[i]
..buttonid = button.id
..flags = button.flags.fold(
0,
(final previousValue, final element) =>
previousValue | element.toInt(),
)
..text = textPointer;
}
_messageBoxDataPointer.ref
..title = titlePointer
..message = messagePointer
..window = window?.handle ?? nullptr
..numbuttons = buttons.length
..buttons = a
..flags = [for (final f in flags ?? <MessageBoxFlags>[]) f.toInt()].xor();
checkReturnValue(sdl.SDL_ShowMessageBox(_messageBoxDataPointer, xPointer));
final buttonId = xPointer.value;
[a, titlePointer].forEach(malloc.free);
return buttonId;
}