1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package org.openzen.drawablegui;
-
- import live.LiveString;
-
- import org.openzen.drawablegui.style.DStyleClass;
-
- /**
- *
- * @author Hoofdgebruiker
- */
- public class DSimpleTooltip {
- private final DStyleClass styleClass;
- private final LiveString tooltip;
-
- private DUIContext context;
- private DSimpleTooltipStyle style;
- private DTimerHandle timerHandle = null;
-
- private int enterMouseX;
- private int enterMouseY;
- private DUIWindow window;
-
- public DSimpleTooltip(DStyleClass styleClass, LiveString tooltip) {
- this.styleClass = styleClass;
- this.tooltip = tooltip;
- }
-
- public void setContext(DUIContext context) {
- this.context = context;
- }
-
- public void onTargetMouseEnter(DMouseEvent e) {
- if (timerHandle != null)
- timerHandle.close();
-
- timerHandle = context.setTimer(1000, this::show);
- enterMouseX = e.x;
- enterMouseY = e.y;
- }
-
- public void onTargetMouseMove(DMouseEvent e) {
- enterMouseX = e.x;
- enterMouseY = e.y;
- }
-
- public void onTargetMouseExit(DMouseEvent e) {
- if (timerHandle != null) {
- timerHandle.close();
- timerHandle = null;
- }
-
- hide();
- }
-
- private void show() {
- DSimpleTooltipComponent view = new DSimpleTooltipComponent(styleClass, tooltip);
- window = context.openView(enterMouseX, enterMouseY + context.dp(8), DAnchor.TOP_LEFT, view);
-
- if (timerHandle != null) {
- timerHandle.close();
- timerHandle = null;
- }
- }
-
- private void hide() {
- if (window != null) {
- window.close();
- window = null;
- }
- }
-
- public void close() {
- if (window != null) {
- window.close();
- window = null;
- }
- }
- }
|