legacy.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package theme
  2. import (
  3. "image/color"
  4. "fyne.io/fyne/v2"
  5. )
  6. // FromLegacy returns a 2.0 Theme created from the given LegacyTheme data.
  7. // This is a transition path and will be removed in the future (probably version 3.0).
  8. //
  9. // Since: 2.0
  10. func FromLegacy(t fyne.LegacyTheme) fyne.Theme {
  11. return &legacyWrapper{old: t}
  12. }
  13. var _ fyne.Theme = (*legacyWrapper)(nil)
  14. type legacyWrapper struct {
  15. old fyne.LegacyTheme
  16. }
  17. func (l *legacyWrapper) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
  18. switch n {
  19. case ColorNameBackground:
  20. return l.old.BackgroundColor()
  21. case ColorNameForeground:
  22. return l.old.TextColor()
  23. case ColorNameButton:
  24. return l.old.ButtonColor()
  25. case ColorNameDisabledButton:
  26. return l.old.DisabledButtonColor()
  27. case ColorNameDisabled:
  28. return l.old.DisabledTextColor()
  29. case ColorNameFocus:
  30. return l.old.FocusColor()
  31. case ColorNameHover:
  32. return l.old.HoverColor()
  33. case ColorNamePlaceHolder:
  34. return l.old.PlaceHolderColor()
  35. case ColorNamePrimary:
  36. return l.old.PrimaryColor()
  37. case ColorNameScrollBar:
  38. return l.old.ScrollBarColor()
  39. case ColorNameShadow:
  40. return l.old.ShadowColor()
  41. default:
  42. return DefaultTheme().Color(n, v)
  43. }
  44. }
  45. func (l *legacyWrapper) Font(s fyne.TextStyle) fyne.Resource {
  46. if s.Monospace {
  47. return l.old.TextMonospaceFont()
  48. }
  49. if s.Bold {
  50. if s.Italic {
  51. return l.old.TextBoldItalicFont()
  52. }
  53. return l.old.TextBoldFont()
  54. }
  55. if s.Italic {
  56. return l.old.TextItalicFont()
  57. }
  58. return l.old.TextFont()
  59. }
  60. func (l *legacyWrapper) Icon(n fyne.ThemeIconName) fyne.Resource {
  61. return DefaultTheme().Icon(n)
  62. }
  63. func (l *legacyWrapper) Size(n fyne.ThemeSizeName) float32 {
  64. switch n {
  65. case SizeNameInlineIcon:
  66. return float32(l.old.IconInlineSize())
  67. case SizeNamePadding:
  68. return float32(l.old.Padding())
  69. case SizeNameScrollBar:
  70. return float32(l.old.ScrollBarSize())
  71. case SizeNameScrollBarSmall:
  72. return float32(l.old.ScrollBarSmallSize())
  73. case SizeNameText:
  74. return float32(l.old.TextSize())
  75. default:
  76. return DefaultTheme().Size(n)
  77. }
  78. }