1
package org.sikuli.script;
4
import java.awt.image.*;
6
public class UnionScreen extends Screen {
7
static Rectangle _bounds;
13
public int getIdFromPoint(int x, int y){
14
Debug.log(5, "union bound: " + getBounds() );
15
Debug.log(5, "x, y: " + x + "," + y);
18
Debug.log(5, "new x, y: " + x + "," + y);
19
for(int i=0;i<getNumberScreens();i++)
20
if(Screen.getBounds(i).contains(x, y)){
26
public Rectangle getBounds(){
28
_bounds = new Rectangle();
29
for (int i=0; i < Screen.getNumberScreens(); i++) {
30
_bounds = _bounds.union(Screen.getBounds(i));
37
public ScreenImage capture(Rectangle rect) {
38
Debug.log(5, "capture: " + rect);
40
BufferedImage ret = new BufferedImage( rect.width, rect.height,
41
BufferedImage.TYPE_INT_RGB );
42
Graphics2D g2d = ret.createGraphics();
43
for (int i=0; i < Screen.getNumberScreens(); i++) {
44
Rectangle scrBound = Screen.getBounds(i);
45
if(scrBound.intersects(rect)){
46
Rectangle inter = scrBound.intersection(rect);
47
Debug.log(5, "scrBound: " + scrBound + ", inter: " +inter);
48
int ix = inter.x, iy = inter.y;
51
BufferedImage img = _robots[i].createScreenCapture(inter);
52
g2d.drawImage(img, ix-rect.x, iy-rect.y, null);
56
return new ScreenImage(rect, ret);
59
boolean useFullscreen(){
60
if( Env.getOS() == OS.MAC )
62
if(getNumberScreens()==1)