code: func FileChooserNativeDialogNew(
  	title string,
  	parent *Window,
  	action FileChooserAction,
  	accept_label string,
  	cancel_label string) (*FileChooserNativeDialog, error) {
  	c_title := C.CString(title)
  	defer C.free(unsafe.Pointer(c_title))
  	c_accept_label := C.CString(accept_label)
  	defer C.free(unsafe.Pointer(c_accept_label))
  	c_cancel_label := C.CString(cancel_label)
  	defer C.free(unsafe.Pointer(c_cancel_label))
  	c := C.gtk_file_chooser_native_new(
  		(*C.gchar)(c_title), parent.native(), C.GtkFileChooserAction(action),
  		(*C.gchar)(c_accept_label), (*C.gchar)(c_cancel_label))
  	if c == nil {
  		return nil, nilPtrErr
  	}
  	obj := glib.Take(unsafe.Pointer(c))
  	return wrapFileChooserNativeDialog(obj), nil
  }
docs: // FileChooserNativeDialogNew is a wrapper around gtk_file_chooser_native_new().