Select Git revision
bootstrap.js 2.52 KiB
// IDDE sends msgs to manager, does display etc
// starts with a native manager
/* codename NROL39 aka cuttlefish */
/* aka the teuthologist */
// this is toplevel, UI is meta-hunk
// we run loop where UI passes messages to bower manager
// this is like the manager 'bootstrap' file ?
'use strict'
import Manager from './hunks/manager.js'
import TLV from './view/vtoplevel.js'
// this is the TL
// but heirarchichally, we can slave views to managers ...
// views push messages to managers ...
// our invisible overlord
let NROL = new Manager()
NROL.name = 'nrol'
// init sets type and ind,
NROL.init()
// this is going to sit in the outbuffer until the view resolves
// want handles on this we think ?
let view = {}
let land
// runs the loop inside of V8's loop: this way our interpreter is non-blocking
// for other js async business
function bootloop() {
// js u wyldin ! (this is probably slow)
try {
NROL.loop()
} catch (err) {
console.error('ERR @ top of loop:', err)
// write to the toplevel msgbox
view.msgbox.write('ERR @ top of loop, see console, program halting!')
console.error('loop halting, mgr bailing')
return
}
setTimeout(bootloop)
}
window.onload = () => {
console.log('BOOTUP')
NROL.addHunk('view', 'tlview').then((vw) => {
// console.log('ADDHUNK VIEW RESOLVES')
// gotta git this
view = vw
$('#wrapper').get(0).append(view.dom)
// itself
view.onload()
TLV(view)
console.log("MTL'd")
}).then(() => {
// outHunkIndex, outIndex, inHunkIndex, inIndex, debug
NROL.addLink(1, 0, 0, 0, false)
NROL.addLink(0, 0, 1, 0, false)
bootloop()
// kick this later
setTimeout(() => {
view.refresh().then(() => {
// if you make links work properly (directionfull)
// you can just pin view outputs to the left, collected,
// and the rest should sort itself out
//view.defs[0].floaters[0].fixTo(700,200)
view.defs[1].unwrap()
view.defs[1].floaters[0].fixTo(400, 100)
//view.defs[1].floaters[1].fixTo(800, 300)
// xtra
/*
view.patchset.mergePatch('lsocket').then(() => {
let nlink = view.defs.find((cnd) => {
return cnd.type === 'link'
})
nlink.floaters[0].fixTo(500,500)
let nview = view.defs.find((cnd) =>{
return (cnd.type === 'view' && cnd.name !== 'tlview')
})
view.zoomExtents()
nview.hunk.refresh()
})
*/
})
}, 100)
}).catch((err) => {
console.log(err)
})
}