This is an automated email from the git hooks/post-receive script. pini pushed a commit to tag upstream/1.1.0_beta1 in repository sikuli.
commit 6a01e5efaac8b12092cf422c8a29c32be1249f73 Author: Raimund Hocke <[email protected]> Date: Thu Apr 10 10:25:42 2014 +0200 added more options to the highlight frame color option and added java doc --- API/src/main/java/org/sikuli/script/Region.java | 18 +++++--- .../java/org/sikuli/script/ScreenHighlighter.java | 53 +++++++++++++++++----- 2 files changed, 53 insertions(+), 18 deletions(-) diff --git a/API/src/main/java/org/sikuli/script/Region.java b/API/src/main/java/org/sikuli/script/Region.java index c236cc4..968b3a6 100644 --- a/API/src/main/java/org/sikuli/script/Region.java +++ b/API/src/main/java/org/sikuli/script/Region.java @@ -1731,9 +1731,15 @@ public class Region { } /** - * Toggle the regions Highlight visibility (frame of specified color) - * - * @param color Color of frame + * Toggle the regions Highlight visibility (frame of specified color)<br /> + * allowed color specifications for frame color: <br /> + * - a color name out of: black, blue, cyan, gray, green, magenta, orange, pink, red, white, yellow + * (lowercase and uppercase can be mixed, internally transformed to all uppercase) <br /> + * - these colornames exactly written: lightGray, LIGHT_GRAY, darkGray and DARK_GRAY <br /> + * - a hex value like in HTML: #XXXXXX (max 6 hex digits) + * - an RGB specification as: #rrrgggbbb where rrr, ggg, bbb are integer values in range 0 - 255 + * padded with leading zeros if needed (hence exactly 9 digits) + * @param color Color of frame * @return the region itself */ public Region highlight(String color) { @@ -1746,7 +1752,7 @@ public class Region { * Sets the regions Highlighting border * * @param toEnable set overlay enabled or disabled - * @param color Color of frame + * @param color Color of frame (see method highlight(color)) */ private Region highlight(boolean toEnable, String color) { if (isOtherScreen()) { @@ -1783,7 +1789,7 @@ public class Region { * if 0 - use the global Settings.SlowMotionDelay * * @param secs time in seconds - * @param color Color of frame + * @param color Color of frame (see method highlight(color)) * @return the region itself */ public Region highlight(float secs, String color) { @@ -1816,7 +1822,7 @@ public class Region { * Show highlight in selected color * * @param secs time in seconds - * @param color Color of frame + * @param color Color of frame (see method highlight(color)) * @return this region */ public Region highlight(int secs, String color) { diff --git a/API/src/main/java/org/sikuli/script/ScreenHighlighter.java b/API/src/main/java/org/sikuli/script/ScreenHighlighter.java index 5691e34..1849acf 100644 --- a/API/src/main/java/org/sikuli/script/ScreenHighlighter.java +++ b/API/src/main/java/org/sikuli/script/ScreenHighlighter.java @@ -16,13 +16,12 @@ import java.util.Set; import java.lang.reflect.Field; /** - * INTERNAL USE - * produces and manages the red framed rectangles from Region.highlight() + * INTERNAL USE produces and manages the red framed rectangles from Region.highlight() */ public class ScreenHighlighter extends OverlayTransparentWindow implements MouseListener { static Color _transparentColor = new Color(0F, 0F, 0F, 0.5F); - Color _targetColor; + Color _targetColor = Color.RED; final static int TARGET_SIZE = 50; final static int DRAGGING_TIME = 200; static int MARGIN = 20; @@ -48,15 +47,45 @@ public class ScreenHighlighter extends OverlayTransparentWindow implements Mouse setVisible(false); setAlwaysOnTop(true); - // Attempt to set the color of the frame to what the user provided. - // If it fails, set to red. Valid colors are the ones defined in the Color class: - // http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#field_summary - try { - Field field = Class.forName("java.awt.Color").getField(color); - _targetColor = (Color)field.get(null); - } catch (Exception e) { - // Set to standard red color - _targetColor = new Color(1F, 0F, 0F, 0.7F); + if (color != null) { + // a frame color is specified + // if not decodable, then predefined Color.RED is used + if (color.startsWith("#")) { + if (color.length() > 7) { + // might be the version #nnnnnnnnn + if (color.length() == 10) { + int cR = 255, cG = 0, cB = 0; + try { + cR = Integer.decode(color.substring(1, 4)); + cG = Integer.decode(color.substring(4, 7)); + cB = Integer.decode(color.substring(7, 10)); + } catch (NumberFormatException ex) { + } + try { + _targetColor = new Color(cR, cG, cB); + } catch (IllegalArgumentException ex) { + } + } + } else { + // supposing it is a hex value + try { + _targetColor = new Color(Integer.decode(color)); + } catch (NumberFormatException nex) { + } + } + } else { + // supposing color contains one of the defined color names + if (!color.endsWith("Gray") || "Gray".equals(color)) { + // the name might be given with any mix of lower/upper-case + // only lightGray, LIGHT_GRAY, darkGray and DARK_GRAY must be given exactly + color = color.toUpperCase(); + } + try { + Field field = Class.forName("java.awt.Color").getField(color); + _targetColor = (Color) field.get(null); + } catch (Exception e) { + } + } } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sikuli.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

