mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Add digital click to titlebar when full-screen
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -15266,6 +15266,7 @@ src/main/java/forge/gui/toolbox/FButton.java -text
|
||||
src/main/java/forge/gui/toolbox/FCheckBox.java -text
|
||||
src/main/java/forge/gui/toolbox/FComboBoxPanel.java -text
|
||||
src/main/java/forge/gui/toolbox/FComboBoxWrapper.java -text
|
||||
src/main/java/forge/gui/toolbox/FDigitalClock.java -text
|
||||
src/main/java/forge/gui/toolbox/FLabel.java -text
|
||||
src/main/java/forge/gui/toolbox/FList.java -text
|
||||
src/main/java/forge/gui/toolbox/FOverlay.java -text
|
||||
|
||||
37
src/main/java/forge/gui/toolbox/FDigitalClock.java
Normal file
37
src/main/java/forge/gui/toolbox/FDigitalClock.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package forge.gui.toolbox;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.Timer;
|
||||
|
||||
/**
|
||||
* Digital clock label that displays current time
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class FDigitalClock extends JLabel {
|
||||
private final Calendar now;
|
||||
private final SimpleDateFormat format = new SimpleDateFormat("h:mm a");
|
||||
|
||||
public FDigitalClock() {
|
||||
Timer timer = new Timer(60000, new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
now.add(Calendar.MINUTE, 1);
|
||||
updateDisplay();
|
||||
}
|
||||
});
|
||||
now = Calendar.getInstance();
|
||||
updateDisplay();
|
||||
//ensure timer starts when current minute ends
|
||||
timer.setInitialDelay(60000 - (now.get(Calendar.MILLISECOND) + now.get(Calendar.SECOND) * 1000));
|
||||
timer.start();
|
||||
}
|
||||
|
||||
private void updateDisplay() {
|
||||
setText(format.format(now.getTime()));
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import javax.swing.SpringLayout;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.gui.framework.ILocalRepaint;
|
||||
import forge.gui.toolbox.FDigitalClock;
|
||||
import forge.gui.toolbox.FSkin;
|
||||
import forge.gui.toolbox.FSkin.Colors;
|
||||
import forge.gui.toolbox.FSkin.JLabelSkin;
|
||||
@@ -33,6 +34,7 @@ public class FTitleBar extends JMenuBar {
|
||||
private final FFrame frame;
|
||||
private final SpringLayout layout = new SpringLayout();
|
||||
private final JLabel lblTitle = new JLabel();
|
||||
private final FDigitalClock clock = new FDigitalClock();
|
||||
private final MinimizeButton btnMinimize = new MinimizeButton();
|
||||
private final MaximizeButton btnMaximize = new MaximizeButton();
|
||||
private final CloseButton btnClose = new CloseButton();
|
||||
@@ -46,6 +48,7 @@ public class FTitleBar extends JMenuBar {
|
||||
setTitle(f.getTitle()); //set default title based on frame title
|
||||
setIconImage(f.getIconImage()); //set default icon image based on frame icon image
|
||||
FSkin.get(lblTitle).setForeground(foreColor);
|
||||
FSkin.get(clock).setForeground(foreColor);
|
||||
|
||||
add(lblTitle);
|
||||
layout.putConstraint(SpringLayout.WEST, lblTitle, 1, SpringLayout.WEST, this);
|
||||
@@ -62,9 +65,15 @@ public class FTitleBar extends JMenuBar {
|
||||
add(btnMinimize);
|
||||
layout.putConstraint(SpringLayout.EAST, btnMinimize, 0, SpringLayout.WEST, btnMaximize);
|
||||
layout.putConstraint(SpringLayout.NORTH, btnMinimize, 0, SpringLayout.NORTH, btnMaximize);
|
||||
|
||||
add(clock);
|
||||
clock.setVisible(false); //hide unless maximized
|
||||
layout.putConstraint(SpringLayout.EAST, clock, -6, SpringLayout.WEST, btnMinimize);
|
||||
layout.putConstraint(SpringLayout.NORTH, clock, 0, SpringLayout.NORTH, lblTitle);
|
||||
}
|
||||
|
||||
public void handleMaximizedChanged() {
|
||||
clock.setVisible(frame.getMaximized());
|
||||
if (frame.getMaximized()) {
|
||||
btnMaximize.setToolTipText("Restore Down");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user