/* Copyright 1996 Rujith de Silva. This code is in the public domain. */ package NET.industry.pento; import java.awt.*; import java.util.*; import NET.industry.util.*; import NET.industry.pento.*; import NET.industry.pento.Piece; import NET.industry.pento.BoardPiece; import NET.industry.pento.Board; public class BoardControls extends Frame implements BoardChange { private CheckboxGroup cbg; private Checkbox cb3; private Checkbox cb4; private Checkbox cb5; private Checkbox cb6; private Button quit; private Panel buttons; private Panel cbs; private Board board; public boolean boardHere = true; private BorderLayout bl = new BorderLayout (); private BorderLayout buttonsBl = new BorderLayout (); public BoardControls () { super ("Pentominoes"); setBackground (Color.lightGray); cbg = new CheckboxGroup (); cb3 = new Checkbox ("3", cbg, false); cb4 = new Checkbox ("4", cbg, false); cb5 = new Checkbox ("5", cbg, false); cb6 = new Checkbox ("6", cbg, true); quit = new Button ("Quit"); buttons = new Panel (); buttons.setLayout (buttonsBl); cbs = new Panel (); setLayout (bl); cbs.setLayout (new GridLayout (4, 2)); cbs.add (cb3); cbs.add (cb4); cbs.add (cb5); cbs.add (cb6); cbs.layout (); buttons.add ("West", new Label ("Height: ")); buttons.add ("East", cbs); buttons.add ("South", quit); buttons.layout (); add ("North", buttons); board = new Board (this); add ("South", board); resize (370, 520); } public void boardChanged () { switch (board.getBoardStatus ()) { case 1: setCursor (Frame.MOVE_CURSOR); break; case 2: setCursor (Frame.HAND_CURSOR); break; default: setCursor (Frame.DEFAULT_CURSOR); break; } } public boolean action (Event evt, Object arg) { if (evt.target == quit) { boardHere = false; dispose (); } else if (evt.target == cb3) board.setHeight (3); else if (evt.target == cb4) board.setHeight (4); else if (evt.target == cb5) board.setHeight (5); else if (evt.target == cb6) board.setHeight (6); else return false; return true; } public Dimension preferredSize () { return bl.minimumLayoutSize (this); } public Dimension minimumSize () { return preferredSize (); } }