toNative method
Implementation
Pointer<SdlMessageBoxData> toNative([Allocator allocator = ffi.calloc]) {
final pointer = allocator<SdlMessageBoxData>();
pointer.ref.flags = flags;
pointer.ref.window = window;
if (title.isNotEmpty) {
pointer.ref.title = title.toNativeUtf8();
}
if (message.isNotEmpty) {
pointer.ref.message = message.toNativeUtf8();
}
if (buttons.isNotEmpty) {
final buttonsPointer = allocator<SdlMessageBoxButtonData>(buttons.length);
for (var i = 0; i < buttons.length; i++) {
final buttonPointer = buttonsPointer + i;
buttonPointer.ref.flags = buttons[i].flags;
buttonPointer.ref.buttonId = buttons[i].buttonId;
if (buttons[i].text.isNotEmpty) {
buttonPointer.ref.text = buttons[i].text.toNativeUtf8();
}
}
pointer.ref.buttons = buttonsPointer;
pointer.ref.numbuttons = buttons.length;
}
if (colorScheme != null) {
pointer.ref.colorScheme = colorScheme!.toNative(allocator);
}
return pointer;
}