Add digital click to titlebar when full-screen

This commit is contained in:
drdev
2013-09-29 19:00:09 +00:00
parent f8e522fd1e
commit c957dab3d2
3 changed files with 47 additions and 0 deletions

1
.gitattributes vendored
View File

@@ -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/FCheckBox.java -text
src/main/java/forge/gui/toolbox/FComboBoxPanel.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/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/FLabel.java -text
src/main/java/forge/gui/toolbox/FList.java -text src/main/java/forge/gui/toolbox/FList.java -text
src/main/java/forge/gui/toolbox/FOverlay.java -text src/main/java/forge/gui/toolbox/FOverlay.java -text

View 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()));
}
}

View File

@@ -18,6 +18,7 @@ import javax.swing.SpringLayout;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import forge.gui.framework.ILocalRepaint; import forge.gui.framework.ILocalRepaint;
import forge.gui.toolbox.FDigitalClock;
import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin;
import forge.gui.toolbox.FSkin.Colors; import forge.gui.toolbox.FSkin.Colors;
import forge.gui.toolbox.FSkin.JLabelSkin; import forge.gui.toolbox.FSkin.JLabelSkin;
@@ -33,6 +34,7 @@ public class FTitleBar extends JMenuBar {
private final FFrame frame; private final FFrame frame;
private final SpringLayout layout = new SpringLayout(); private final SpringLayout layout = new SpringLayout();
private final JLabel lblTitle = new JLabel(); private final JLabel lblTitle = new JLabel();
private final FDigitalClock clock = new FDigitalClock();
private final MinimizeButton btnMinimize = new MinimizeButton(); private final MinimizeButton btnMinimize = new MinimizeButton();
private final MaximizeButton btnMaximize = new MaximizeButton(); private final MaximizeButton btnMaximize = new MaximizeButton();
private final CloseButton btnClose = new CloseButton(); 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 setTitle(f.getTitle()); //set default title based on frame title
setIconImage(f.getIconImage()); //set default icon image based on frame icon image setIconImage(f.getIconImage()); //set default icon image based on frame icon image
FSkin.get(lblTitle).setForeground(foreColor); FSkin.get(lblTitle).setForeground(foreColor);
FSkin.get(clock).setForeground(foreColor);
add(lblTitle); add(lblTitle);
layout.putConstraint(SpringLayout.WEST, lblTitle, 1, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.WEST, lblTitle, 1, SpringLayout.WEST, this);
@@ -62,9 +65,15 @@ public class FTitleBar extends JMenuBar {
add(btnMinimize); add(btnMinimize);
layout.putConstraint(SpringLayout.EAST, btnMinimize, 0, SpringLayout.WEST, btnMaximize); layout.putConstraint(SpringLayout.EAST, btnMinimize, 0, SpringLayout.WEST, btnMaximize);
layout.putConstraint(SpringLayout.NORTH, btnMinimize, 0, SpringLayout.NORTH, 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() { public void handleMaximizedChanged() {
clock.setVisible(frame.getMaximized());
if (frame.getMaximized()) { if (frame.getMaximized()) {
btnMaximize.setToolTipText("Restore Down"); btnMaximize.setToolTipText("Restore Down");
} }