2023-02-02 20:19:56 +00:00
|
|
|
package config
|
|
|
|
|
2023-03-31 05:06:29 +00:00
|
|
|
import "git.tebibyte.media/sashakoshka/tomo"
|
2023-02-02 23:20:02 +00:00
|
|
|
|
|
|
|
// Default specifies default configuration values.
|
|
|
|
type Default struct { }
|
|
|
|
|
2023-02-02 20:19:56 +00:00
|
|
|
|
2023-02-02 23:20:02 +00:00
|
|
|
// HandleWidth returns the default handle width value.
|
|
|
|
func (Default) HandleWidth () int {
|
2023-03-17 06:05:22 +00:00
|
|
|
return 15
|
2023-02-02 20:19:56 +00:00
|
|
|
}
|
2023-02-02 23:20:02 +00:00
|
|
|
|
|
|
|
// ScrollVelocity returns the default scroll velocity value.
|
|
|
|
func (Default) ScrollVelocity () int {
|
|
|
|
return 16
|
|
|
|
}
|
|
|
|
|
|
|
|
// ThemePath returns the default theme path.
|
|
|
|
func (Default) ThemePath () (string) {
|
|
|
|
return ""
|
|
|
|
}
|
2023-02-08 19:36:14 +00:00
|
|
|
|
|
|
|
// Wrapped wraps a configuration and uses Default if it is nil.
|
|
|
|
type Wrapped struct {
|
2023-03-31 05:06:29 +00:00
|
|
|
tomo.Config
|
2023-02-08 19:36:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// HandleWidth returns how large grab handles should typically be. This
|
|
|
|
// is important for accessibility reasons.
|
|
|
|
func (wrapped Wrapped) HandleWidth () int {
|
|
|
|
return wrapped.ensure().HandleWidth()
|
|
|
|
}
|
|
|
|
|
|
|
|
// ScrollVelocity returns how many pixels should be scrolled every time
|
|
|
|
// a scroll button is pressed.
|
|
|
|
func (wrapped Wrapped) ScrollVelocity () int {
|
|
|
|
return wrapped.ensure().ScrollVelocity()
|
|
|
|
}
|
|
|
|
|
|
|
|
// ThemePath returns the directory path to the theme.
|
|
|
|
func (wrapped Wrapped) ThemePath () string {
|
|
|
|
return wrapped.ensure().ThemePath()
|
|
|
|
}
|
|
|
|
|
2023-03-31 05:06:29 +00:00
|
|
|
func (wrapped Wrapped) ensure () (real tomo.Config) {
|
2023-02-08 19:36:14 +00:00
|
|
|
real = wrapped.Config
|
|
|
|
if real == nil { real = Default { } }
|
|
|
|
return
|
|
|
|
}
|