diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/fir/FirStatusBarWidgetFactory.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/fir/FirStatusBarWidgetFactory.kt new file mode 100644 index 00000000000..938891505ce --- /dev/null +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/fir/FirStatusBarWidgetFactory.kt @@ -0,0 +1,48 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.fir + +import com.intellij.icons.AllIcons +import com.intellij.ide.lightEdit.LightEdit +import com.intellij.openapi.project.Project +import com.intellij.openapi.ui.Messages +import com.intellij.openapi.util.Disposer +import com.intellij.openapi.wm.StatusBar +import com.intellij.openapi.wm.StatusBarWidget +import com.intellij.openapi.wm.StatusBarWidgetFactory +import com.intellij.util.Consumer +import org.jetbrains.kotlin.idea.KotlinIconsIndependent +import java.awt.event.MouseEvent +import javax.swing.Icon + +internal class FirStatusBarWidgetFactory: StatusBarWidgetFactory { + override fun getId(): String = ID + + override fun getDisplayName(): String = "FIR IDE" + + override fun isAvailable(project: Project): Boolean = true + + override fun createWidget(project: Project): StatusBarWidget = Widget() + + override fun disposeWidget(widget: StatusBarWidget) = Disposer.dispose(widget) + + override fun canBeEnabledOn(statusBar: StatusBar): Boolean = true + + companion object { + const val ID = "kotlin.fir.ide" + } +} + +private class Widget : StatusBarWidget, StatusBarWidget.IconPresentation { + override fun getPresentation(): StatusBarWidget.WidgetPresentation = this + override fun ID(): String = FirStatusBarWidgetFactory.ID + override fun getTooltipText(): String = "FIR IDE" + override fun getIcon(): Icon = KotlinIconsIndependent.FIR + + override fun dispose() {} + override fun install(statusBar: StatusBar) {} + override fun getClickConsumer(): Consumer? = null +} \ No newline at end of file diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java index fd8af9888a1..6a39c12961a 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java @@ -35,6 +35,7 @@ public interface KotlinIconsIndependent { Icon ACTUAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/actual.svg"); Icon EXPECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/expect.svg"); + Icon FIR = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/fir.svg"); Icon LAUNCH = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg"); Icon LOAD_SCRIPT_CONFIGURATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg"); diff --git a/idea/resources-fir/META-INF/plugin.xml b/idea/resources-fir/META-INF/plugin.xml index 17684bfeb15..5694da69875 100644 --- a/idea/resources-fir/META-INF/plugin.xml +++ b/idea/resources-fir/META-INF/plugin.xml @@ -115,6 +115,7 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu + + + + Layer 1 + + + + + + + \ No newline at end of file