diff --git a/platform/icons/src/expui/meetNewUi/dark.svg b/platform/icons/src/expui/meetNewUi/dark.svg deleted file mode 100644 index 37b5bd5a97dd..000000000000 --- a/platform/icons/src/expui/meetNewUi/dark.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/platform/icons/src/expui/meetNewUi/darkTheme.svg b/platform/icons/src/expui/meetNewUi/darkTheme.svg new file mode 100644 index 000000000000..f61152048a74 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/darkTheme.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/darkThemeSelected.svg b/platform/icons/src/expui/meetNewUi/darkThemeSelected.svg new file mode 100644 index 000000000000..3dbc346fa4fb --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/darkThemeSelected.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/darkThemeSelected_dark.svg b/platform/icons/src/expui/meetNewUi/darkThemeSelected_dark.svg new file mode 100644 index 000000000000..16c34b7147fd --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/darkThemeSelected_dark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/darkTheme_dark.svg b/platform/icons/src/expui/meetNewUi/darkTheme_dark.svg new file mode 100644 index 000000000000..506f4416cd56 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/darkTheme_dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/density-compact.svg b/platform/icons/src/expui/meetNewUi/densityCompact.svg similarity index 100% rename from platform/icons/src/expui/meetNewUi/density-compact.svg rename to platform/icons/src/expui/meetNewUi/densityCompact.svg diff --git a/platform/icons/src/expui/meetNewUi/density-compact_dark.svg b/platform/icons/src/expui/meetNewUi/densityCompact_dark.svg similarity index 100% rename from platform/icons/src/expui/meetNewUi/density-compact_dark.svg rename to platform/icons/src/expui/meetNewUi/densityCompact_dark.svg diff --git a/platform/icons/src/expui/meetNewUi/density-default.svg b/platform/icons/src/expui/meetNewUi/densityDefault.svg similarity index 100% rename from platform/icons/src/expui/meetNewUi/density-default.svg rename to platform/icons/src/expui/meetNewUi/densityDefault.svg diff --git a/platform/icons/src/expui/meetNewUi/density-default_dark.svg b/platform/icons/src/expui/meetNewUi/densityDefault_dark.svg similarity index 100% rename from platform/icons/src/expui/meetNewUi/density-default_dark.svg rename to platform/icons/src/expui/meetNewUi/densityDefault_dark.svg diff --git a/platform/icons/src/expui/meetNewUi/light.svg b/platform/icons/src/expui/meetNewUi/light.svg deleted file mode 100644 index c10d2827863d..000000000000 --- a/platform/icons/src/expui/meetNewUi/light.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/platform/icons/src/expui/meetNewUi/lightTheme.svg b/platform/icons/src/expui/meetNewUi/lightTheme.svg new file mode 100644 index 000000000000..7c43d8600952 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/lightTheme.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/lightThemeSelected.svg b/platform/icons/src/expui/meetNewUi/lightThemeSelected.svg new file mode 100644 index 000000000000..d54579f2e63b --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/lightThemeSelected.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/lightThemeSelected_dark.svg b/platform/icons/src/expui/meetNewUi/lightThemeSelected_dark.svg new file mode 100644 index 000000000000..8c30307891c3 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/lightThemeSelected_dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/lightTheme_dark.svg b/platform/icons/src/expui/meetNewUi/lightTheme_dark.svg new file mode 100644 index 000000000000..9f06549540e1 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/lightTheme_dark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/platform/icons/src/expui/meetNewUi/system.svg b/platform/icons/src/expui/meetNewUi/system.svg deleted file mode 100644 index a0654b5a8a57..000000000000 --- a/platform/icons/src/expui/meetNewUi/system.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/platform/icons/src/expui/meetNewUi/systemTheme.svg b/platform/icons/src/expui/meetNewUi/systemTheme.svg new file mode 100644 index 000000000000..9a44abb73429 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/systemTheme.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/icons/src/expui/meetNewUi/systemThemeSelected.svg b/platform/icons/src/expui/meetNewUi/systemThemeSelected.svg new file mode 100644 index 000000000000..842b825781ac --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/systemThemeSelected.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/platform/icons/src/expui/meetNewUi/systemThemeSelected_dark.svg b/platform/icons/src/expui/meetNewUi/systemThemeSelected_dark.svg new file mode 100644 index 000000000000..0d0114f76c3e --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/systemThemeSelected_dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/platform/icons/src/expui/meetNewUi/systemTheme_dark.svg b/platform/icons/src/expui/meetNewUi/systemTheme_dark.svg new file mode 100644 index 000000000000..9b527dfa7d75 --- /dev/null +++ b/platform/icons/src/expui/meetNewUi/systemTheme_dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiButton.kt b/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiButton.kt index 61950d4d78a0..862ea7cae6ed 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiButton.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiButton.kt @@ -15,11 +15,14 @@ import javax.swing.Icon import javax.swing.JLabel import javax.swing.SwingUtilities -internal class MeetNewUiButton(text: @NlsContexts.Button String? = null, icon: Icon? = null) : JLabel(text, icon, LEFT) { +internal class MeetNewUiButton(text: @NlsContexts.Button String? = null, + private val icon: Icon? = null, + private val iconSelected: Icon?) : JLabel(text, icon, LEFT) { var selected: Boolean = false set(value) { if (field != value) { + setIcon(if (value) iconSelected else icon) field = value repaint() } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiToolWindow.kt b/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiToolWindow.kt index 6e758b5cc8d2..a907ba9bfdb8 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiToolWindow.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/experimental/meetNewUi/MeetNewUiToolWindow.kt @@ -43,11 +43,14 @@ internal class MeetNewUiToolWindow(private val project: Project, private val too private const val CUSTOM_THEME_INDEX = 0 //private val BANNER = IconLoader.getIcon("expui/meetNewUi/banner.svg", MeetNewUiToolWindow::class.java.classLoader) - private val LIGHT = IconLoader.getIcon("expui/meetNewUi/light.svg", MeetNewUiToolWindow::class.java.classLoader) - private val DARK = IconLoader.getIcon("expui/meetNewUi/dark.svg", MeetNewUiToolWindow::class.java.classLoader) - private val SYSTEM = IconLoader.getIcon("expui/meetNewUi/system.svg", MeetNewUiToolWindow::class.java.classLoader) - private val CLEAN = IconLoader.getIcon("expui/meetNewUi/density-default.svg", MeetNewUiToolWindow::class.java.classLoader) - private val COMPACT = IconLoader.getIcon("expui/meetNewUi/density-compact.svg", MeetNewUiToolWindow::class.java.classLoader) + private val LIGHT = IconLoader.getIcon("expui/meetNewUi/lightTheme.svg", MeetNewUiToolWindow::class.java.classLoader) + private val LIGHT_SELECTED = IconLoader.getIcon("expui/meetNewUi/lightThemeSelected.svg", MeetNewUiToolWindow::class.java.classLoader) + private val DARK = IconLoader.getIcon("expui/meetNewUi/darkTheme.svg", MeetNewUiToolWindow::class.java.classLoader) + private val DARK_SELECTED = IconLoader.getIcon("expui/meetNewUi/darkThemeSelected.svg", MeetNewUiToolWindow::class.java.classLoader) + private val SYSTEM = IconLoader.getIcon("expui/meetNewUi/systemTheme.svg", MeetNewUiToolWindow::class.java.classLoader) + private val SYSTEM_SELECTED = IconLoader.getIcon("expui/meetNewUi/systemThemeSelected.svg", MeetNewUiToolWindow::class.java.classLoader) + private val CLEAN = IconLoader.getIcon("expui/meetNewUi/densityDefault.svg", MeetNewUiToolWindow::class.java.classLoader) + private val COMPACT = IconLoader.getIcon("expui/meetNewUi/densityCompact.svg", MeetNewUiToolWindow::class.java.classLoader) } private val themes = mutableListOf() @@ -73,14 +76,14 @@ internal class MeetNewUiToolWindow(private val project: Project, private val too label(IdeBundle.message("meetnewui.toolwindow.theme")) }.customize(JBVerticalGaps(bottom = 8)) row { - themes += Theme(null, false, null) + themes += Theme(null, false, null, null) findLafReference("Light")?.let { lafReference -> - themes += Theme(lafReference, false, LIGHT) + themes += Theme(lafReference, false, LIGHT, LIGHT_SELECTED) } findLafReference("Dark")?.let { lafReference -> - themes += Theme(lafReference, false, DARK) + themes += Theme(lafReference, false, DARK, DARK_SELECTED) } - themes += Theme(null, true, SYSTEM) + themes += Theme(null, true, SYSTEM, SYSTEM_SELECTED) val gap = JBUI.scale(8) val themesPanel = JPanel(WrapLayout(FlowLayout.LEADING, gap, gap)) @@ -167,7 +170,7 @@ internal class MeetNewUiToolWindow(private val project: Project, private val too } private fun Row.density(icon: Icon, @Nls name: String, gaps: Gaps, compactMode: Boolean): Density { - val button = MeetNewUiButton(icon = icon).apply { + val button = MeetNewUiButton(null, icon, icon).apply { border = null putClientProperty(DslComponentProperty.VISUAL_PADDINGS, Gaps.EMPTY) selectionArc = JBUI.scale(8) @@ -184,7 +187,11 @@ internal class MeetNewUiToolWindow(private val project: Project, private val too } row { - label = label(name).component + label = label(name) + .applyToComponent { + font = JBFont.medium() + } + .component } }.customize(gaps) @@ -210,7 +217,7 @@ internal class MeetNewUiToolWindow(private val project: Project, private val too } } -private class Theme(lafReference: LafReference?, val system: Boolean, icon: Icon?) { +private class Theme(lafReference: LafReference?, val system: Boolean, icon: Icon?, iconSelected: Icon?) { val button: MeetNewUiButton var lafReference: LafReference? = null @@ -221,7 +228,7 @@ private class Theme(lafReference: LafReference?, val system: Boolean, icon: Icon } init { - button = MeetNewUiButton(null, icon).apply { + button = MeetNewUiButton(null, icon, iconSelected).apply { selectionArc = JBUI.scale(32) addClickListener(Runnable { val laf = this@Theme.lafReference @@ -258,11 +265,11 @@ private data class Density(val button: MeetNewUiButton, val label: JLabel) { button.selected = selected if (selected) { - label.font = JBFont.medium().deriveFont(Font.BOLD) + label.font = label.font.deriveFont(Font.BOLD) label.foreground = JBUI.CurrentTheme.Label.foreground() } else { - label.font = JBFont.medium() + label.font = label.font.deriveFont(Font.PLAIN) label.foreground = JBUI.CurrentTheme.ContextHelp.FOREGROUND } }