open fun handleEvent()

in sample/src/main/kotlin/org/jetbrains/desktop/sample/win32/SkikoWindowWin32.kt [48:94]


    open fun handleEvent(event: Event): EventHandlerResult {
        return when (event) {
            is Event.WindowDraw -> with(event) {
                performDrawing(size, scale)
                EventHandlerResult.Stop
            }

            is Event.NCCalcSize -> with(event) {
                performDrawing(size, scale)
                EventHandlerResult.Stop
            }

            is Event.KeyDown -> {
                when (event.keyCode) {
                    VirtualKey.S -> {
                        val screens = Screen.allScreens()
                        for (screen in screens) {
                            Logger.debug { "Screen: $screen" }
                        }
                        val currentScreen = window.getScreen()
                        Logger.debug { "Current screen: $currentScreen" }
                    }
                    VirtualKey.T -> {
                        window.setTitle("New Title")
                    }
                    VirtualKey.C -> {
                        window.setCursor(CursorIcon.Hand)
                    }
                }
                EventHandlerResult.Continue
            }

            is Event.SystemAppearanceChange -> with(event) {
                Logger.debug { "Setting change: new appearance: $newAppearance" }
                val enableImmersiveDarkMode = newAppearance == Appearance.Dark
                window.setImmersiveDarkMode(enableImmersiveDarkMode)
                EventHandlerResult.Stop
            }

            is Event.WindowTitleChanged -> with(event) {
                Logger.debug { "New window title: $title" }
                EventHandlerResult.Continue
            }

            else -> EventHandlerResult.Continue
        }
    }