diff options
| author | Jeff Carr <[email protected]> | 2023-12-29 02:43:00 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-12-29 02:43:00 -0600 |
| commit | a3dd21aef045f2038911585a238acac65884d314 (patch) | |
| tree | f409f95c924dde1ab3e8147f54f3bc43dbc23eef /cloudflare/durationSlider.go | |
| parent | 5d32baf06e71f5a2e06dede60936e6bcacfea2c9 (diff) | |
move to go.wit.com/gui/gadgets
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'cloudflare/durationSlider.go')
| -rw-r--r-- | cloudflare/durationSlider.go | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/cloudflare/durationSlider.go b/cloudflare/durationSlider.go deleted file mode 100644 index 1ab0e50..0000000 --- a/cloudflare/durationSlider.go +++ /dev/null @@ -1,83 +0,0 @@ -// This is a simple example -package cloudflare - -import ( - "log" - "fmt" - "time" - - "go.wit.com/gui" -) - -// TODO: use: https://github.com/robfig/cron/ - -// ttl := cloudflare.DurationSlider(g2, "control panel TTL (in tenths of seconds)", 10 * time.Millisecond, 5 * time.Second) -// ttl.Set(200 * time.Millisecond) - -// The Node is a binary tree. This is how all GUI elements are stored -// simply the name and the size of whatever GUI element exists -type Duration struct { - p *gui.Node // parent widget - l *gui.Node // label widget - s *gui.Node // slider widget - - Label string - Low time.Duration - High time.Duration - Duration time.Duration - - Custom func() -} - -func (n *Duration) Set(d time.Duration) { - var timeRange, step, offset time.Duration - - if (d > n.High) { - d = n.High - } - if (d < n.Low) { - d = n.Low - } - - // set the duration - n.Duration = d - - // figure out the integer offset for the Slider GUI Widget - timeRange = n.High - n.Low - step = timeRange / 1000 - if (step == 0) { - log.Println("duration.Set() division by step == 0", n.Low, n.High, timeRange, step) - n.s.Set(0) - return - } - offset = d - n.Low - i := int(offset / step) - log.Println("duration.Set() =", n.Low, n.High, d, "i =", i) - n.s.I = i - n.s.Set(i) - n.s.Custom() -} - -func NewDurationSlider(n *gui.Node, label string, low time.Duration, high time.Duration) *Duration { - d := Duration { - p: n, - Label: label, - High: high, - Low: low, - } - - // various timeout settings - d.l = n.NewLabel(label) - d.s = n.NewSlider(label, 0, 1000) - d.s.Custom = func () { - d.Duration = low + (high - low) * time.Duration(d.s.I) / 1000 - log.Println("d.Duration =", d.Duration) - s := fmt.Sprintf("%s (%v)", d.Label, d.Duration) - d.l.SetText(s) - if (d.Custom != nil) { - d.Custom() - } - } - - return &d -} |
