diff --git a/demoApp/composeApp/build.gradle.kts b/demoApp/composeApp/build.gradle.kts index 315c6ab..55aa970 100644 --- a/demoApp/composeApp/build.gradle.kts +++ b/demoApp/composeApp/build.gradle.kts @@ -54,6 +54,15 @@ kotlin { } } + listOf( + macosX64(), + macosArm64() + ).forEach { + it.binaries.executable { + entryPoint = "main" + } + } + sourceSets { commonMain.dependencies { implementation(compose.runtime) @@ -138,4 +147,12 @@ compose.desktop { packageVersion = "1.0.0" } } + nativeApplication { + targets(kotlin.macosX64(), kotlin.macosArm64()) + distributions { + targetFormats(TargetFormat.Dmg) + packageName = "sh.calvin.reorderable.demo" + packageVersion = "1.0.0" + } + } } diff --git a/demoApp/composeApp/src/macosMain/kotlin/main.kt b/demoApp/composeApp/src/macosMain/kotlin/main.kt new file mode 100644 index 0000000..df38867 --- /dev/null +++ b/demoApp/composeApp/src/macosMain/kotlin/main.kt @@ -0,0 +1,23 @@ +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Window +import platform.AppKit.NSApplication +import platform.AppKit.NSApplicationActivationPolicy +import platform.AppKit.NSApplicationDelegateProtocol +import platform.darwin.NSObject +import sh.calvin.reorderable.demo.ui.App + +fun main() { + val nsApplication = NSApplication.sharedApplication() + nsApplication.setActivationPolicy(NSApplicationActivationPolicy.NSApplicationActivationPolicyRegular) + nsApplication.delegate = object : NSObject(), NSApplicationDelegateProtocol { + override fun applicationShouldTerminateAfterLastWindowClosed(sender: NSApplication) = true + } + Window( + title = "Reorderable", + size = DpSize(width = 800.dp, height = 600.dp) + ) { + App() + } + nsApplication.run() +} diff --git a/demoApp/composeApp/src/macosMain/kotlin/sh/calvin/reorderable/demo/haptics.macos.kt b/demoApp/composeApp/src/macosMain/kotlin/sh/calvin/reorderable/demo/haptics.macos.kt new file mode 100644 index 0000000..a13f240 --- /dev/null +++ b/demoApp/composeApp/src/macosMain/kotlin/sh/calvin/reorderable/demo/haptics.macos.kt @@ -0,0 +1,8 @@ +package sh.calvin.reorderable.demo + +import androidx.compose.runtime.Composable + +@Composable +actual fun rememberReorderHapticFeedback(): ReorderHapticFeedback { + return ReorderHapticFeedback() +} diff --git a/gradle.properties b/gradle.properties index 44d5b1a..e750791 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,3 +27,4 @@ signAllPublications=true org.jetbrains.compose.experimental.wasm.enabled=true org.jetbrains.compose.experimental.jscanvas.enabled=true +org.jetbrains.compose.experimental.macos.enabled=true diff --git a/reorderable/build.gradle.kts b/reorderable/build.gradle.kts index c363039..4e5bbfa 100644 --- a/reorderable/build.gradle.kts +++ b/reorderable/build.gradle.kts @@ -54,7 +54,9 @@ kotlin { listOf( iosX64(), iosArm64(), - iosSimulatorArm64() + iosSimulatorArm64(), + macosX64(), + macosArm64() ).forEach { it.binaries.framework { baseName = "reorderable"