border.go 733 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package config
  2. import "github.com/ayn2op/tview"
  3. type (
  4. TitleTheme struct {
  5. ThemeStyle
  6. Alignment AlignmentWrapper `toml:"alignment"`
  7. }
  8. BorderTheme struct {
  9. ThemeStyle
  10. Enabled bool `toml:"enabled"`
  11. Padding [4]int `toml:"padding"`
  12. Set BorderSetWrapper `toml:"set"`
  13. }
  14. )
  15. type BorderSetWrapper struct{ tview.BorderSet }
  16. func (bw *BorderSetWrapper) UnmarshalTOML(val any) error {
  17. s, ok := val.(string)
  18. if !ok {
  19. return errInvalidType
  20. }
  21. switch s {
  22. case "plain":
  23. bw.BorderSet = tview.BorderSetPlain()
  24. case "round":
  25. bw.BorderSet = tview.BorderSetRound()
  26. case "thick":
  27. bw.BorderSet = tview.BorderSetThick()
  28. case "double":
  29. bw.BorderSet = tview.BorderSetDouble()
  30. }
  31. return nil
  32. }