StringBuffer keyboardNo1;\r
StringBuffer keyboardNo2;\r
\r
+ boolean mouseWheelPressed = false;\r
+ Point lastMousePress;\r
+\r
public SeqPanel(AlignViewport avp, AlignmentPanel p)\r
{\r
this.av = avp;\r
}\r
public void mousePressed(MouseEvent evt)\r
{\r
+ lastMousePress = evt.getPoint();\r
+\r
+ if ( (evt.getModifiers() & InputEvent.BUTTON2_MASK) ==\r
+ InputEvent.BUTTON2_MASK)\r
+ {\r
+ mouseWheelPressed = true;\r
+ return;\r
+ }\r
+\r
if (evt.isShiftDown() || evt.isAltDown() ||\r
evt.isControlDown())\r
{\r
public void mouseReleased(MouseEvent evt)\r
{\r
mouseDragging = false;\r
+ mouseWheelPressed = false;\r
\r
if (!editingSeqs)\r
{\r
editOccurred();\r
\r
endEditing();\r
- ap.repaint();\r
+ ap.repaint();\r
}\r
\r
int startWrapBlock=-1;\r
\r
public void mouseDragged(MouseEvent evt)\r
{\r
- if (!editingSeqs)\r
-{\r
- doMouseDraggedDefineMode(evt);\r
- return;\r
-}\r
+ if (mouseWheelPressed)\r
+ {\r
+ int oldWidth = av.charWidth;\r
+\r
+ //Which is bigger, left-right or up-down?\r
+ if (Math.abs(evt.getY() - lastMousePress.y)\r
+ > Math.abs(evt.getX() - lastMousePress.x))\r
+ {\r
+ int fontSize = av.font.getSize();\r
+\r
+ if (evt.getY() < lastMousePress.y && av.charHeight > 1)\r
+ {\r
+ fontSize--;\r
+ }\r
+ else if (evt.getY() > lastMousePress.y)\r
+ {\r
+ fontSize++;\r
+ }\r
+\r
+\r
+ if(fontSize<1)\r
+ fontSize = 1;\r
+\r
+ av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));\r
+ av.charWidth = oldWidth;\r
+ }\r
+ else\r
+ {\r
+ if (evt.getX() < lastMousePress.x && av.charWidth > 1)\r
+ {\r
+ av.charWidth--;\r
+ }\r
+ else if (evt.getX() > lastMousePress.x)\r
+ {\r
+ av.charWidth++;\r
+ }\r
+\r
+ if(av.charWidth<1)\r
+ {\r
+ av.charWidth = 1;\r
+ }\r
+ }\r
+\r
+ ap.fontChanged();\r
+\r
+ FontMetrics fm = getFontMetrics(av.getFont());\r
+ av.validCharWidth = fm.charWidth('M') <= av.charWidth;\r
+\r
+ lastMousePress = evt.getPoint();\r
+\r
+ ap.repaint();\r
+ ap.annotationPanel.image = null;\r
+ return;\r
+ }\r
+\r
+ if (!editingSeqs)\r
+ {\r
+ doMouseDraggedDefineMode(evt);\r
+ return;\r
+ }\r
\r
int res = findRes(evt);\r
\r
//////////////////////////////////////////\r
public void doMousePressedDefineMode(MouseEvent evt)\r
{\r
+\r
+\r
if (scrollThread != null)\r
{\r
scrollThread.running = false;\r