border.go 829 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. NormalSet BorderSetWrapper `toml:"normal_set"`
  13. ActiveSet BorderSetWrapper `toml:"active_set"`
  14. }
  15. )
  16. type BorderSetWrapper struct{ tview.BorderSet }
  17. func (bw *BorderSetWrapper) UnmarshalTOML(val any) error {
  18. s, ok := val.(string)
  19. if !ok {
  20. return errInvalidType
  21. }
  22. switch s {
  23. case "hidden":
  24. bw.BorderSet = tview.BorderSetHidden()
  25. case "plain":
  26. bw.BorderSet = tview.BorderSetPlain()
  27. case "round":
  28. bw.BorderSet = tview.BorderSetRound()
  29. case "thick":
  30. bw.BorderSet = tview.BorderSetThick()
  31. case "double":
  32. bw.BorderSet = tview.BorderSetDouble()
  33. }
  34. return nil
  35. }