94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package config
 | 
						|
 | 
						|
// Config can return global configuration parameters.
 | 
						|
type Config interface {
 | 
						|
	// Padding returns the amount of internal padding elements should have.
 | 
						|
	// An element's inner content (such as text) should be inset by this
 | 
						|
	// amount, in addition to the inset returned by the pattern of its
 | 
						|
	// background.
 | 
						|
	Padding () int
 | 
						|
	
 | 
						|
	// Margin returns how much space should be put in between elements.
 | 
						|
	Margin () int
 | 
						|
 | 
						|
	// HandleWidth returns how large grab handles should typically be. This
 | 
						|
	// is important for accessibility reasons.
 | 
						|
	HandleWidth () int
 | 
						|
 | 
						|
	// ScrollVelocity returns how many pixels should be scrolled every time
 | 
						|
	// a scroll button is pressed.
 | 
						|
	ScrollVelocity () int
 | 
						|
 | 
						|
	// ThemePath returns the directory path to the theme.
 | 
						|
	ThemePath () string
 | 
						|
}
 | 
						|
 | 
						|
// Default specifies default configuration values.
 | 
						|
type Default struct { }
 | 
						|
 | 
						|
// Padding returns the default padding value.
 | 
						|
func (Default) Padding () int {
 | 
						|
	return 7
 | 
						|
}
 | 
						|
 | 
						|
// Margin returns the default margin value.
 | 
						|
func (Default) Margin () int {
 | 
						|
	return 8
 | 
						|
}
 | 
						|
 | 
						|
// HandleWidth returns the default handle width value.
 | 
						|
func (Default) HandleWidth () int {
 | 
						|
	return 16
 | 
						|
}
 | 
						|
 | 
						|
// ScrollVelocity returns the default scroll velocity value.
 | 
						|
func (Default) ScrollVelocity () int {
 | 
						|
	return 16
 | 
						|
}
 | 
						|
 | 
						|
// ThemePath returns the default theme path.
 | 
						|
func (Default) ThemePath () (string) {
 | 
						|
	return ""
 | 
						|
}
 | 
						|
 | 
						|
// Wrapped wraps a configuration and uses Default if it is nil.
 | 
						|
type Wrapped struct {
 | 
						|
	Config
 | 
						|
}
 | 
						|
 | 
						|
// Padding returns the amount of internal padding elements should have.
 | 
						|
// An element's inner content (such as text) should be inset by this
 | 
						|
// amount, in addition to the inset returned by the pattern of its
 | 
						|
// background.
 | 
						|
func (wrapped Wrapped) Padding () int {
 | 
						|
	return wrapped.ensure().Padding()
 | 
						|
}
 | 
						|
 | 
						|
// Margin returns how much space should be put in between elements.
 | 
						|
func (wrapped Wrapped) Margin () int {
 | 
						|
	return wrapped.ensure().Margin()
 | 
						|
}
 | 
						|
 | 
						|
// 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()
 | 
						|
}
 | 
						|
 | 
						|
func (wrapped Wrapped) ensure () (real Config) {
 | 
						|
	real = wrapped.Config
 | 
						|
	if real == nil { real = Default { } }
 | 
						|
	return
 | 
						|
}
 |