summaryrefslogtreecommitdiff
path: root/cloudflare/durationSlider.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-12-29 02:43:00 -0600
committerJeff Carr <[email protected]>2023-12-29 02:43:00 -0600
commita3dd21aef045f2038911585a238acac65884d314 (patch)
treef409f95c924dde1ab3e8147f54f3bc43dbc23eef /cloudflare/durationSlider.go
parent5d32baf06e71f5a2e06dede60936e6bcacfea2c9 (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.go83
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
-}