ITheme.kt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package org.mjdev.desktop.interfaces
  2. import androidx.compose.ui.graphics.Color
  3. import androidx.compose.ui.unit.Dp
  4. import androidx.compose.ui.unit.DpSize
  5. import androidx.compose.ui.unit.dp
  6. import org.mjdev.desktop.data.ControlCenterLocation
  7. import org.mjdev.desktop.data.PanelLocation
  8. import org.mjdev.desktop.extensions.Colors.SuperDarkGray
  9. @Suppress("UNUSED_PARAMETER")
  10. interface ITheme : IDisposable {
  11. var iconSet: IFont
  12. var backgroundColor: Color
  13. var backgroundRotationDelay: Long
  14. var panelLocation: PanelLocation
  15. var panelDividerWidth: Dp
  16. var panelContentPadding: Dp
  17. var panelHideDelay: Long
  18. var controlCenterLocation: ControlCenterLocation
  19. var controlPanelHideDelay: Long
  20. var controlCenterExpandedWidthPercent: Int
  21. var controlCenterDividerColor: Color
  22. var controlCenterDividerWidth: Dp
  23. var controlCenterIconColor: Color
  24. var controlCenterIconSize: DpSize
  25. var controlCenterBackgroundAlpha: Float
  26. var appMenuMinWidthRatio: Float
  27. var appMenuMinHeightRatio: Float
  28. var appMenuOuterPadding: Dp
  29. companion object {
  30. val DEFAULT =
  31. object : ITheme {
  32. override var iconSet: IFont = IFont.Empty
  33. override var backgroundColor: Color = Color.SuperDarkGray
  34. override var backgroundRotationDelay: Long = 60000
  35. override var panelLocation: PanelLocation = PanelLocation.Bottom
  36. override var panelDividerWidth: Dp = 12.dp
  37. override var panelContentPadding: Dp = 8.dp
  38. override var panelHideDelay: Long = 0
  39. override var controlCenterLocation: ControlCenterLocation = ControlCenterLocation.Right
  40. override var controlPanelHideDelay: Long = 10000
  41. override var controlCenterExpandedWidthPercent: Int = 35
  42. override var controlCenterDividerColor: Color = Color.SuperDarkGray
  43. override var controlCenterDividerWidth: Dp = 12.dp
  44. override var controlCenterIconColor: Color = Color.White
  45. override var controlCenterIconSize: DpSize = DpSize(32.dp, 32.dp)
  46. override var controlCenterBackgroundAlpha: Float = 0.4f
  47. override var appMenuMinWidthRatio: Float = 0.3f
  48. override var appMenuMinHeightRatio: Float = 0.8f
  49. override var appMenuOuterPadding: Dp = 4.dp
  50. override fun dispose() {
  51. }
  52. }
  53. fun load(user: IUser?): ITheme = DEFAULT
  54. }
  55. }