Warning: session_start(): open(/var/lib/php/sessions/sess_humsrdc560iptnt3jtgm44ev37, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// instantiate only once per component!
sclass InstantNeverHideToolTip > MouseAdapter {
JComponent component;
JToolTip toolTip;
Popup popup;
int x, y; // popup position
S text;
IF0 calculateText;
IF1 calculateTextFromCoordinates;
Pt mousePt = pt(0, 0); // last mouse position in component
*(IF0 *calculateText, JComponent component) { this(component); }
*(IF1 *calculateTextFromCoordinates, JComponent component) { this(component); }
*(S *text, JComponent component) { this(component); }
*(JComponent *component) {
swing {
component.addMouseListener(InstantNeverHideToolTip.this);
component.addMouseMotionListener(InstantNeverHideToolTip.this);
toolTip = component.createToolTip();
// Hide also when component is removed from hierarchy
bindToComponent(component, null, l0 hideToolTip);
}
}
@Override public void mouseEntered(MouseEvent e) {
mousePt = ptFromEvent(e);
x = e.getXOnScreen()+2;
y = e.getYOnScreen()+2;
showToolTip();
}
@Override public void mouseDragged(MouseEvent e) {
mouseMoved(e);
}
@Override public void mouseMoved(MouseEvent e) {
mousePt = ptFromEvent(e);
if (calculateTextFromCoordinates != null) {
if (toolTipShowing())
text = null; // force moving tooltip around with mouse cursor
updateText();
}
}
void updateText() swing {
if (calculateText != null)
setText(calculateText!);
else if (calculateTextFromCoordinates != null)
setText(calculateTextFromCoordinates.get(mousePt));
}
public void showToolTip() {
updateText();
showToolTip_noUpdateText();
}
public void showToolTip_noUpdateText() {
if (empty(text)) ret;
toolTip.setTipText(text);
popup = PopupFactory.getSharedInstance().getPopup(component, toolTip, x, y);
popup.show();
}
public void mouseExited(MouseEvent e) {
hideToolTip();
}
bool toolTipShowing() { ret popup != null; }
void hideToolTip() {
if (popup != null) {
popup.hide();
popup = null;
}
}
S getText() { ret text; }
void setText(S text) swing {
if (eq(text, getText())) ret;
InstantNeverHideToolTip.this.text = text;
if (toolTipShowing()) {
hideToolTip();
showToolTip_noUpdateText();
}
}
}