Make tooltips saner

This commit is contained in:
Jakub Valtar
2015-11-07 11:16:20 +01:00
parent 84d922ee50
commit 921099df04

View File

@@ -26,6 +26,7 @@ import processing.mode.java.tweak.*;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
@@ -114,39 +115,6 @@ public class JavaTextAreaPainter extends TextAreaPainter
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(final MouseEvent evt) {
int line = textArea.yToLine(evt.getY());
int x = evt.getX();
LineMarker marker = getJavaEditor().findError(line);
if (marker != null) {
Problem problem = marker.getProblem();
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
int lineStart = textArea.getLineStartOffset(line);
int lineEnd = textArea.getLineStopOffset(line);
int errorStart = lineOffset + problem.getPDELineStartOffset();
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
int startOffset = Math.max(errorStart, lineStart) - lineStart;
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
//setToolTipText(problem.getMessage());
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
problem.getMessage(),
problem.isError());
evt.consume();
}
}
}
});
// TweakMode code
tweakMode = false;
cursorType = Cursor.DEFAULT_CURSOR;
@@ -476,6 +444,43 @@ public class JavaTextAreaPainter extends TextAreaPainter
}
@Override
public String getToolTipText(MouseEvent evt) {
int line = evt.getY() / getFontMetrics().getHeight() + textArea.getFirstLine();
if (line < 0 || line > textArea.getLineCount() - 1) {
return null;
}
LineMarker marker = getJavaEditor().findError(line);
if (marker != null) {
Problem problem = marker.getProblem();
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
int lineStart = textArea.getLineStartOffset(line);
int lineEnd = textArea.getLineStopOffset(line);
int errorStart = lineOffset + problem.getPDELineStartOffset();
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
int startOffset = Math.max(errorStart, lineStart) - lineStart;
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
int x = evt.getX();
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
problem.getMessage(),
problem.isError());
return super.getToolTipText();
}
}
return null;
}
/*
@Override
public String getToolTipText(MouseEvent event) {
if (!getJavaEditor().hasJavaTabs()) {
@@ -564,6 +569,7 @@ public class JavaTextAreaPainter extends TextAreaPainter
// setToolTipText(null);
return super.getToolTipText(event);
}
*/
// TweakMode code