// watch all your go git repos
package main

import 	(
	"go.wit.com/gui/gui"
	"go.wit.com/gui/gadgets"
	"go.wit.com/gui/lib/repostatus"
)

// the main window nodes
var myGui *gui.Node
var reposwin *gadgets.BasicWindow
var reposbox *gui.Node
var reposgrid *gui.Node
var reposgroup *gui.Node

var me repoType

type repoType struct {
	script [][]string

	// #### autotypist window
	autotypistWindow *gadgets.BasicWindow
	// #### autotypist Global Display Options
	autoHidePerfect *gui.Node

	// #### autotypist Global Build Options
	// what to change all the branches to
	// so, as a developer, you can move all the repos
	// to the 'devel' branch and then test a devel branch build
	// then switch back to your 'username' branch and do a build there
	toMoveToBranch string

	// displays the preferred names used for the repo tree state
	mainBranch *gadgets.BasicCombobox
	develBranch *gadgets.BasicCombobox
	userBranch *gadgets.BasicCombobox

	// #### autotypist Global Distructive & Reset Options
	// #### autotypist window end
}

var cmds *gui.Node
var doit *gui.Node
var dryrun *gui.Node

var allrepos []*repo

type repo struct {
	hidden bool
	path string
	lasttagrev string
	lasttag string
	// tags []string

	pLabel *gui.Node // path label
	// bLabel *gui.Node // branch label
	lastTag *gui.Node // last tagged version label
	vLabel *gui.Node // version label
	// tagsDrop *gui.Node // list of all tags
	dirtyLabel *gui.Node // git state (dirty or not?)

	masterName *gui.Node // the master branch name
	masterVersion *gui.Node // the master branch version
	develName *gui.Node // the devel branch name
	develVersion *gui.Node // the devel branch version
	userName *gui.Node // the jcarr branch name
	userVersion *gui.Node // the jcarr branch version

	cButton *gui.Node // commit button
	pButton *gui.Node // push button
	showButton *gui.Node // the button!

	status *repostatus.RepoStatus
}
