FullScreenWindow.kt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package eu.mjdev.desktop.windows
  2. import androidx.compose.runtime.Composable
  3. import androidx.compose.ui.Alignment
  4. import androidx.compose.ui.input.key.KeyEvent
  5. import androidx.compose.ui.window.WindowPlacement
  6. import androidx.compose.ui.window.WindowPosition
  7. import eu.mjdev.desktop.provider.DesktopProvider
  8. import eu.mjdev.desktop.provider.DesktopProvider.Companion.LocalDesktop
  9. import eu.mjdev.desktop.windows.ChromeWindowState.Companion.rememberChromeWindowState
  10. @Composable
  11. fun FullScreenWindow(
  12. api: DesktopProvider = LocalDesktop.current,
  13. enabled: Boolean = true,
  14. focusable: Boolean = true,
  15. onOpened: ChromeWindowState.() -> Unit = {},
  16. onCloseRequest: () -> Unit = {},
  17. onPreviewKeyEvent: (KeyEvent) -> Boolean = { false },
  18. onKeyEvent: (KeyEvent) -> Boolean = { false },
  19. windowState: ChromeWindowState = rememberChromeWindowState(
  20. placement = WindowPlacement.Maximized,
  21. size = api.containerSize,
  22. position = WindowPosition.Aligned(Alignment.Center)
  23. ),
  24. onCreate: ChromeWindowState.() -> Unit = {},
  25. onFocusChange: ChromeWindowState.(Boolean) -> Unit = {
  26. },
  27. content: @Composable ChromeWindowScope.() -> Unit = {}
  28. ) = ChromeWindow(
  29. windowState = windowState,
  30. enabled = enabled,
  31. resizable = false,
  32. transparent = true,
  33. focusable = focusable,
  34. visible = true,
  35. alwaysOnTop = false,
  36. onPreviewKeyEvent = onPreviewKeyEvent,
  37. onKeyEvent = onKeyEvent,
  38. onCloseRequest = onCloseRequest,
  39. onCreate = onCreate,
  40. onOpened = onOpened,
  41. onFocusChange = onFocusChange,
  42. content = content
  43. )