@@ -2,12 +2,56 @@ package li.songe.gkd.ui.component
22
33import androidx.annotation.DrawableRes
44import androidx.compose.material.icons.Icons
5- import androidx.compose.material.icons.automirrored.filled.*
5+ import androidx.compose.material.icons.automirrored.filled.ArrowBack
6+ import androidx.compose.material.icons.automirrored.filled.ArrowForward
7+ import androidx.compose.material.icons.automirrored.filled.FormatListBulleted
8+ import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight
9+ import androidx.compose.material.icons.automirrored.filled.Sort
610import androidx.compose.material.icons.automirrored.outlined.HelpOutline
711import androidx.compose.material.icons.automirrored.outlined.OpenInNew
8- import androidx.compose.material.icons.filled.*
9- import androidx.compose.material.icons.outlined.*
10- import androidx.compose.material3.*
12+ import androidx.compose.material.icons.filled.Android
13+ import androidx.compose.material.icons.filled.Apps
14+ import androidx.compose.material.icons.filled.Autorenew
15+ import androidx.compose.material.icons.filled.Block
16+ import androidx.compose.material.icons.filled.CenterFocusWeak
17+ import androidx.compose.material.icons.filled.Close
18+ import androidx.compose.material.icons.filled.History
19+ import androidx.compose.material.icons.filled.Memory
20+ import androidx.compose.material.icons.filled.MoreVert
21+ import androidx.compose.material.icons.filled.Share
22+ import androidx.compose.material.icons.filled.UnfoldMore
23+ import androidx.compose.material.icons.filled.WarningAmber
24+ import androidx.compose.material.icons.outlined.Add
25+ import androidx.compose.material.icons.outlined.Api
26+ import androidx.compose.material.icons.outlined.ArrowDownward
27+ import androidx.compose.material.icons.outlined.AutoMode
28+ import androidx.compose.material.icons.outlined.Check
29+ import androidx.compose.material.icons.outlined.ContentCopy
30+ import androidx.compose.material.icons.outlined.DarkMode
31+ import androidx.compose.material.icons.outlined.Delete
32+ import androidx.compose.material.icons.outlined.Eco
33+ import androidx.compose.material.icons.outlined.Edit
34+ import androidx.compose.material.icons.outlined.Equalizer
35+ import androidx.compose.material.icons.outlined.Home
36+ import androidx.compose.material.icons.outlined.Image
37+ import androidx.compose.material.icons.outlined.Info
38+ import androidx.compose.material.icons.outlined.Layers
39+ import androidx.compose.material.icons.outlined.LightMode
40+ import androidx.compose.material.icons.outlined.Lock
41+ import androidx.compose.material.icons.outlined.Notifications
42+ import androidx.compose.material.icons.outlined.RocketLaunch
43+ import androidx.compose.material.icons.outlined.Save
44+ import androidx.compose.material.icons.outlined.Settings
45+ import androidx.compose.material.icons.outlined.TextFields
46+ import androidx.compose.material.icons.outlined.Title
47+ import androidx.compose.material.icons.outlined.ToggleOff
48+ import androidx.compose.material.icons.outlined.ToggleOn
49+ import androidx.compose.material.icons.outlined.VerifiedUser
50+ import androidx.compose.material3.Icon
51+ import androidx.compose.material3.IconButton
52+ import androidx.compose.material3.IconButtonColors
53+ import androidx.compose.material3.IconButtonDefaults
54+ import androidx.compose.material3.LocalContentColor
1155import androidx.compose.runtime.Composable
1256import androidx.compose.ui.Modifier
1357import androidx.compose.ui.graphics.Color
@@ -21,14 +65,9 @@ fun PerfIcon(
2165 imageVector : ImageVector ,
2266 modifier : Modifier = Modifier ,
2367 tint : Color = LocalContentColor .current,
24- contentDescription : String? = getDefaultDesc(imageVector),
25- ) = TooltipBox (
26- tooltip = { PlainTooltip { Text (text = contentDescription.orEmpty()) } },
27- state = rememberTooltipState(),
28- enableUserInput = ! contentDescription.isNullOrEmpty(),
29- positionProvider = TooltipDefaults .rememberTooltipPositionProvider(
30- TooltipAnchorPosition .Start
31- )
68+ contentDescription : String? = getIconDefaultDesc(imageVector),
69+ ) = PerfTooltipBox (
70+ tooltipText = contentDescription,
3271) {
3372 Icon (
3473 imageVector = imageVector,
@@ -45,7 +84,7 @@ fun PerfIconButton(
4584 modifier : Modifier = Modifier ,
4685 enabled : Boolean = true,
4786 colors : IconButtonColors = IconButtonDefaults .iconButtonColors(),
48- contentDescription : String? = getDefaultDesc (imageVector),
87+ contentDescription : String? = getIconDefaultDesc (imageVector),
4988 onClickLabel : String? = null,
5089 tint : Color = LocalContentColor .current,
5190) = IconButton (
@@ -71,13 +110,8 @@ fun PerfIcon(
71110 modifier : Modifier = Modifier ,
72111 tint : Color = LocalContentColor .current,
73112 contentDescription : String? = null,
74- ) = TooltipBox (
75- tooltip = { PlainTooltip { Text (text = contentDescription.orEmpty()) } },
76- state = rememberTooltipState(),
77- enableUserInput = ! contentDescription.isNullOrEmpty(),
78- positionProvider = TooltipDefaults .rememberTooltipPositionProvider(
79- TooltipAnchorPosition .Start
80- )
113+ ) = PerfTooltipBox (
114+ tooltipText = contentDescription,
81115) {
82116 Icon (
83117 painter = painterResource(id),
@@ -112,7 +146,7 @@ fun PerfIconButton(
112146 )
113147}
114148
115- private fun getDefaultDesc (imageVector : ImageVector ): String? = when (imageVector) {
149+ fun getIconDefaultDesc (imageVector : ImageVector ): String? = when (imageVector) {
116150 PerfIcon .Add -> " 添加"
117151 PerfIcon .Edit -> " 编辑"
118152 PerfIcon .Save -> " 保存"
@@ -128,6 +162,7 @@ private fun getDefaultDesc(imageVector: ImageVector): String? = when (imageVecto
128162 PerfIcon .Sort -> " 排序筛选"
129163 PerfIcon .OpenInNew -> " 新页面打开"
130164 PerfIcon .ContentCopy -> " 复制文本"
165+ PerfIcon .MoreVert -> " 更多操作"
131166 else -> null
132167}
133168
0 commit comments