|
|
@ -1,13 +1,15 @@ |
|
|
|
package org.jetbrains.codeviewer.platform |
|
|
|
package org.jetbrains.codeviewer.platform |
|
|
|
|
|
|
|
|
|
|
|
import androidx.compose.desktop.LocalAppWindow |
|
|
|
|
|
|
|
import androidx.compose.runtime.getValue |
|
|
|
import androidx.compose.runtime.getValue |
|
|
|
import androidx.compose.runtime.mutableStateOf |
|
|
|
import androidx.compose.runtime.mutableStateOf |
|
|
|
import androidx.compose.runtime.remember |
|
|
|
import androidx.compose.runtime.remember |
|
|
|
import androidx.compose.runtime.setValue |
|
|
|
import androidx.compose.runtime.setValue |
|
|
|
|
|
|
|
import androidx.compose.ui.ExperimentalComposeUiApi |
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.composed |
|
|
|
import androidx.compose.ui.composed |
|
|
|
import androidx.compose.ui.geometry.Offset |
|
|
|
import androidx.compose.ui.geometry.Offset |
|
|
|
|
|
|
|
import androidx.compose.ui.input.pointer.awtCursor |
|
|
|
|
|
|
|
import androidx.compose.ui.input.pointer.pointerIcon |
|
|
|
import androidx.compose.ui.input.pointer.pointerMoveFilter |
|
|
|
import androidx.compose.ui.input.pointer.pointerMoveFilter |
|
|
|
import java.awt.Cursor |
|
|
|
import java.awt.Cursor |
|
|
|
|
|
|
|
|
|
|
@ -17,17 +19,20 @@ actual fun Modifier.pointerMoveFilter( |
|
|
|
onMove: (Offset) -> Boolean |
|
|
|
onMove: (Offset) -> Boolean |
|
|
|
): Modifier = this.pointerMoveFilter(onEnter = onEnter, onExit = onExit, onMove = onMove) |
|
|
|
): Modifier = this.pointerMoveFilter(onEnter = onEnter, onExit = onExit, onMove = onMove) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@OptIn(ExperimentalComposeUiApi::class) |
|
|
|
actual fun Modifier.cursorForHorizontalResize(): Modifier = composed { |
|
|
|
actual fun Modifier.cursorForHorizontalResize(): Modifier = composed { |
|
|
|
var isHover by remember { mutableStateOf(false) } |
|
|
|
var isHover by remember { mutableStateOf(false) } |
|
|
|
|
|
|
|
|
|
|
|
if (isHover) { |
|
|
|
|
|
|
|
LocalAppWindow.current.window.cursor = Cursor(Cursor.E_RESIZE_CURSOR) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
LocalAppWindow.current.window.cursor = Cursor.getDefaultCursor() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pointerMoveFilter( |
|
|
|
pointerMoveFilter( |
|
|
|
onEnter = { isHover = true; true }, |
|
|
|
onEnter = { isHover = true; true }, |
|
|
|
onExit = { isHover = false; true } |
|
|
|
onExit = { isHover = false; true } |
|
|
|
|
|
|
|
).pointerIcon( |
|
|
|
|
|
|
|
awtCursor( |
|
|
|
|
|
|
|
if (isHover) { |
|
|
|
|
|
|
|
Cursor(Cursor.E_RESIZE_CURSOR) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
Cursor.getDefaultCursor() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
} |