view src/samer/units/MousePosition.java @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
line wrap: on
line source
package samer.units;

import samer.core.*;
import samer.core.types.*;
import samer.maths.*;
import java.awt.*;
import java.awt.event.*;

public class MousePosition implements MouseListener, MouseMotionListener
{
	private Node			node;
	private Component	comp;
	private VDouble		x, y;
	private VBoolean		button;

	public MousePosition( Component c)
	{
		node = new Node("mouse");

		Shell.push(node);
		x = new VDouble( "x");
		y = new VDouble( "y");
		button = new VBoolean("button",false);

		comp=c;
		comp.addMouseListener(this);
	}

	public void dispose() {
		if (button.value) comp.removeMouseMotionListener(this);
		comp.removeMouseListener(this);
		x.dispose();
		y.dispose();
	}

	// mouse event handlers
	public void mouseClicked( MouseEvent e) {}
	public void mouseEntered( MouseEvent e) {}
	public void mouseExited( MouseEvent e)  {}
	public void mousePressed( MouseEvent e)  {
		button.value=true;
		button.changed();
		comp.addMouseMotionListener(this);
	}

	public void mouseReleased( MouseEvent e) {
		button.value=false;
		button.changed();
		comp.removeMouseMotionListener(this);
	}

	// mouse motion handler
	public void mouseDragged( MouseEvent e)  {
		x.set(e.getX()); y.set(e.getY());
	}
	public void mouseMoved( MouseEvent e)   {
		x.set(e.getX()); y.set(e.getY());
	}
}