Skip to content

Commit af53153

Browse files
committed
library: Add macos native support
* Temporarily remove blur support
1 parent 997ccbf commit af53153

File tree

16 files changed

+123
-82
lines changed

16 files changed

+123
-82
lines changed

composeApp/build.gradle.kts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ kotlin {
3737
}
3838
}
3939

40+
listOf(
41+
macosX64(),
42+
macosArm64()
43+
).forEach { macosTarget ->
44+
macosTarget.binaries.executable {
45+
baseName = appName
46+
entryPoint = "main"
47+
freeCompilerArgs += listOf(
48+
"-linker-option", "-framework", "-linker-option", "Metal"
49+
)
50+
}
51+
}
52+
4053
jvm("desktop")
4154

4255
@OptIn(ExperimentalWasmDsl::class)

composeApp/src/commonMain/kotlin/ThirdPage.kt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ fun ThirdPage(
2626
onShowFloatingActionButtonChange: (Boolean) -> Unit,
2727
enablePageUserScroll: Boolean,
2828
onEnablePageUserScrollChange: (Boolean) -> Unit,
29-
enableTopBarBlur: Boolean,
30-
onEnableTopBarBlurChange: (Boolean) -> Unit,
31-
enableBottomBarBlur: Boolean,
32-
onEnableBottomBarBlurChange: (Boolean) -> Unit,
3329
colorMode: MutableState<Int>
3430
) {
3531
LazyColumn(
@@ -64,16 +60,6 @@ fun ThirdPage(
6460
onCheckedChange = onEnablePageUserScrollChange,
6561
enabled = platform() != Platform.WasmJs,
6662
)
67-
SuperSwitch(
68-
title = "Enable Top Bar Blur",
69-
checked = enableTopBarBlur,
70-
onCheckedChange = onEnableTopBarBlurChange
71-
)
72-
SuperSwitch(
73-
title = "Enable Bottom Bar Blur",
74-
checked = enableBottomBarBlur,
75-
onCheckedChange = onEnableBottomBarBlurChange
76-
)
7763
SuperDropdown(
7864
title = "Color Mode",
7965
items = listOf("System", "Light", "Dark"),

composeApp/src/commonMain/kotlin/UITest.kt

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import top.yukonga.miuix.kmp.basic.TopAppBar
4545
import top.yukonga.miuix.kmp.basic.rememberTopAppBarState
4646
import top.yukonga.miuix.kmp.icon.MiuixIcons
4747
import top.yukonga.miuix.kmp.icon.icons.GitHub
48-
import top.yukonga.miuix.kmp.theme.MiuixTheme
4948
import utils.FPSMonitor
5049

5150
@OptIn(FlowPreview::class)
@@ -88,23 +87,18 @@ fun UITest(
8887
val showBottomBar = remember { mutableStateOf(true) }
8988
val showFloatingActionButton = remember { mutableStateOf(true) }
9089
val enablePageUserScroll = remember { mutableStateOf(false) }
91-
val enableTopBarBlur = remember { mutableStateOf(true) }
92-
val enableBottomBarBlur = remember { mutableStateOf(true) }
9390

9491
val uriHandler = LocalUriHandler.current
9592

9693
Scaffold(
9794
modifier = Modifier.fillMaxSize(),
98-
enableTopBarBlur = enableTopBarBlur.value,
99-
enableBottomBarBlur = enableBottomBarBlur.value,
10095
topBar = {
10196
AnimatedVisibility(
10297
visible = showTopAppBar.value,
10398
enter = fadeIn() + expandVertically(),
10499
exit = fadeOut() + shrinkVertically()
105100
) {
106101
TopAppBar(
107-
color = if (enableTopBarBlur.value) Color.Transparent else MiuixTheme.colorScheme.background,
108102
title = "Miuix",
109103
scrollBehavior = currentScrollBehavior
110104
)
@@ -117,7 +111,6 @@ fun UITest(
117111
exit = fadeOut() + shrinkVertically()
118112
) {
119113
NavigationBar(
120-
color = if (enableBottomBarBlur.value) Color.Transparent else MiuixTheme.colorScheme.background,
121114
items = items,
122115
selected = targetPage,
123116
onClick = { index ->
@@ -164,10 +157,6 @@ fun UITest(
164157
onShowFloatingActionButtonChange = { showFloatingActionButton.value = it },
165158
enablePageUserScroll = enablePageUserScroll.value,
166159
onEnablePageUserScrollChange = { enablePageUserScroll.value = it },
167-
enableTopBarBlur = enableTopBarBlur.value,
168-
onEnableTopBarBlurChange = { enableTopBarBlur.value = it },
169-
enableBottomBarBlur = enableBottomBarBlur.value,
170-
onEnableBottomBarBlurChange = { enableBottomBarBlur.value = it },
171160
colorMode = colorMode,
172161
)
173162
}
@@ -201,10 +190,6 @@ fun AppHorizontalPager(
201190
onShowFloatingActionButtonChange: (Boolean) -> Unit,
202191
enablePageUserScroll: Boolean,
203192
onEnablePageUserScrollChange: (Boolean) -> Unit,
204-
enableTopBarBlur: Boolean,
205-
onEnableTopBarBlurChange: (Boolean) -> Unit,
206-
enableBottomBarBlur: Boolean,
207-
onEnableBottomBarBlurChange: (Boolean) -> Unit,
208193
colorMode: MutableState<Int>
209194
) {
210195
HorizontalPager(
@@ -236,10 +221,6 @@ fun AppHorizontalPager(
236221
onShowFloatingActionButtonChange = onShowFloatingActionButtonChange,
237222
enablePageUserScroll = enablePageUserScroll,
238223
onEnablePageUserScrollChange = onEnablePageUserScrollChange,
239-
enableTopBarBlur = enableTopBarBlur,
240-
onEnableTopBarBlurChange = onEnableTopBarBlurChange,
241-
enableBottomBarBlur = enableBottomBarBlur,
242-
onEnableBottomBarBlurChange = onEnableBottomBarBlurChange,
243224
colorMode = colorMode
244225
)
245226
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import androidx.compose.ui.unit.DpSize
2+
import androidx.compose.ui.unit.dp
3+
import androidx.compose.ui.window.Window
4+
import platform.AppKit.NSApplication
5+
import platform.AppKit.NSApplicationActivationPolicy
6+
import platform.AppKit.NSApplicationDelegateProtocol
7+
import platform.darwin.NSObject
8+
9+
fun main() {
10+
val nsApplication = NSApplication.sharedApplication()
11+
nsApplication.setActivationPolicy(NSApplicationActivationPolicy.NSApplicationActivationPolicyRegular)
12+
nsApplication.delegate = object : NSObject(), NSApplicationDelegateProtocol {
13+
override fun applicationShouldTerminateAfterLastWindowClosed(sender: NSApplication): Boolean {
14+
return true
15+
}
16+
}
17+
Window(
18+
title = "miuix",
19+
size = DpSize(420.dp, 820.dp)
20+
) {
21+
App()
22+
}
23+
nsApplication.run()
24+
}

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
1616
# Native
1717
kotlin.native.ignoreDisabledTargets=true
1818
kotlin.native.useEmbeddableCompilerJar=true
19+
# Experimental
20+
org.jetbrains.compose.experimental.macos.enabled=true
1921
# Xcode
2022
kotlin.apple.xcodeCompatibility.nowarn=true
2123
xcodeproj=./iosApp

0 commit comments

Comments
 (0)