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() }