234 |
} |
} |
235 |
|
|
236 |
|
|
|
// Mouse press state |
|
|
// x, y, buttons |
|
|
protected int[] m_state = null; |
|
|
protected float pan[] = new float[2]; |
|
|
|
|
|
// Mouse x/y position on the paper |
|
|
protected float m_pos[] = new float[3]; |
|
|
|
|
|
protected void readMouseState(MouseEvent e, VobScene oldVobScene) { |
|
|
m_state = new int[]{ e.getX(), e.getY(), e.getModifiers()}; |
|
|
pan[0] = focus.getPanX(); pan[1] = focus.getPanY(); |
|
|
m_pos[0] = m_state[0]; m_pos[1] = m_state[1]; m_pos[2] = 0; |
|
|
oldVobScene.coords.inverseTransformPoints3(box2screen, m_pos, m_pos); |
|
|
} |
|
|
|
|
|
|
|
|
private GraphicsAPI.Window win = null; |
|
|
public boolean mouse(MouseEvent e, VobScene oldVobScene, |
|
|
GraphicsAPI.Window w) { |
|
|
win = w; |
|
|
return mouse(e, oldVobScene); |
|
|
} |
|
|
|
|
237 |
public boolean mouse(MouseEvent e, VobScene oldVobScene) { |
public boolean mouse(MouseEvent e, VobScene oldVobScene) { |
238 |
// win.setCursor("default"); |
//return controller.mouse(e, oldVobScene); |
239 |
if (e.getID() == MouseEvent.MOUSE_PRESSED) { |
return false; |
|
readMouseState(e, oldVobScene); |
|
|
return false; |
|
|
} |
|
|
|
|
|
if (m_state == null) throw new Error("Mouse state not found!"); |
|
|
return doMouse(e, oldVobScene); |
|
240 |
} |
} |
241 |
|
|
242 |
public void chgFast(VobScene oldVobScene) { |
public void chgFast(VobScene oldVobScene) { |
244 |
setZoomPan(oldVobScene, box2screen); |
setZoomPan(oldVobScene, box2screen); |
245 |
} |
} |
246 |
|
|
|
public abstract void changeZoom(float change); |
|
|
public void changeSize(float change) { ;} |
|
|
|
|
|
protected boolean doMouse(MouseEvent e, VobScene oldVobScene) { |
|
|
// Move by dragging with button 1 |
|
|
if(m_state[2] == e.BUTTON1_MASK && |
|
|
e.getID() == MouseEvent.MOUSE_DRAGGED) { |
|
|
win.setCursor("move"); |
|
|
|
|
|
float[] pos2 = new float[] { e.getX(), e.getY(), 0 }; |
|
|
oldVobScene.coords.inverseTransformPoints3(box2screen, pos2, pos2); |
|
|
|
|
|
focus.setPan(pan[0] + (m_pos[0] - pos2[0])/getZoom(), |
|
|
pan[1] + (m_pos[1] - pos2[1])/getZoom()); |
|
|
clipPan(); |
|
|
|
|
|
setZoomPan(oldVobScene, box2screen); |
|
|
return true; |
|
|
} |
|
|
|
|
|
// Move around by clicking |
|
|
if(m_state[2] == e.BUTTON1_MASK && |
|
|
e.getID() == MouseEvent.MOUSE_CLICKED){ |
|
|
mouseMoveClick(e.getX(), e.getY(), oldVobScene); |
|
|
return false; |
|
|
} |
|
|
|
|
|
// See around of objects |
|
|
if(m_state[2] == e.BUTTON2_MASK && |
|
|
e.getID() == MouseEvent.MOUSE_CLICKED){ |
|
|
getNodeOnPlane(oldVobScene, e.getX(), e.getY()); |
|
|
return false; |
|
|
} |
|
|
|
|
|
if(dbg) p("nothing!"); |
|
|
return false; |
|
|
} |
|
|
|
|
247 |
public Object getNodeOnPlane(VobScene oldVobScene, float x, float y) { |
public Object getNodeOnPlane(VobScene oldVobScene, float x, float y) { |
248 |
View2D view = getView2D(); |
View2D view = getView2D(); |
249 |
while (view.getChildView2D() != null) |
while (view.getChildView2D() != null) |
261 |
} else p("not a canvas view?"); |
} else p("not a canvas view?"); |
262 |
return null; |
return null; |
263 |
} |
} |
|
|
|
|
|
|
|
/** DEPRECATED |
|
|
* @see Focus |
|
|
*/ |
|
|
protected float getZoom() { return 1; } |
|
264 |
} |
} |