// // TerrainToolOptions.java // Thump // // Created by Anthony Parker on Tue Jan 14 2003. // Copyright (c) 2003 Anthony Parker. All rights reserved. // package btthud.ui; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.image.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.event.*; import java.lang.*; import java.util.*; import btthud.data.*; public class TerrainToolOptions extends JInternalFrame { JToggleButton bTerrain[] = new JToggleButton[MUXHex.TOTAL_PAINTABLE_TERRAIN]; int selectedTool; MPrefs prefs; // ----------------------------- public TerrainToolOptions(MPrefs prefs) { super("Terrain Options"); this.prefs = prefs; selectedTool = MUXHex.PLAIN; setClosable(false); setResizable(false); setLayer(JLayeredPane.PALETTE_LAYER); Container contentPane = getContentPane(); contentPane.setLayout(new GridLayout(6, 2, 0, 0)); for (int i = 0; i < MUXHex.TOTAL_PAINTABLE_TERRAIN; i++) { bTerrain[i] = new JToggleButton(CustomCursors.getTerrainIcon(i), i == selectedTool ? true : false); bTerrain[i].setPreferredSize(new Dimension(32, 32)); bTerrain[i].setToolTipText(MUXHex.nameForId(i) + " (" + MUXHex.terrainForId(i) + ")"); bTerrain[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { terrTypeSelected((JToggleButton) event.getSource()); } }); contentPane.add(bTerrain[i]); } pack(); setLocation(prefs.terrainToolsLoc); // Show the window now this.show(); } // ---------------------------- public int selectedTerrain() { return selectedTool; } // ---------------------------- public void terrTypeSelected(JToggleButton b) { int newTool = -1; // Figure out which tool is selected (and deselect the others) for (int i = 0; i < MUXHex.TOTAL_PAINTABLE_TERRAIN; i++) { if (bTerrain[i] == b) newTool = i; else bTerrain[i].setSelected(false); } b.setSelected(true); selectedTool = newTool; } // ---------------------------- static public int toolForChar(char c) { for (int i = 0; i < MUXHex.PAINTABLE_TERRAIN_TYPES.length; i++) { if (MUXHex.PAINTABLE_TERRAIN_TYPES[i] == c) return i; } return -1; } public void selectToolForTerrain(char t) { terrTypeSelected(bTerrain[MUXHex.idForTerrain(t)]); } }