MCPcopy
hub / github.com/mum4k/termdash / newControlsTab

Function newControlsTab

termdashdemo/termdashdemo.go:613–888  ·  view source on GitHub ↗

newControlsTab creates all Controls widgets and returns the tab.

()

Source from the content-addressed store, hash-verified

611
612// newControlsTab creates all Controls widgets and returns the tab.
613func newControlsTab() (*ctrlWidgets, *tab.Tab, error) {
614 state := &ctrlState{
615 warp: true,
616 shields: 78,
617 mode: "SCAN",
618 alarm: "400",
619 display: "READY",
620 }
621
622 // Status text (updated by every control)
623 statusW, err := text.New(text.WrapAtWords())
624 if err != nil {
625 return nil, nil, err
626 }
627
628 // Segment display
629 display, err := segmentdisplay.New(
630 segmentdisplay.AlignHorizontal(align.HorizontalCenter),
631 segmentdisplay.AlignVertical(align.VerticalMiddle),
632 segmentdisplay.MaximizeSegmentHeight(),
633 )
634 if err != nil {
635 return nil, nil, err
636 }
637
638 w := &ctrlWidgets{status: statusW, segDisplay: display, state: state}
639
640 writeStatus := func() error { return renderCtrlStatus(statusW, state) }
641 writeDisplay := func() error { return renderCtrlDisplay(display, state) }
642
643 // Checkbox
644 warpCheck, err := checkbox.New("Enable Warp Assist",
645 checkbox.Checked(state.warp),
646 checkbox.UseIndicatorSet(checkbox.IndicatorSets.Rounded),
647 checkbox.OnChange(func(checked bool) error {
648 state.mu.Lock()
649 state.warp = checked
650 state.mu.Unlock()
651 _ = writeDisplay()
652 return writeStatus()
653 }),
654 )
655 if err != nil {
656 return nil, nil, err
657 }
658
659 // Slider – SegmentedStyle blocks
660 shieldsSlider, err := slider.New(
661 slider.Min(0),
662 slider.Max(100),
663 slider.Value(state.shields),
664 slider.Width(28),
665 slider.SegmentedStyle(),
666 slider.FillCellOpts(cell.FgColor(cell.ColorNumber(75))),
667 slider.OnChange(func(v int) error {
668 state.mu.Lock()
669 state.shields = v
670 state.mu.Unlock()

Callers 1

mainFunction · 0.70

Calls 15

NewFunction · 0.92
WrapAtWordsFunction · 0.92
NewFunction · 0.92
AlignHorizontalFunction · 0.92
AlignVerticalFunction · 0.92
MaximizeSegmentHeightFunction · 0.92
NewFunction · 0.92
CheckedFunction · 0.92
UseIndicatorSetFunction · 0.92
OnChangeFunction · 0.92
NewFunction · 0.92
MinFunction · 0.92

Tested by

no test coverage detected