Mercurial > hg > ristipolku
view game/IDMWidget.java @ 154:48b91eabc029
Improve scaling a bit, not completely functional yet.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 11 Apr 2013 20:34:45 +0300 |
parents | d6d92845d6a2 |
children |
line wrap: on
line source
/* * Ristipolku IDM base widget * (C) Copyright 2011 Matti 'ccr' Hämäläinen <ccr@tnsp.org> */ package game; import java.awt.*; import java.awt.event.*; public class IDMWidget { IDMWidget parent; IDMPoint pos, size, scale; int keyCode; public IDMWidget() { keyCode = -1; this.scale = new IDMPoint(1, 1); this.pos = new IDMPoint(0, 0); this.size = new IDMPoint(0, 0); } public IDMWidget(IDMPoint pos) { this(); this.pos = pos; } public IDMWidget(IDMPoint pos, IDMPoint size) { this(); this.pos = pos; this.size = size; } public void setParent(IDMWidget par) { this.parent = par; } public void add(IDMWidget widget) { } public void remove(IDMWidget widget) { } public void setPos(IDMPoint pos) { this.pos = pos; } public void setPos(float x, float y) { this.pos = new IDMPoint(x, y); } public void setSize(IDMPoint size) { this.size = size; } public void setSize(float w, float h) { this.size = new IDMPoint(w, h); } public void setScale(IDMPoint scale) { this.scale = scale; } public void setScale(float x, float y) { this.setScale(new IDMPoint(x, y)); } public int getScaledX() { return (int) (pos.x * scale.x); } public int getScaledY() { return (int) (pos.y * scale.y); } public int getScaledWidth() { return (int) (size.x * scale.x); } public int getScaledHeight() { return (int) (size.y * scale.y); } public boolean contains(float x, float y) { return (x >= getScaledX() && y >= getScaledY() && x < getScaledX() + getScaledWidth() && y < getScaledY() + getScaledHeight()); } public boolean contains(Point where) { return contains(where.x, where.y); } public boolean contains(IDMPoint where) { return contains(where.x, where.y); } public void paint(Graphics2D g) { } public boolean mousePressed(MouseEvent e) { return false; } public boolean mouseReleased(MouseEvent e) { if (contains(e.getPoint())) { clicked(); return true; } return false; } public boolean mouseEntered(MouseEvent e) { return false; } public boolean mouseExited(MouseEvent e) { return false; } // Generic key handler public boolean keyPressed(KeyEvent e) { if (e.getKeyCode() == keyCode) { clicked(); return true; } else return false; } public void clicked() { } }