mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
[UI] IJPL-189623 Split StripeToolbar.Button.iconPadding into four keys
Introduce separate keys for the left and right stripes, and for the with/without names options. Now they can be fully customized by the theme. (cherry picked from commit b37edf768106ac66dd4e4906d75a84a75a7b54d7) IJ-CR-179392 GitOrigin-RevId: 78ee403b237d465ab4ddb2d5cf4eedcbd868e7e4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
df29755711
commit
9857b2b741
@@ -17,6 +17,8 @@ import com.intellij.openapi.wm.impl.SquareStripeButton.Companion.createMoveGroup
|
||||
import com.intellij.toolWindow.ResizeStripeManager
|
||||
import com.intellij.toolWindow.StripeButtonUi
|
||||
import com.intellij.toolWindow.ToolWindowEventSource
|
||||
import com.intellij.toolWindow.ToolWindowLeftToolbar
|
||||
import com.intellij.toolWindow.ToolWindowToolbar
|
||||
import com.intellij.ui.*
|
||||
import com.intellij.ui.icons.loadIconCustomVersionOrScale
|
||||
import com.intellij.ui.icons.toStrokeIcon
|
||||
@@ -46,10 +48,10 @@ internal abstract class AbstractSquareStripeButton(
|
||||
})
|
||||
}
|
||||
|
||||
fun paintDraggingButton(g: Graphics) {
|
||||
fun paintDraggingButton(g: Graphics, isLeft: Boolean) {
|
||||
val areaSize = size.also {
|
||||
JBInsets.removeFrom(it, insets)
|
||||
JBInsets.removeFrom(it, SquareStripeButtonLook.ICON_PADDING)
|
||||
JBInsets.removeFrom(it, SquareStripeButtonLook.getIconPadding(isLeft))
|
||||
}
|
||||
|
||||
val color = JBUI.CurrentTheme.ToolWindow.DragAndDrop.BUTTON_FLOATING_BACKGROUND
|
||||
@@ -366,3 +368,7 @@ internal open class SquareAnActionButton(@JvmField protected val window: ToolWin
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Component.isOnTheLeftStripe(): Boolean {
|
||||
val stripe = ComponentUtil.getParentOfType(ToolWindowToolbar::class.java, this)
|
||||
return stripe is ToolWindowLeftToolbar
|
||||
}
|
||||
|
||||
@@ -23,18 +23,19 @@ import javax.swing.UIManager
|
||||
*/
|
||||
internal open class SquareStripeButtonLook(private val button: ActionButton) : IdeaActionButtonLook() {
|
||||
companion object {
|
||||
val ICON_PADDING: Insets
|
||||
get() {
|
||||
return JBUI.CurrentTheme.Toolbar.stripeToolbarButtonIconPadding(UISettings.Companion.getInstance().compactMode,
|
||||
ResizeStripeManager.isShowNames())
|
||||
}
|
||||
fun getIconPadding(isLeft: Boolean): Insets {
|
||||
return JBUI.CurrentTheme.Toolbar.stripeToolbarButtonIconPadding(
|
||||
isLeft,
|
||||
ResizeStripeManager.isShowNames()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun paintBackground(g: Graphics, component: JComponent, state: Int) {
|
||||
val initialColor = getStateBackground(component, state) ?: return
|
||||
val rect = Rectangle(component.size).also {
|
||||
JBInsets.removeFrom(it, component.insets)
|
||||
JBInsets.removeFrom(it, ICON_PADDING)
|
||||
JBInsets.removeFrom(it, getIconPadding(component.isOnTheLeftStripe()))
|
||||
}
|
||||
|
||||
val color = getBackgroundColor(initialColor)
|
||||
@@ -63,7 +64,7 @@ internal open class SquareStripeButtonLook(private val button: ActionButton) : I
|
||||
|
||||
val rect = Rectangle(component.size).also {
|
||||
JBInsets.removeFrom(it, component.insets)
|
||||
JBInsets.removeFrom(it, ICON_PADDING)
|
||||
JBInsets.removeFrom(it, getIconPadding(component.isOnTheLeftStripe()))
|
||||
}
|
||||
|
||||
val color = if (state == ActionButtonComponent.PUSHED) JBUI.CurrentTheme.ActionButton.pressedBorder()
|
||||
|
||||
@@ -245,8 +245,8 @@ internal class ToolWindowDragHelper(parent: Disposable, @JvmField val dragSource
|
||||
private fun setInitialOffsetFromStripeButton(relativePoint: RelativePoint, clickedComponent: Component) {
|
||||
initialOffset.location = relativePoint.getPoint(clickedComponent).also {
|
||||
if (clickedComponent is AbstractSquareStripeButton) {
|
||||
it.x -= clickedComponent.insets.left + SquareStripeButtonLook.ICON_PADDING.left
|
||||
it.y -= clickedComponent.insets.top + SquareStripeButtonLook.ICON_PADDING.top
|
||||
it.x -= clickedComponent.insets.left + SquareStripeButtonLook.getIconPadding(clickedComponent.isOnTheLeftStripe()).left
|
||||
it.y -= clickedComponent.insets.top + SquareStripeButtonLook.getIconPadding(clickedComponent.isOnTheLeftStripe()).top
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -703,6 +703,7 @@ internal class ToolWindowDragHelper(parent: Disposable, @JvmField val dragSource
|
||||
component.size = component.preferredSize
|
||||
}
|
||||
|
||||
val isLeft = component.isOnTheLeftStripe()
|
||||
val areaSize = when (component) {
|
||||
is StripeButton -> component.size.also {
|
||||
val delta = JBUIScale.scale(1)
|
||||
@@ -711,7 +712,7 @@ internal class ToolWindowDragHelper(parent: Disposable, @JvmField val dragSource
|
||||
}
|
||||
is AbstractSquareStripeButton -> component.size.also {
|
||||
JBInsets.removeFrom(it, component.insets)
|
||||
JBInsets.removeFrom(it, SquareStripeButtonLook.ICON_PADDING)
|
||||
JBInsets.removeFrom(it, SquareStripeButtonLook.getIconPadding(isLeft))
|
||||
}
|
||||
else -> JBUI.emptySize()
|
||||
}
|
||||
@@ -733,7 +734,7 @@ internal class ToolWindowDragHelper(parent: Disposable, @JvmField val dragSource
|
||||
|
||||
when (component) {
|
||||
is StripeButton -> component.paint(it)
|
||||
is AbstractSquareStripeButton -> component.paintDraggingButton(it)
|
||||
is AbstractSquareStripeButton -> component.paintDraggingButton(it, isLeft)
|
||||
}
|
||||
|
||||
it.dispose()
|
||||
|
||||
@@ -823,7 +823,14 @@
|
||||
"StripeToolbar.Button": {
|
||||
"size.compact": "32,32",
|
||||
"iconSize.compact": 16,
|
||||
"iconPadding.compact": "4,4,4,4"
|
||||
"leftStripeIcon.padding": "5,5,5,5",
|
||||
"rightStripeIcon.padding": "5,5,5,5",
|
||||
"leftStripeIcon.padding.compact": "4,4,4,4",
|
||||
"rightStripeIcon.padding.compact": "4,4,4,4",
|
||||
"leftStripeIconWithName.padding": "4,4,4,4",
|
||||
"rightStripeIconWithName.padding": "4,4,4,4",
|
||||
"leftStripeIconWithName.padding.compact": "3,3,3,3",
|
||||
"rightStripeIconWithName.padding.compact": "3,3,3,3"
|
||||
},
|
||||
|
||||
"Tooltip": {
|
||||
|
||||
@@ -1722,9 +1722,24 @@
|
||||
"since": "2023.1"
|
||||
},
|
||||
{
|
||||
"key": "StripeToolbar.Button.iconPadding",
|
||||
"description": "Tool window stripe button icon padding",
|
||||
"since": "2023.1"
|
||||
"key": "StripeToolbar.Button.leftStripeIcon.padding",
|
||||
"description": "Tool window left stripe button icon padding",
|
||||
"since": "2025.3"
|
||||
},
|
||||
{
|
||||
"key": "StripeToolbar.Button.rightStripeIcon.padding",
|
||||
"description": "Tool window right stripe button icon padding",
|
||||
"since": "2025.3"
|
||||
},
|
||||
{
|
||||
"key": "StripeToolbar.Button.leftStripeIconWithName.padding",
|
||||
"description": "Tool window left stripe button icon padding with tool window names on",
|
||||
"since": "2025.3"
|
||||
},
|
||||
{
|
||||
"key": "StripeToolbar.Button.rightStripeIconWithName.padding",
|
||||
"description": "Tool window right stripe button icon padding with tool window names on",
|
||||
"since": "2025.3"
|
||||
},
|
||||
{
|
||||
"key": "List.hoverBackground",
|
||||
|
||||
@@ -4710,9 +4710,6 @@ f:com.intellij.util.ui.JBUI$CurrentTheme$Toolbar
|
||||
- s:defaultExperimentalToolbarButtonIconSize():I
|
||||
- s:defaultExperimentalToolbarButtonSize():com.intellij.util.ui.JBDimension
|
||||
- s:defaultExperimentalToolbarFont():com.intellij.util.ui.JBFont
|
||||
- s:defaultStripeToolbarButtonIconPadding():com.intellij.util.ui.JBInsets
|
||||
- s:defaultStripeToolbarButtonIconPaddingForCompactMode():com.intellij.util.ui.JBInsets
|
||||
- s:defaultStripeToolbarButtonIconPaddingForNames():com.intellij.util.ui.JBInsets
|
||||
- s:defaultStripeToolbarButtonIconSize():I
|
||||
- s:defaultStripeToolbarButtonSize():com.intellij.util.ui.JBDimension
|
||||
- s:experimentalToolbarButtonIconSize():I
|
||||
@@ -4728,7 +4725,6 @@ f:com.intellij.util.ui.JBUI$CurrentTheme$Toolbar
|
||||
- s:recentProjectAvatarIconSize():I
|
||||
- s:recentProjectAvatarIconSizeKey():java.lang.String
|
||||
- s:stripeToolbarButtonIconPadding(Z,Z):java.awt.Insets
|
||||
- s:stripeToolbarButtonIconPaddingKey():java.lang.String
|
||||
- s:stripeToolbarButtonIconSize():I
|
||||
- s:stripeToolbarButtonIconSizeKey():java.lang.String
|
||||
- s:stripeToolbarButtonSize():java.awt.Dimension
|
||||
|
||||
@@ -1325,29 +1325,17 @@ public final class JBUI {
|
||||
return 20;
|
||||
}
|
||||
|
||||
public static @NotNull Insets stripeToolbarButtonIconPadding(boolean compactMode, boolean showNames) {
|
||||
return insets(stripeToolbarButtonIconPaddingKey(), showNames
|
||||
? compactMode
|
||||
? defaultStripeToolbarButtonIconPaddingForCompactMode()
|
||||
: defaultStripeToolbarButtonIconPaddingForNames()
|
||||
: defaultStripeToolbarButtonIconPadding());
|
||||
public static @NotNull Insets stripeToolbarButtonIconPadding(boolean left, boolean showNames) {
|
||||
return insets(stripeToolbarButtonIconPaddingKey(left, showNames), defaultStripeToolbarButtonIconPadding());
|
||||
}
|
||||
|
||||
public static @NotNull String stripeToolbarButtonIconPaddingKey() {
|
||||
return "StripeToolbar.Button.iconPadding";
|
||||
private static @NotNull String stripeToolbarButtonIconPaddingKey(boolean left, boolean showNames) {
|
||||
return "StripeToolbar.Button." + (left ? "left" : "right") + "StripeIcon" + (showNames ? "WithName" : "") + ".padding";
|
||||
}
|
||||
|
||||
public static @NotNull JBInsets defaultStripeToolbarButtonIconPadding() {
|
||||
private static @NotNull JBInsets defaultStripeToolbarButtonIconPadding() {
|
||||
return insets(5);
|
||||
}
|
||||
|
||||
public static @NotNull JBInsets defaultStripeToolbarButtonIconPaddingForNames() {
|
||||
return insets(4);
|
||||
}
|
||||
|
||||
public static @NotNull JBInsets defaultStripeToolbarButtonIconPaddingForCompactMode() {
|
||||
return insets(3);
|
||||
}
|
||||
}
|
||||
|
||||
public static final class FloatingToolbar {
|
||||
|
||||
@@ -70,8 +70,8 @@ internal class ComponentShowcaseDialog(project: Project) : DialogWrapper(project
|
||||
),
|
||||
padding =
|
||||
Toolbar.stripeToolbarButtonIconPadding(
|
||||
uiSettings.compactMode, // compactMode
|
||||
ResizeStripeManager.isShowNames(), // showNames
|
||||
/* left = */ true,
|
||||
/* showNames = */ ResizeStripeManager.isShowNames(),
|
||||
)
|
||||
.toPaddingValues(),
|
||||
borderWidth = 0.dp,
|
||||
|
||||
Reference in New Issue
Block a user