aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.go81
-rw-r--r--ui.go31
2 files changed, 60 insertions, 52 deletions
diff --git a/main.go b/main.go
index 377d4ac..59801cc 100644
--- a/main.go
+++ b/main.go
@@ -80,52 +80,12 @@ func init() {
engineMassFlowRate = append(engineMassFlowRate, massFlowRateAt(0))
}
-func loop() {
- g.SingleWindow().Layout(
- engineDisplacementRow(),
- g.Table().
- Size(g.Auto, 190).
- Rows(
- engineSpeedRow(),
- volumetricEfficiencyRow(),
- intakeAirTemperatureRow(),
- manifoldPressureRow(),
- pressureRatioRow(),
- massFlowRateRow(),
- duplicateDeleteRow(),
- ).
- Columns(
- columns()...,
- ),
- selectCompressor(),
- g.Custom(compressorWidget),
- )
-}
-
var (
compressorImage *image.RGBA
compressorTexture *g.Texture
selectedCompressor compressor.Compressor
)
-func setCompressor(c compressor.Compressor) {
- f, err := os.Open(c.FileName)
- util.Check(err)
- defer f.Close()
-
- j, _, err := image.Decode(f)
- util.Check(err)
-
- b := j.Bounds()
- m := image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
- draw.Draw(m, m.Bounds(), j, b.Min, draw.Src)
-
- selectedCompressor = c
- compressorImage = m
-
- go updateCompImg()
-}
-
func init() {
manufacturer := "garrett"
series := "g"
@@ -152,3 +112,44 @@ func main() {
wnd.Run(loop)
}
+
+func setCompressor(c compressor.Compressor) {
+ f, err := os.Open(c.FileName)
+ util.Check(err)
+ defer f.Close()
+
+ j, _, err := image.Decode(f)
+ util.Check(err)
+
+ b := j.Bounds()
+ m := image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
+ draw.Draw(m, m.Bounds(), j, b.Min, draw.Src)
+
+ selectedCompressor = c
+ compressorImage = m
+
+ go updateCompImg()
+}
+
+func loop() {
+ g.SingleWindow().Layout(
+ engineDisplacementRow(),
+ g.Table().
+ Size(g.Auto, 190).
+ Rows(
+ engineSpeedRow(),
+ volumetricEfficiencyRow(),
+ intakeAirTemperatureRow(),
+ manifoldPressureRow(),
+ pressureRatioRow(),
+ massFlowRateRow(),
+ duplicateDeleteRow(),
+ ).
+ Columns(
+ columns()...,
+ ).
+ Flags(g.TableFlagsSizingFixedFit),
+ selectCompressor(),
+ g.Custom(compressorWidget),
+ )
+}
diff --git a/ui.go b/ui.go
index e7b43be..67201c0 100644
--- a/ui.go
+++ b/ui.go
@@ -25,21 +25,26 @@ func engineDisplacementRow() *g.RowWidget {
unit, err := volume.UnitFromString(s)
util.Check(err)
engDisp := float32(displacement / unit)
+ valWid, _ := g.CalcTextSize("12345.67")
+ unitWid, _ := g.CalcTextSize(volume.UnitStrings()[volumeUnitIndex])
return g.Row(
g.Label("Engine Displacement"),
- g.InputFloat(&engDisp).Format("%.2f").OnChange(func() {
- displacement = volume.Volume(engDisp) * unit
- for i := 0; i < numPoints; i++ {
- engineMassFlowRate[i] = massFlowRateAt(i)
- go updateCompImg()
- }
- }),
+ g.InputFloat(&engDisp).
+ Format("%.2f").
+ OnChange(func() {
+ displacement = volume.Volume(engDisp) * unit
+ for i := 0; i < numPoints; i++ {
+ engineMassFlowRate[i] = massFlowRateAt(i)
+ go updateCompImg()
+ }
+ }).
+ Size(valWid),
g.Combo(
"",
volume.UnitStrings()[volumeUnitIndex],
volume.UnitStrings(),
&volumeUnitIndex,
- ),
+ ).Size(unitWid*2),
)
}
@@ -80,6 +85,7 @@ func volumetricEfficiencyRow() *g.TableRowWidget {
}
func intakeAirTemperatureRow() *g.TableRowWidget {
+ wid, _ := g.CalcTextSize(temperature.UnitStrings()[temperatureUnitIndex])
widgets := []g.Widget{
g.Label("Intake Air Temperature"),
g.Combo(
@@ -97,7 +103,7 @@ func intakeAirTemperatureRow() *g.TableRowWidget {
util.Check(err)
intakeAirTemperature[i] = temperature.Temperature{t, u}
}
- }),
+ }).Size(wid * 2),
}
for i := 0; i < numPoints; i++ {
i := i
@@ -118,7 +124,7 @@ func manifoldPressureRow() *g.TableRowWidget {
s := pressure.UnitStrings()[pressureUnitIndex]
unit, err := pressure.UnitFromString(s)
util.Check(err)
-
+ wid, _ := g.CalcTextSize(pressure.UnitStrings()[pressureUnitIndex])
widgets := []g.Widget{
g.Label("Manifold Absolute Pressure"),
g.Combo(
@@ -126,7 +132,7 @@ func manifoldPressureRow() *g.TableRowWidget {
pressure.UnitStrings()[pressureUnitIndex],
pressure.UnitStrings(),
&pressureUnitIndex,
- ),
+ ).Size(wid * 2),
}
for i := 0; i < numPoints; i++ {
i := i
@@ -165,6 +171,7 @@ func massFlowRateRow() *g.TableRowWidget {
mfrUnit, err := mass.FlowRateUnitFromString(s)
util.Check(err)
+ wid, _ := g.CalcTextSize(mass.FlowRateUnitStrings()[selectedMassFlowRateUnit])
widgets := []g.Widget{
g.Label("Mass Flow Rate"),
g.Combo(
@@ -172,7 +179,7 @@ func massFlowRateRow() *g.TableRowWidget {
mass.FlowRateUnitStrings()[selectedMassFlowRateUnit],
mass.FlowRateUnitStrings(),
&selectedMassFlowRateUnit,
- ),
+ ).Size(wid * 2),
}
for i := 0; i < numPoints; i++ {
mfr := strconv.FormatFloat(