package imagerollover;

import javafx.scene.*;
import javafx.scene.input.*;
import javafx.scene.image.*;

public class CloseButton extends CustomNode {
    var image:Image;
    var images:Image[];
    public var onClicked:function():Void;
    
    init {
        images = [
            Image { url: "{__DIR__}resources/close_normal.png" },
            Image { url: "{__DIR__}resources/close_hover.png" },
            Image { url: "{__DIR__}resources/close_pressed.png" },
        ];
        image = images[0];
    }
    
    override public function create():Node {
        return ImageView {
            image: bind image
            onMouseEntered:  function(e:MouseEvent) { image = images[1] }
            onMouseExited:   function(e:MouseEvent) { image = images[0] }
            onMousePressed:  function(e:MouseEvent) { image = images[2] }
            onMouseReleased: function(e:MouseEvent) { 
                image = images[0];
                if(onClicked != null) {
                    onClicked();
                }
            }
        }
    }
    
}