From f7e762bc9366ae293fe36d192403efb4af5f14b1 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Fri, 9 Oct 2020 14:15:15 +0300 Subject: [PATCH] Mouse move tutorial. --- tutorials/Mouse_Events/main.md | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tutorials/Mouse_Events/main.md diff --git a/tutorials/Mouse_Events/main.md b/tutorials/Mouse_Events/main.md new file mode 100644 index 0000000000..84a287e2fe --- /dev/null +++ b/tutorials/Mouse_Events/main.md @@ -0,0 +1,49 @@ +# Getting Started with Compose for Desktop + +## What is covered + +In this tutorial we will see how to install mouse even listeners on components +in Compose for Desktop. + +## Mouse event listeners + +Let's create a text, and install pointer move filter on it: +```kotlin +import androidx.compose.desktop.Window +import androidx.compose.foundation.Text +import androidx.compose.foundation.layout.* +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.input.pointer.pointerMoveFilter +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.sp + + +fun main() = Window(title = "Compose for Desktop", size = IntSize(400, 400)) { + var overText = remember { mutableStateOf("Move mouse over text:") } + Text( + text = overText.value, + fontSize = 40.sp, + modifier = Modifier + .wrapContentSize(Alignment.Center) + .pointerMoveFilter( + onMove = { + if (it.x > 10 && it.y > 10) + overText.value = "Move position: $it" + false + }, + onEnter = { + overText.value = "Over enter" + false + }, + onExit = { + overText.value = "Over exit" + false + } + ) + ) +} + +```