diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-02-08 08:44:15 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-02-08 08:44:15 -0500 |
| commit | 6c00320bf2d41d2e7392deff03709bae6cb5c2fb (patch) | |
| tree | abdca2f6f76d734795d59aecf28d3fc1b9016b9f /main.go | |
| parent | a4ca32963cba9922ec92efe1efa165d880513752 (diff) | |
| download | volute-6c00320bf2d41d2e7392deff03709bae6cb5c2fb.zip | |
extract ui setup functions to seperate file
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 108 |
1 files changed, 0 insertions, 108 deletions
@@ -2,15 +2,11 @@ package main import ( "fmt" - "image" - "image/color" "os" "sync" "github.com/faiface/mainthread" "volute/gui" - "volute/gui/layout" - "volute/gui/widget" "volute/gui/win" ) @@ -78,87 +74,6 @@ func run() { eventLoop(env, &focus) } -func spawnWidgets( - displacementChan chan uint, - rpmChan, veChan, imapChan, actChan [POINTS]chan uint, - flowChan [POINTS]chan float64, - focus *Focus, mux *gui.Mux, wg *sync.WaitGroup, -) { - bounds := layout.Grid{ - Rows: []int{2, 7, 7, 7, 7, 7}, - Background: color.Gray{255}, - Gap: 1, - Split: split, - SplitRows: splitRows, - Margin: 0, - Border: 0, - BorderColor: color.Gray{16}, - Flip: false, - }.Lay(image.Rect(0, 0, WIDTH, HEIGHT)) - - wg.Add(1) - go widget.Label("displacement (cc)", bounds[0], mux.MakeEnv(), wg) - wg.Add(1) - go widget.Input( - displacementChan, - bounds[1], - focus.widgets[0][0], - mux.MakeEnv(), - wg, - ) - wg.Add(1) - go widget.Label("speed (rpm)", bounds[2], mux.MakeEnv(), wg) - wg.Add(1) - go widget.Label("VE (%)", bounds[3+POINTS], mux.MakeEnv(), wg) - wg.Add(1) - go widget.Label("IMAP (mbar)", bounds[4+2*POINTS], mux.MakeEnv(), wg) - wg.Add(1) - go widget.Label("ACT (°C)", bounds[5+3*POINTS], mux.MakeEnv(), wg) - wg.Add(1) - go widget.Label("mass flow (kg/min)", bounds[6+4*POINTS], mux.MakeEnv(), wg) - for i := 0; i < POINTS; i++ { - wg.Add(1) - go widget.Input( // speed - rpmChan[i], - bounds[3+i], - focus.widgets[1][i], - mux.MakeEnv(), - wg, - ) - wg.Add(1) - go widget.Input( // VE - veChan[i], - bounds[4+POINTS+i], - focus.widgets[2][i], - mux.MakeEnv(), - wg, - ) - wg.Add(1) - go widget.Input( // IMAP - imapChan[i], - bounds[5+2*POINTS+i], - focus.widgets[3][i], - mux.MakeEnv(), - wg, - ) - wg.Add(1) - go widget.Input( // ACT - actChan[i], - bounds[6+3*POINTS+i], - focus.widgets[4][i], - mux.MakeEnv(), - wg, - ) - wg.Add(1) - go widget.Output( // mass flow - flowChan[i], - bounds[7+4*POINTS+i], - mux.MakeEnv(), - wg, - ) - } -} - func eventLoop(env gui.Env, focus *Focus) { for event := range env.Events() { switch event := event.(type) { @@ -189,29 +104,6 @@ func makeChans[T any](chanss ...[]chan T) { } } -func split(elements int, space int) []int { - bounds := make([]int, elements) - widths := []int{ - widget.TextSize(WIDEST_LABEL).X, - widget.TextSize("123456").X, - } - for i := 0; i < elements && space > 0; i++ { - bounds[i] = min(widths[min(i, len(widths)-1)], space) - space -= bounds[i] - } - return bounds -} - -func splitRows(elements int, space int) []int { - bounds := make([]int, elements) - height := widget.TextSize("1").Y - for i := 0; i < elements && space > 0; i++ { - bounds[i] = min(height, space) - space -= bounds[i] - } - return bounds -} - func calculateFlow( flow chan<- float64, displacementChan, rpmChan, veChan, actChan, imapChan <-chan uint, |