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.");
|
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 RESET_ICON_HOVER;
|
||||||
static final ImageIcon START_ICON;
|
static final ImageIcon START_ICON;
|
||||||
static final ImageIcon START_ICON_HOVER;
|
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;
|
||||||
private static final ImageIcon ADD_ICON_HOVER;
|
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 resetIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "reset_icon.png");
|
||||||
BufferedImage startIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "start_icon.png");
|
BufferedImage startIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "start_icon.png");
|
||||||
BufferedImage addIcon = ImageUtil.getResourceStreamFromClass(TimeTrackingPlugin.class, "add_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 = new ImageIcon(deleteIcon);
|
||||||
DELETE_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(deleteIcon, -80));
|
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));
|
START_ICON_HOVER = new ImageIcon(ImageUtil.luminanceOffset(startIcon, -80));
|
||||||
ADD_ICON = new ImageIcon(addIcon);
|
ADD_ICON = new ImageIcon(addIcon);
|
||||||
ADD_ICON_HOVER = new ImageIcon(ImageUtil.alphaOffset(addIcon, 0.53f));
|
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)
|
ClockTabPanel(ClockManager clockManager)
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ class Timer extends Clock
|
|||||||
@Getter(AccessLevel.NONE)
|
@Getter(AccessLevel.NONE)
|
||||||
private transient boolean warning;
|
private transient boolean warning;
|
||||||
|
|
||||||
|
// whether this timer should loop or not
|
||||||
|
private boolean loop;
|
||||||
|
|
||||||
Timer(String name, long duration)
|
Timer(String name, long duration)
|
||||||
{
|
{
|
||||||
super(name);
|
super(name);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.timetracking.clocks;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JToggleButton;
|
||||||
import net.runelite.client.ui.ColorScheme;
|
import net.runelite.client.ui.ColorScheme;
|
||||||
import net.runelite.client.util.SwingUtil;
|
import net.runelite.client.util.SwingUtil;
|
||||||
|
|
||||||
@@ -38,6 +39,17 @@ class TimerPanel extends ClockPanel
|
|||||||
{
|
{
|
||||||
super(clockManager, timer, "timer", true);
|
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);
|
JButton deleteButton = new JButton(ClockTabPanel.DELETE_ICON);
|
||||||
SwingUtil.removeButtonDecorations(deleteButton);
|
SwingUtil.removeButtonDecorations(deleteButton);
|
||||||
deleteButton.setRolloverIcon(ClockTabPanel.DELETE_ICON_HOVER);
|
deleteButton.setRolloverIcon(ClockTabPanel.DELETE_ICON_HOVER);
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 375 B |
Binary file not shown.
|
After Width: | Height: | Size: 388 B |
Reference in New Issue
Block a user