From 5ba9e4c953a3e78adb69ca7bd8130da85a62e7ee Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Tue, 3 Oct 2023 12:52:54 +0200 Subject: [PATCH 01/10] "Help" menu + "About" dialog --- sprites/icons/Book.png | Bin 0 -> 533 bytes sprites/icons/Help.png | Bin 0 -> 574 bytes sprites/icons/Ocelot.png | Bin 0 -> 582 bytes sprites/logo.png | Bin 0 -> 10954 bytes .../resources/ocelot/desktop/colorscheme.txt | 6 ++ .../scala/ocelot/desktop/OcelotDesktop.scala | 3 - .../ocelot/desktop/graphics/Graphics.scala | 5 + .../ocelot/desktop/graphics/IconSource.scala | 3 + .../ocelot/desktop/ui/widget/MenuBar.scala | 11 ++- .../desktop/ui/widget/help/AboutDialog.scala | 87 ++++++++++++++++++ .../notification/NotificationDialog.scala | 2 +- 11 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 sprites/icons/Book.png create mode 100644 sprites/icons/Help.png create mode 100644 sprites/icons/Ocelot.png create mode 100644 sprites/logo.png create mode 100644 src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala diff --git a/sprites/icons/Book.png b/sprites/icons/Book.png new file mode 100644 index 0000000000000000000000000000000000000000..a783ea0b6b835f462b9baa1e48ef2feb8a93b487 GIT binary patch literal 533 zcmV+w0_y#VP)aQ$?wj4l0N^WT@iMLQxP$sbH7t&{nYOlDsCZkfh-yMT)E7;!to9 zUHlsS4|Ek=6$C*MMBLo{TBOALnnH`TFWlT8=e=`zIRT`!!Az$o0hpG{GpVG!nqQOq z-VuU?5m5?r?4|5t4qeyJBLbp7#Ko-c=Q^%|g61$F&`&(eZ0-`z6Q{RaTksz7Fe@nq z;uGQ+rwbC_3SIU2O>oiYFTp&QSpXz4Q!ci#+QzKJP2wrysA*JK^FHEB!kV>`r9MVA z4hI>ekc12s6>P$Qi#T0j{l zYaRdq010qNS#tmY3ljhU3ljkVnw%H_002!%L_t(IPh()95HKR^{|^L2n#TwPs7i^^ z3{!)wmId8LTn1rU3DJpR04{~Nyfy?}K*&oJhXE6j@s3m3r~wQNWM?K&sA6O&a$*Dk Xtf3$!+qBVE00000NkvXXu0mjf=mg&N literal 0 HcmV?d00001 diff --git a/sprites/icons/Help.png b/sprites/icons/Help.png new file mode 100644 index 0000000000000000000000000000000000000000..afecd6d743979798bf340e0fab6b1608048b0393 GIT binary patch literal 574 zcmV-E0>S->P)aQ$?wj4l0N^WT@iMLQxP$sbH7t&{nYOlDsCZkfh-yMT)E7;!to9 zUHlsS4|Ek=6$C*MMBLo{TBOALnnH`TFWlT8=e=`zIRT`!!Az$o0hpG{GpVG!nqQOq z-VuU?5m5?r?4|5t4qeyJBLbp7#Ko-c=Q^%|g61$F&`&(eZ0-`z6Q{RaTksz7Fe@nq z;uGQ+rwbC_3SIU2O>oiYFTp&QSpXz4Q!ci#+QzKJP2wrysA*JK^FHEB!kV>`r9MVA z4hI>ekc12s6>P$Qi#T0j{l zYaRdq010qNS#tmY3ljhU3ljkVnw%H_004GLL_t(IPpwix4uCKS8^-^CS;2sr$e^2Y zT1eZKLTew3BL2bU`@{wP6_JHF>OVw#ki4x7REikD14n%k-rQUyV0d08@4bNLgoUL< z@8A`*+Mg1=MSQ5x8l%L^^s{4HBEx&1nrQ|6i~UL@yMya0*?D>cCnarTxG-q>v;Y7A M07*qoM6N<$f(0-9@c;k- literal 0 HcmV?d00001 diff --git a/sprites/icons/Ocelot.png b/sprites/icons/Ocelot.png new file mode 100644 index 0000000000000000000000000000000000000000..c63d983b486c494b54f6997241e138fff59c927a GIT binary patch literal 582 zcmV-M0=fN(P)aQ$?wj4l0N^WT@iMLQxP$sbH7t&{nYOlDsCZkfh-yMT)E7;!to9 zUHlsS4|Ek=6$C*MMBLo{TBOALnnH`TFWlT8=e=`zIRT`!!Az$o0hpG{GpVG!nqQOq z-VuU?5m5?r?4|5t4qeyJBLbp7#Ko-c=Q^%|g61$F&`&(eZ0-`z6Q{RaTksz7Fe@nq z;uGQ+rwbC_3SIU2O>oiYFTp&QSpXz4Q!ci#+QzKJP2wrysA*JK^FHEB!kV>`r9MVA z4hI>ekc12s6>P$Qi#T0j{l zYaRdq010qNS#tmY3ljhU3ljkVnw%H_004eTL_t(IPt8(W4uCKSo5uTJS=Yr96%Rcl$OKGk~HjMhS?&JFJTLQRI;ZKX4$d*YV$3z@!o Uxn%J#<^TWy07*qoM6N<$f@oR)X#fBK literal 0 HcmV?d00001 diff --git a/sprites/logo.png b/sprites/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fd4692642ec3dc6ada09d52a7426c6dd0e909 GIT binary patch literal 10954 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 OcelotDesktop.showSettings())) + addEntry(new MenuBarButton("Settings", () => new SettingsDialog().show())) + + addEntry(new MenuBarSubmenu("Help", menu => { + menu.addEntry(ContextMenuEntry("Check for Updates", IconSource.Help) {}.setEnabled(false)) + menu.addSeparator() + menu.addEntry(ContextMenuEntry("Manual", IconSource.Book) {}.setEnabled(false)) + menu.addEntry(ContextMenuEntry("About", IconSource.Ocelot) { new AboutDialog().show() }) + })) addEntry(new Widget { override def maximumSize: Size2D = Size2D(Float.PositiveInfinity, 1) diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala new file mode 100644 index 0000000..856475e --- /dev/null +++ b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala @@ -0,0 +1,87 @@ +package ocelot.desktop.ui.widget.help + +import buildinfo.BuildInfo +import ocelot.desktop.ColorScheme +import ocelot.desktop.color.Color +import ocelot.desktop.geometry.{Padding2D, Size2D} +import ocelot.desktop.graphics.Graphics +import ocelot.desktop.ui.layout.LinearLayout +import ocelot.desktop.ui.widget.{Button, Filler, Label, PaddingBox, Widget} +import ocelot.desktop.ui.widget.modal.ModalDialog +import ocelot.desktop.util.{DrawUtils, Orientation, Spritesheet} + +import java.time.Year + +class AboutDialog extends ModalDialog { + children :+= new Widget { + private val logo: Widget = new Widget { + override def minimumSize: Size2D = Spritesheet.spriteSize("Logo") + 40 + + override def draw(g: Graphics): Unit = { + g.sprite("Logo", bounds.x + 20, bounds.y + 80, ColorScheme("AboutLogo")) + drawChildren(g) + } + } + children :+= logo + + children :+= new PaddingBox(new Widget { + override val layout = new LinearLayout(this, orientation = Orientation.Vertical, gap = 8) + + children :++= Seq( + new PaddingBox(AboutLabel("OCELOT DESKTOP"), Padding2D(top = 32)), + new PaddingBox(AboutLabel(" OpenComputers Emulator", isSmall = true), Padding2D(bottom = 16)), + + AboutLabel(s"Version: ${BuildInfo.version}"), + new PaddingBox(AboutLabel(s" (${BuildInfo.commit.take(7)})", isSmall = true), Padding2D(bottom = 16)), + + AboutLabel(s"MIT License (c) ${Year.now.getValue} Ocelot Dev Team"), + AboutLabel(" OpenComputers (C) 2013-2015, MIT, Florian \"Sangar\" Nücke", isSmall = true), + AboutLabel(" MineOS (C) 2022, Dungeon MIT License, ECS", isSmall = true), + AboutLabel(" Advanced Loader (C) 2018, MIT, Luca_S", isSmall = true), + AboutLabel(" LuaJ (C) 2007, MIT, Luaj.org", isSmall = true), + AboutLabel(" Unifont (C) 2007, SIL OFL 1.1, Roman Czyborra", isSmall = true), + AboutLabel(" Unscii (Public Domain) by viznut", isSmall = true), + AboutLabel(" wcwidth (C) 2005-2020, MIT, Rich Felker, et al.", isSmall = true), + AboutLabel(" JNLua (C) 2008-2012, MIT, Andre Naef", isSmall = true), + AboutLabel(" LuaJ (C) 2007, MIT, Luaj.org", isSmall = true), + AboutLabel(" Typesafe Config (C) 2011-2012, Apache License 2.0, Typesafe Inc.", isSmall = true), + ) + + children :+= new Filler + + children :+= new Widget { + children :+= new Filler { + override def maximumSize: Size2D = Size2D(Float.PositiveInfinity, 1) + } + children :+= new Button { + override def text: String = "Ok" + + override def onClick(): Unit = close() + } + } + }, Padding2D.equal(18)) + + override def draw(g: Graphics): Unit = { + g.rect(bounds.x, bounds.y, logo.bounds.w, bounds.h, ColorScheme("Accent")) + super.draw(g) + } + } + + protected override def drawInner(g: Graphics): Unit = { + DrawUtils.shadow(g, bounds.x - 8, bounds.y - 8, bounds.w + 16, bounds.h + 20, 0.5f) + g.rect(bounds, ColorScheme("ContextMenuBackground")) + DrawUtils.ring(g, bounds.x, bounds.y, bounds.w, bounds.h, 1, ColorScheme("ContextMenuBorder")) + + drawChildren(g) + } + + private class AboutLabel(private val _text: String, private val _isSmall: Boolean = false) extends Label { + override def text: String = _text + override def isSmall: Boolean = _isSmall + override def color: Color = if (isSmall) ColorScheme("AboutForegroundSubtle") else ColorScheme("AboutForeground") + } + + private object AboutLabel { + def apply(text: String, isSmall: Boolean = false): AboutLabel = new AboutLabel(text, isSmall) + } +} diff --git a/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala index 2cf4039..689b0e4 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala @@ -11,7 +11,7 @@ import ocelot.desktop.ui.widget.modal.notification.NotificationType.Notification import ocelot.desktop.util.{DrawUtils, Orientation} class NotificationDialog(message: String, notificationType: NotificationType = NotificationType.Warning) extends ModalDialog { - protected val buttonsLayout: Widget = new Widget { + private val buttonsLayout: Widget = new Widget { override val layout: LinearLayout = new LinearLayout(this, gap = 15) children :+= new Filler From b00072b3bb94ac2228339b9e68322b3d1a5defec Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Mon, 9 Oct 2023 16:00:13 +0200 Subject: [PATCH 02/10] Add a few links to About dialog --- .../ocelot/desktop/ui/widget/Button.scala | 23 +++++++++++++--- .../desktop/ui/widget/help/AboutDialog.scala | 26 ++++++++++++++++++- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/main/scala/ocelot/desktop/ui/widget/Button.scala b/src/main/scala/ocelot/desktop/ui/widget/Button.scala index 12ec8a5..5ec6cb3 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Button.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Button.scala @@ -5,11 +5,12 @@ import ocelot.desktop.audio.SoundSource import ocelot.desktop.color.Color import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.Graphics -import ocelot.desktop.ui.event.handlers.ClickHandler -import ocelot.desktop.ui.event.{ClickEvent, MouseEvent} +import ocelot.desktop.ui.event.handlers.{ClickHandler, HoverHandler} +import ocelot.desktop.ui.event.{ClickEvent, HoverEvent, MouseEvent} +import ocelot.desktop.ui.widget.tooltip.Tooltip import ocelot.desktop.util.DrawUtils -class Button extends Widget with ClickHandler with ClickSoundSource { +class Button(tooltip: Tooltip = null) extends Widget with ClickHandler with HoverHandler with ClickSoundSource { def text: String = "" def onClick(): Unit = {} @@ -19,10 +20,24 @@ class Button extends Widget with ClickHandler with ClickSoundSource { eventHandlers += { case ClickEvent(MouseEvent.Button.Left, _) if enabled => onClick() - clickSoundSource.play() } + if (tooltip != null) { + eventHandlers += { + case HoverEvent(HoverEvent.State.Enter) => onHoverEnter() + case HoverEvent(HoverEvent.State.Leave) => onHoverLeave() + } + } + + private def onHoverEnter(): Unit = { + root.get.tooltipPool.addTooltip(tooltip) + } + + private def onHoverLeave(): Unit = { + root.get.tooltipPool.closeTooltip(tooltip) + } + override def minimumSize: Size2D = Size2D(24 + text.length * 8, 24) override def maximumSize: Size2D = minimumSize diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala index 856475e..9f09dbc 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala @@ -8,11 +8,18 @@ import ocelot.desktop.graphics.Graphics import ocelot.desktop.ui.layout.LinearLayout import ocelot.desktop.ui.widget.{Button, Filler, Label, PaddingBox, Widget} import ocelot.desktop.ui.widget.modal.ModalDialog +import ocelot.desktop.ui.widget.tooltip.{LabelTooltip, Tooltip} import ocelot.desktop.util.{DrawUtils, Orientation, Spritesheet} +import java.awt.Desktop +import java.net.URI import java.time.Year class AboutDialog extends ModalDialog { + val WebsiteURL: String = "https://ocelot.fomalhaut.me/desktop" + val IrcURL: String = "https://webchat.esper.net/?join=cc.ru" + val DiscordURL: String = "https://discord.gg/ygxUkxg9pt" + children :+= new Widget { private val logo: Widget = new Widget { override def minimumSize: Size2D = Spritesheet.spriteSize("Logo") + 40 @@ -53,9 +60,26 @@ class AboutDialog extends ModalDialog { children :+= new Filler { override def maximumSize: Size2D = Size2D(Float.PositiveInfinity, 1) } + + if (Desktop.isDesktopSupported) { + children :+= new PaddingBox(new Button(new LabelTooltip(WebsiteURL)) { + override def text: String = "Website" + override def onClick(): Unit = Desktop.getDesktop.browse(new URI(WebsiteURL)) + }, Padding2D(right = 8)) + + children :+= new PaddingBox(new Button(new LabelTooltip(IrcURL)) { + override def text: String = "IRC" + override def onClick(): Unit = Desktop.getDesktop.browse(new URI(IrcURL)) + }, Padding2D(right = 8)) + + children :+= new PaddingBox(new Button(new LabelTooltip(DiscordURL)) { + override def text: String = "Discord" + override def onClick(): Unit = Desktop.getDesktop.browse(new URI(DiscordURL)) + }, Padding2D(right = 16)) + } + children :+= new Button { override def text: String = "Ok" - override def onClick(): Unit = close() } } From 08b5fff65debf990ebb68f90ef92dba1f5baab4d Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Mon, 9 Oct 2023 16:01:52 +0200 Subject: [PATCH 03/10] Move OpenAl exception to the audio package --- src/main/scala/ocelot/desktop/audio/AL10W.scala | 2 +- src/main/scala/ocelot/desktop/audio/Audio.scala | 2 +- .../scala/ocelot/desktop/{util => audio}/OpenAlException.scala | 2 +- src/main/scala/ocelot/desktop/audio/SoundBuffer.scala | 2 +- src/main/scala/ocelot/desktop/audio/SoundSamples.scala | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename src/main/scala/ocelot/desktop/{util => audio}/OpenAlException.scala (92%) diff --git a/src/main/scala/ocelot/desktop/audio/AL10W.scala b/src/main/scala/ocelot/desktop/audio/AL10W.scala index 26c7d85..3b0c7ee 100644 --- a/src/main/scala/ocelot/desktop/audio/AL10W.scala +++ b/src/main/scala/ocelot/desktop/audio/AL10W.scala @@ -1,7 +1,7 @@ package ocelot.desktop.audio import ocelot.desktop.Settings -import ocelot.desktop.util.{Logging, OpenAlException} +import ocelot.desktop.util.Logging import org.lwjgl.openal.AL10 import java.nio.{ByteBuffer, IntBuffer} diff --git a/src/main/scala/ocelot/desktop/audio/Audio.scala b/src/main/scala/ocelot/desktop/audio/Audio.scala index bb01d83..1002152 100644 --- a/src/main/scala/ocelot/desktop/audio/Audio.scala +++ b/src/main/scala/ocelot/desktop/audio/Audio.scala @@ -1,7 +1,7 @@ package ocelot.desktop.audio import ocelot.desktop.Settings -import ocelot.desktop.util.{Logging, OpenAlException, Transaction} +import ocelot.desktop.util.{Logging, Transaction} import org.lwjgl.LWJGLException import org.lwjgl.openal.{AL, AL10, ALC10} diff --git a/src/main/scala/ocelot/desktop/util/OpenAlException.scala b/src/main/scala/ocelot/desktop/audio/OpenAlException.scala similarity index 92% rename from src/main/scala/ocelot/desktop/util/OpenAlException.scala rename to src/main/scala/ocelot/desktop/audio/OpenAlException.scala index 5ff4a83..d301d1d 100644 --- a/src/main/scala/ocelot/desktop/util/OpenAlException.scala +++ b/src/main/scala/ocelot/desktop/audio/OpenAlException.scala @@ -1,4 +1,4 @@ -package ocelot.desktop.util +package ocelot.desktop.audio import scala.util.control import scala.util.control.Exception.Catch diff --git a/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala b/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala index bacd9f4..d11dd7f 100644 --- a/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala +++ b/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala @@ -1,6 +1,6 @@ package ocelot.desktop.audio -import ocelot.desktop.util.{FileUtils, Logging, OpenAlException, Resource} +import ocelot.desktop.util.{FileUtils, Logging, Resource} import org.lwjgl.openal.AL10 class SoundBuffer(val file: String) extends Resource with Logging { diff --git a/src/main/scala/ocelot/desktop/audio/SoundSamples.scala b/src/main/scala/ocelot/desktop/audio/SoundSamples.scala index 6fddac2..db8d215 100644 --- a/src/main/scala/ocelot/desktop/audio/SoundSamples.scala +++ b/src/main/scala/ocelot/desktop/audio/SoundSamples.scala @@ -1,6 +1,6 @@ package ocelot.desktop.audio -import ocelot.desktop.util.{Logging, OpenAlException} +import ocelot.desktop.util.Logging import org.lwjgl.openal.AL10 import java.nio.ByteBuffer From 4e7d00e90cac94b7b4960931c07ac3b44086a2bb Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Mon, 9 Oct 2023 16:02:32 +0200 Subject: [PATCH 04/10] Fix notification dialog icons --- src/main/scala/ocelot/desktop/ui/widget/Icon.scala | 4 ++-- .../scala/ocelot/desktop/ui/widget/modal/ModalDialog.scala | 1 - .../ui/widget/modal/notification/NotificationDialog.scala | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala index 88260fe..f5f5ddf 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala @@ -5,7 +5,7 @@ import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.util.Spritesheet -class Icon(icon: IconSource) extends Widget { +class Icon(icon: IconSource, size: Size2D = null) extends Widget { def this(name: String) { this(IconSource(name)) } @@ -15,7 +15,7 @@ class Icon(icon: IconSource) extends Widget { } def iconColor: Color = Color.White - def iconSize: Size2D = Spritesheet.spriteSize(icon.path) + def iconSize: Size2D = if (size != null) size else Spritesheet.spriteSize(icon.path) override def minimumSize: Size2D = { val size = iconSize diff --git a/src/main/scala/ocelot/desktop/ui/widget/modal/ModalDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/modal/ModalDialog.scala index 4853e34..1866c92 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/modal/ModalDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/modal/ModalDialog.scala @@ -9,7 +9,6 @@ import ocelot.desktop.util.animation.UnitAnimation import org.lwjgl.input.Keyboard abstract class ModalDialog(val autoClose: Boolean = true) extends Widget { - protected def dialogPool: ModalDialogPool = parent.get.asInstanceOf[ModalDialogPool] protected val openCloseAnimation: UnitAnimation = UnitAnimation.easeInOutQuad(0.13f) if (autoClose) { diff --git a/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala index 689b0e4..e08d60e 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/modal/notification/NotificationDialog.scala @@ -2,7 +2,7 @@ package ocelot.desktop.ui.widget.modal.notification import ocelot.desktop.ColorScheme import ocelot.desktop.color.Color -import ocelot.desktop.geometry.Padding2D +import ocelot.desktop.geometry.{Padding2D, Size2D} import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.ui.layout.LinearLayout import ocelot.desktop.ui.widget._ @@ -30,7 +30,7 @@ class NotificationDialog(message: String, notificationType: NotificationType = N // Icon children :+= new PaddingBox( - new Icon(IconSource.Notification(notificationType)), + new Icon(IconSource.Notification(notificationType), Size2D(22, 22)), Padding2D.equal(10) ) From c945eea226fb9cc29d277198ff608b11db9440ce Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Mon, 9 Oct 2023 16:03:05 +0200 Subject: [PATCH 05/10] Make node selector a bit darker to make it more readable --- src/main/resources/ocelot/desktop/colorscheme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/ocelot/desktop/colorscheme.txt b/src/main/resources/ocelot/desktop/colorscheme.txt index 30d9d82..ed5919e 100644 --- a/src/main/resources/ocelot/desktop/colorscheme.txt +++ b/src/main/resources/ocelot/desktop/colorscheme.txt @@ -29,7 +29,7 @@ ConnectionDel = #7f3333 Connection = #909090 NodeSelectorRing = #4c7f66 -NodeSelectorBackground = #000000BB +NodeSelectorBackground = #000000bb ContextMenuBackground = #222222ee ContextMenuBorder = #444444 From aa884802e62de3c38bf4cf210769bed7c3aa559b Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Sat, 14 Oct 2023 16:00:49 +0200 Subject: [PATCH 06/10] Add upstream version checker --- sprites/loading.png | Bin 0 -> 3166 bytes .../ocelot/desktop/graphics/Graphics.scala | 17 +-- .../ocelot/desktop/graphics/IconSource.scala | 29 +++-- .../widget/ChangeSimulationSpeedDialog.scala | 12 +-- .../desktop/ui/widget/DiskEditWindow.scala | 4 +- .../scala/ocelot/desktop/ui/widget/Icon.scala | 20 ++-- .../ocelot/desktop/ui/widget/Label.scala | 6 +- .../ocelot/desktop/ui/widget/MenuBar.scala | 6 +- .../ui/widget/ScreenAspectRatioDialog.scala | 15 +-- .../desktop/ui/widget/TunnelDialog.scala | 4 +- .../ui/widget/help/UpdateCheckerDialog.scala | 100 ++++++++++++++++++ .../widget/settings/SystemSettingsTab.scala | 4 +- .../verticalmenu/VerticalMenuButton.scala | 4 +- .../ocelot/desktop/util/OcelotOnlineAPI.scala | 52 +++++++++ 14 files changed, 209 insertions(+), 64 deletions(-) create mode 100644 sprites/loading.png create mode 100644 src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala create mode 100644 src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala diff --git a/sprites/loading.png b/sprites/loading.png new file mode 100644 index 0000000000000000000000000000000000000000..52dcdb2582bf1c6d9eb651828d9f64969b7c894b GIT binary patch literal 3166 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 literal 0 HcmV?d00001 diff --git a/src/main/scala/ocelot/desktop/graphics/Graphics.scala b/src/main/scala/ocelot/desktop/graphics/Graphics.scala index 44300ba..b3a2743 100644 --- a/src/main/scala/ocelot/desktop/graphics/Graphics.scala +++ b/src/main/scala/ocelot/desktop/graphics/Graphics.scala @@ -2,6 +2,7 @@ package ocelot.desktop.graphics import ocelot.desktop.color.{Color, RGBAColorNorm} import ocelot.desktop.geometry.{Rect2D, Size2D, Transform2D, Vector2D} +import ocelot.desktop.graphics.IconSource.Animation import ocelot.desktop.graphics.mesh.{Mesh2D, MeshInstance2D, MeshVertex2D} import ocelot.desktop.graphics.render.InstanceRenderer import ocelot.desktop.ui.UiHandler @@ -286,7 +287,7 @@ class Graphics(private var scalingFactor: Float) extends Logging with Resource { def sprite(name: String, x: Float, y: Float, width: Float, height: Float, color: Color = RGBAColorNorm(1f, 1f, 1f), - animation: Option[IconSource.Animation] = None): Unit = + animation: Option[Animation] = None): Unit = { sprite = name foreground = color @@ -313,23 +314,27 @@ class Graphics(private var scalingFactor: Float) extends Logging with Resource { private def _rect(x: Float, y: Float, width: Float, height: Float, fixUV: Boolean = true, - animation: Option[Array[(Int, Float)]] = None): Unit = { + animation: Option[Animation] = None): Unit = { val spriteRect = animation match { case None => this.spriteRect - case Some(frames) => - val duration = frames.map(_._2).sum + case Some(animation) => + val duration = animation.frames.map(_._2).sum var timeOffset = 0f var curFrame = 0 breakable { - for ((idx, dur) <- frames) { + for ((idx, dur) <- animation.frames) { timeOffset += dur curFrame = idx if (timeOffset >= time % duration) break } } - this.spriteRect.copy(y = this.spriteRect.y + curFrame * this.spriteRect.w, h = this.spriteRect.w) + val size = animation.frameSize match { + case Some(size) => Size2D(this.spriteRect.w, this.spriteRect.w * size.height / size.width) + case None => Size2D(this.spriteRect.w, this.spriteRect.w) + } + this.spriteRect.copy(y = this.spriteRect.y + curFrame * size.height, h = size.height) } val uvTransform = Transform2D.translate(spriteRect.x, spriteRect.y) >> diff --git a/src/main/scala/ocelot/desktop/graphics/IconSource.scala b/src/main/scala/ocelot/desktop/graphics/IconSource.scala index 76d9fc1..33d3913 100644 --- a/src/main/scala/ocelot/desktop/graphics/IconSource.scala +++ b/src/main/scala/ocelot/desktop/graphics/IconSource.scala @@ -1,5 +1,6 @@ package ocelot.desktop.graphics +import ocelot.desktop.geometry.Size2D import ocelot.desktop.ui.widget.modal.notification.NotificationType.NotificationType import totoro.ocelot.brain.util.DyeColor import totoro.ocelot.brain.util.ExtendedTier.ExtendedTier @@ -11,8 +12,6 @@ case class IconSource( ) object IconSource { - type Animation = Array[(Int, Float)] - val CardIcon: IconSource = IconSource("icons/Card") val CpuIcon: IconSource = IconSource("icons/CPU") val HddIcon: IconSource = IconSource("icons/HDD") @@ -88,24 +87,36 @@ object IconSource { //noinspection ScalaWeakerAccess object Animations { - val Apu: Animation = Array( + val Apu: Animation = Animation( (0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f), (4, 3f), (3, 3f), (2, 3f), (1, 3f), (0, 3f)) val LinkedCard: Animation = - Array((0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f)) + Animation((0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f)) - val InternetCard: Animation = Array( + val InternetCard: Animation = Animation( (0, 2f), (1, 7f), (0, 5f), (1, 4f), (0, 7f), (1, 2f), (0, 8f), (1, 9f), (0, 6f), (1, 4f)) - val DataCard: Animation = Array( + val DataCard: Animation = Animation( (0, 4f), (1, 4f), (2, 4f), (3, 4f), (4, 4f), (5, 4f), (6, 4f), (7, 4f)) - val SelfDestructingCard: Animation = Array((0, 4f), (1, 4f)) + val SelfDestructingCard: Animation = Animation((0, 4f), (1, 4f)) - val OcelotCard: Animation = Array( + val OcelotCard: Animation = Animation( (0, 12f), (1, 4f), (2, 4f), (3, 4f), (4, 5f), (5, 6f), (0, 9f), (6, 4f), (7, 3f)) + + val Loading: Animation = Animation(Size2D(48, 32), + (0, 0.7f), (1, 0.7f), (2, 0.7f), (3, 0.7f), (4, 0.7f), (5, 0.7f), (6, 0.7f), + (7, 0.7f), (8, 0.7f), (9, 0.7f), (10, 0.7f), (11, 0.7f), (12, 0.7f), (13, 0.7f) + ) + } + + case class Animation(frames: Array[(Int, Float)], frameSize: Option[Size2D]) + object Animation { + def apply(frames: (Int, Float)*) = new Animation(frames.toArray, None) + def apply(size: Size2D, frames: (Int, Float)*) = new Animation(frames.toArray, Some(size)) + def apply(size: Option[Size2D] = None, frames: Array[(Int, Float)]) = new Animation(frames, size) } // ----------------------- Ocelot interface icons ----------------------- @@ -115,6 +126,8 @@ object IconSource { IconSource(s"icons/Notification$notificationType") } + val Loading: IconSource = IconSource("Loading", animation = Some(Animations.Loading)) + val SettingsSystem: IconSource = IconSource("icons/SettingsSystem") val SettingsSound: IconSource = IconSource("icons/SettingsSound") val SettingsUI: IconSource = IconSource("icons/SettingsUI") diff --git a/src/main/scala/ocelot/desktop/ui/widget/ChangeSimulationSpeedDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/ChangeSimulationSpeedDialog.scala index 991ff38..6adb386 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/ChangeSimulationSpeedDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/ChangeSimulationSpeedDialog.scala @@ -24,9 +24,7 @@ class ChangeSimulationSpeedDialog() extends ModalDialog { children :+= new PaddingBox(new Widget { override val layout = new LinearLayout(this, orientation = Orientation.Vertical) - children :+= new PaddingBox(new Label { - override def text = "Change simulation speed" - }, Padding2D(bottom = 16)) + children :+= new PaddingBox(new Label("Change simulation speed"), Padding2D(bottom = 16)) private var inputTPS: TextInput = _ private var inputMSPT: TextInput = _ @@ -73,13 +71,9 @@ class ChangeSimulationSpeedDialog() extends ModalDialog { override def onConfirm(): Unit = confirm() } - children :+= new Label { - override def text = "Milliseconds per tick:" - } + children :+= new Label("Milliseconds per tick:") children :+= new PaddingBox(inputMSPT, Padding2D(bottom = 8)) - children :+= new Label { - override def text = "Ticks per second:" - } + children :+= new Label("Ticks per second:") children :+= new PaddingBox(inputTPS, Padding2D(bottom = 8)) children :+= new Widget { diff --git a/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala b/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala index 6e705d4..bdbe79b 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala @@ -65,9 +65,7 @@ class DiskEditWindow(item: DiskItem) extends PanelWindow { override val layout = new LinearLayout(this, orientation = Orientation.Horizontal, alignItems = AlignItems.Center) - children :+= new Label { - override def text: String = "Label" - } + children :+= new Label("Label") children :+= new TextInput(item.label.getOrElse("")) { override def onConfirm(): Unit = { diff --git a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala index f5f5ddf..e2b768d 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala @@ -5,7 +5,7 @@ import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.util.Spritesheet -class Icon(icon: IconSource, size: Size2D = null) extends Widget { +class Icon(icon: IconSource, size: Size2D = null, private val color: Color = null) extends Widget { def this(name: String) { this(IconSource(name)) } @@ -14,18 +14,14 @@ class Icon(icon: IconSource, size: Size2D = null) extends Widget { this(IconSource(name, animation = Some(animation))) } - def iconColor: Color = Color.White - def iconSize: Size2D = if (size != null) size else Spritesheet.spriteSize(icon.path) - - override def minimumSize: Size2D = { - val size = iconSize - - icon.animation match { - case None => size - case Some(_) => size.copy(height = size.width) - } - } + def iconColor: Color = if (color != null) color else Color.White + def iconSize: Size2D = + if (size != null) size + else if (icon.animation.isDefined && icon.animation.get.frameSize.isDefined) + icon.animation.get.frameSize.get + else Spritesheet.spriteSize(icon.path) + override def minimumSize: Size2D = iconSize override def maximumSize: Size2D = minimumSize override def draw(g: Graphics): Unit = { diff --git a/src/main/scala/ocelot/desktop/ui/widget/Label.scala b/src/main/scala/ocelot/desktop/ui/widget/Label.scala index a96788d..a0aa45f 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Label.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Label.scala @@ -5,10 +5,10 @@ import ocelot.desktop.color.Color import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.Graphics -class Label extends Widget { - def text: String = "" +class Label(private val value: String = null, private val small: Boolean = false) extends Widget { + def text: String = if (value != null) value else "" - def isSmall: Boolean = false + def isSmall: Boolean = small def color: Color = ColorScheme("Label") diff --git a/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala b/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala index f3f55ff..793369a 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala @@ -5,7 +5,7 @@ import ocelot.desktop.geometry.{Padding2D, Size2D} import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.ui.event.KeyEvent import ocelot.desktop.ui.widget.contextmenu.{ContextMenuEntry, ContextMenuSubmenu} -import ocelot.desktop.ui.widget.help.AboutDialog +import ocelot.desktop.ui.widget.help.{AboutDialog, UpdateCheckerDialog} import ocelot.desktop.ui.widget.settings.SettingsDialog import ocelot.desktop.{ColorScheme, OcelotDesktop} import org.lwjgl.input.Keyboard @@ -48,7 +48,9 @@ class MenuBar extends Widget { addEntry(new MenuBarButton("Settings", () => new SettingsDialog().show())) addEntry(new MenuBarSubmenu("Help", menu => { - menu.addEntry(ContextMenuEntry("Check for Updates", IconSource.Help) {}.setEnabled(false)) + menu.addEntry(ContextMenuEntry("Check for Updates", IconSource.Help) { + new UpdateCheckerDialog().show() + }) menu.addSeparator() menu.addEntry(ContextMenuEntry("Manual", IconSource.Book) {}.setEnabled(false)) menu.addEntry(ContextMenuEntry("About", IconSource.Ocelot) { new AboutDialog().show() }) diff --git a/src/main/scala/ocelot/desktop/ui/widget/ScreenAspectRatioDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/ScreenAspectRatioDialog.scala index c8d048b..136214e 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/ScreenAspectRatioDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/ScreenAspectRatioDialog.scala @@ -12,12 +12,7 @@ class ScreenAspectRatioDialog(screenNode: ScreenNode) extends ModalDialog { new Widget { override val layout = new LinearLayout(this, orientation = Orientation.Vertical) - children :+= new PaddingBox( - new Label { - override def text = "Set aspect ratio" - }, - Padding2D(bottom = 16) - ) + children :+= new PaddingBox(new Label("Set aspect ratio"), Padding2D(bottom = 16)) private var typedWidth: Option[Int] = Some(screenNode.screen.aspectRatio._1.toInt) private var typedHeight: Option[Int] = Some(screenNode.screen.aspectRatio._2.toInt) @@ -61,9 +56,7 @@ class ScreenAspectRatioDialog(screenNode: ScreenNode) extends ModalDialog { ) } - children :+= new Label { - override def text = "Width:" - } + children :+= new Label("Width:") addInput( 8, @@ -71,9 +64,7 @@ class ScreenAspectRatioDialog(screenNode: ScreenNode) extends ModalDialog { value => typedWidth = value ) - children :+= new Label { - override def text = "Height:" - } + children :+= new Label("Height:") addInput( 6, diff --git a/src/main/scala/ocelot/desktop/ui/widget/TunnelDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/TunnelDialog.scala index cb65bf0..d853350 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/TunnelDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/TunnelDialog.scala @@ -32,9 +32,7 @@ class TunnelDialog( new Widget { override val layout = new LinearLayout(this, orientation = Orientation.Vertical, gap = 8) - children :+= new PaddingBox(new Label { - override def text: String = "Set channel name/code" - }, Padding2D(bottom = 8)) + children :+= new PaddingBox(new Label("Set channel name/code"), Padding2D(bottom = 8)) children :+= new Widget { children :+= input diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala new file mode 100644 index 0000000..4c517e0 --- /dev/null +++ b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala @@ -0,0 +1,100 @@ +package ocelot.desktop.ui.widget.help + +import buildinfo.BuildInfo +import ocelot.desktop.ColorScheme +import ocelot.desktop.geometry.{Padding2D, Size2D} +import ocelot.desktop.graphics.IconSource +import ocelot.desktop.ui.layout.{Layout, LinearLayout} +import ocelot.desktop.ui.widget.{Button, Filler, Icon, Label, PaddingBox, Widget} +import ocelot.desktop.ui.widget.modal.ModalDialog +import ocelot.desktop.util.Orientation.Vertical +import ocelot.desktop.util.{Logging, OcelotOnlineAPI} + +import java.awt.Desktop +import java.net.URI +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import scala.collection.immutable.ArraySeq +import scala.util.{Failure, Success} + +class UpdateCheckerDialog extends ModalDialog with Logging { + private val dateFormat = DateTimeFormatter.ofPattern("dd MMM YYYY (HH:mm:ss Z)") + + private val container = new Widget { + override protected val layout: Layout = new LinearLayout(this, orientation = Vertical) + } + + children :+= new PaddingBox(new Widget { + override protected val layout: Layout = new LinearLayout(this, orientation = Vertical, gap = 16) + + children :+= container + + children :+= new Widget { + children :+= new Filler { + override def maximumSize: Size2D = Size2D(Float.PositiveInfinity, 1) + } + children :+= new Button { + override def text: String = "Ok" + override def onClick(): Unit = close() + } + } + }, Padding2D.equal(16)) + + // loading screen + container.children :+= new Label("Checking development news...") + container.children :+= new PaddingBox(new Icon(IconSource.Loading, color = ColorScheme("Label")), Padding2D(16, 0, 0, 90)) + + // check the API + OcelotOnlineAPI.checkRemoteVersion { + case Success(version) => + setContainerChildren(ArraySeq.empty) + container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}") + if (version.releaseVersion.drop(1) == BuildInfo.version) { + container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) + } else { + container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6)) + if (Desktop.isDesktopSupported) { + container.children :+= new PaddingBox(new Button { + override def text: String = "Download" + override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) + }, Padding2D(6)) + } else { + container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + } + } + + container.children :+= new Filler { + override def minimumSize: Size2D = Size2D(8, 16) + } + container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${version.devId.take(7)}") + if (BuildInfo.commit.take(7) == version.devId.take(7)) { + container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) + } else { + container.children :+= new PaddingBox( + new Label(s"New dev build from ${version.devDate.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true) + , Padding2D(4)) + if (Desktop.isDesktopSupported) { + container.children :+= new PaddingBox(new Button { + override def text: String = "Download" + override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) + }, Padding2D(6)) + } else { + container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + } + } + + case Failure(exception) => + logger.error("Cannot download information about new Ocelot version!", exception) + val message = "Ocelot website is unavailable...\n" + + s"($exception)\n" + + "Check the log file for a full stacktrace." + setContainerChildren(ArraySeq.unsafeWrapArray(message.split('\n').map(line => new Label { + override def text: String = line + }))) + } + + private def setContainerChildren(children: ArraySeq[Widget]): Unit = { + container.children.foreach(it => { it.parent = None; it.root = None }) + container.children = children + } +} diff --git a/src/main/scala/ocelot/desktop/ui/widget/settings/SystemSettingsTab.scala b/src/main/scala/ocelot/desktop/ui/widget/settings/SystemSettingsTab.scala index 8ad662c..5d44ec7 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/settings/SystemSettingsTab.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/settings/SystemSettingsTab.scala @@ -15,9 +15,7 @@ class SystemSettingsTab extends SettingsTab { override val icon: IconSource = IconSource.SettingsSystem override val label: String = "System" - children :+= new PaddingBox(new Label { - override def text = "OpenComputers configuration file path" - }, Padding2D(bottom = 8)) + children :+= new PaddingBox(new Label("OpenComputers configuration file path"), Padding2D(bottom = 8)) children :+= new PaddingBox(new Widget { override val layout = new LinearLayout(this, orientation = Orientation.Horizontal) diff --git a/src/main/scala/ocelot/desktop/ui/widget/verticalmenu/VerticalMenuButton.scala b/src/main/scala/ocelot/desktop/ui/widget/verticalmenu/VerticalMenuButton.scala index d3dcb2c..e35d77f 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/verticalmenu/VerticalMenuButton.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/verticalmenu/VerticalMenuButton.scala @@ -22,9 +22,7 @@ class VerticalMenuButton(icon: IconSource, label: String, handler: VerticalMenuB override val layout = new LinearLayout(this, orientation = Orientation.Horizontal) children :+= new PaddingBox( - new Icon(icon) { - override def iconColor: Color = ColorScheme("VerticalMenuEntryIcon") - }, + new Icon(icon, color = ColorScheme("VerticalMenuEntryIcon")), Padding2D(right = 8) ) diff --git a/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala new file mode 100644 index 0000000..336bdeb --- /dev/null +++ b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala @@ -0,0 +1,52 @@ +package ocelot.desktop.util + +import java.net.{HttpURLConnection, URL} +import java.time.ZonedDateTime +import scala.util.{Success, Try} + +object OcelotOnlineAPI { + private val UrlInfo: String = "https://ocelot.fomalhaut.me/desktop/info" + + private val RegexDevId = "\"dev\":\\s?\\{.*?\"id\":\\s?\"(.*?)\"".r + private val RegexDevDate = "\"dev\":\\s?\\{.*?\"date\":\\s?\"(.*?)\"".r + private val RegexReleaseVersion = "\"release\":\\s?\\{.*?\"version\":\\s?\"(.*?)\"".r + private val RegexReleaseDate = "\"release\":\\s?\\{.*?\"date\":\\s?\"(.*?)\"".r + + def checkRemoteVersion(callback: Try[Version] => Unit): Unit = new Thread { + override def run(): Unit = { + callback(getVersion) + } + }.start() + + private def getVersion: Try[Version] = Try { + val source = scala.io.Source.fromURL(UrlInfo) + val response = source.mkString + + val devId = RegexDevId.findFirstMatchIn(response).map(_.group(1)) + val devDate = RegexDevDate.findFirstMatchIn(response).map(_.group(1)) + val releaseVersion = RegexReleaseVersion.findFirstMatchIn(response).map(_.group(1)) + val releaseDate = RegexReleaseDate.findFirstMatchIn(response).map(_.group(1)) + val version = Version( + devId.orNull, devDate.map(it => ZonedDateTime.parse(it)).orNull, + releaseVersion.orNull, releaseDate.map(it => ZonedDateTime.parse(it)).orNull + ) + + source.close() + return Success(version) + } + + @throws(classOf[java.io.IOException]) + @throws(classOf[java.net.SocketTimeoutException]) + def get(url: String, connectTimeout: Int = 5000, readTimeout: Int = 5000, requestMethod: String = "GET"): String = { + val connection = new URL(url).openConnection.asInstanceOf[HttpURLConnection] + connection.setConnectTimeout(connectTimeout) + connection.setReadTimeout(readTimeout) + connection.setRequestMethod(requestMethod) + val inputStream = connection.getInputStream + val content = io.Source.fromInputStream(inputStream).mkString + if (inputStream != null) inputStream.close() + content + } + + case class Version(devId: String, devDate: ZonedDateTime, releaseVersion: String, releaseDate: ZonedDateTime) +} From 25bb1e73515c09837778a915a5f33a5546d27b7e Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Sat, 14 Oct 2023 16:05:25 +0200 Subject: [PATCH 07/10] Regenerate spritesheet + update brain version to 0.19.0 --- lib/ocelot-brain | 2 +- sprites/Loading.png | Bin 0 -> 3166 bytes sprites/Logo.png | Bin 0 -> 10954 bytes .../images/spritesheet/spritesheet.png | Bin 122278 -> 143072 bytes .../images/spritesheet/spritesheet.txt | 593 +++++++++--------- 5 files changed, 300 insertions(+), 295 deletions(-) create mode 100644 sprites/Loading.png create mode 100644 sprites/Logo.png diff --git a/lib/ocelot-brain b/lib/ocelot-brain index 6fc005d..ece5372 160000 --- a/lib/ocelot-brain +++ b/lib/ocelot-brain @@ -1 +1 @@ -Subproject commit 6fc005d04d785d76fd3330ac304cc717eb99e752 +Subproject commit ece53729967381bc1278479242a147539f33c60a diff --git a/sprites/Loading.png b/sprites/Loading.png new file mode 100644 index 0000000000000000000000000000000000000000..52dcdb2582bf1c6d9eb651828d9f64969b7c894b GIT binary patch literal 3166 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 literal 0 HcmV?d00001 diff --git a/sprites/Logo.png b/sprites/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fd4692642ec3dc6ada09d52a7426c6dd0e909 GIT binary patch literal 10954 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�UOWD_DKdnJ1-`il20Pnow@D^P|;96->%&kIL^x{_MjRe@a}fC+FyJ~v>ISD;At<{@$$d{Ds*5ArLZVKT2wMwm*Vvw`vBtJ zeAIO=56SoP6~eWGH2yl|B0AaRGKzl(K>kKBer`|D#0Yfk1i{~&v&B%0DBW+GdjN*K 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�~C`D>rNkMAM#MVoEI= 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 Fe*uIDJpKRx literal 122278 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%0D>-!{FMETvS9i*hLYld(}; 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 Date: Sat, 14 Oct 2023 17:50:23 +0200 Subject: [PATCH 08/10] Add custom button color schemes --- .../resources/ocelot/desktop/colorscheme.txt | 3 ++ .../scala/ocelot/desktop/ColorScheme.scala | 12 ++++++- .../ocelot/desktop/ui/widget/Button.scala | 14 ++++---- .../desktop/ui/widget/help/AboutDialog.scala | 35 +++++++++++-------- .../ui/widget/help/UpdateCheckerDialog.scala | 4 +-- 5 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/main/resources/ocelot/desktop/colorscheme.txt b/src/main/resources/ocelot/desktop/colorscheme.txt index ed5919e..8f99869 100644 --- a/src/main/resources/ocelot/desktop/colorscheme.txt +++ b/src/main/resources/ocelot/desktop/colorscheme.txt @@ -3,6 +3,9 @@ Accent = #bd353e AboutLogo = #ffffffee AboutForeground = #eeeeee AboutForegroundSubtle = #eeeeeeee +AboutButtonForeground = #222222 +AboutButtonBorder = #444444 +AboutButtonBackground = #777777 PortDown = #8382d8 PortUp = #75bdc1 diff --git a/src/main/scala/ocelot/desktop/ColorScheme.scala b/src/main/scala/ocelot/desktop/ColorScheme.scala index 35c52c8..75cd406 100644 --- a/src/main/scala/ocelot/desktop/ColorScheme.scala +++ b/src/main/scala/ocelot/desktop/ColorScheme.scala @@ -6,11 +6,13 @@ import ocelot.desktop.util.Logging import scala.collection.mutable import scala.io.Source -object ColorScheme extends Logging { +class ColorScheme extends Logging { private val entries = new mutable.HashMap[String, RGBAColorNorm]() def apply(key: String): RGBAColorNorm = entries(key) + def add(key: String, color: RGBAColorNorm): Unit = entries.addOne((key, color)) + def load(source: Source): Unit = { logger.info(s"Loading color scheme") @@ -36,3 +38,11 @@ object ColorScheme extends Logging { logger.info(s"Loaded ${entries.size - oldSize} colors") } } + +object ColorScheme { + val General = new ColorScheme + + def load(source: Source): Unit = General.load(source) + + def apply(key: String): RGBAColorNorm = General(key) +} diff --git a/src/main/scala/ocelot/desktop/ui/widget/Button.scala b/src/main/scala/ocelot/desktop/ui/widget/Button.scala index 5ec6cb3..63ce2fd 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Button.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Button.scala @@ -11,6 +11,8 @@ import ocelot.desktop.ui.widget.tooltip.Tooltip import ocelot.desktop.util.DrawUtils class Button(tooltip: Tooltip = null) extends Widget with ClickHandler with HoverHandler with ClickSoundSource { + protected def colorScheme: ColorScheme = ColorScheme.General + def text: String = "" def onClick(): Unit = {} @@ -44,13 +46,13 @@ class Button(tooltip: Tooltip = null) extends Widget with ClickHandler with Hove override def draw(g: Graphics): Unit = { val (background, border, foreground) = if (enabled) ( - ColorScheme("ButtonBackground"), - ColorScheme("ButtonBorder"), - ColorScheme("ButtonForeground") + colorScheme("ButtonBackground"), + colorScheme("ButtonBorder"), + colorScheme("ButtonForeground") ) else ( - ColorScheme("ButtonBackgroundDisabled"), - ColorScheme("ButtonBorderDisabled"), - ColorScheme("ButtonForegroundDisabled") + colorScheme("ButtonBackgroundDisabled"), + colorScheme("ButtonBorderDisabled"), + colorScheme("ButtonForegroundDisabled") ) g.rect(bounds, background) diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala index 9f09dbc..b2c42e1 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/help/AboutDialog.scala @@ -62,25 +62,15 @@ class AboutDialog extends ModalDialog { } if (Desktop.isDesktopSupported) { - children :+= new PaddingBox(new Button(new LabelTooltip(WebsiteURL)) { - override def text: String = "Website" - override def onClick(): Unit = Desktop.getDesktop.browse(new URI(WebsiteURL)) - }, Padding2D(right = 8)) - - children :+= new PaddingBox(new Button(new LabelTooltip(IrcURL)) { - override def text: String = "IRC" - override def onClick(): Unit = Desktop.getDesktop.browse(new URI(IrcURL)) - }, Padding2D(right = 8)) - - children :+= new PaddingBox(new Button(new LabelTooltip(DiscordURL)) { - override def text: String = "Discord" - override def onClick(): Unit = Desktop.getDesktop.browse(new URI(DiscordURL)) - }, Padding2D(right = 16)) + children :+= new PaddingBox(new AboutButton("Website", WebsiteURL), Padding2D(right = 8)) + children :+= new PaddingBox(new AboutButton("IRC", IrcURL), Padding2D(right = 8)) + children :+= new PaddingBox(new AboutButton("Discord", DiscordURL), Padding2D(right = 20)) } children :+= new Button { override def text: String = "Ok" override def onClick(): Unit = close() + override protected def colorScheme: ColorScheme = customButtonColorScheme } } }, Padding2D.equal(18)) @@ -99,6 +89,23 @@ class AboutDialog extends ModalDialog { drawChildren(g) } + private def customButtonColorScheme = { + val scheme = new ColorScheme() + scheme.add("ButtonBackground", ColorScheme("AboutButtonBackground")) + scheme.add("ButtonBorder", ColorScheme("AboutButtonBorder")) + scheme.add("ButtonForeground", ColorScheme("AboutButtonForeground")) + scheme.add("ButtonBackgroundDisabled", ColorScheme("ButtonBackgroundDisabled")) + scheme.add("ButtonBorderDisabled", ColorScheme("ButtonBorderDisabled")) + scheme.add("ButtonForegroundDisabled", ColorScheme("ButtonForegroundDisabled")) + scheme + } + + private class AboutButton(val label: String, val url: String) extends Button(new LabelTooltip(url)) { + override def text: String = label + override def onClick(): Unit = Desktop.getDesktop.browse(new URI(url)) + override protected def colorScheme: ColorScheme = customButtonColorScheme + } + private class AboutLabel(private val _text: String, private val _isSmall: Boolean = false) extends Label { override def text: String = _text override def isSmall: Boolean = _isSmall diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala index 4c517e0..2216679 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala @@ -48,7 +48,7 @@ class UpdateCheckerDialog extends ModalDialog with Logging { OcelotOnlineAPI.checkRemoteVersion { case Success(version) => setContainerChildren(ArraySeq.empty) - container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}") + container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}") if (version.releaseVersion.drop(1) == BuildInfo.version) { container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) } else { @@ -66,7 +66,7 @@ class UpdateCheckerDialog extends ModalDialog with Logging { container.children :+= new Filler { override def minimumSize: Size2D = Size2D(8, 16) } - container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${version.devId.take(7)}") + container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${version.devId.take(7)}") if (BuildInfo.commit.take(7) == version.devId.take(7)) { container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) } else { From a1eb9bbbda8580673c2fadec1c56ae5807e7522a Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Sat, 14 Oct 2023 17:56:40 +0200 Subject: [PATCH 09/10] Code review corrections --- .../scala/ocelot/desktop/ui/widget/Icon.scala | 4 ++-- .../ocelot/desktop/ui/widget/Label.scala | 6 ++---- .../ocelot/desktop/util/OcelotOnlineAPI.scala | 19 ++++++++----------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala index e2b768d..cf7f3eb 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Icon.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Icon.scala @@ -5,7 +5,7 @@ import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.util.Spritesheet -class Icon(icon: IconSource, size: Size2D = null, private val color: Color = null) extends Widget { +class Icon(icon: IconSource, size: Size2D = null, private val color: Color = Color.White) extends Widget { def this(name: String) { this(IconSource(name)) } @@ -14,7 +14,7 @@ class Icon(icon: IconSource, size: Size2D = null, private val color: Color = nul this(IconSource(name, animation = Some(animation))) } - def iconColor: Color = if (color != null) color else Color.White + def iconColor: Color = color def iconSize: Size2D = if (size != null) size else if (icon.animation.isDefined && icon.animation.get.frameSize.isDefined) diff --git a/src/main/scala/ocelot/desktop/ui/widget/Label.scala b/src/main/scala/ocelot/desktop/ui/widget/Label.scala index a0aa45f..e3ba28a 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/Label.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/Label.scala @@ -5,11 +5,9 @@ import ocelot.desktop.color.Color import ocelot.desktop.geometry.Size2D import ocelot.desktop.graphics.Graphics -class Label(private val value: String = null, private val small: Boolean = false) extends Widget { - def text: String = if (value != null) value else "" - +class Label(private val value: String = "", private val small: Boolean = false) extends Widget { + def text: String = value def isSmall: Boolean = small - def color: Color = ColorScheme("Label") private var textWidth = text.length * 8 diff --git a/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala index 336bdeb..a55e2af 100644 --- a/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala +++ b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala @@ -2,7 +2,7 @@ package ocelot.desktop.util import java.net.{HttpURLConnection, URL} import java.time.ZonedDateTime -import scala.util.{Success, Try} +import scala.util.{Success, Try, Using} object OcelotOnlineAPI { private val UrlInfo: String = "https://ocelot.fomalhaut.me/desktop/info" @@ -12,11 +12,8 @@ object OcelotOnlineAPI { private val RegexReleaseVersion = "\"release\":\\s?\\{.*?\"version\":\\s?\"(.*?)\"".r private val RegexReleaseDate = "\"release\":\\s?\\{.*?\"date\":\\s?\"(.*?)\"".r - def checkRemoteVersion(callback: Try[Version] => Unit): Unit = new Thread { - override def run(): Unit = { - callback(getVersion) - } - }.start() + def checkRemoteVersion(callback: Try[Version] => Unit): Unit = + new Thread(() => callback(getVersion)).start() private def getVersion: Try[Version] = Try { val source = scala.io.Source.fromURL(UrlInfo) @@ -32,7 +29,7 @@ object OcelotOnlineAPI { ) source.close() - return Success(version) + version } @throws(classOf[java.io.IOException]) @@ -42,10 +39,10 @@ object OcelotOnlineAPI { connection.setConnectTimeout(connectTimeout) connection.setReadTimeout(readTimeout) connection.setRequestMethod(requestMethod) - val inputStream = connection.getInputStream - val content = io.Source.fromInputStream(inputStream).mkString - if (inputStream != null) inputStream.close() - content + Using.resource(connection.getInputStream) { inputStream => + val content = io.Source.fromInputStream(inputStream).mkString + content + } } case class Version(devId: String, devDate: ZonedDateTime, releaseVersion: String, releaseDate: ZonedDateTime) From 6c622446e81bc6984b4a672ba5ee90e55136042c Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Sat, 14 Oct 2023 18:40:20 +0200 Subject: [PATCH 10/10] Make Version object safer --- .../ui/widget/help/UpdateCheckerDialog.scala | 61 +++++++++++-------- .../ocelot/desktop/util/OcelotOnlineAPI.scala | 6 +- 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala index 2216679..99f9169 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/help/UpdateCheckerDialog.scala @@ -48,39 +48,52 @@ class UpdateCheckerDialog extends ModalDialog with Logging { OcelotOnlineAPI.checkRemoteVersion { case Success(version) => setContainerChildren(ArraySeq.empty) - container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}") - if (version.releaseVersion.drop(1) == BuildInfo.version) { - container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) - } else { - container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6)) - if (Desktop.isDesktopSupported) { - container.children :+= new PaddingBox(new Button { - override def text: String = "Download" - override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) - }, Padding2D(6)) + if (version.releaseVersion.isDefined) { + val newReleaseVersion = version.releaseVersion.get.drop(1) + container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${newReleaseVersion}") + if (newReleaseVersion == BuildInfo.version) { + container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) } else { - container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6)) + if (Desktop.isDesktopSupported) { + container.children :+= new PaddingBox(new Button { + override def text: String = "Download" + + override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) + }, Padding2D(6)) + } else { + container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + } } + } else { + container.children :+= new Label("Release: N\\A") } container.children :+= new Filler { override def minimumSize: Size2D = Size2D(8, 16) } - container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${version.devId.take(7)}") - if (BuildInfo.commit.take(7) == version.devId.take(7)) { - container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) - } else { - container.children :+= new PaddingBox( - new Label(s"New dev build from ${version.devDate.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true) - , Padding2D(4)) - if (Desktop.isDesktopSupported) { - container.children :+= new PaddingBox(new Button { - override def text: String = "Download" - override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) - }, Padding2D(6)) + + if (version.devId.isDefined && version.devDate.isDefined) { + val newDevVersion = version.devId.get.take(7) + container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${newDevVersion}") + if (BuildInfo.commit.take(7) == newDevVersion) { + container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6)) } else { - container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + container.children :+= new PaddingBox( + new Label(s"New dev build from ${version.devDate.get.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true) + , Padding2D(4)) + if (Desktop.isDesktopSupported) { + container.children :+= new PaddingBox(new Button { + override def text: String = "Download" + + override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop")) + }, Padding2D(6)) + } else { + container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6)) + } } + } else { + container.children :+= new Label("Dev build: N\\A") } case Failure(exception) => diff --git a/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala index a55e2af..5e43645 100644 --- a/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala +++ b/src/main/scala/ocelot/desktop/util/OcelotOnlineAPI.scala @@ -24,8 +24,8 @@ object OcelotOnlineAPI { val releaseVersion = RegexReleaseVersion.findFirstMatchIn(response).map(_.group(1)) val releaseDate = RegexReleaseDate.findFirstMatchIn(response).map(_.group(1)) val version = Version( - devId.orNull, devDate.map(it => ZonedDateTime.parse(it)).orNull, - releaseVersion.orNull, releaseDate.map(it => ZonedDateTime.parse(it)).orNull + devId, devDate.map(it => ZonedDateTime.parse(it)), + releaseVersion, releaseDate.map(it => ZonedDateTime.parse(it)) ) source.close() @@ -45,5 +45,5 @@ object OcelotOnlineAPI { } } - case class Version(devId: String, devDate: ZonedDateTime, releaseVersion: String, releaseDate: ZonedDateTime) + case class Version(devId: Option[String], devDate: Option[ZonedDateTime], releaseVersion: Option[String], releaseDate: Option[ZonedDateTime]) }