From d4665a5146863529fda5c0da21f5cc7ebafb9cdc Mon Sep 17 00:00:00 2001 From: LeshaInc Date: Wed, 25 Sep 2019 22:01:03 +0300 Subject: [PATCH] Hide overflowing address with ellipsis --- .../scala/ocelot/desktop/ui/window/ScreenWindow.scala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/scala/ocelot/desktop/ui/window/ScreenWindow.scala b/src/main/scala/ocelot/desktop/ui/window/ScreenWindow.scala index c8af243..5058edc 100644 --- a/src/main/scala/ocelot/desktop/ui/window/ScreenWindow.scala +++ b/src/main/scala/ocelot/desktop/ui/window/ScreenWindow.scala @@ -6,6 +6,7 @@ import ocelot.desktop.graphics.Graphics import ocelot.desktop.ui.event.{KeyEvent, MouseEvent, ScrollEvent} import ocelot.desktop.ui.{MouseEvents, UiHandler} import ocelot.desktop.util.{DrawUtils, Logging} +import org.apache.commons.lang3.StringUtils import totoro.ocelot.brain.entity.Screen import totoro.ocelot.brain.user.User import totoro.ocelot.brain.util.PackedColor @@ -125,7 +126,15 @@ class ScreenWindow(screen: Screen) extends BasicWindow with Logging { val col = (backgroundAlpha * 110).toShort val alpha = (backgroundAlpha * 255).toShort g.foreground = RGBAColor(col, col, col, alpha) - g.text(sx - 4, sy - 14, screen.node.address) + + val freeSpace = ((w - 15) / 8).toInt + val addr = screen.node.address + val text = if (addr.length <= freeSpace) + addr + else + StringUtils.substring(addr, 0, (freeSpace - 1).max(0).min(addr.length)) + "…" + + g.text(sx - 4, sy - 14, text) g.setNormalFont() g.sprite("window/CloseButton", sx + w - 7, sy - 13, 7, 6,