61 lines
1.2 KiB
Go

package main
import (
"fmt"
"os"
"strings"
qt "github.com/mappu/miqt/qt6"
)
var (
mw *MainWindowUi
)
func main() {
qt.NewQApplication(os.Args)
mw = NewMainWindowUi()
appIconPxm := qt.NewQPixmap()
appIconPxm.LoadFromData2(&appIconPng[0], uint(len(appIconPng)), "png")
mw.MainWindow.SetWindowIcon(qt.NewQIcon2(appIconPxm))
ff := mw.textEdit.Font()
ff.SetFamily("monospace")
mw.textEdit.SetFont(ff)
formatter := qt.NewQSyntaxHighlighter2(mw.textEdit.Document())
formatter.OnHighlightBlock(func(b string) {
if cpos := strings.Index(b, `//`); cpos >= 0 {
formatter.SetFormat2(cpos, len(b)-cpos, qt.QColor_FromRgb(0x008000))
}
})
onGotNewScreenshot := func(filepath string, click_x, click_y int64) {
// Newline is added automatically
// TODO if this was the default/center position, get default coordinates
appendCode := fmt.Sprintf(`ClickAt("%s", %d, %d);`, filepath, click_x, click_y)
mw.textEdit.Append(src_to_html(appendCode))
}
mw.actionScreenshot.OnTriggered(func() {
doScreencap(onGotNewScreenshot)
})
mw.actionRun.OnTriggered(func() {
runScript()
})
mw.actionE_xit.OnTriggered(func() {
// TODO check for unsaved file changes
os.Exit(0)
})
mw.MainWindow.Show()
qt.QApplication_Exec()
}