This commit is contained in:
downthecrop 2025-10-26 22:33:02 -07:00
parent 440b8d4de1
commit 6adc5135bc
4 changed files with 52 additions and 123 deletions

View file

@ -1,7 +1,6 @@
package KondoKit.views
import KondoKit.Helpers
import KondoKit.Helpers.addMouseListenerToAll
import KondoKit.Helpers.formatHtmlLabelText
import KondoKit.Helpers.formatNumber
import KondoKit.Helpers.getProgressBarColor
@ -9,6 +8,7 @@ import KondoKit.Helpers.getSpriteId
import KondoKit.SpriteToBufferedImage.getBufferedImageFromSprite
import KondoKit.ViewConstants
import KondoKit.setFixedSize
import KondoKit.attachPopupMenu
import KondoKit.XPTable
import KondoKit.components.PopupMenuComponent
import KondoKit.components.ProgressBar
@ -26,8 +26,6 @@ import KondoKit.plugin.StateManager.focusedView
import plugin.api.API
import java.awt.*
import java.awt.image.BufferedImage
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.*
import javax.swing.SwingConstants
@ -66,22 +64,6 @@ object XPTrackerView : View, OnUpdateCallback, OnXPUpdateCallback {
private val widgetFont = ViewConstants.FONT_RUNESCAPE_SMALL_16
private fun createPopupListener(popupMenu: JPopupMenu) = object : MouseAdapter() {
override fun mousePressed(e: MouseEvent) {
if (e.isPopupTrigger) popupMenu.show(e.component, e.x, e.y)
}
override fun mouseReleased(e: MouseEvent) {
if (e.isPopupTrigger) popupMenu.show(e.component, e.x, e.y)
}
}
private fun attachPopup(component: Container, popupMenu: JPopupMenu) {
val listener = createPopupListener(popupMenu)
addMouseListenerToAll(component, listener)
component.addMouseListener(listener)
}
private fun BufferedImage.ensureOpaque(): BufferedImage {
for (y in 0 until height) {
for (x in 0 until width) {
@ -133,7 +115,9 @@ object XPTrackerView : View, OnUpdateCallback, OnXPUpdateCallback {
private fun createTotalWidgetContainer(popupMenu: JPopupMenu): Container {
totalXPWidget = createTotalXPWidget()
return wrappedWidget(totalXPWidget!!.container, padding = 0).also { attachPopup(it, popupMenu) }
return wrappedWidget(totalXPWidget!!.container, padding = 0).also {
it.attachPopupMenu(popupMenu, includeChildren = true)
}
}
override val panel: JPanel
@ -190,7 +174,7 @@ object XPTrackerView : View, OnUpdateCallback, OnXPUpdateCallback {
val wrapped = wrappedWidget(xpWidget.container)
val popupMenu = removeXPWidgetMenu(wrapped, skillId)
attachPopup(wrapped, popupMenu)
wrapped.attachPopupMenu(popupMenu, includeChildren = true)
xpTrackerView?.add(wrapped)
xpTrackerView?.add(Box.createVerticalStrut(5))