diff options
author | obscuren <geffobscura@gmail.com> | 2014-07-02 17:30:37 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-07-02 17:30:37 +0800 |
commit | 98f21669c768c66d0cdddba410de6f2a92fc0343 (patch) | |
tree | 1817f79e93958781e82d787413fc6b04a916c0d1 /ethereal/qml_container.go | |
parent | 4918531dd5c0a10e193d991fb6661b8af6680b11 (diff) | |
parent | 7d0004f058d7e93df684b0524fd52cd2eb1af3e3 (diff) | |
download | go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar.gz go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar.bz2 go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar.lz go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar.xz go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.tar.zst go-tangerine-98f21669c768c66d0cdddba410de6f2a92fc0343.zip |
Merge branch 'develop'
Diffstat (limited to 'ethereal/qml_container.go')
-rw-r--r-- | ethereal/qml_container.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ethereal/qml_container.go b/ethereal/qml_container.go new file mode 100644 index 000000000..a8ce1cb75 --- /dev/null +++ b/ethereal/qml_container.go @@ -0,0 +1,59 @@ +package main + +import ( + "github.com/ethereum/eth-go/ethchain" + "github.com/ethereum/eth-go/ethpub" + "github.com/ethereum/eth-go/ethutil" + "github.com/go-qml/qml" +) + +type QmlApplication struct { + win *qml.Window + engine *qml.Engine + lib *UiLib + path string +} + +func NewQmlApplication(path string, lib *UiLib) *QmlApplication { + engine := qml.NewEngine() + return &QmlApplication{engine: engine, path: path, lib: lib} +} + +func (app *QmlApplication) Create() error { + component, err := app.engine.LoadFile(app.path) + if err != nil { + logger.Warnln(err) + } + app.win = component.CreateWindow(nil) + + return nil +} + +func (app *QmlApplication) Destroy() { + app.engine.Destroy() +} + +func (app *QmlApplication) NewWatcher(quitChan chan bool) { +} + +// Events +func (app *QmlApplication) NewBlock(block *ethchain.Block) { + pblock := ðpub.PBlock{Number: int(block.BlockInfo().Number), Hash: ethutil.Bytes2Hex(block.Hash())} + app.win.Call("onNewBlockCb", pblock) +} + +func (app *QmlApplication) ObjectChanged(stateObject *ethchain.StateObject) { + app.win.Call("onObjectChangeCb", ethpub.NewPStateObject(stateObject)) +} + +func (app *QmlApplication) StorageChanged(storageObject *ethchain.StorageState) { + app.win.Call("onStorageChangeCb", ethpub.NewPStorageState(storageObject)) +} + +// Getters +func (app *QmlApplication) Engine() *qml.Engine { + return app.engine +} +func (app *QmlApplication) Window() *qml.Window { + return app.win +} |