cutego/sailfish/sailfish_sailfish.go

133 lines
3.7 KiB
Go
Raw Normal View History

// +build sailfish sailfish_emulator
2016-06-19 05:24:38 +03:00
package sailfish
//#include <stdint.h>
2016-08-20 00:20:42 +03:00
//#include <stdlib.h>
2016-06-19 05:24:38 +03:00
//#include "sailfish_sailfish.h"
import "C"
import (
2016-08-24 18:00:49 +03:00
"fmt"
2016-06-19 05:24:38 +03:00
"github.com/therecipe/qt"
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/gui"
"github.com/therecipe/qt/quick"
2016-08-20 00:20:42 +03:00
"runtime"
2016-06-19 05:24:38 +03:00
"strings"
"unsafe"
)
func cGoUnpackString(s C.struct_QtSailfish_PackedString) string {
if len := int(s.len); len == -1 {
return C.GoString(s.data)
}
return C.GoStringN(s.data, C.int(s.len))
}
2016-06-19 05:24:38 +03:00
type SailfishApp struct {
ptr unsafe.Pointer
}
type SailfishApp_ITF interface {
SailfishApp_PTR() *SailfishApp
}
func (p *SailfishApp) SailfishApp_PTR() *SailfishApp {
return p
}
func (p *SailfishApp) Pointer() unsafe.Pointer {
if p != nil {
return p.ptr
}
return nil
}
func (p *SailfishApp) SetPointer(ptr unsafe.Pointer) {
if p != nil {
p.ptr = ptr
}
}
func PointerFromSailfishApp(ptr SailfishApp_ITF) unsafe.Pointer {
if ptr != nil {
return ptr.SailfishApp_PTR().Pointer()
}
return nil
}
func NewSailfishAppFromPointer(ptr unsafe.Pointer) *SailfishApp {
var n = new(SailfishApp)
n.SetPointer(ptr)
return n
}
2016-08-20 00:20:42 +03:00
func (ptr *SailfishApp) DestroySailfishApp() {
C.free(ptr.Pointer())
ptr.SetPointer(nil)
}
2016-06-19 05:24:38 +03:00
func SailfishApp_Application(argc int, argv []string) *gui.QGuiApplication {
2016-08-20 00:20:42 +03:00
var argvC = C.CString(strings.Join(argv, "|"))
defer C.free(unsafe.Pointer(argvC))
2016-08-24 18:00:49 +03:00
var tmpValue = gui.NewQGuiApplicationFromPointer(C.SailfishApp_SailfishApp_Application(C.int(int32(argc)), argvC))
if !qt.ExistsSignal(fmt.Sprint(tmpValue.Pointer()), "QObject::destroyed") {
2016-08-26 16:33:11 +03:00
tmpValue.ConnectDestroyed(func(*core.QObject) { tmpValue.SetPointer(nil) })
2016-08-24 18:00:49 +03:00
}
return tmpValue
2016-06-19 05:24:38 +03:00
}
func (ptr *SailfishApp) Application(argc int, argv []string) *gui.QGuiApplication {
2016-08-20 00:20:42 +03:00
var argvC = C.CString(strings.Join(argv, "|"))
defer C.free(unsafe.Pointer(argvC))
2016-08-24 18:00:49 +03:00
var tmpValue = gui.NewQGuiApplicationFromPointer(C.SailfishApp_SailfishApp_Application(C.int(int32(argc)), argvC))
if !qt.ExistsSignal(fmt.Sprint(tmpValue.Pointer()), "QObject::destroyed") {
2016-08-26 16:33:11 +03:00
tmpValue.ConnectDestroyed(func(*core.QObject) { tmpValue.SetPointer(nil) })
2016-08-24 18:00:49 +03:00
}
return tmpValue
2016-06-19 05:24:38 +03:00
}
func SailfishApp_Main(argc int, argv []string) int {
2016-08-20 00:20:42 +03:00
var argvC = C.CString(strings.Join(argv, "|"))
defer C.free(unsafe.Pointer(argvC))
return int(int32(C.SailfishApp_SailfishApp_Main(C.int(int32(argc)), argvC)))
2016-06-19 05:24:38 +03:00
}
func (ptr *SailfishApp) Main(argc int, argv []string) int {
2016-08-20 00:20:42 +03:00
var argvC = C.CString(strings.Join(argv, "|"))
defer C.free(unsafe.Pointer(argvC))
return int(int32(C.SailfishApp_SailfishApp_Main(C.int(int32(argc)), argvC)))
2016-06-19 05:24:38 +03:00
}
func SailfishApp_CreateView() *quick.QQuickView {
2016-08-24 18:00:49 +03:00
var tmpValue = quick.NewQQuickViewFromPointer(C.SailfishApp_SailfishApp_CreateView())
if !qt.ExistsSignal(fmt.Sprint(tmpValue.Pointer()), "QObject::destroyed") {
2016-08-26 16:33:11 +03:00
tmpValue.ConnectDestroyed(func(*core.QObject) { tmpValue.SetPointer(nil) })
2016-08-24 18:00:49 +03:00
}
return tmpValue
2016-06-19 05:24:38 +03:00
}
func (ptr *SailfishApp) CreateView() *quick.QQuickView {
2016-08-24 18:00:49 +03:00
var tmpValue = quick.NewQQuickViewFromPointer(C.SailfishApp_SailfishApp_CreateView())
if !qt.ExistsSignal(fmt.Sprint(tmpValue.Pointer()), "QObject::destroyed") {
2016-08-26 16:33:11 +03:00
tmpValue.ConnectDestroyed(func(*core.QObject) { tmpValue.SetPointer(nil) })
2016-08-24 18:00:49 +03:00
}
return tmpValue
2016-06-19 05:24:38 +03:00
}
func SailfishApp_PathTo(filename string) *core.QUrl {
2016-08-20 00:20:42 +03:00
var filenameC = C.CString(filename)
defer C.free(unsafe.Pointer(filenameC))
var tmpValue = core.NewQUrlFromPointer(C.SailfishApp_SailfishApp_PathTo(filenameC))
runtime.SetFinalizer(tmpValue, (*core.QUrl).DestroyQUrl)
return tmpValue
2016-06-19 05:24:38 +03:00
}
func (ptr *SailfishApp) PathTo(filename string) *core.QUrl {
2016-08-20 00:20:42 +03:00
var filenameC = C.CString(filename)
defer C.free(unsafe.Pointer(filenameC))
var tmpValue = core.NewQUrlFromPointer(C.SailfishApp_SailfishApp_PathTo(filenameC))
runtime.SetFinalizer(tmpValue, (*core.QUrl).DestroyQUrl)
return tmpValue
2016-06-19 05:24:38 +03:00
}