calloc method
Implementation
Pointer<SdlMessageBoxData> calloc() {
final pointer = ffi.calloc<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 = ffi.calloc<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!.calloc();
}
return pointer;
}