Типо там делают тип неполным (то есть без полей, просто декларацию) потом делают тайпдеф в котором обьявляют поля, потом делают указатель на это все дело
Я думал, что в данные для колбека можно запихнуть любой тип, а оказалось только виджет. (Но все это конечно просто void*) В итоге в колбеке распаковывал данные, ловил сегфолт ибо там были вообще левые данные.