napperley
12/17/2019, 12:30 AM// ...
interface ApplicationBase {
// ...
fun connectActivateSignal(slot: CPointer<CFunction<(app: CPointer<GApplication>, userData: gpointer) -> Unit>>,
userData: gpointer): ULong =
connectGtkSignal(obj = gAppPtr, signal = "activate", slot = slot, data = userData)
}
class Application(val id: String) : ApplicationBase {
// ...
}
And a hypothetical Kotlin Native program is developed where a Kotliner starts typing in the following with the carrot positioned in the parenthesis:
val app = Application("org.example.sampleapp")
app.connectActivateSignal()
napperley
12/17/2019, 12:36 AMprivate fun activateApplication(app: CPointer<GApplication>, userData: gpointer) {
TODO("Implement this C callback")
}
Next IntellIJ changes app.connectActivateSignal()
to connectActivateSignal(staticCFunction(::activateApplication))
and inserts the import for staticCFunction
.Alexey Belkov [JB]
12/18/2019, 1:51 PMnapperley
12/19/2019, 12:21 AM