Merge pull request #6306 from Nightfirecat/jagex-colors
Add Jagex Colors constants and fix WASD camera chat text color
This commit is contained in:
@@ -50,6 +50,7 @@ import net.runelite.api.events.SetMessage;
|
|||||||
import net.runelite.api.events.VarbitChanged;
|
import net.runelite.api.events.VarbitChanged;
|
||||||
import net.runelite.client.callback.ClientThread;
|
import net.runelite.client.callback.ClientThread;
|
||||||
import net.runelite.client.config.ChatColorConfig;
|
import net.runelite.client.config.ChatColorConfig;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -206,18 +207,18 @@ public class ChatMessageManager
|
|||||||
{
|
{
|
||||||
case PUBLIC:
|
case PUBLIC:
|
||||||
case PUBLIC_MOD:
|
case PUBLIC_MOD:
|
||||||
return Color.decode("#0000FF");
|
return JagexColors.CHAT_PUBLIC_TEXT_OPAQUE_BACKGROUND;
|
||||||
case PRIVATE_MESSAGE_SENT:
|
case PRIVATE_MESSAGE_SENT:
|
||||||
case PRIVATE_MESSAGE_RECEIVED_MOD:
|
case PRIVATE_MESSAGE_RECEIVED_MOD:
|
||||||
case PRIVATE_MESSAGE_RECEIVED:
|
case PRIVATE_MESSAGE_RECEIVED:
|
||||||
return Color.decode("#00FFFF");
|
return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND;
|
||||||
case CLANCHAT:
|
case CLANCHAT:
|
||||||
return Color.decode("#7F0000");
|
return JagexColors.CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
|
||||||
case EXAMINE_ITEM:
|
case EXAMINE_ITEM:
|
||||||
case EXAMINE_OBJECT:
|
case EXAMINE_OBJECT:
|
||||||
case EXAMINE_NPC:
|
case EXAMINE_NPC:
|
||||||
case GAME:
|
case GAME:
|
||||||
return Color.decode("#000000");
|
return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -226,18 +227,18 @@ public class ChatMessageManager
|
|||||||
{
|
{
|
||||||
case PUBLIC:
|
case PUBLIC:
|
||||||
case PUBLIC_MOD:
|
case PUBLIC_MOD:
|
||||||
return Color.decode("#9090FF");
|
return JagexColors.CHAT_PUBLIC_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
case PRIVATE_MESSAGE_SENT:
|
case PRIVATE_MESSAGE_SENT:
|
||||||
case PRIVATE_MESSAGE_RECEIVED_MOD:
|
case PRIVATE_MESSAGE_RECEIVED_MOD:
|
||||||
case PRIVATE_MESSAGE_RECEIVED:
|
case PRIVATE_MESSAGE_RECEIVED:
|
||||||
return Color.decode("#00FFFF");
|
return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
case CLANCHAT:
|
case CLANCHAT:
|
||||||
return Color.decode("#7F0000");
|
return JagexColors.CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
case EXAMINE_ITEM:
|
case EXAMINE_ITEM:
|
||||||
case EXAMINE_OBJECT:
|
case EXAMINE_OBJECT:
|
||||||
case EXAMINE_NPC:
|
case EXAMINE_NPC:
|
||||||
case GAME:
|
case GAME:
|
||||||
return Color.decode("#FFFFFF");
|
return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
package net.runelite.client.config;
|
package net.runelite.client.config;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
|
|
||||||
@ConfigGroup("textrecolor")
|
@ConfigGroup("textrecolor")
|
||||||
public interface ChatColorConfig extends Config
|
public interface ChatColorConfig extends Config
|
||||||
@@ -94,7 +95,7 @@ public interface ChatColorConfig extends Config
|
|||||||
)
|
)
|
||||||
default Color opaqueClanChatInfo()
|
default Color opaqueClanChatInfo()
|
||||||
{
|
{
|
||||||
return Color.BLACK;
|
return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
@@ -334,7 +335,7 @@ public interface ChatColorConfig extends Config
|
|||||||
)
|
)
|
||||||
default Color transparentClanChatInfo()
|
default Color transparentClanChatInfo()
|
||||||
{
|
{
|
||||||
return Color.WHITE;
|
return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ package net.runelite.client.menus;
|
|||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
|
|
||||||
public final class WidgetMenuOption
|
public final class WidgetMenuOption
|
||||||
@@ -42,7 +43,7 @@ public final class WidgetMenuOption
|
|||||||
/**
|
/**
|
||||||
* The color that the menuTarget should be. Defaults to the brownish color that most menu options have.
|
* The color that the menuTarget should be. Defaults to the brownish color that most menu options have.
|
||||||
*/
|
*/
|
||||||
private Color color = Color.decode("#ff9040");
|
private Color color = JagexColors.MENU_TARGET;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The widget to add the option to
|
* The widget to add the option to
|
||||||
|
|||||||
@@ -83,13 +83,14 @@ import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER;
|
|||||||
import static net.runelite.client.plugins.banktags.BankTagsPlugin.TAG_SEARCH;
|
import static net.runelite.client.plugins.banktags.BankTagsPlugin.TAG_SEARCH;
|
||||||
import static net.runelite.client.plugins.banktags.BankTagsPlugin.VAR_TAG_SUFFIX;
|
import static net.runelite.client.plugins.banktags.BankTagsPlugin.VAR_TAG_SUFFIX;
|
||||||
import net.runelite.client.plugins.banktags.TagManager;
|
import net.runelite.client.plugins.banktags.TagManager;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.client.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class TabInterface
|
public class TabInterface
|
||||||
{
|
{
|
||||||
private static final Color HILIGHT_COLOR = Color.decode("#ff9040");
|
private static final Color HILIGHT_COLOR = JagexColors.MENU_TARGET;
|
||||||
private static final String SCROLL_UP = "Scroll up";
|
private static final String SCROLL_UP = "Scroll up";
|
||||||
private static final String SCROLL_DOWN = "Scroll down";
|
private static final String SCROLL_DOWN = "Scroll down";
|
||||||
private static final String NEW_TAB = "New tag tab";
|
private static final String NEW_TAB = "New tag tab";
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import com.google.common.collect.ImmutableList;
|
|||||||
import com.google.common.eventbus.EventBus;
|
import com.google.common.eventbus.EventBus;
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import static java.lang.Math.min;
|
import static java.lang.Math.min;
|
||||||
@@ -54,6 +53,7 @@ import net.runelite.client.config.ConfigManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.ui.ClientToolbar;
|
import net.runelite.client.ui.ClientToolbar;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
@@ -70,7 +70,6 @@ public class DevToolsPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
private static final List<MenuAction> EXAMINE_MENU_ACTIONS = ImmutableList.of(MenuAction.EXAMINE_ITEM,
|
private static final List<MenuAction> EXAMINE_MENU_ACTIONS = ImmutableList.of(MenuAction.EXAMINE_ITEM,
|
||||||
MenuAction.EXAMINE_ITEM_GROUND, MenuAction.EXAMINE_NPC, MenuAction.EXAMINE_OBJECT);
|
MenuAction.EXAMINE_ITEM_GROUND, MenuAction.EXAMINE_NPC, MenuAction.EXAMINE_OBJECT);
|
||||||
private static final Color COLOR_ORANGE = new Color(255, 144, 64);
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
@@ -309,7 +308,7 @@ public class DevToolsPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
entry.setTarget(entry.getTarget() + " " + ColorUtil.prependColorTag("(" + info + ")", COLOR_ORANGE));
|
entry.setTarget(entry.getTarget() + " " + ColorUtil.prependColorTag("(" + info + ")", JagexColors.MENU_TARGET));
|
||||||
client.setMenuEntries(entries);
|
client.setMenuEntries(entries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.api.Client;
|
|||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.VarClientInt;
|
import net.runelite.api.VarClientInt;
|
||||||
import net.runelite.api.VarClientStr;
|
import net.runelite.api.VarClientStr;
|
||||||
|
import net.runelite.api.Varbits;
|
||||||
import net.runelite.api.events.ScriptCallbackEvent;
|
import net.runelite.api.events.ScriptCallbackEvent;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
@@ -44,6 +45,7 @@ import net.runelite.client.config.ConfigManager;
|
|||||||
import net.runelite.client.input.KeyManager;
|
import net.runelite.client.input.KeyManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
@@ -177,7 +179,9 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
if (client.getGameState() == GameState.LOGGED_IN)
|
if (client.getGameState() == GameState.LOGGED_IN)
|
||||||
{
|
{
|
||||||
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", Color.BLUE));
|
final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||||
|
final Color textColor = isChatboxTransparent ? JagexColors.CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND : JagexColors.CHAT_TYPED_TEXT_OPAQUE_BACKGROUND;
|
||||||
|
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
package net.runelite.client.ui;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class serves to hold colors used in Oldschool RuneScape that are also used in client code.
|
||||||
|
*/
|
||||||
|
public class JagexColors
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Colors of chat text when displayed on an opaque background.
|
||||||
|
*/
|
||||||
|
public static final Color CHAT_PUBLIC_TEXT_OPAQUE_BACKGROUND = Color.BLUE;
|
||||||
|
public static final Color CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND = Color.CYAN;
|
||||||
|
public static final Color CHAT_CLAN_TEXT_OPAQUE_BACKGROUND = new Color(127, 0, 0);
|
||||||
|
public static final Color CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND = Color.BLACK;
|
||||||
|
public static final Color CHAT_TYPED_TEXT_OPAQUE_BACKGROUND = Color.BLUE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Colors of chat text when displayed on a transparent background.
|
||||||
|
*/
|
||||||
|
public static final Color CHAT_PUBLIC_TEXT_TRANSPARENT_BACKGROUND = new Color(144, 144, 255);
|
||||||
|
public static final Color CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND = Color.CYAN;
|
||||||
|
public static final Color CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND = new Color(127, 0, 0);
|
||||||
|
public static final Color CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND = Color.WHITE;
|
||||||
|
public static final Color CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND = new Color(144, 144, 255);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Colors relating to right-click menus.
|
||||||
|
*/
|
||||||
|
public static final Color MENU_TARGET = new Color(255, 144, 64);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Colors relating to tooltips.
|
||||||
|
*/
|
||||||
|
public static final Color TOOLTIP_BACKGROUND = new Color(255, 255, 160);
|
||||||
|
public static final Color TOOLTIP_BORDER = Color.BLACK;
|
||||||
|
public static final Color TOOLTIP_TEXT = Color.BLACK;
|
||||||
|
}
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.ui.overlay.worldmap;
|
package net.runelite.client.ui.overlay.worldmap;
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.FontMetrics;
|
import java.awt.FontMetrics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
@@ -42,6 +41,7 @@ import net.runelite.api.widgets.Widget;
|
|||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.input.MouseManager;
|
import net.runelite.client.input.MouseManager;
|
||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
@@ -50,7 +50,6 @@ import net.runelite.client.ui.overlay.OverlayPriority;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class WorldMapOverlay extends Overlay
|
public class WorldMapOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private static final Color TOOLTIP_BACKGROUND = new Color(255, 255, 160);
|
|
||||||
private static final int TOOLTIP_OFFSET_HEIGHT = 25;
|
private static final int TOOLTIP_OFFSET_HEIGHT = 25;
|
||||||
private static final int TOOLTIP_OFFSET_WIDTH = 5;
|
private static final int TOOLTIP_OFFSET_WIDTH = 5;
|
||||||
private static final int TOOLTIP_PADDING_HEIGHT = 1;
|
private static final int TOOLTIP_PADDING_HEIGHT = 1;
|
||||||
@@ -260,7 +259,7 @@ public class WorldMapOverlay extends Overlay
|
|||||||
drawPoint = new Point(drawPoint.getX() + TOOLTIP_OFFSET_WIDTH, drawPoint.getY() + TOOLTIP_OFFSET_HEIGHT);
|
drawPoint = new Point(drawPoint.getX() + TOOLTIP_OFFSET_WIDTH, drawPoint.getY() + TOOLTIP_OFFSET_HEIGHT);
|
||||||
|
|
||||||
graphics.setClip(client.getCanvas().getBounds());
|
graphics.setClip(client.getCanvas().getBounds());
|
||||||
graphics.setColor(TOOLTIP_BACKGROUND);
|
graphics.setColor(JagexColors.TOOLTIP_BACKGROUND);
|
||||||
graphics.setFont(FontManager.getRunescapeFont());
|
graphics.setFont(FontManager.getRunescapeFont());
|
||||||
FontMetrics fm = graphics.getFontMetrics();
|
FontMetrics fm = graphics.getFontMetrics();
|
||||||
int width = fm.stringWidth(tooltip);
|
int width = fm.stringWidth(tooltip);
|
||||||
@@ -269,8 +268,9 @@ public class WorldMapOverlay extends Overlay
|
|||||||
Rectangle tooltipRect = new Rectangle(drawPoint.getX() - TOOLTIP_PADDING_WIDTH, drawPoint.getY() - TOOLTIP_PADDING_HEIGHT, width + TOOLTIP_PADDING_WIDTH * 2, height + TOOLTIP_PADDING_HEIGHT * 2);
|
Rectangle tooltipRect = new Rectangle(drawPoint.getX() - TOOLTIP_PADDING_WIDTH, drawPoint.getY() - TOOLTIP_PADDING_HEIGHT, width + TOOLTIP_PADDING_WIDTH * 2, height + TOOLTIP_PADDING_HEIGHT * 2);
|
||||||
graphics.fillRect((int) tooltipRect.getX(), (int) tooltipRect.getY(), (int) tooltipRect.getWidth(), (int) tooltipRect.getHeight());
|
graphics.fillRect((int) tooltipRect.getX(), (int) tooltipRect.getY(), (int) tooltipRect.getWidth(), (int) tooltipRect.getHeight());
|
||||||
|
|
||||||
graphics.setColor(Color.black);
|
graphics.setColor(JagexColors.TOOLTIP_BORDER);
|
||||||
graphics.drawRect((int) tooltipRect.getX(), (int) tooltipRect.getY(), (int) tooltipRect.getWidth(), (int) tooltipRect.getHeight());
|
graphics.drawRect((int) tooltipRect.getX(), (int) tooltipRect.getY(), (int) tooltipRect.getWidth(), (int) tooltipRect.getHeight());
|
||||||
|
graphics.setColor(JagexColors.TOOLTIP_TEXT);
|
||||||
graphics.drawString(tooltip, drawPoint.getX(), drawPoint.getY() + height);
|
graphics.drawString(tooltip, drawPoint.getX(), drawPoint.getY() + height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user