diff --git a/config/config.go b/config/config.go index 8828639..ab962be 100644 --- a/config/config.go +++ b/config/config.go @@ -1,22 +1,51 @@ package 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. When -// using the aforementioned inset values to calculate the element's minimum size -// or the position and alignment of its content, all parameters in the -// PatternState should be unset except for Case. -func Padding () int { +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 how much space should be put in between elements. -func Margin () int { +// Margin returns the default margin value. +func (Default) Margin () int { return 8 } -// HandleWidth returns how large grab handles should typically be. This is -// important for accessibility reasons. -func HandleWidth () int { +// 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 "" +} diff --git a/config/parse.go b/config/parse.go new file mode 100644 index 0000000..258d48f --- /dev/null +++ b/config/parse.go @@ -0,0 +1,9 @@ +package config + +import "io" + +// Parse parses a configuration file and returns it as a Config. +func Parse (source io.Reader) (config Config) { + // TODO + return Default { } +}