timers plugin: add option to loop timers
This commit is contained in:
@@ -122,6 +122,11 @@ public class ClockManager
|
||||
{
|
||||
notifier.notify("[" + timer.getName() + "] has finished counting down.");
|
||||
}
|
||||
|
||||
if (timer.isLoop())
|
||||
{
|
||||
timer.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,10 @@ public class ClockTabPanel extends TabContentPanel
|
||||
static final ImageIcon RESET_ICON_HOVER;
|
||||
static final ImageIcon START_ICON;
|
||||
static final ImageIcon START_ICON_HOVER;
|
||||
static final ImageIcon LOOP_ICON;
|
||||
static final ImageIcon LOOP_ICON_HOVER;
|
||||
static final ImageIcon LOOP_SELECTED_ICON;
|
||||
static final ImageIcon LOOP_SELECTED_ICON_HOVER;
|
||||
|
||||
private static final ImageIcon ADD_ICON;
|
||||
private static final ImageIcon ADD_ICON_HOVER;
|
||||
@@ -73,6 +77,8 @@ public class ClockTabPanel extends TabContentPanel
|
||||
BufferedImage resetIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "reset_icon.png");
|
||||
BufferedImage startIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "start_icon.png");
|
||||
BufferedImage addIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "add_icon.png");
|
||||
BufferedImage loopIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "loop_icon.png");
|
||||
BufferedImage loopSelectedIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "loop_selected_icon.png");
|
||||
|
||||
DELETE_ICON = new ImageIcon(deleteIcon);
|
||||
DELETE_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(deleteIcon, -80));
|
||||
@@ -86,6 +92,10 @@ public class ClockTabPanel extends TabContentPanel
|
||||
START_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(startIcon, -80));
|
||||
ADD_ICON = new ImageIcon(addIcon);
|
||||
ADD_ICON_HOVER = new ImageIcon(ImageUtil.alphaOffset(addIcon, 0.53f));
|
||||
LOOP_ICON = new ImageIcon(loopIcon);
|
||||
LOOP_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(loopIcon, -80));
|
||||
LOOP_SELECTED_ICON = new ImageIcon(loopSelectedIcon);
|
||||
LOOP_SELECTED_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(loopSelectedIcon, -80));
|
||||
}
|
||||
|
||||
ClockTabPanel(ClockManager clockManager)
|
||||
|
||||
@@ -45,6 +45,9 @@ class Timer extends Clock
|
||||
@Getter(AccessLevel.NONE)
|
||||
private transient boolean warning;
|
||||
|
||||
// whether this timer should loop or not
|
||||
private boolean loop;
|
||||
|
||||
Timer(String name, long duration)
|
||||
{
|
||||
super(name);
|
||||
|
||||
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.timetracking.clocks;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JToggleButton;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.util.SwingUtil;
|
||||
|
||||
@@ -38,6 +39,17 @@ class TimerPanel extends ClockPanel
|
||||
{
|
||||
super(clockManager, timer, "timer", true);
|
||||
|
||||
JToggleButton loopButton = new JToggleButton(ClockTabPanel.LOOP_ICON);
|
||||
loopButton.setRolloverIcon(ClockTabPanel.LOOP_ICON_HOVER);
|
||||
loopButton.setSelectedIcon(ClockTabPanel.LOOP_SELECTED_ICON);
|
||||
loopButton.setRolloverSelectedIcon(ClockTabPanel.LOOP_SELECTED_ICON_HOVER);
|
||||
SwingUtil.removeButtonDecorations(loopButton);
|
||||
loopButton.setPreferredSize(new Dimension(16, 14));
|
||||
loopButton.setToolTipText("Loop timer");
|
||||
loopButton.addActionListener(e -> timer.setLoop(!timer.isLoop()));
|
||||
loopButton.setSelected(timer.isLoop());
|
||||
leftActions.add(loopButton);
|
||||
|
||||
JButton deleteButton = new JButton(ClockTabPanel.DELETE_ICON);
|
||||
SwingUtil.removeButtonDecorations(deleteButton);
|
||||
deleteButton.setRolloverIcon(ClockTabPanel.DELETE_ICON_HOVER);
|
||||
|
||||
Reference in New Issue
Block a user