mirror of
https://github.com/amir1376/ab-download-manager.git
synced 2025-02-20 11:43:24 +08:00
apply ui scale on some windows
This commit is contained in:
parent
6b704cc9ea
commit
844a885a91
@ -9,9 +9,11 @@ import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
fun ShowAboutDialog(appComponent: AppComponent) {
|
||||
@ -41,6 +43,7 @@ fun AboutDialog(
|
||||
onRequestToggleMaximize = null,
|
||||
state = rememberWindowState(
|
||||
size = DpSize(400.dp, 330.dp)
|
||||
.applyUiScale(LocalUiScale.current)
|
||||
),
|
||||
onCloseRequest = onClose
|
||||
) {
|
||||
|
@ -5,7 +5,6 @@ import com.abdownloadmanager.desktop.pages.addDownload.multiple.AddMultiDownload
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.multiple.AddMultiItemPage
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.AddDownloadPage
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.AddSingleDownloadComponent
|
||||
import com.abdownloadmanager.desktop.pages.singleDownloadPage.SingleDownloadEffects
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
@ -19,9 +18,10 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
|
||||
@Composable
|
||||
@ -32,10 +32,11 @@ fun ShowAddDownloadDialogs(component: AddDownloadDialogManager) {
|
||||
val onRequestClose = {
|
||||
component.closeAddDownloadDialog(addDownloadComponent.id)
|
||||
}
|
||||
val uiScale = LocalUiScale.current
|
||||
when (addDownloadComponent) {
|
||||
is AddSingleDownloadComponent -> {
|
||||
val h = 265
|
||||
val w = 500
|
||||
val h = 265.applyUiScale(uiScale)
|
||||
val w = 500.applyUiScale(uiScale)
|
||||
val size = remember {
|
||||
DpSize(
|
||||
height = h.dp,
|
||||
|
@ -22,6 +22,8 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberDialogState
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
import java.awt.MouseInfo
|
||||
|
||||
@ -36,7 +38,7 @@ fun ExtraConfig(
|
||||
size = DpSize(
|
||||
height = h.dp,
|
||||
width = w.dp,
|
||||
),
|
||||
).applyUiScale(LocalUiScale.current),
|
||||
)
|
||||
BaseOptionDialog(onDismiss, state) {
|
||||
LaunchedEffect(window){
|
||||
|
@ -7,13 +7,16 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
fun BatchDownloadWindow(batchDownloadComponent: BatchDownloadComponent) {
|
||||
CustomWindow(
|
||||
state = rememberWindowState(
|
||||
size = DpSize(500.dp, 420.dp),
|
||||
size = DpSize(500.dp, 420.dp)
|
||||
.applyUiScale(LocalUiScale.current),
|
||||
position = WindowPosition(Alignment.Center)
|
||||
),
|
||||
onCloseRequest = batchDownloadComponent.onClose
|
||||
|
@ -9,6 +9,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
fun ShowCategoryDialogs(dialogManager: CategoryDialogManager) {
|
||||
@ -28,7 +30,7 @@ private fun CategoryDialog(
|
||||
},
|
||||
alwaysOnTop = true,
|
||||
state = rememberWindowState(
|
||||
size = DpSize(350.dp, 400.dp),
|
||||
size = DpSize(350.dp, 400.dp).applyUiScale(LocalUiScale.current),
|
||||
position = WindowPosition.Aligned(Alignment.Center),
|
||||
)
|
||||
) {
|
||||
|
@ -33,6 +33,7 @@ import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.ExtraConfig
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.resources.Res
|
||||
@ -41,6 +42,7 @@ import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import ir.amirab.util.UrlUtils
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
fun EditDownloadWindow(
|
||||
@ -48,7 +50,8 @@ fun EditDownloadWindow(
|
||||
) {
|
||||
CustomWindow(
|
||||
state = rememberWindowState(
|
||||
size = DpSize(450.dp, 230.dp),
|
||||
size = DpSize(450.dp, 230.dp)
|
||||
.applyUiScale(LocalUiScale.current),
|
||||
position = WindowPosition.Aligned(Alignment.Center)
|
||||
),
|
||||
alwaysOnTop = true,
|
||||
|
@ -9,6 +9,8 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
fun NewQueueDialog(
|
||||
@ -17,7 +19,8 @@ fun NewQueueDialog(
|
||||
if (appComponent.showCreateQueueDialog.collectAsState().value){
|
||||
CustomWindow(
|
||||
state = rememberWindowState(
|
||||
size = DpSize(width = 300.dp, height = 130.dp),
|
||||
size = DpSize(width = 300.dp, height = 130.dp)
|
||||
.applyUiScale(LocalUiScale.current),
|
||||
position = WindowPosition.Aligned(Alignment.Center),
|
||||
),
|
||||
resizable = false,
|
||||
|
@ -1,16 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
|
@ -14,12 +14,14 @@ import androidx.compose.ui.window.FrameWindowScope
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.WindowState
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
import ir.amirab.downloader.monitor.CompletedDownloadItemState
|
||||
import ir.amirab.downloader.monitor.IDownloadItemState
|
||||
import ir.amirab.downloader.monitor.ProcessingDownloadItemState
|
||||
import ir.amirab.downloader.monitor.statusOrFinished
|
||||
import ir.amirab.downloader.utils.ExceptionUtils
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
import java.awt.Taskbar
|
||||
import java.awt.Window
|
||||
@ -110,9 +112,12 @@ private fun CompletedWindow(
|
||||
}
|
||||
val defaultHeight = 160f
|
||||
val defaultWidth = 450f
|
||||
val uiScale = LocalUiScale.current
|
||||
val state = rememberWindowState(
|
||||
height = defaultHeight.dp,
|
||||
width = defaultWidth.dp,
|
||||
size = DpSize(
|
||||
height = defaultHeight.dp,
|
||||
width = defaultWidth.dp
|
||||
).applyUiScale(uiScale),
|
||||
position = WindowPosition(Alignment.Center)
|
||||
)
|
||||
CustomWindow(
|
||||
@ -136,7 +141,7 @@ private fun CompletedWindow(
|
||||
state.size = DpSize(
|
||||
width = w.dp,
|
||||
height = h.dp
|
||||
)
|
||||
).applyUiScale(uiScale)
|
||||
}
|
||||
CompletedDownloadPage(
|
||||
singleDownloadComponent,
|
||||
@ -153,8 +158,9 @@ private fun ProgressWindow(
|
||||
val onRequestClose = {
|
||||
singleDownloadComponent.close()
|
||||
}
|
||||
val defaultHeight = 290f
|
||||
val defaultWidth = 450f
|
||||
val uiScale = LocalUiScale.current
|
||||
val defaultHeight = 290f.applyUiScale(uiScale)
|
||||
val defaultWidth = 450f.applyUiScale(uiScale)
|
||||
|
||||
val showPartInfo by singleDownloadComponent.showPartInfo.collectAsState()
|
||||
val state = rememberWindowState(
|
||||
@ -181,6 +187,7 @@ private fun ProgressWindow(
|
||||
var w = defaultWidth
|
||||
if (showPartInfo) {
|
||||
h += singleDownloadPageSizing.partInfoHeight.value
|
||||
.applyUiScale(uiScale)
|
||||
}
|
||||
LaunchedEffect(w, h) {
|
||||
state.size = DpSize(
|
||||
|
@ -18,9 +18,11 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
|
||||
@Suppress("unused")
|
||||
@ -39,8 +41,9 @@ fun ConfirmDialog(
|
||||
onConfirm: () -> Unit,
|
||||
onCancel: () -> Unit,
|
||||
) {
|
||||
val h = 180
|
||||
val w = 400
|
||||
val uiScale = LocalUiScale.current
|
||||
val h = 180.applyUiScale(uiScale)
|
||||
val w = 400.applyUiScale(uiScale)
|
||||
val state = rememberWindowState(
|
||||
size = DpSize(w.dp, h.dp),
|
||||
position = WindowPosition.Aligned(Alignment.Center)
|
||||
|
@ -19,7 +19,9 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
import java.util.UUID
|
||||
|
||||
@ -59,8 +61,9 @@ fun MessageDialog(
|
||||
msgContent: MessageDialogModel,
|
||||
onConfirm: () -> Unit,
|
||||
) {
|
||||
val h = 200
|
||||
val w = 400
|
||||
val uiScale = LocalUiScale.current
|
||||
val h = 200.applyUiScale(uiScale)
|
||||
val w = 400.applyUiScale(uiScale)
|
||||
val state = rememberWindowState(
|
||||
size = DpSize(w.dp, h.dp)
|
||||
)
|
||||
|
@ -21,6 +21,13 @@ fun Int.applyUiScale(
|
||||
if (userUiScale == null) return this
|
||||
return (this * userUiScale / systemUiScale).toInt()
|
||||
}
|
||||
fun Float.applyUiScale(
|
||||
userUiScale: Float?,
|
||||
systemUiScale: Float = GlobalDensity.density,
|
||||
): Float {
|
||||
if (userUiScale == null) return this
|
||||
return (this * userUiScale / systemUiScale)
|
||||
}
|
||||
|
||||
fun Int.unApplyUiScale(
|
||||
userUiScale: Float?,
|
||||
@ -29,6 +36,13 @@ fun Int.unApplyUiScale(
|
||||
if (userUiScale == null) return this
|
||||
return (this * systemUiScale / userUiScale).toInt()
|
||||
}
|
||||
fun Float.unApplyUiScale(
|
||||
userUiScale: Float?,
|
||||
systemUiScale: Float = GlobalDensity.density,
|
||||
): Float {
|
||||
if (userUiScale == null) return this
|
||||
return (this * systemUiScale / userUiScale)
|
||||
}
|
||||
|
||||
fun DpSize.applyUiScale(
|
||||
userUiScale: Float?,
|
||||
|
Loading…
x
Reference in New Issue
Block a user