User: kikugie Date: 01 Aug 24 11:08 Revision: 93be50594da1105874d960a8a873e301404c39ea Summary: Use `LayeredIcon` for mixin classes (#2340) * Use layered icons for mixin classes * Resize icons * Remove outlines * Use `IconLayerProvider` * Clean up svg TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=9522&personal=false Index: src/main/kotlin/asset/MixinAssets.kt =================================================================== --- src/main/kotlin/asset/MixinAssets.kt (revision e54877a7ab68d6ad87f32d951ec94ed428279d55) +++ src/main/kotlin/asset/MixinAssets.kt (revision 93be50594da1105874d960a8a873e301404c39ea) @@ -27,4 +27,6 @@ val MIXIN_CLASS_ICON = loadIcon("/assets/icons/mixin/mixin_class_gutter.png") val MIXIN_CLASS_ICON_DARK = loadIcon("/assets/icons/mixin/mixin_class_gutter_dark.png") + + val MIXIN_MARK = loadIcon("/assets/icons/mixin/mixin_mark.svg") } Index: src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt =================================================================== --- src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt (revision e54877a7ab68d6ad87f32d951ec94ed428279d55) +++ src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt (revision 93be50594da1105874d960a8a873e301404c39ea) @@ -21,15 +21,19 @@ package com.demonwav.mcdev.platform.mixin.framework import com.demonwav.mcdev.MinecraftSettings -import com.demonwav.mcdev.asset.PlatformAssets +import com.demonwav.mcdev.asset.MixinAssets import com.demonwav.mcdev.platform.mixin.util.isMixin -import com.intellij.ide.IconProvider +import com.intellij.ide.IconLayerProvider +import com.intellij.openapi.util.Iconable import com.intellij.psi.PsiClass -import com.intellij.psi.PsiElement +import javax.swing.Icon -class MixinIconProvider : IconProvider() { - override fun getIcon(element: PsiElement, flags: Int) = - PlatformAssets.MIXIN_ICON.takeIf { +class MixinIconProvider : IconLayerProvider { + override fun getLayerIcon(element: Iconable, isLocked: Boolean): Icon? = + MixinAssets.MIXIN_MARK.takeIf { MinecraftSettings.instance.mixinClassIcon && element is PsiClass && element.isMixin } + + override fun getLayerDescription(): String = + "Mixin class" } Index: src/main/resources/META-INF/plugin.xml =================================================================== --- src/main/resources/META-INF/plugin.xml (revision e54877a7ab68d6ad87f32d951ec94ed428279d55) +++ src/main/resources/META-INF/plugin.xml (revision 93be50594da1105874d960a8a873e301404c39ea) @@ -534,7 +534,7 @@ - + + +