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
}
}