Merge pull request #3043 from RubenG123/ui-tweaks

UI element mouse hover improvements
This commit is contained in:
Adam
2018-05-22 20:41:04 -04:00
committed by GitHub
8 changed files with 135 additions and 10 deletions

View File

@@ -37,6 +37,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Comparator;
import java.util.Map;
@@ -80,6 +81,7 @@ import net.runelite.client.ui.DynamicGridLayout;
import net.runelite.client.ui.PluginPanel;
import net.runelite.client.ui.components.ComboBoxListRenderer;
import net.runelite.client.ui.components.IconTextField;
import net.runelite.client.util.SwingUtil;
@Slf4j
public class ConfigPanel extends PluginPanel
@@ -88,6 +90,7 @@ public class ConfigPanel extends PluginPanel
private static final int SPINNER_FIELD_WIDTH = 6;
private static final ImageIcon CONFIG_ICON;
private static final ImageIcon CONFIG_ICON_HOVER;
private static final ImageIcon ON_SWITCHER;
private static final ImageIcon OFF_SWITCHER;
private static final ImageIcon SEARCH;
@@ -98,7 +101,9 @@ public class ConfigPanel extends PluginPanel
{
synchronized (ImageIO.class)
{
CONFIG_ICON = new ImageIcon(ImageIO.read(ConfigPanel.class.getResourceAsStream("config_edit_icon.png")));
BufferedImage configIcon = ImageIO.read(ConfigPanel.class.getResourceAsStream("config_edit_icon.png"));
CONFIG_ICON = new ImageIcon(configIcon);
CONFIG_ICON_HOVER = new ImageIcon(SwingUtil.grayscaleOffset(configIcon, -100));
ON_SWITCHER = new ImageIcon(ImageIO.read(ConfigPanel.class.getResourceAsStream("switchers/on.png")));
OFF_SWITCHER = new ImageIcon(ImageIO.read(ConfigPanel.class.getResourceAsStream("switchers/off.png")));
SEARCH = new ImageIcon(ImageIO.read(IconTextField.class.getResourceAsStream("search.png")));
@@ -246,8 +251,21 @@ public class ConfigPanel extends PluginPanel
@Override
public void mousePressed(MouseEvent mouseEvent)
{
editConfigButton.setIcon(CONFIG_ICON);
openGroupConfigPanel(config, configDescriptor, configManager);
}
@Override
public void mouseEntered(MouseEvent e)
{
editConfigButton.setIcon(CONFIG_ICON_HOVER);
}
@Override
public void mouseExited(MouseEvent e)
{
editConfigButton.setIcon(CONFIG_ICON);
}
});
editConfigButton.setVisible(true);
editConfigButton.setToolTipText("Edit plugin configuration");

View File

@@ -31,6 +31,8 @@ import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -185,6 +187,20 @@ class FarmingTrackerPanel extends PluginPanel
resize.run();
materialTab.setOnSelectEvent(() -> config.setPatch(tab));
materialTab.addMouseListener(new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
materialTab.setBackground(ColorScheme.DARKER_GRAY_HOVER_COLOR);
}
@Override
public void mouseExited(MouseEvent e)
{
materialTab.setBackground(ColorScheme.DARKER_GRAY_COLOR);
}
});
tabGroup.addTab(materialTab);
if (config.patch() == tab)

View File

