@ -3,15 +3,14 @@ package common
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Description
import androidx.compose.material.icons.filled.Description
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Color
import util.toAwtImage
import androidx.compose.ui.graphics.vector.ImageVector
import java.awt.image.BufferedImage
import androidx.compose.ui.graphics.vector.RenderVectorGroup
import androidx.compose.ui.graphics.vector.VectorPainter
import androidx.compose.ui.graphics.vector.rememberVectorPainter
val LocalAppResources = staticCompositionLocalOf < AppResources > {
val LocalAppResources = staticCompositionLocalOf < AppResources > {
error ( " LocalNotepadResources isn't provided " )
error ( " LocalNotepadResources isn't provided " )
@ -19,20 +18,22 @@ val LocalAppResources = staticCompositionLocalOf<AppResources> {
@Composable
@Composable
fun rememberAppResources ( ) : AppResources {
fun rememberAppResources ( ) : AppResources {
val resources = remember { AppResources ( ) }
val icon = rememberVectorPainter ( Icons . Default . Description , Color ( 0xFF2CA4E1 ) )
return remember { AppResources ( icon ) }
LaunchedEffect ( Unit ) {
resources . init ( )
}
return resources
}
}
class AppResources {
class AppResources ( val icon : VectorPainter )
var icon : BufferedImage ? by mutableStateOf ( null )
private set
suspend fun init ( ) {
@OptIn ( ExperimentalComposeUiApi :: class )
icon = Icons . Default . Description . toAwtImage ( Color ( 0xFF2CA4E1 ) )
@Composable
}
fun rememberVectorPainter ( image : ImageVector , tintColor : Color ) =
}
rememberVectorPainter (
defaultWidth = image . defaultWidth ,
defaultHeight = image . defaultHeight ,
viewportWidth = image . viewportWidth ,
viewportHeight = image . viewportHeight ,
name = image . name ,
tintColor = tintColor ,
tintBlendMode = image . tintBlendMode ,
content = { _ , _ -> RenderVectorGroup ( group = image . root ) }
)