nihilqui
Version:
Typescript .d.ts generator from GIR for gjs and node-gtk
60 lines (47 loc) • 1.34 kB
text/typescript
import './@types/gjs.js'
import gladeFile from './builderExample.glade'
import * as Gtk from './@types/gtk-3.0'
Gtk.init(null)
const builder = Gtk.Builder.new_from_string(gladeFile, gladeFile.length)
const win = builder.get_object('mainWindow') as Gtk.Window
win.set_default_size(600, 400)
win.connect('show', () => {
Gtk.main()
})
win.connect('destroy', () => {
Gtk.main_quit()
return true
})
const closeButton = builder.get_object('closeButton')
if (!closeButton) {
throw new Error('Builder object closeButton not found!')
}
const actionButton = builder.get_object('actionButton')
if (!actionButton) {
throw new Error('Builder object actionButton not found!')
}
const label = builder.get_object('helloLabel') as Gtk.Label | null
if (!label) {
throw new Error('Builder object helloLabel not found!')
}
closeButton.connect('clicked', () => {
win.close()
print('window closed')
})
actionButton.connect('clicked', () => {
Promise.resolve().then(() => {
print('event promise.then() called')
})
})
label.set_text('Hello World!')
const action = function () {
return new Promise((resolve) => {
resolve('CHANGED')
print('new Promise(...) called')
})
}
action().then((res) => {
print('promise.then() called ')
label.set_text(res as string)
})
win.show_all()