# HG changeset patch # User Matti Hamalainen # Date 1489653939 -7200 # Node ID 981a8e20b36326e8c5c712823b71770043c52fa6 # Parent 9f04e8ab180a7db598f449b03922fa6b7644e1ea Implement alternative button graphics support. diff -r 9f04e8ab180a -r 981a8e20b363 game/IDMButton.java --- a/game/IDMButton.java Thu Mar 16 10:45:13 2017 +0200 +++ b/game/IDMButton.java Thu Mar 16 10:45:39 2017 +0200 @@ -16,17 +16,17 @@ { enum State { FOCUSED, PRESSED, NORMAL } State state; - static BufferedImage imgOrigUnpressed, imgOrigPressed; - static BufferedImage imgUnpressed, imgPressed; + BufferedImage imgOrigUnpressed, imgOrigPressed; + BufferedImage imgUnpressed, imgPressed; Font font; FontMetrics metrics; String text; boolean active; - public IDMButton(IDMPoint pos, int keyCode, Font font, String text) + public IDMButton(IDMPoint pos, String prefix, int keyCode, Font font, String text) { super(pos); - loadImages(); + loadImages(prefix); setSize(imgOrigUnpressed.getWidth(), imgOrigUnpressed.getHeight()); setScale(1, 1); @@ -38,22 +38,30 @@ active = false; } + public IDMButton(IDMPoint pos, int keyCode, Font font, String text) + { + this(pos, "button1", keyCode, font, text); + } + + public IDMButton(float x, float y, String prefix, int keyCode, Font font, String text) + { + this(new IDMPoint(x, y), prefix, keyCode, font, text); + } + public IDMButton(float x, float y, int keyCode, Font font, String text) { this(new IDMPoint(x, y), keyCode, font, text); } - private static void loadImages() + + public void loadImages(String prefix) { - if (imgUnpressed != null && imgPressed != null) - return; - try { - ResourceLoader res = new ResourceLoader("graphics/button1_up.png"); + ResourceLoader res = new ResourceLoader("graphics/"+ prefix +"_up.png"); imgOrigUnpressed = ImageIO.read(res.getStream()); - res = new ResourceLoader("graphics/button1_down.png"); + res = new ResourceLoader("graphics/"+ prefix +"_down.png"); imgOrigPressed = ImageIO.read(res.getStream()); } catch (IOException e)