Configurable popup delay in preferences.

master
ubeefx 2010-12-20 17:52:38 +00:00
parent 3db22d92e9
commit da9ea30219
5 changed files with 27 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -27,6 +27,7 @@ public class GeneralConfig {
private static final String SMART_TARGET="target";
private static final String DIFFICULTY="difficulty";
private static final String EXTRA_LIFE="extra";
private static final String POPUP_DELAY="popup";
private static final int DEFAULT_LEFT=-1;
private static final int DEFAULT_TOP=-1;
@ -41,6 +42,7 @@ public class GeneralConfig {
private static final boolean DEFAULT_TARGET=true;
private static final int DEFAULT_DIFFICULTY=6;
private static final int DEFAULT_EXTRA_LIFE=0;
private static final int DEFAULT_POPUP_DELAY=300;
private int left=DEFAULT_LEFT;
private int top=DEFAULT_TOP;
@ -55,6 +57,7 @@ public class GeneralConfig {
private boolean smartTarget=DEFAULT_TARGET;
private int difficulty=DEFAULT_DIFFICULTY;
private int extraLife=DEFAULT_EXTRA_LIFE;
private int popupDelay=DEFAULT_POPUP_DELAY;
private GeneralConfig() {
@ -210,6 +213,16 @@ public class GeneralConfig {
this.extraLife=extraLife;
}
public int getPopupDelay() {
return popupDelay;
}
public void setPopupDelay(final int popupDelay) {
this.popupDelay=popupDelay;
}
public void load(final Properties properties) {
left=Integer.parseInt(properties.getProperty(LEFT,""+DEFAULT_LEFT));
@ -225,6 +238,7 @@ public class GeneralConfig {
smartTarget=Boolean.parseBoolean(properties.getProperty(SMART_TARGET,""+DEFAULT_TARGET));
difficulty=Integer.parseInt(properties.getProperty(DIFFICULTY,""+DEFAULT_DIFFICULTY));
extraLife=Integer.parseInt(properties.getProperty(EXTRA_LIFE,""+DEFAULT_EXTRA_LIFE));
popupDelay=Integer.parseInt(properties.getProperty(POPUP_DELAY,""+DEFAULT_POPUP_DELAY));
}
public void load() {
@ -251,6 +265,7 @@ public class GeneralConfig {
properties.setProperty(SMART_TARGET,String.valueOf(smartTarget));
properties.setProperty(DIFFICULTY,String.valueOf(difficulty));
properties.setProperty(EXTRA_LIFE,String.valueOf(extraLife));
properties.setProperty(POPUP_DELAY,String.valueOf(popupDelay));
}
public void save() {

View File

@ -93,6 +93,7 @@ public class IconImages {
public static final ImageIcon VALID=loadIcon("valid.gif");
public static final ImageIcon STRENGTH=loadIcon("strength.png");
public static final ImageIcon EDIT=loadIcon("edit.png");
public static final ImageIcon DELAY=loadIcon("delay.png");
public static final ImageIcon FLYING=loadIcon("flying.png");
public static final ImageIcon TRAMPLE=loadIcon("trample.png");

View File

@ -13,6 +13,7 @@ import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import magic.ai.ArtificialWorkerPool;
import magic.data.GeneralConfig;
import magic.data.IconImages;
import magic.model.MagicCard;
import magic.model.MagicCardDefinition;
@ -28,7 +29,6 @@ import magic.ui.viewer.GameViewer;
public class GameController {
private static final long MAX_TEST_MODE_DURATION=10000;
private static final int CARD_VIEW_DELAY=300;
private final GamePanel gamePanel;
private final MagicGame game;
@ -168,7 +168,7 @@ public class GameController {
}
imageCardViewer.setCard(cardDefinition,index);
imageCardViewer.setLocation(x,y);
DelayedViewersThread.getInstance().showViewer(imageCardViewer,CARD_VIEW_DELAY);
DelayedViewersThread.getInstance().showViewer(imageCardViewer,GeneralConfig.getInstance().getPopupDelay());
}
public void viewInfoRight(final MagicCardDefinition cardDefinition,final int index,final Rectangle rect) {
@ -187,7 +187,7 @@ public class GameController {
}
imageCardViewer.setCard(cardDefinition,index);
imageCardViewer.setLocation(x,y);
DelayedViewersThread.getInstance().showViewer(imageCardViewer,CARD_VIEW_DELAY);
DelayedViewersThread.getInstance().showViewer(imageCardViewer,GeneralConfig.getInstance().getPopupDelay());
}
public void hideInfo() {

View File

@ -32,6 +32,7 @@ public class PreferencesDialog extends JDialog implements ActionListener {
private final JCheckBox alwaysPassCheckBox;
private final JCheckBox smartTargetCheckBox;
private final SliderPanel undoLevelsSlider;
private final SliderPanel popupDelaySlider;
private final JButton okButton;
private final JButton cancelButton;
@ -39,7 +40,7 @@ public class PreferencesDialog extends JDialog implements ActionListener {
super(frame,true);
this.setTitle("Preferences");
this.setSize(400,290);
this.setSize(400,340);
this.setLocationRelativeTo(frame);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
@ -91,9 +92,13 @@ public class PreferencesDialog extends JDialog implements ActionListener {
mainPanel.add(smartTargetCheckBox);
undoLevelsSlider=new SliderPanel("Undo",IconImages.UNDO,1,7,1,config.getUndoLevels());
undoLevelsSlider.setBounds(70,155,250,50);
undoLevelsSlider.setBounds(60,155,270,50);
mainPanel.add(undoLevelsSlider);
popupDelaySlider=new SliderPanel("Popup",IconImages.DELAY,0,500,50,config.getPopupDelay());
popupDelaySlider.setBounds(60,205,270,50);
mainPanel.add(popupDelaySlider);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(mainPanel,BorderLayout.CENTER);
getContentPane().add(buttonPanel,BorderLayout.SOUTH);
@ -112,6 +117,7 @@ public class PreferencesDialog extends JDialog implements ActionListener {
config.setSkipSingle(skipSingleCheckBox.isSelected());
config.setAlwaysPass(alwaysPassCheckBox.isSelected());
config.setSmartTarget(smartTargetCheckBox.isSelected());
config.setPopupDelay(popupDelaySlider.getValue());
config.save();
frame.repaint();
dispose();