SequenceGroup stretchGroup = null;\r
boolean remove = false;\r
\r
+ Point lastMousePress;\r
boolean mouseWheelPressed = false;\r
StringBuffer keyboardNo1;\r
StringBuffer keyboardNo2;\r
\r
\r
endEditing();\r
- while (seqCanvas.cursorY < av.startSeq)\r
+ if(av.wrapAlignment)\r
{\r
- ap.scrollUp(true);\r
+ ap.scrollToWrappedVisible(seqCanvas.cursorX);\r
}\r
- while (seqCanvas.cursorY + 1 > av.endSeq)\r
- {\r
- ap.scrollUp(false);\r
- }\r
- while (seqCanvas.cursorX < av.startRes)\r
- {\r
- if(!ap.scrollRight(false))\r
- break;\r
- }\r
- while (seqCanvas.cursorX > av.endRes)\r
+ else\r
{\r
- if(!ap.scrollRight(true))\r
- break;\r
+ while (seqCanvas.cursorY < av.startSeq)\r
+ {\r
+ ap.scrollUp(true);\r
+ }\r
+ while (seqCanvas.cursorY + 1 > av.endSeq)\r
+ {\r
+ ap.scrollUp(false);\r
+ }\r
+ if (!av.wrapAlignment)\r
+ {\r
+ while (seqCanvas.cursorX < av.startRes)\r
+ {\r
+ if (!ap.scrollRight(false))\r
+ break;\r
+ }\r
+ while (seqCanvas.cursorX > av.endRes)\r
+ {\r
+ if (!ap.scrollRight(true))\r
+ break;\r
+ }\r
+ }\r
}\r
-\r
setStatusMessage(av.alignment.getSequenceAt(seqCanvas.cursorY),\r
seqCanvas.cursorX, seqCanvas.cursorY);\r
\r
*/\r
public void mousePressed(MouseEvent evt)\r
{\r
+ lastMousePress = evt.getPoint();\r
+\r
if (javax.swing.SwingUtilities.isMiddleMouseButton(evt))\r
{\r
mouseWheelPressed = true;\r
*/\r
public void mouseDragged(MouseEvent evt)\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.getY())\r
+ > Math.abs(evt.getX() - lastMousePress.getX()))\r
+ {\r
+ int fontSize = av.font.getSize();\r
+\r
+ if (evt.getY() < lastMousePress.getY() && av.charHeight > 1)\r
+ {\r
+ fontSize--;\r
+ }\r
+ else if (evt.getY() > lastMousePress.getY())\r
+ {\r
+ fontSize++;\r
+ }\r
+\r
+ av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));\r
+ av.charWidth = oldWidth;\r
+ ap.fontChanged();\r
+\r
+ }\r
+ else\r
+ {\r
+ if (evt.getX() < lastMousePress.getX() && av.charWidth > 1)\r
+ {\r
+ av.charWidth--;\r
+ }\r
+ else if (evt.getX() > lastMousePress.getX())\r
+ {\r
+ av.charWidth++;\r
+ }\r
+\r
+ ap.repaint();\r
+ }\r
+\r
+ FontMetrics fm = getFontMetrics(av.getFont());\r
+ av.validCharWidth = fm.charWidth('M') <= av.charWidth;\r
+\r
+ lastMousePress = evt.getPoint();\r
+\r
+ return;\r
+ }\r
+\r
if (!editingSeqs)\r
{\r
doMouseDraggedDefineMode(evt);\r
{\r
//We can still insert gaps if the selectionGroup\r
//contains all the sequences\r
- sg.setEndRes(sg.getEndRes()+1+startres-lastres);\r
+ sg.setEndRes(sg.getEndRes()+startres-lastres);\r
fixedRight = av.alignment.getWidth()+startres-lastres;\r
}\r
else\r
public void mouseWheelMoved(MouseWheelEvent e)\r
{\r
e.consume();\r
- if (mouseWheelPressed)\r
+ /* if (mouseWheelPressed)\r
{\r
Font font = av.getFont();\r
int fontSize = font.getSize();\r
else if (fontSize > 1)\r
fontSize--;\r
\r
+\r
+\r
av.setFont(new Font(font.getName(), font.getStyle(), fontSize));\r
+\r
ap.fontChanged();\r
}\r
- else\r
+ else*/\r
{\r
if (e.getWheelRotation() > 0)\r
ap.scrollUp(false);\r