Main.kt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package eu.mjdev.desktop
  2. import androidx.compose.material.MaterialTheme
  3. import androidx.compose.runtime.CompositionLocalProvider
  4. import androidx.compose.runtime.rememberCoroutineScope
  5. import androidx.compose.ui.window.application
  6. import eu.mjdev.desktop.components.appsmenu.AppsMenu
  7. import eu.mjdev.desktop.components.controlcenter.ControlCenter
  8. import eu.mjdev.desktop.components.desktoppanel.DesktopPanel
  9. import eu.mjdev.desktop.components.sliding.VisibilityState.Companion.rememberVisibilityState
  10. import eu.mjdev.desktop.provider.DesktopProvider
  11. import eu.mjdev.desktop.provider.DesktopProvider.Companion.LocalDesktop
  12. import eu.mjdev.desktop.windows.MainWindow
  13. fun main() = application(
  14. exitProcessOnExit = true
  15. ) {
  16. val scope = rememberCoroutineScope()
  17. val controlCenterState = rememberVisibilityState()
  18. val panelState = rememberVisibilityState()
  19. val menuState = rememberVisibilityState()
  20. MaterialTheme {
  21. CompositionLocalProvider(
  22. LocalDesktop provides DesktopProvider(scope)
  23. ) {
  24. MainWindow(
  25. panelState = panelState,
  26. controlCenterState = controlCenterState,
  27. menuState = menuState
  28. ) {
  29. DesktopPanel(
  30. panelState = panelState,
  31. onMenuIconClicked = {
  32. menuState.toggle()
  33. }
  34. )
  35. AppsMenu(
  36. menuState = menuState,
  37. panelState = panelState
  38. )
  39. ControlCenter(
  40. controlCenterState = controlCenterState
  41. )
  42. }
  43. }
  44. }
  45. }