This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
tomo-old/default/config/config.go

51 lines
1.2 KiB
Go
Raw Normal View History

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 {
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
}