📄 modechangelistener.java
字号:
package cn.pandaoen.game.minesweeper.actions;
import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.MenuItem;
import cn.pandaoen.game.minesweeper.C11N;
import cn.pandaoen.game.minesweeper.CustomDialog;
import cn.pandaoen.game.minesweeper.res.Resources;
public class ModeChangeListener extends SelectionAdapter {
Logger logger = Logger.getLogger(ModeChangeListener.class);
MineSweeperMenu menu;
ModeChangeListener(MineSweeperMenu menu) {
this.menu = menu;
}
@Override
public void widgetSelected(SelectionEvent e) {
if (!((MenuItem) e.widget).getSelection())
return;
int mode = ((Integer) e.widget.getData()).intValue();
logger.trace("New mode " + mode); //$NON-NLS-1$
if (mode == C11N.c11n.getMode() && mode != C11N.CUSTOM) {
return;
}
Point size;
int mineCount;
if (mode < C11N.CUSTOM) {
size = C11N.c11n.getSize(mode);
mineCount = C11N.c11n.getMines(mode);
} else {
logger.trace("show custom dialog"); //$NON-NLS-1$
CustomDialog dlg = new CustomDialog(menu.shell);
dlg.setMines(C11N.c11n.getMines());
dlg.setSize(C11N.c11n.getSize());
if (SWT.OK == dlg.open()) {
mineCount = dlg.getMines();
size = dlg.getSize();
C11N.c11n.setMines(mineCount);
C11N.c11n.setSize(size);
} else {
menu.mineSweeper.newGame();
return;
}
}
C11N.c11n.setMode(mode);
menu.mineSweeper.getBoard().setMinesAndSize(mineCount, size.x, size.y);
menu.mineSweeper.getTimer().stop();
menu.mineSweeper.getTimer().reset();
menu.mineSweeper.getCounter().setValue(mineCount);
menu.mineSweeper.getButtom().setImage(
Resources.res.getImage("smile.gif")); //$NON-NLS-1$
menu.mineSweeper.getShell().pack(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -