Added double click delay to config

This commit is contained in:
2023-03-31 14:02:56 -04:00
parent c7cd944ae2
commit 03dfcf02bf
4 changed files with 25 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
package config
import "time"
import "git.tebibyte.media/sashakoshka/tomo"
// Default specifies default configuration values.
@@ -11,17 +12,28 @@ func (Default) ScrollVelocity () int {
return 16
}
// DoubleClickDelay returns the default double click delay.
func (Default) DoubleClickDelay () time.Duration {
return time.Second / 2
}
// Wrapped wraps a configuration and uses Default if it is nil.
type Wrapped struct {
tomo.Config
}
// ScrollVelocity returns how many pixels should be scrolled every time
// a scroll button is pressed.
// ScrollVelocity returns how many pixels should be scrolled every time a scroll
// button is pressed.
func (wrapped Wrapped) ScrollVelocity () int {
return wrapped.ensure().ScrollVelocity()
}
// DoubleClickDelay returns the maximum delay between two clicks for them to be
// registered as a double click.
func (wrapped Wrapped) DoubleClickDelay () time.Duration {
return wrapped.ensure().DoubleClickDelay()
}
func (wrapped Wrapped) ensure () (real tomo.Config) {
real = wrapped.Config
if real == nil { real = Default { } }