// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main // An app to submit patches for the 30 GO GUI repos import ( "go.wit.com/lib/env" "go.wit.com/lib/gadgets" ) func makeHowtoWin() *gadgets.GenericWindow { howtoWin := gadgets.NewGenericWindow("Howto", "forge -- a GUI tool for git repostories") tmp := `A good way to see how forge works is to download forge This will 'git clone' a few things (~50 repos): ` howtoWin.Group.NewLabel(tmp) grid := howtoWin.Group.RawGrid() grid.NewLabel("forge") grid.NewLabel("the sources for forge") grid.NextRow() grid.NewLabel("autogenpb") grid.NewLabel("generates needed code for working with the protobuf files") grid.NextRow() grid.NewLabel("go-clone") grid.NewLabel("recursively 'git clone' dependencies based on go.mod") grid.NextRow() grid.NewLabel("the GUI") grid.NewLabel("GO plugins for libcurses and GTK") grid.NextRow() grid.NewLabel("") // a stupid way to add padding grid.NextRow() // howtoWin.Group.NewLabel("Working dir: " + env.Get("gopath")) grid = howtoWin.Group.RawGrid() grid.NewButton("Download into "+env.Get("gopath"), func() { howtoWin.Disable() defer howtoWin.Enable() doRebuildForge() }) return howtoWin }