mirror of
https://github.com/processing/processing4.git
synced 2026-06-08 08:31:28 +02:00
limit rollovers on EditorStatus to the text portion
This commit is contained in:
@@ -150,7 +150,7 @@ public class Platform {
|
||||
|
||||
} catch (Exception e) {
|
||||
Messages.showWarning("Problem Opening URL",
|
||||
"Could not open the URL\n" + url, e);
|
||||
"Could not open the URL\n" + url, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import java.awt.Graphics;
|
||||
import java.awt.Image;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseMotionAdapter;
|
||||
|
||||
import javax.swing.plaf.basic.BasicSplitPaneDivider;
|
||||
import javax.swing.plaf.basic.BasicSplitPaneUI;
|
||||
@@ -50,6 +51,7 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
static final int LEFT_MARGIN = Editor.LEFT_GUTTER;
|
||||
static final int RIGHT_MARGIN = 20;
|
||||
|
||||
Color urlColor;
|
||||
Color[] fgColor;
|
||||
Color[] bgColor;
|
||||
Image[] bgImage;
|
||||
@@ -72,7 +74,11 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
|
||||
int mode;
|
||||
String message;
|
||||
|
||||
String url;
|
||||
int rightEdge;
|
||||
int mouseX;
|
||||
boolean inside;
|
||||
|
||||
Font font;
|
||||
FontMetrics metrics;
|
||||
@@ -98,18 +104,45 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
updateMode();
|
||||
|
||||
addMouseListener(new MouseAdapter() {
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
if (url != null) {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
}
|
||||
updateMouse();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
if (url != null) {
|
||||
//if (url != null) {
|
||||
if (inside) {
|
||||
Platform.openURL(url);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
updateMouse();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
addMouseMotionListener(new MouseMotionAdapter() {
|
||||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent e) {
|
||||
mouseX = e.getX();
|
||||
updateMouse();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void updateMouse() {
|
||||
if (inside) {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
} else {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
|
||||
}
|
||||
repaint();
|
||||
}
|
||||
|
||||
|
||||
@@ -125,6 +158,8 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
public void updateMode() {
|
||||
Mode mode = editor.getMode();
|
||||
|
||||
urlColor = mode.getColor("status.url.fgcolor");
|
||||
|
||||
fgColor = new Color[] {
|
||||
mode.getColor("status.notice.fgcolor"),
|
||||
mode.getColor("status.error.fgcolor"),
|
||||
@@ -240,7 +275,7 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
if (offscreen == null) {
|
||||
sizeW = size.width;
|
||||
sizeH = size.height;
|
||||
// setButtonBounds();
|
||||
|
||||
if (Toolkit.highResDisplay()) {
|
||||
offscreen = createImage(sizeW*2, sizeH*2);
|
||||
} else {
|
||||
@@ -257,15 +292,18 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel {
|
||||
ascent = metrics.getAscent();
|
||||
}
|
||||
|
||||
//g.setColor(bgColor[mode]);
|
||||
//g.fillRect(0, 0, sizeW, sizeH);
|
||||
g.drawImage(bgImage[mode], 0, 0, sizeW, sizeH, this);
|
||||
|
||||
g.setColor(fgColor[mode]);
|
||||
// https://github.com/processing/processing/issues/3265
|
||||
if (message != null) {
|
||||
g.setFont(font); // needs to be set each time on osx
|
||||
inside = (mouseX > LEFT_MARGIN && mouseX < rightEdge);
|
||||
if (inside) {
|
||||
g.setColor(urlColor);
|
||||
}
|
||||
g.drawString(message, LEFT_MARGIN, (sizeH + ascent) / 2);
|
||||
rightEdge = LEFT_MARGIN + g.getFontMetrics().stringWidth(message);
|
||||
}
|
||||
|
||||
if (indeterminate) {
|
||||
|
||||
@@ -6,6 +6,7 @@ status.error.fgcolor = #ffffff
|
||||
status.error.bgcolor = #9E0A0A
|
||||
status.warning.bgcolor = #EF8115
|
||||
status.warning.fgcolor = #FFFFFF
|
||||
status.url.fgcolor = #cccccc
|
||||
status.font = processing.sans,plain,13
|
||||
|
||||
# HEADER TABS
|
||||
|
||||
@@ -3,6 +3,7 @@ X Find in reference for size() opens StringList.size()
|
||||
X https://github.com/processing/processing/issues/4224
|
||||
X though that's still imperfect:
|
||||
X https://github.com/processing/processing/issues/4655
|
||||
X limit rollovers on EditorStatus to the text portion
|
||||
X more font tweaks to make mono fonts work properly after #4639
|
||||
_ update the Linux notes based on where we land on this
|
||||
_ https://github.com/processing/processing/wiki/Supported-Platforms#linux
|
||||
|
||||
Reference in New Issue
Block a user