/*
* Copyright (c) 2010-2016, Sikuli.org, sikulix.com
* Released under the MIT License.
*
*/
/**
*
*/
package org.sikuli.guide;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import org.sikuli.script.Region;
public class SxClickable extends Visual {
Color normalColor = new Color(1.0f, 1.0f, 0, 0.1f);
Color mouseOverColor = new Color(1.0f, 0, 0, 0.1f);
String name;
Region region;
boolean borderVisible = true;
boolean mouseOverVisible = false;
boolean mouseOver;
public SxClickable(Region region) {
this.region = region;
if (region != null) {
this.setActualBounds(region.getRect());
this.setActualLocation(region.x, region.y);
}
}
Point clickPoint = null;
public SxClickable() {
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
public void setBorderVisible(boolean borderVisible) {
this.borderVisible = borderVisible;
}
public void setMouseOverVisible(boolean visible) {
mouseOverVisible = visible;
}
public void setMouseOver(boolean mouseOver) {
if (this.mouseOver != mouseOver) {
if (this.mouseOver) {
globalMouseExited();
} else {
globalMouseEntered();
}
Rectangle r = getBounds();
this.getTopLevelAncestor().repaint(r.x, r.y, r.width, r.height);
}
this.mouseOver = mouseOver;
}
public boolean isMouseOver() {
return mouseOver;
}
public void globalMouseMoved(Point p) {
}
public void globalMouseEntered() {
mouseOver = true;
}
public void globalMouseExited() {
mouseOver = false;
}
public void globalMouseClicked(Point p) {
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(new Color(1, 1, 1, 0.05f));
g2d.fillRect(0, 0, getActualWidth() - 1, getActualHeight() - 1);
if (mouseOverVisible) {
if (mouseOver) {
g2d.setColor(mouseOverColor);
} else {
g2d.setColor(normalColor);
}
g2d.fillRect(0, 0, getActualWidth() - 1, getActualHeight() - 1);
}
}
}