@@ -27,6 +27,7 @@ package net.runelite.client.plugins.feed;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
@@ -328,12 +329,14 @@ class FeedPanel extends PluginPanel
public void mouseEntered(MouseEvent e)
{
avatarAndRight.setBackground(hoverColor);
avatarAndRight.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e)
{
avatarAndRight.setBackground(backgroundColor);
avatarAndRight.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override

View File

@@ -27,6 +27,8 @@ package net.runelite.client.plugins.grandexchange;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
@@ -65,13 +67,23 @@ class GrandExchangeItemPanel extends JPanel
@Override
public void mouseEntered(MouseEvent e)
{
setBackground(getBackground().brighter());
setBackground(background.brighter());
for (Component component : getComponents())
{
component.setBackground(component.getBackground().brighter());
}
setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e)
{
setBackground(background);
for (Component component : getComponents())
{
component.setBackground(background);
}
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override

View File

@@ -27,6 +27,9 @@
package net.runelite.client.plugins.grandexchange;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.concurrent.ScheduledExecutorService;
import javax.inject.Inject;
import javax.swing.JPanel;
@@ -72,6 +75,29 @@ class GrandExchangePanel extends PluginPanel
MaterialTab offersTab = new MaterialTab("Offers", tabGroup, offersPanel);
searchTab = new MaterialTab("Search", tabGroup, searchPanel);
MouseAdapter materialTabMouseAdapter = new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
MaterialTab tab = (MaterialTab)e.getSource();
tab.setForeground(Color.WHITE);
}
@Override
public void mouseExited(MouseEvent e)
{
MaterialTab tab = (MaterialTab)e.getSource();
if (!tab.isSelected())
{
tab.setForeground(Color.GRAY);
}
}
};
searchTab.addMouseListener(materialTabMouseAdapter);
offersTab.addMouseListener(materialTabMouseAdapter);
tabGroup.setBorder(new EmptyBorder(5, 0, 0, 0));
tabGroup.addTab(offersTab);
tabGroup.addTab(searchTab);

View File

@@ -251,6 +251,18 @@ public class HiscorePanel extends PluginPanel
selectedEndPoint = endpoint;
updateButtons();
}
@Override
public void mouseEntered(MouseEvent e)
{
panel.setBackground(ColorScheme.DARKER_GRAY_HOVER_COLOR);
}
@Override
public void mouseExited(MouseEvent e)
{
panel.setBackground(ColorScheme.DARKER_GRAY_COLOR);
}
});
endPoints.add(panel);

View File

@@ -30,6 +30,7 @@ import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
@@ -180,14 +181,9 @@ public class InfoPanel extends PluginPanel
container.setBackground(ColorScheme.DARKER_GRAY_COLOR);
container.setLayout(new BorderLayout());
container.setBorder(new EmptyBorder(10, 10, 10, 10));
container.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent mouseEvent)
{
LinkBrowser.browse(url);
}
});
final Color hoverColor = ColorScheme.DARKER_GRAY_HOVER_COLOR;
final Color pressedColor = ColorScheme.DARKER_GRAY_COLOR.brighter();
JLabel iconLabel = new JLabel(icon);
container.add(iconLabel, BorderLayout.WEST);
@@ -197,6 +193,40 @@ public class InfoPanel extends PluginPanel
textContainer.setLayout(new GridLayout(2, 1));
textContainer.setBorder(new EmptyBorder(5, 10, 5, 10));
container.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent mouseEvent)
{
LinkBrowser.browse(url);
container.setBackground(pressedColor);
textContainer.setBackground(pressedColor);
}
@Override
public void mouseReleased(MouseEvent e)
{
container.setBackground(hoverColor);
textContainer.setBackground(hoverColor);
}
@Override
public void mouseEntered(MouseEvent e)
{
container.setBackground(hoverColor);
textContainer.setBackground(hoverColor);
container.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e)
{
container.setBackground(ColorScheme.DARKER_GRAY_COLOR);
textContainer.setBackground(ColorScheme.DARKER_GRAY_COLOR);
container.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel topLine = new JLabel(topText);
topLine.setForeground(Color.WHITE);
topLine.setFont(FontManager.getRunescapeSmallFont());

View File

@@ -288,6 +288,14 @@ public class SwingUtil
});
}
/**
* Re-size a BufferedImage to the given dimensions.
*
* @param image the BufferedImage.
* @param newWidth The width to set the BufferedImage to.
* @param newHeight The height to set the BufferedImage to.
* @return The BufferedImage with the specified dimensions
*/
private static BufferedImage resizeImage(BufferedImage image, int newWidth, int newHeight)
{
final Image tmp = image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);