[sikuli] 26/385: first upload of the docs module
Gilles Filippini
pini at moszumanska.debian.org
Sun Jun 29 19:25:44 UTC 2014
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 ee2f1e5bac1130471bd7a7d44746099e07c534ac
Author: Raimund Hocke <rmhdevelop at me.com>
Date: Thu Dec 26 10:42:46 2013 +0100
first upload of the docs module
---
Docs/Java/JavaDocsClasses | 20 +
Docs/Java/docs/allclasses-frame.html | 38 +
Docs/Java/docs/allclasses-noframe.html | 38 +
Docs/Java/docs/constant-values.html | 563 +++
Docs/Java/docs/deprecated-list.html | 182 +
Docs/Java/docs/help-doc.html | 208 +
Docs/Java/docs/index-all.html | 2313 ++++++++++
Docs/Java/docs/index.html | 64 +
Docs/Java/docs/org/sikuli/script/App.html | 440 ++
.../docs/org/sikuli/script/FindFailedResponse.html | 341 ++
Docs/Java/docs/org/sikuli/script/Finder.html | 524 +++
Docs/Java/docs/org/sikuli/script/Image.html | 832 ++++
Docs/Java/docs/org/sikuli/script/ImageFind.html | 558 +++
Docs/Java/docs/org/sikuli/script/ImageFinder.html | 719 ++++
Docs/Java/docs/org/sikuli/script/ImageGroup.html | 291 ++
Docs/Java/docs/org/sikuli/script/ImageLocator.html | 529 +++
.../org/sikuli/script/ImagePath.PathEntry.html | 279 ++
Docs/Java/docs/org/sikuli/script/ImagePath.html | 496 +++
Docs/Java/docs/org/sikuli/script/Location.html | 914 ++++
Docs/Java/docs/org/sikuli/script/Match.html | 507 +++
Docs/Java/docs/org/sikuli/script/Mouse.html | 611 +++
.../docs/org/sikuli/script/Observer.Event.html | 298 ++
Docs/Java/docs/org/sikuli/script/Observer.html | 548 +++
.../docs/org/sikuli/script/ObserverCallBack.html | 330 ++
Docs/Java/docs/org/sikuli/script/Pattern.html | 672 +++
Docs/Java/docs/org/sikuli/script/Region.html | 4497 ++++++++++++++++++++
Docs/Java/docs/org/sikuli/script/Screen.html | 783 ++++
.../docs/org/sikuli/script/SikuliEvent.Type.html | 345 ++
Docs/Java/docs/org/sikuli/script/SikuliEvent.html | 474 +++
.../Java/docs/org/sikuli/script/package-frame.html | 42 +
.../docs/org/sikuli/script/package-summary.html | 272 ++
Docs/Java/docs/org/sikuli/script/package-tree.html | 160 +
Docs/Java/docs/overview-tree.html | 164 +
Docs/Java/docs/package-list | 1 +
Docs/Java/docs/resources/background.gif | Bin 0 -> 2313 bytes
Docs/Java/docs/resources/tab.gif | Bin 0 -> 291 bytes
Docs/Java/docs/resources/titlebar.gif | Bin 0 -> 10701 bytes
Docs/Java/docs/resources/titlebar_end.gif | Bin 0 -> 849 bytes
Docs/Java/docs/stylesheet.css | 474 +++
Docs/Java/makeJDocs | 8 +
Docs/Python/Makefile | 130 +
Docs/Python/build/html/.buildinfo | 4 +
Docs/Python/build/html/_images/IDE-commandlist.png | Bin 0 -> 15845 bytes
Docs/Python/build/html/_images/Safari_spatial.png | Bin 0 -> 118035 bytes
Docs/Python/build/html/_images/SystemDesign.png | Bin 0 -> 74203 bytes
.../build/html/_images/animated-tooltips.gif | Bin 0 -> 50023 bytes
.../build/html/_images/annotation-clickable.png | Bin 0 -> 29004 bytes
Docs/Python/build/html/_images/bug-tracker.png | Bin 0 -> 15554 bytes
.../build/html/_images/bus_capture_bus_symbol.png | Bin 0 -> 16951 bytes
Docs/Python/build/html/_images/bus_fullscreen.png | Bin 0 -> 86374 bytes
.../build/html/_images/bus_region_thumbnail.png | Bin 0 -> 25817 bytes
.../build/html/_images/bus_toolbar_region.png | Bin 0 -> 9703 bytes
.../build/html/_images/extension-installed.png | Bin 0 -> 21898 bytes
Docs/Python/build/html/_images/extension-new.png | Bin 0 -> 22182 bytes
.../Python/build/html/_images/facebook_capture.png | Bin 0 -> 30379 bytes
.../build/html/_images/facebook_popupmsg.png | Bin 0 -> 16129 bytes
.../build/html/_images/find_title_and_below.png | Bin 0 -> 259281 bytes
.../build/html/_images/findfailed-prompt.png | Bin 0 -> 27890 bytes
Docs/Python/build/html/_images/input.png | Bin 0 -> 21583 bytes
.../Python/build/html/_images/interface_offset.png | Bin 0 -> 85460 bytes
Docs/Python/build/html/_images/multi.jpg | Bin 0 -> 25181 bytes
.../build/html/_images/multiple-annotations.png | Bin 0 -> 37825 bytes
Docs/Python/build/html/_images/popup.png | Bin 0 -> 27835 bytes
Docs/Python/build/html/_images/scenario.png | Bin 0 -> 246999 bytes
.../build/html/_images/sikuli-logo-highlight.png | Bin 0 -> 35468 bytes
Docs/Python/build/html/_images/skype_capture.png | Bin 0 -> 21632 bytes
Docs/Python/build/html/_images/sound.png | Bin 0 -> 89660 bytes
Docs/Python/build/html/_images/spatial.jpg | Bin 0 -> 17889 bytes
Docs/Python/build/html/_images/speech.png | Bin 0 -> 36067 bytes
.../build/html/_images/spotlight-capture.png | Bin 0 -> 9597 bytes
Docs/Python/build/html/_images/spotlight-click.png | Bin 0 -> 10073 bytes
Docs/Python/build/html/_images/spotlight-goal.png | Bin 0 -> 20610 bytes
.../build/html/_images/spotlight-inserted.png | Bin 0 -> 9600 bytes
Docs/Python/build/html/_images/spotlight-type.png | Bin 0 -> 13108 bytes
Docs/Python/build/html/_images/start-capture.png | Bin 0 -> 23794 bytes
Docs/Python/build/html/_images/start-click.png | Bin 0 -> 12702 bytes
Docs/Python/build/html/_images/start-goal.png | Bin 0 -> 22348 bytes
Docs/Python/build/html/_images/start-inserted.png | Bin 0 -> 11683 bytes
Docs/Python/build/html/_images/start-type.png | Bin 0 -> 15549 bytes
Docs/Python/build/html/_images/step1.png | Bin 0 -> 39872 bytes
Docs/Python/build/html/_images/step2.png | Bin 0 -> 35029 bytes
.../build/html/_images/test-sikuli-project.png | Bin 0 -> 18011 bytes
Docs/Python/build/html/_images/toolbar_camera.png | Bin 0 -> 6693 bytes
Docs/Python/build/html/_images/trash_capture1.png | Bin 0 -> 33478 bytes
Docs/Python/build/html/_images/trash_capture2.png | Bin 0 -> 10893 bytes
Docs/Python/build/html/_images/trash_capture3.png | Bin 0 -> 14333 bytes
Docs/Python/build/html/_images/trash_code.png | Bin 0 -> 25039 bytes
Docs/Python/build/html/_images/trash_editor.png | Bin 0 -> 20658 bytes
.../build/html/_images/uncheck_capturing.png | Bin 0 -> 11696 bytes
Docs/Python/build/html/_images/uncheck_code.png | Bin 0 -> 12481 bytes
Docs/Python/build/html/_images/uncheck_findall.png | Bin 0 -> 10715 bytes
Docs/Python/build/html/_images/uncheck_sharing.png | Bin 0 -> 57314 bytes
Docs/Python/build/html/_sources/best-practice.txt | 7 +
Docs/Python/build/html/_sources/changes.txt | 5 +
Docs/Python/build/html/_sources/contributing.txt | 141 +
.../build/html/_sources/devs/system-design.txt | 19 +
.../html/_sources/extensions/extensions_info.txt | 133 +
.../build/html/_sources/extensions/index.txt | 9 +
.../_sources/extensions/sikuli-copier/index.txt | 5 +
.../_sources/extensions/sikuli-guide/index.txt | 236 +
.../_sources/extensions/sikuli-hotkey/index.txt | 5 +
.../build/html/_sources/faq/000-can-i-do-xxx.txt | 36 +
.../build/html/_sources/faq/010-command-line.txt | 50 +
.../build/html/_sources/faq/020-unit-test.txt | 53 +
.../build/html/_sources/faq/030-java-dev.txt | 55 +
.../build/html/_sources/faq/040-other-ide.txt | 199 +
.../build/html/_sources/faq/050-tuning-sikuli.txt | 14 +
Docs/Python/build/html/_sources/finder.txt | 105 +
Docs/Python/build/html/_sources/globals.txt | 1016 +++++
Docs/Python/build/html/_sources/index.txt | 109 +
Docs/Python/build/html/_sources/keys.txt | 120 +
Docs/Python/build/html/_sources/location.txt | 61 +
Docs/Python/build/html/_sources/match.txt | 96 +
Docs/Python/build/html/_sources/new-in-sikulix.txt | 97 +
Docs/Python/build/html/_sources/pattern.txt | 78 +
Docs/Python/build/html/_sources/region.txt | 1417 ++++++
Docs/Python/build/html/_sources/screen.txt | 268 ++
.../build/html/_sources/sikuli-script-index.txt | 14 +
Docs/Python/build/html/_sources/toc.txt | 40 +
.../html/_sources/tutorials/checkone/checkone.txt | 72 +
.../tutorials/goodbyetrash/goodbyetrash.txt | 33 +
.../tutorials/helloworld/helloworld-mac.txt | 75 +
.../tutorials/helloworld/helloworld-win.txt | 75 +
.../Python/build/html/_sources/tutorials/index.txt | 16 +
.../html/_sources/tutorials/resize/resize.txt | 88 +
.../html/_sources/tutorials/sliders/sliders.txt | 65 +
.../tutorials/surveillance/surveillance.txt | 175 +
.../_sources/tutorials/uncheckall/uncheckall.txt | 31 +
Docs/Python/build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes
Docs/Python/build/html/_static/basic.css | 540 +++
Docs/Python/build/html/_static/comment-bright.png | Bin 0 -> 3500 bytes
Docs/Python/build/html/_static/comment-close.png | Bin 0 -> 3578 bytes
Docs/Python/build/html/_static/comment.png | Bin 0 -> 3445 bytes
Docs/Python/build/html/_static/contents.png | Bin 0 -> 202 bytes
Docs/Python/build/html/_static/doctools.js | 235 +
Docs/Python/build/html/_static/down-pressed.png | Bin 0 -> 368 bytes
Docs/Python/build/html/_static/down.png | Bin 0 -> 363 bytes
Docs/Python/build/html/_static/file.png | Bin 0 -> 392 bytes
Docs/Python/build/html/_static/ide-icon-64.png | Bin 0 -> 16730 bytes
Docs/Python/build/html/_static/jquery.js | 2 +
Docs/Python/build/html/_static/minus.png | Bin 0 -> 199 bytes
Docs/Python/build/html/_static/navigation.png | Bin 0 -> 218 bytes
Docs/Python/build/html/_static/plus.png | Bin 0 -> 199 bytes
Docs/Python/build/html/_static/pygments.css | 62 +
Docs/Python/build/html/_static/searchtools.js | 622 +++
Docs/Python/build/html/_static/sikulidoc.css | 123 +
Docs/Python/build/html/_static/sphinxdoc.css | 339 ++
Docs/Python/build/html/_static/underscore.js | 31 +
Docs/Python/build/html/_static/up-pressed.png | Bin 0 -> 372 bytes
Docs/Python/build/html/_static/up.png | Bin 0 -> 363 bytes
Docs/Python/build/html/_static/websupport.js | 808 ++++
Docs/Python/build/html/apple.png | Bin 0 -> 7214 bytes
Docs/Python/build/html/best-practice.html | 110 +
Docs/Python/build/html/changes.html | 127 +
Docs/Python/build/html/contributing.html | 264 ++
Docs/Python/build/html/devs/system-design.html | 148 +
.../build/html/extensions/extensions_info.html | 237 ++
Docs/Python/build/html/extensions/index.html | 144 +
.../build/html/extensions/sikuli-copier/index.html | 130 +
.../build/html/extensions/sikuli-guide/index.html | 405 ++
.../build/html/extensions/sikuli-guide/index.png | Bin 0 -> 6999 bytes
.../build/html/extensions/sikuli-guide/links.png | Bin 0 -> 8993 bytes
.../build/html/extensions/sikuli-guide/next.png | Bin 0 -> 6796 bytes
.../html/extensions/sikuli-guide/previous.png | Bin 0 -> 7394 bytes
.../html/extensions/sikuli-guide/sikuli-logo.png | Bin 0 -> 11305 bytes
.../build/html/extensions/sikuli-hotkey/index.html | 130 +
Docs/Python/build/html/faq/000-can-i-do-xxx.html | 160 +
Docs/Python/build/html/faq/010-command-line.html | 187 +
Docs/Python/build/html/faq/020-unit-test.html | 163 +
Docs/Python/build/html/faq/030-java-dev.html | 184 +
Docs/Python/build/html/faq/040-other-ide.html | 268 ++
Docs/Python/build/html/faq/050-tuning-sikuli.html | 134 +
Docs/Python/build/html/finder.html | 265 ++
Docs/Python/build/html/genindex.html | 1072 +++++
Docs/Python/build/html/globals.html | 1286 ++++++
Docs/Python/build/html/index.html | 309 ++
Docs/Python/build/html/keys.html | 281 ++
Docs/Python/build/html/location.html | 211 +
Docs/Python/build/html/match.html | 230 +
Docs/Python/build/html/new-in-sikulix.html | 226 +
Docs/Python/build/html/objects.inv | Bin 0 -> 2005 bytes
Docs/Python/build/html/pattern.html | 260 ++
Docs/Python/build/html/png_icon.png | Bin 0 -> 8794 bytes
Docs/Python/build/html/py-modindex.html | 122 +
Docs/Python/build/html/region.html | 1976 +++++++++
Docs/Python/build/html/screen.html | 416 ++
Docs/Python/build/html/search.html | 115 +
Docs/Python/build/html/searchindex.js | 1 +
Docs/Python/build/html/sikuli-script-index.html | 173 +
Docs/Python/build/html/star.png | Bin 0 -> 3484 bytes
Docs/Python/build/html/stars.png | Bin 0 -> 14542 bytes
Docs/Python/build/html/toc.html | 235 +
.../build/html/tutorials/checkone/checkbox.png | Bin 0 -> 6463 bytes
.../build/html/tutorials/checkone/checkone.html | 178 +
.../Python/build/html/tutorials/checkone/label.png | Bin 0 -> 9448 bytes
.../build/html/tutorials/checkone/label_offset.png | Bin 0 -> 11682 bytes
.../Python/build/html/tutorials/checkone/title.png | Bin 0 -> 12156 bytes
.../html/tutorials/goodbyetrash/goodbyetrash.html | 152 +
.../html/tutorials/helloworld/helloworld-mac.html | 180 +
.../html/tutorials/helloworld/helloworld-win.html | 180 +
Docs/Python/build/html/tutorials/index.html | 146 +
.../build/html/tutorials/resize/SafariBR.png | Bin 0 -> 3959 bytes
.../build/html/tutorials/resize/SafariTL.png | Bin 0 -> 1782 bytes
.../build/html/tutorials/resize/SafariTR.png | Bin 0 -> 3601 bytes
.../Python/build/html/tutorials/resize/resize.html | 203 +
Docs/Python/build/html/tutorials/sliders/alert.png | Bin 0 -> 4165 bytes
.../build/html/tutorials/sliders/sliders.html | 177 +
Docs/Python/build/html/tutorials/sliders/slow.png | Bin 0 -> 3465 bytes
Docs/Python/build/html/tutorials/sliders/thumb.png | Bin 0 -> 3480 bytes
.../build/html/tutorials/surveillance/bus.png | Bin 0 -> 8090 bytes
.../build/html/tutorials/surveillance/obama.png | Bin 0 -> 11244 bytes
.../build/html/tutorials/surveillance/region.png | Bin 0 -> 22313 bytes
.../html/tutorials/surveillance/surveillance.html | 275 ++
.../build/html/tutorials/surveillance/vgod.png | Bin 0 -> 7582 bytes
.../html/tutorials/uncheckall/uncheckall.html | 147 +
Docs/Python/build/html/vistastart.png | Bin 0 -> 5772 bytes
Docs/Python/build/html/w7start.png | Bin 0 -> 9582 bytes
Docs/Python/build/html/xpstart.png | Bin 0 -> 7199 bytes
Docs/Python/make.bat | 170 +
Docs/Python/source/_templates/layout.html | 5 +
Docs/Python/source/apple.png | Bin 0 -> 7214 bytes
Docs/Python/source/best-practice.rst | 7 +
Docs/Python/source/bug-tracker.png | Bin 0 -> 15554 bytes
Docs/Python/source/changes.rst | 5 +
Docs/Python/source/conf.py | 218 +
Docs/Python/source/contributing.rst | 141 +
Docs/Python/source/devs/SystemDesign.png | Bin 0 -> 74203 bytes
Docs/Python/source/devs/system-design.rst | 19 +
.../source/extensions/extension-installed.png | Bin 0 -> 21898 bytes
Docs/Python/source/extensions/extension-new.png | Bin 0 -> 22182 bytes
Docs/Python/source/extensions/extensions_info.rst | 133 +
Docs/Python/source/extensions/index.rst | 9 +
.../extensions/sikuli-guide/animated-tooltips.gif | Bin 0 -> 50023 bytes
.../sikuli-guide/annotation-clickable.png | Bin 0 -> 29004 bytes
.../source/extensions/sikuli-guide/index.png | Bin 0 -> 6999 bytes
.../source/extensions/sikuli-guide/index.rst | 236 +
.../source/extensions/sikuli-guide/links.png | Bin 0 -> 8993 bytes
.../sikuli-guide/multiple-annotations.png | Bin 0 -> 37825 bytes
.../Python/source/extensions/sikuli-guide/next.png | Bin 0 -> 6796 bytes
.../source/extensions/sikuli-guide/previous.png | Bin 0 -> 7394 bytes
.../sikuli-guide/sikuli-logo-highlight.png | Bin 0 -> 35468 bytes
.../source/extensions/sikuli-guide/sikuli-logo.png | Bin 0 -> 11305 bytes
.../source/extensions/sikuli-guide/step1.png | Bin 0 -> 39872 bytes
.../source/extensions/sikuli-guide/step2.png | Bin 0 -> 35029 bytes
Docs/Python/source/faq/000-can-i-do-xxx.rst | 36 +
Docs/Python/source/faq/010-command-line.rst | 50 +
Docs/Python/source/faq/030-java-dev.rst | 55 +
Docs/Python/source/faq/040-other-ide.rst | 199 +
Docs/Python/source/faq/test-sikuli-project.png | Bin 0 -> 18011 bytes
Docs/Python/source/finder.rst | 105 +
Docs/Python/source/findfailed-prompt.png | Bin 0 -> 27890 bytes
Docs/Python/source/globals.rst | 1016 +++++
Docs/Python/source/ide-icon-64.png | Bin 0 -> 16730 bytes
Docs/Python/source/index.rst | 109 +
Docs/Python/source/input.png | Bin 0 -> 21583 bytes
Docs/Python/source/keys.rst | 120 +
Docs/Python/source/location.rst | 61 +
Docs/Python/source/match.rst | 96 +
Docs/Python/source/multi.jpg | Bin 0 -> 25181 bytes
Docs/Python/source/new-in-sikulix.rst | 12 +
Docs/Python/source/pattern.rst | 78 +
Docs/Python/source/platformdirective.py | 56 +
Docs/Python/source/platformdirective.pyc | Bin 0 -> 3207 bytes
Docs/Python/source/png_icon.png | Bin 0 -> 8794 bytes
Docs/Python/source/popup.png | Bin 0 -> 27835 bytes
Docs/Python/source/region.rst | 1417 ++++++
Docs/Python/source/screen.rst | 268 ++
Docs/Python/source/sikuli-script-index.rst | 14 +
Docs/Python/source/sikulidirectives.py | 202 +
Docs/Python/source/sikulidirectives.pyc | Bin 0 -> 5778 bytes
Docs/Python/source/sikulidoc/static/sikulidoc.css | 123 +
Docs/Python/source/sikulidoc/theme.conf | 6 +
Docs/Python/source/spatial.jpg | Bin 0 -> 17889 bytes
Docs/Python/source/star.png | Bin 0 -> 3484 bytes
Docs/Python/source/stars.png | Bin 0 -> 14542 bytes
Docs/Python/source/toc.rst | 40 +
Docs/Python/source/tutorials/checkone/checkbox.png | Bin 0 -> 6463 bytes
Docs/Python/source/tutorials/checkone/checkone.rst | 72 +
.../tutorials/checkone/find_title_and_below.png | Bin 0 -> 259281 bytes
.../source/tutorials/checkone/interface_offset.png | Bin 0 -> 85460 bytes
Docs/Python/source/tutorials/checkone/label.png | Bin 0 -> 9448 bytes
.../source/tutorials/checkone/label_offset.png | Bin 0 -> 11682 bytes
Docs/Python/source/tutorials/checkone/scenario.png | Bin 0 -> 246999 bytes
Docs/Python/source/tutorials/checkone/title.png | Bin 0 -> 12156 bytes
.../source/tutorials/goodbyetrash/goodbyetrash.rst | 33 +
.../tutorials/goodbyetrash/trash_capture1.png | Bin 0 -> 33478 bytes
.../tutorials/goodbyetrash/trash_capture2.png | Bin 0 -> 10893 bytes
.../tutorials/goodbyetrash/trash_capture3.png | Bin 0 -> 14333 bytes
.../source/tutorials/goodbyetrash/trash_code.png | Bin 0 -> 25039 bytes
.../source/tutorials/goodbyetrash/trash_editor.png | Bin 0 -> 20658 bytes
.../tutorials/helloworld/IDE-commandlist.png | Bin 0 -> 15845 bytes
.../source/tutorials/helloworld/helloworld-mac.rst | 75 +
.../source/tutorials/helloworld/helloworld-win.rst | 75 +
.../tutorials/helloworld/spotlight-capture.png | Bin 0 -> 9597 bytes
.../tutorials/helloworld/spotlight-click.png | Bin 0 -> 10073 bytes
.../source/tutorials/helloworld/spotlight-goal.png | Bin 0 -> 20610 bytes
.../tutorials/helloworld/spotlight-inserted.png | Bin 0 -> 9600 bytes
.../source/tutorials/helloworld/spotlight-type.png | Bin 0 -> 13108 bytes
.../source/tutorials/helloworld/start-capture.png | Bin 0 -> 23794 bytes
.../source/tutorials/helloworld/start-click.png | Bin 0 -> 12702 bytes
.../source/tutorials/helloworld/start-goal.png | Bin 0 -> 22348 bytes
.../source/tutorials/helloworld/start-inserted.png | Bin 0 -> 11683 bytes
.../source/tutorials/helloworld/start-type.png | Bin 0 -> 15549 bytes
.../source/tutorials/helloworld/toolbar_camera.png | Bin 0 -> 6693 bytes
Docs/Python/source/tutorials/index.rst | 16 +
Docs/Python/source/tutorials/resize/SafariBR.png | Bin 0 -> 3959 bytes
Docs/Python/source/tutorials/resize/SafariTL.png | Bin 0 -> 1782 bytes
Docs/Python/source/tutorials/resize/SafariTR.png | Bin 0 -> 3601 bytes
.../source/tutorials/resize/Safari_spatial.png | Bin 0 -> 118035 bytes
.../Python/source/tutorials/resize/WindowTitle.png | Bin 0 -> 2146 bytes
Docs/Python/source/tutorials/resize/resize.rst | 88 +
Docs/Python/source/tutorials/sliders/alert.png | Bin 0 -> 4165 bytes
Docs/Python/source/tutorials/sliders/sliders.rst | 65 +
Docs/Python/source/tutorials/sliders/slow.png | Bin 0 -> 3465 bytes
Docs/Python/source/tutorials/sliders/sound.png | Bin 0 -> 89660 bytes
Docs/Python/source/tutorials/sliders/speech.png | Bin 0 -> 36067 bytes
Docs/Python/source/tutorials/sliders/thumb.png | Bin 0 -> 3480 bytes
Docs/Python/source/tutorials/surveillance/bus.png | Bin 0 -> 8090 bytes
.../surveillance/bus_capture_bus_symbol.png | Bin 0 -> 16951 bytes
.../tutorials/surveillance/bus_fullscreen.png | Bin 0 -> 86374 bytes
.../surveillance/bus_region_thumbnail.png | Bin 0 -> 25817 bytes
.../tutorials/surveillance/bus_toolbar_region.png | Bin 0 -> 9703 bytes
.../tutorials/surveillance/facebook_capture.png | Bin 0 -> 30379 bytes
.../tutorials/surveillance/facebook_popupmsg.png | Bin 0 -> 16129 bytes
.../Python/source/tutorials/surveillance/obama.png | Bin 0 -> 11244 bytes
.../source/tutorials/surveillance/region.png | Bin 0 -> 22313 bytes
.../tutorials/surveillance/skype_capture.png | Bin 0 -> 21632 bytes
.../source/tutorials/surveillance/surveillance.rst | 175 +
Docs/Python/source/tutorials/surveillance/vgod.png | Bin 0 -> 7582 bytes
.../tutorials/uncheckall/uncheck_capturing.png | Bin 0 -> 11696 bytes
.../source/tutorials/uncheckall/uncheck_code.png | Bin 0 -> 12481 bytes
.../tutorials/uncheckall/uncheck_findall.png | Bin 0 -> 10715 bytes
.../tutorials/uncheckall/uncheck_sharing.png | Bin 0 -> 57314 bytes
.../source/tutorials/uncheckall/uncheckall.rst | 31 +
Docs/Python/source/vistastart.png | Bin 0 -> 5772 bytes
Docs/Python/source/w7start.png | Bin 0 -> 9582 bytes
Docs/Python/source/xpstart.png | Bin 0 -> 7199 bytes
Docs/Python/source/youtube.py | 42 +
Docs/Python/source/youtube.pyc | Bin 0 -> 1853 bytes
Docs/README.md | 30 +
Docs/index.html | 25 +
341 files changed, 44789 insertions(+)
diff --git a/Docs/Java/JavaDocsClasses b/Docs/Java/JavaDocsClasses
new file mode 100644
index 0000000..d663dd5
--- /dev/null
+++ b/Docs/Java/JavaDocsClasses
@@ -0,0 +1,20 @@
+Region.java
+FindFailedResponse.java
+Screen.java
+Match.java
+Location.java
+Pattern.java
+Image.java
+ImagePath.java
+ImageGroup.java
+ImageLocator.java
+App.java
+Finder.java
+ImageFinder.java
+ImageFind.java
+Mouse.java
+Button.java
+SikuliEvent.java
+SikuliEventAdapter.java
+Observer.java
+ObserverCallback.java
\ No newline at end of file
diff --git a/Docs/Java/docs/allclasses-frame.html b/Docs/Java/docs/allclasses-frame.html
new file mode 100644
index 0000000..c5b1d42
--- /dev/null
+++ b/Docs/Java/docs/allclasses-frame.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:43 CET 2013 -->
+<title>All Classes</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar">All Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/sikuli/script/App.html" title="class in org.sikuli.script" target="classFrame">App</a></li>
+<li><a href="org/sikuli/script/Finder.html" title="class in org.sikuli.script" target="classFrame">Finder</a></li>
+<li><a href="org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script" target="classFrame">FindFailedResponse</a></li>
+<li><a href="org/sikuli/script/Image.html" title="class in org.sikuli.script" target="classFrame">Image</a></li>
+<li><a href="org/sikuli/script/ImageFind.html" title="class in org.sikuli.script" target="classFrame">ImageFind</a></li>
+<li><a href="org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script" target="classFrame">ImageFinder</a></li>
+<li><a href="org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script" target="classFrame">ImageGroup</a></li>
+<li><a href="org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script" target="classFrame">ImageLocator</a></li>
+<li><a href="org/sikuli/script/ImagePath.html" title="class in org.sikuli.script" target="classFrame">ImagePath</a></li>
+<li><a href="org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script" target="classFrame">ImagePath.PathEntry</a></li>
+<li><a href="org/sikuli/script/Location.html" title="class in org.sikuli.script" target="classFrame">Location</a></li>
+<li><a href="org/sikuli/script/Match.html" title="class in org.sikuli.script" target="classFrame">Match</a></li>
+<li><a href="org/sikuli/script/Mouse.html" title="class in org.sikuli.script" target="classFrame">Mouse</a></li>
+<li><a href="org/sikuli/script/Observer.html" title="class in org.sikuli.script" target="classFrame">Observer</a></li>
+<li><a href="org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script" target="classFrame">Observer.Event</a></li>
+<li><a href="org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script" target="classFrame">ObserverCallBack</a></li>
+<li><a href="org/sikuli/script/Pattern.html" title="class in org.sikuli.script" target="classFrame">Pattern</a></li>
+<li><a href="org/sikuli/script/Region.html" title="class in org.sikuli.script" target="classFrame">Region</a></li>
+<li><a href="org/sikuli/script/Screen.html" title="class in org.sikuli.script" target="classFrame">Screen</a></li>
+<li><a href="org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script" target="classFrame">SikuliEvent</a></li>
+<li><a href="org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script" target="classFrame">SikuliEvent.Type</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/Docs/Java/docs/allclasses-noframe.html b/Docs/Java/docs/allclasses-noframe.html
new file mode 100644
index 0000000..c9506c7
--- /dev/null
+++ b/Docs/Java/docs/allclasses-noframe.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:43 CET 2013 -->
+<title>All Classes</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar">All Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></li>
+<li><a href="org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></li>
+<li><a href="org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></li>
+<li><a href="org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></li>
+<li><a href="org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></li>
+<li><a href="org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></li>
+<li><a href="org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></li>
+<li><a href="org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></li>
+<li><a href="org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></li>
+<li><a href="org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></li>
+<li><a href="org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></li>
+<li><a href="org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></li>
+<li><a href="org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></li>
+<li><a href="org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></li>
+<li><a href="org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></li>
+<li><a href="org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></li>
+<li><a href="org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></li>
+<li><a href="org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></li>
+<li><a href="org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></li>
+<li><a href="org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></li>
+<li><a href="org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/Docs/Java/docs/constant-values.html b/Docs/Java/docs/constant-values.html
new file mode 100644
index 0000000..9df9225
--- /dev/null
+++ b/Docs/Java/docs/constant-values.html
@@ -0,0 +1,563 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Constant Field Values</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Constant Field Values";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.sikuli">org.sikuli.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.sikuli">
+<!-- -->
+</a>
+<h2 title="org.sikuli">org.sikuli.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.sikuli.script.<a href="org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.AS_COLUMNS">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#AS_COLUMNS">AS_COLUMNS</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.AS_ROWS">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#AS_ROWS">AS_ROWS</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.BEST_FIRST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#BEST_FIRST">BEST_FIRST</a></code></td>
+<td class="colLast"><code>2</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.FINDING_ALL">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#FINDING_ALL">FINDING_ALL</a></code></td>
+<td class="colLast"><code>2</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.FINDING_ANY">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#FINDING_ANY">FINDING_ANY</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.ImageFind.FINDING_SOME">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/ImageFind.html#FINDING_SOME">FINDING_SOME</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.sikuli.script.<a href="org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.LEFT">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#LEFT">LEFT</a></code></td>
+<td class="colLast"><code>16</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.MIDDLE">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#MIDDLE">MIDDLE</a></code></td>
+<td class="colLast"><code>8</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.MouseMovedAction">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#MouseMovedAction">MouseMovedAction</a></code></td>
+<td class="colLast"><code>3</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.MouseMovedIgnore">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#MouseMovedIgnore">MouseMovedIgnore</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.MouseMovedPause">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#MouseMovedPause">MouseMovedPause</a></code></td>
+<td class="colLast"><code>2</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.MouseMovedShow">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#MouseMovedShow">MouseMovedShow</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.RIGHT">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#RIGHT">RIGHT</a></code></td>
+<td class="colLast"><code>4</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Mouse.WHEEL_UP">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Mouse.html#WHEEL_UP">WHEEL_UP</a></code></td>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.sikuli.script.<a href="org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.CREATE_X_DIRECTION_LEFT">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#CREATE_X_DIRECTION_LEFT">CREATE_X_DIRECTION_LEFT</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.CREATE_X_DIRECTION_RIGHT">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#CREATE_X_DIRECTION_RIGHT">CREATE_X_DIRECTION_RIGHT</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.CREATE_Y_DIRECTION_BOTTOM">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#CREATE_Y_DIRECTION_BOTTOM">CREATE_Y_DIRECTION_BOTTOM</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.CREATE_Y_DIRECTION_TOP">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#CREATE_Y_DIRECTION_TOP">CREATE_Y_DIRECTION_TOP</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.E2">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#E2">E2</a></code></td>
+<td class="colLast"><code>22</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.E3">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#E3">E3</a></code></td>
+<td class="colLast"><code>23</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.EAST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#EAST">EAST</a></code></td>
+<td class="colLast"><code>22</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.EAST_EAST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#EAST_EAST">EAST_EAST</a></code></td>
+<td class="colLast"><code>23</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.EAST_NORTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#EAST_NORTH">EAST_NORTH</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.EAST_SOUTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#EAST_SOUTH">EAST_SOUTH</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.EN">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#EN">EN</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.ES">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#ES">ES</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.M2">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#M2">M2</a></code></td>
+<td class="colLast"><code>52</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.M3">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#M3">M3</a></code></td>
+<td class="colLast"><code>53</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MH">MH</a></code></td>
+<td class="colLast"><code>51</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MID_HORIZONTAL">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MID_HORIZONTAL">MID_HORIZONTAL</a></code></td>
+<td class="colLast"><code>51</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MID_VERTICAL">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MID_VERTICAL">MID_VERTICAL</a></code></td>
+<td class="colLast"><code>50</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MIDDLE_HALF">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MIDDLE_HALF">MIDDLE_HALF</a></code></td>
+<td class="colLast"><code>52</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MIDDLE_THIRD">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MIDDLE_THIRD">MIDDLE_THIRD</a></code></td>
+<td class="colLast"><code>53</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.MV">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#MV">MV</a></code></td>
+<td class="colLast"><code>50</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.N2">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#N2">N2</a></code></td>
+<td class="colLast"><code>12</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.N3">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#N3">N3</a></code></td>
+<td class="colLast"><code>13</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NE">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NE">NE</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NORTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NORTH">NORTH</a></code></td>
+<td class="colLast"><code>12</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NORTH_EAST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NORTH_EAST">NORTH_EAST</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NORTH_NORTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NORTH_NORTH">NORTH_NORTH</a></code></td>
+<td class="colLast"><code>13</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NORTH_WEST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NORTH_WEST">NORTH_WEST</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.NW">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#NW">NW</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.S2">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#S2">S2</a></code></td>
+<td class="colLast"><code>32</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.S3">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#S3">S3</a></code></td>
+<td class="colLast"><code>33</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SE">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SE">SE</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SOUTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SOUTH">SOUTH</a></code></td>
+<td class="colLast"><code>32</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SOUTH_EAST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SOUTH_EAST">SOUTH_EAST</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SOUTH_SOUTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SOUTH_SOUTH">SOUTH_SOUTH</a></code></td>
+<td class="colLast"><code>33</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SOUTH_WEST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SOUTH_WEST">SOUTH_WEST</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.SW">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#SW">SW</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.W2">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#W2">W2</a></code></td>
+<td class="colLast"><code>42</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.W3">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#W3">W3</a></code></td>
+<td class="colLast"><code>43</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WEST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WEST">WEST</a></code></td>
+<td class="colLast"><code>42</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WEST_NORTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WEST_NORTH">WEST_NORTH</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WEST_SOUTH">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WEST_SOUTH">WEST_SOUTH</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WEST_WEST">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WEST_WEST">WEST_WEST</a></code></td>
+<td class="colLast"><code>43</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WN">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WN">WN</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.sikuli.script.Region.WS">
+<!-- -->
+</a><code>public static final int</code></td>
+<td><code><a href="org/sikuli/script/Region.html#WS">WS</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/deprecated-list.html b/Docs/Java/docs/deprecated-list.html
new file mode 100644
index 0000000..71bf552
--- /dev/null
+++ b/Docs/Java/docs/deprecated-list.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:43 CET 2013 -->
+<title>Deprecated List</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Deprecated List";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#class">Deprecated Classes</a></li>
+<li><a href="#method">Deprecated Methods</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="class">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
+<caption><span>Deprecated Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">org.sikuli.script.ImageLocator</a>
+<div class="block"><i>will completely replaced by the classes Image and ImagePath</i></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="method">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
+<caption><span>Deprecated Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#getScreenContaining()">org.sikuli.script.Region.getScreenContaining()</a>
+<div class="block"><i>Only for compatibility, to get the screen containing this region, use
+ <a href="org/sikuli/script/Region.html#getScreen()"><code>Region.getScreen()</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#inside()">org.sikuli.script.Region.inside()</a>
+<div class="block"><i>only for backward compatibility</i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#morphTo(org.sikuli.script.Region)">org.sikuli.script.Region.morphTo(Region)</a>
+<div class="block"><i>to be like AWT Rectangle API use setRect() instead</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#moveTo(org.sikuli.script.Location)">org.sikuli.script.Region.moveTo(Location)</a>
+<div class="block"><i>to be like AWT Rectangle API use setLocation()</i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#nearby()">org.sikuli.script.Region.nearby()</a>
+<div class="block"><i>to be like AWT Rectangle API use grow() instead</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/sikuli/script/Region.html#nearby(int)">org.sikuli.script.Region.nearby(int)</a>
+<div class="block"><i>to be like AWT Rectangle API use grow() instaed</i></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/help-doc.html b/Docs/Java/docs/help-doc.html
new file mode 100644
index 0000000..495e427
--- /dev/null
+++ b/Docs/Java/docs/help-doc.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:43 CET 2013 -->
+<title>API Help</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="API Help";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames. All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<em>This help file applies to API documentation generated using the standard doclet.</em></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/index-all.html b/Docs/Java/docs/index-all.html
new file mode 100644
index 0000000..62f0f4f
--- /dev/null
+++ b/Docs/Java/docs/index-all.html
@@ -0,0 +1,2313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Index</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Index";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#_A_">A</a> <a href="#_B_">B</a> <a href="#_C_">C</a> <a href="#_D_">D</a> <a href="#_E_">E</a> <a href="#_F_">F</a> <a href="#_G_">G</a> <a href="#_H_">H</a> <a href="#_I_">I</a> <a href="#_K_">K</a> <a href="#_L_">L</a> <a href="#_M_">M</a> <a href="#_N_">N</a> <a href="#_O_">O</a> <a href="#_P_">P</a> <a href="#_R_">R</a> <a href="#_S_">S</a> <a href="#_T_">T</a> [...]
+<!-- -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#above(int)">above(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset above, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#above()">above()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region above the top side with same width<br /> the new region extends to the top
+ screen border<br /> use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#above(int)">above(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region above the top side with same width and given height<br />
+ negative height creates the top part with height inside the region
+ use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#aboveAt()">aboveAt()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#aboveAt(int)">aboveAt(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">negative offset goes towards top of screen <br />might be off current screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#add(java.lang.String)">add(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">see; <a href="./org/sikuli/script/ImagePath.html#add(java.lang.String, java.lang.String)"><code>ImagePath.add(String, String)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#add(java.lang.String, java.lang.String)">add(String, String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">Set the primary image path to the top folder level of a jar based on the given class name (must
+ be found on class path).</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#add(java.net.URL)">add(URL)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">add entry to end of list</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#add(org.sikuli.script.Region, org.sikuli.script.ObserverCallBack, org.sikuli.script.SikuliEvent.Type)">add(Region, ObserverCallBack, SikuliEvent.Type)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">adds an Observer with a callback to the list</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#add(org.sikuli.script.Region, java.lang.String, org.sikuli.script.SikuliEvent.Type)">add(Region, String, SikuliEvent.Type)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">adds an observer to the list having no callback</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#add(java.lang.String)">add(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">adds an observer of type GNERIC to the list having no callback</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#add(int, int, int, int)">add(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">resize the region using the given padding values<br />might be negative</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#add(org.sikuli.script.Region)">add(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">extend the region, so it contains the given region<br />but only the part inside the current
+ screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#add(org.sikuli.script.Location)">add(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">extend the region, so it contains the given point<br />but only the part inside the current
+ screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#addEvent(java.lang.String, java.lang.Object)">addEvent(String, Object)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">add a new event to the list</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#addImagePath(java.lang.String)">addImagePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the end of the list (file path: if it exists)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#addImagePath(java.lang.String[])">addImagePath(String[])</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ end of the list (file path: if it exists)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#addImagePathFirst(java.lang.String)">addImagePathFirst(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the beginning of the list (file path: if it exists) <br />as
+ entry 1 after the current bundlepath (entry 0)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#addImagePathFirst(java.lang.String[])">addImagePathFirst(String[])</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ beginning of the list (file path: if it exists) <br />as entry 1 after
+ the current bundlepath (entry 0)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#ALL_MAX">ALL_MAX</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/App.html" title="class in org.sikuli.script"><span class="strong">App</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#App(java.lang.String)">App(String)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#appeared(org.sikuli.script.SikuliEvent)">appeared(SikuliEvent)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#AS_COLUMNS">AS_COLUMNS</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#AS_ROWS">AS_ROWS</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#atMouse()">atMouse()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+</dl>
+<a name="_B_">
+<!-- -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#below(int)">below(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset below, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#below()">below()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region below the bottom side with same width<br /> the new region extends to the
+ bottom screen border<br /> use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#below(int)">below(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region below the bottom side with same width and given height<br />
+ negative height creates the bottom part with height inside the region
+ use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#belowAt()">belowAt()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#belowAt(int)">belowAt(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">positive offset goes towards bottom of screen <br />might be off current screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#BEST_FIRST">BEST_FIRST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#block()">block()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">to block the mouse globally +br
+ only the contained mouse methods without owner will be granted</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#block(java.lang.Object)">block(Object)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">to block the mouse globally for the given owner +br
+ only the contained mouse methods having the same owner will be granted</div>
+</dd>
+</dl>
+<a name="_C_">
+<!-- -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#capture()">capture()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">create a ScreenImage with the physical bounds of this screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#capture(int, int, int, int)">capture(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">create a ScreenImage with given coordinates on this screen.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#capture(java.awt.Rectangle)">capture(Rectangle)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">create a ScreenImage with given rectangle on this screen.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#capture(org.sikuli.script.Region)">capture(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">create a ScreenImage with given region on this screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#changed(org.sikuli.script.SikuliEvent)">changed(SikuliEvent)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#changes">changes</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#clear()">clear()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">stop and remove all observers and their registered events</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#click()">click()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Move the mouse to this location point and click left</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#click(org.sikuli.script.Location, java.lang.String, java.lang.Integer...)">click(Location, String, Integer...)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">to click (left, right, middle - single or double) at the given location using the given button
+ only useable for local screens
+
+ timing parameters: +br
+ - one value +br
+ < 0 wait before mouse down +br
+ > 0 wait after mouse up +br
+ - 2 or 3 values
+ 1st wait before mouse down +br
+ 2nd wait after mouse up +br
+ 3rd inner wait (milli secs, cut to 1000): pause between mouse down and up (Settings.ClickDelay)
+
+ wait before and after: > 59 taken as milli secs - ;lt& are seconds</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#click()">click()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">left click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#click(PatternFilenameRegionMatchLocation)">click(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">left click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#click(PatternFilenameRegionMatchLocation, int)">click(PatternFilenameRegionMatchLocation, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">left click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#close(java.lang.String)">close(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#close()">close()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#close(org.sikuli.script.ImageGroup)">close(ImageGroup)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#compareTo(java.lang.Object)">compareTo(Object)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#contains(org.sikuli.script.Location)">contains(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">check if current region contains given point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#contains(org.sikuli.script.Region)">contains(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">check if current region contains given region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#containsMouse()">containsMouse()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">check if mouse pointer is inside current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#copyTo(int)">copyTo(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">new point with same offset to current screen's top left on given screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#copyTo(org.sikuli.script.Screen)">copyTo(Screen)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">New point with same offset to current screen's top left on given screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#copyTo(int)">copyTo(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#copyTo(org.sikuli.script.Screen)">copyTo(Screen)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#create(java.lang.String)">create(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from a filename <br />
+ file ending .png is added if missing <br />
+ filename: [...path.../]name[.png] is searched on current image path and loaded to cache <br />
+ already loaded image with same name is reused (reference) and taken from cache</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#create(java.net.URL)">create(URL)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from the given url <br />
+ file ending .png is added if missing <br />
+ filename: ...url-path.../name[.png] is loaded from the url and and cached <br />
+ already loaded image with same url is reused (reference) and taken from cache</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#create(int, int, int, int)">create(int, int, int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region with the provided top left corner and size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int)">create(Location, int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region with the provided top left corner and size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)">create(Location, int, int, int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#create(java.awt.Rectangle)">create(Rectangle)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region from a Rectangle</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Region)">create(Region)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region from another region<br />including the region's settings</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#CREATE_X_DIRECTION_LEFT">CREATE_X_DIRECTION_LEFT</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Flag for the <a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>Region.create(Location, int, int, int, int)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#CREATE_X_DIRECTION_RIGHT">CREATE_X_DIRECTION_RIGHT</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Flag for the <a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>Region.create(Location, int, int, int, int)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#CREATE_Y_DIRECTION_BOTTOM">CREATE_Y_DIRECTION_BOTTOM</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Flag for the <a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>Region.create(Location, int, int, int, int)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#CREATE_Y_DIRECTION_TOP">CREATE_Y_DIRECTION_TOP</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Flag for the <a href="./org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>Region.create(Location, int, int, int, int)</code></a> method.</div>
+</dd>
+</dl>
+<a name="_D_">
+<!-- -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#delayClick(int)">delayClick(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">time in milliseconds to delay between button down/up at next click only (max 1000)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#delayType(int)">delayType(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">time in milliseconds to delay between each character at next type only (max 1000)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#destroy()">destroy()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">to explicitly free the Finder's resources</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#destroy()">destroy()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#doubleClick()">doubleClick()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Move the mouse to this location point and double click left</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#doubleClick()">doubleClick()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">double click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#doubleClick(PatternFilenameRegionMatchLocation)">doubleClick(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">double click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#doubleClick(PatternFilenameRegionMatchLocation, int)">doubleClick(PatternFilenameRegionMatchLocation, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">double click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#down(int)">down(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">press and hold the given buttons</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#drag(PatternFilenameRegionMatchLocation)">drag(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Prepare a drag action: move mouse to given target <br />press and hold left mouse button <br
+ />wait Settings.DelayAfterDrag</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#dragDrop(PatternFilenameRegionMatchLocation)">dragDrop(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Drag from region's last match and drop at given target <br />applying Settings.DelayAfterDrag
+ and DelayBeforeDrop <br /> using left mouse button</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#dragDrop(PatternFilenameRegionMatchLocation, PatternFilenameRegionMatchLocation)">dragDrop(PatternFilenameRegionMatchLocation, PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Drag from a position and drop to another using left mouse button<br />applying
+ Settings.DelayAfterDrag and DelayBeforeDrop</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#dropAt(PatternFilenameRegionMatchLocation)">dropAt(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">finalize a drag action with a drop: move mouse to given target <br />wait
+ Settings.DelayBeforeDrop <br />release the left mouse button</div>
+</dd>
+</dl>
+<a name="_E_">
+<!-- -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#E2">E2</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#E3">E3</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#EAST">EAST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#EAST_EAST">EAST_EAST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#EAST_NORTH">EAST_NORTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#EAST_SOUTH">EAST_SOUTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#EN">EN</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#ES">ES</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#exact()">exact()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">sets the minimum Similarity to 0.99 which means exact match</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#exists(PSI)">exists(PSI)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Check if target exists (with the default autoWaitTimeout)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#exists(PSI, double)">exists(PSI, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Check if target exists with a specified timeout<br />
+ timout = 0: returns immediately after first search</div>
+</dd>
+</dl>
+<a name="_F_">
+<!-- -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#find(java.lang.String)">find(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#find(org.sikuli.script.Pattern)">find(Pattern)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">findX given pattern within the stored image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#find(org.sikuli.script.Image)">find(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#find(org.sikuli.script.Image)">find(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#find(java.lang.String)">find(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#find(org.sikuli.script.Pattern)">find(Pattern)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#find(java.lang.String)">find(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#find(PSI)">find(PSI)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Match find( Pattern/String ) finds the given pattern on the screen and returns the best match.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#findAll(java.lang.String)">findAll(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#findAll(org.sikuli.script.Pattern)">findAll(Pattern)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#findAll(org.sikuli.script.Image)">findAll(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#findAll(org.sikuli.script.Image)">findAll(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#findAll(java.lang.String)">findAll(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#findAll(org.sikuli.script.Pattern)">findAll(Pattern)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#findAll(PSI)">findAll(PSI)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Iterator<Match> searchAll( Pattern/String/Image ) finds the given pattern on the screen and
+ returns the best match.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#findAllText(java.lang.String)">findAllText(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#findAllText(java.lang.String)">findAllText(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Use findAllText() instead of find() in cases where the given string could be misinterpreted as
+ an image filename</div>
+</dd>
+<dt><a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Finder</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder()">Finder()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Just to force library initialization</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder(java.lang.String)">Finder(String)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Finder constructor (finding within an image).</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder(java.lang.String, org.sikuli.script.Region)">Finder(String, Region)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Finder constructor (finding within an image within the given region).</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder(java.awt.image.BufferedImage)">Finder(BufferedImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Constructor for special use from a BufferedImage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder(ScreenImage)">Finder(ScreenImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#Finder(ScreenImage, org.sikuli.script.Region)">Finder(ScreenImage, Region)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+</dd>
+<dt><a href="./org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">FindFailedResponse</span></a> - Enum in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#FINDING_ALL">FINDING_ALL</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#FINDING_ANY">FINDING_ANY</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#FINDING_SOME">FINDING_SOME</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#findText(java.lang.String)">findText(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#findText(java.lang.String)">findText(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#findText(java.lang.String, double)">findText(String, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#findText(java.lang.String)">findText(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#focus(java.lang.String)">focus(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#focus(java.lang.String, int)">focus(String, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#focus()">focus()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#focus(int)">focus(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#focusedWindow()">focusedWindow()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+</dl>
+<a name="_G_">
+<!-- -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#get()">get()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">return the image's BufferedImage (load it if not in cache)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#get()">get()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#get(int)">get(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#get(int)">get(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">select the specified part of the region <br />
+ example for upper part of region (NORTH) <br />
+ NORTH (N2) - upper half <br />
+ NORTH_NORTH (N3) - middle third in upper third <br />
+ NORTH_EAST (NE) - right third in upper third <br />
+ NORTH_WEST (NW) - left third in upper third <br />
+ ...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getAutoWaitTimeout()">getAutoWaitTimeout()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">current setting for this region (see setAutoWaitTimeout)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getBImage()">getBImage()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getBottomLeft()">getBottomLeft()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getBottomRight()">getBottomRight()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getBounds(int)">getBounds(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getBounds()">getBounds()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#getBundlePath()">getBundlePath()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+ </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#getBundlePath()">getBundlePath()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getCell(int, int)">getCell(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getCell(int, int)">getCell(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getCenter()">getCenter()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#getClipboard()">getClipboard()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getCol(int)">getCol(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getCol(int)">getCol(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getColor()">getColor()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Get the color at the given Point for details: see java.awt.Robot and ...Color</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getCols()">getCols()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getCols()">getCols()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getColW()">getColW()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getColW()">getColW()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#getCount()">getCount()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#getEvent(java.lang.String)">getEvent(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">remove and return the latest event for the named observer <br />
+ earlier events are removed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#getEvents(org.sikuli.script.Region)">getEvents(Region)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">remove and return the latest events for that region <br />
+ earlier events are removed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#getEvents()">getEvents()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">return the latest events (these are preserved) <br />
+ earlier events for the same observer are removed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getEvtMgr()">getEvtMgr()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getFilename()">getFilename()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getFilename()">getFilename()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">the current image's absolute filepath
+ <br />will return null, if image is in jar or in web
+ <br />use getFileURL in this case</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getFileURL()">getFileURL()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">the current image's URL</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getFindFailedResponse()">getFindFailedResponse()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getGraphicsDevice()">getGraphicsDevice()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getGroup()">getGroup()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getH()">getH()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getID()">getID()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#getImage(java.lang.String)">getImage(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">tries to findX the file using locate(filename) and loads it as image if
+ possible</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getImage()">getImage()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">get the image used for searching as in-memory image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getImage()">getImage()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">get the Pattern's image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getImageFilename()">getImageFilename()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">get the filename of the image used for searching</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#getImagePath()">getImagePath()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">list entries might be a file path or an url (http/https) <br />list[0]
+ current bundlepath (Settings.BundlePath) (might be null) <br />list[1:n]
+ path's from -DSIKULI_IMAGE_PATH=...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastMatch()">getLastMatch()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">a find operation saves its match on success in the used region object<br />unchanged if not
+ successful</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastMatches()">getLastMatches()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">a searchAll operation saves its matches on success in the used region object<br />unchanged if
+ not successful</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastScreenImage()">getLastScreenImage()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">get the last image taken on this regions screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastScreenImageFile()">getLastScreenImageFile()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">stores the lastScreenImage in the current bundle path with a created unique name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastScreenImageFile(java.lang.String)">getLastScreenImageFile(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">stores the lastScreenImage in the current bundle path with the given name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getLastScreenImageFile(java.lang.String, java.lang.String)">getLastScreenImageFile(String, String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">stores the lastScreenImage in the given path with the given name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getLastSeen()">getLastSeen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">if the image was already found before</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getLastSeenScore()">getLastSeenScore()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">if the image was already found before</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getMat()">getMat()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">get the OpenCV Mat version of the image's BufferedImage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#getMatch()">getMatch()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#getMatches()">getMatches()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#getMouseMovedResponse()">getMouseMovedResponse()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">current setting what to do if mouse is moved outside Sikuli's mouse protection</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getName()">getName()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">Get the image's descriptive name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getNumberScreens()">getNumberScreens()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getObserveScanRate()">getObserveScanRate()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getOffset(org.sikuli.script.Location)">getOffset(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">the offset of given point to this Location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#getPaths()">getPaths()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">get the list of path entries</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#getPattern()">getPattern()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getPoint()">getPoint()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">get as AWT point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getPrimaryId()">getPrimaryId()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getPrimaryScreen()">getPrimaryScreen()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getRect()">getRect()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#getRegion()">getRegion()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getRobot(int)">getRobot(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">each screen has exactly one robot (internally used for screen capturing)
+ <br />available as a convenience for those who know what they are doing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getRobot()">getRobot()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">Gets the Robot of this Screen.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getRow(int)">getRow(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getRow(int)">getRow(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getRowH()">getRowH()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getRowH()">getRowH()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getRows()">getRows()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getRows()">getRows()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getScore()">getScore()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">the match score</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getScreen()">getScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Returns null, if outside of any screen<br />
+ subsequent actions might crash</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getScreen()">getScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getScreen()">getScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#getScreen(int)">getScreen(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getScreenContaining()">getScreenContaining()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Only for compatibility, to get the screen containing this region, use
+ <a href="./org/sikuli/script/Region.html#getScreen()"><code>Region.getScreen()</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getSimilar()">getSimilar()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getSize()">getSize()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#getSize()">getSize()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getSub(int, int, int, int)">getSub(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a sub image from this image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getSub(int)">getSub(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a sub image from this image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getTarget()">getTarget()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getTarget()">getTarget()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">convenience method</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getTargetOffset()">getTargetOffset()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">convenience - same as for Pattern</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getTargetOffset()">getTargetOffset()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#getText()">getText()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getThrowException()">getThrowException()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">current setting for this region (see setThrowException)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.Event.html#getTime()">getTime()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#getTimeAfter()">getTimeAfter()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">get the seconds to wait, after this pattern is acted on</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getTopLeft()">getTopLeft()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getTopRight()">getTopRight()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#getURL()">getURL()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getW()">getW()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getWaitForVanish()">getWaitForVanish()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getWaitScanRate()">getWaitScanRate()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getX()">getX()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getX()">getX()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#getY()">getY()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#getY()">getY()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#grow(int, int)">grow(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">create a region with this point as center and the given size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#grow(int)">grow(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">create a region with this point as center and the given size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#grow(int, int, int, int)">grow(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">create a region with a corner at this point<br />as specified with x y<br /> 0 0 top left<br />
+ 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(org.sikuli.script.Location, int, int, int, int)">grow(Location, int, int, int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br />same as the
+ corresponding create method, here to be naming compatible with class Location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(org.sikuli.script.Location, int, int)">grow(Location, int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region with the given point as center and the given size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(org.sikuli.script.Location)">grow(Location)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a minimal region at given point with size 1 x 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(int)">grow(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region enlarged range pixels on each side</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(int, int)">grow(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region enlarged w pixels on left and right side<br /> and h pixels at top and bottom</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#grow(int, int, int, int)">grow(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region enlarged l pixels on left and r pixels right side<br /> and t pixels at top
+ side and b pixels at bottom side <br />
+ negative values go inside (shrink)</div>
+</dd>
+</dl>
+<a name="_H_">
+<!-- -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#h">h</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Height of the Region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#happened(org.sikuli.script.Observer.Event)">happened(Observer.Event)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#hasChanges(Mat)">hasChanges(Mat)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#hasEvent(java.lang.String)">hasEvent(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">are their any events registered for the observer having this name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#hasEvent(org.sikuli.script.Region, java.lang.String)">hasEvent(Region, String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">are their any events registered for the region's observer having this name</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#hasEvents()">hasEvents()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">are their any events registered</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#hasEvents(org.sikuli.script.Region)">hasEvents(Region)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">are their any events registered for this region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#hasNext()">hasNext()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#hasNext()">hasNext()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#hasNext()">hasNext()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#highlight()">highlight()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Toggle the regions Highlight visibility (currently red frame)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#highlight(float)">highlight(float)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">show the regions Highlight for the given time in seconds (currently red frame) if 0 - use the
+ global Settings.SlowMotionDelay</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#highlight(int)">highlight(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">hack to implement the getLastMatch() convenience 0 means same as highlight() <.0 same as
+ highlight(secs) if available the last match is highlighted</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#hover()">hover()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Move the mouse to this location point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#hover()">hover()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">move the mouse pointer to region's last successful match <br />use center if no lastMatch <br
+ />if region is a match: move to targetOffset <br />same as mouseMove</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#hover(PatternFilenameRegionMatchLocation)">hover(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">move the mouse pointer to the given target location<br /> same as mouseMove<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br /> Location - position at that point<br /></div>
+</dd>
+</dl>
+<a name="_I_">
+<!-- -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Image</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">This class hides the complexity behind image names given as string.<br />
+ Its companion is ImagePath that maintains a list of places, where images are stored.<br />
+ Another companion is ImageGroup allowing to to look at images in a folder as a group.<br />
+ An Image object:<br />
+ - has a name, either given or taken from the basename without ending.<br />
+ - keeps its in memory buffered image in a configurable cache avoiding reload from source<br />
+ - remembers, where it was found the last time searched<br />
+ - can be sourced from the filesystem, from jars, from the web and from other in memory images <br />
+ - it will have features for basic image manipulation <br />
+ - it contains the stuff to communicate with the underlying OpenCV based search engine <br />
+
+ This class maintains<br />
+ - a list of all images loaded with there source reference and a ref to the image object<br />
+ - a list of all images currently storing their in memory buffered image (managed as a cache)<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#Image(java.awt.image.BufferedImage)">Image(BufferedImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from a buffered image<br />
+ can only be reused with the object reference</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#Image(java.awt.image.BufferedImage, java.lang.String)">Image(BufferedImage, String)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from a buffered image<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#Image(ScreenImage)">Image(ScreenImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ can only be reused with the object reference</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#Image(ScreenImage, java.lang.String)">Image(ScreenImage, String)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+</dd>
+<dt><a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">ImageFind</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#ImageFind()">ImageFind()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">ImageFinder</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#ImageFinder()">ImageFinder()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Image)">ImageFinder(Image)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Screen)">ImageFinder(Screen)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Region)">ImageFinder(Region)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">ImageGroup</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">An ImageGroup object represents images, that are all in the same folder.<br />
+ the folder can contain a set of sub folders that can be switched dynamically <br />
+ The folder will be found on the image path.<br />
+ The match data of the images can be stored and reloaded.<br />
+ Its main purpose is to support image sets for different environments.<br />
+ At runtime you can switch between image sets without changing the used image names.<br />
+ Based on the stored match data you might produce a new ImageGroup on the fly.<br /></div>
+</dd>
+<dt><a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">ImageLocator</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>will completely replaced by the classes Image and ImagePath</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#ImageLocator()">ImageLocator()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+ </dd>
+<dt><a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">ImagePath</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#ImagePath()">ImagePath()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">ImagePath.PathEntry</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.PathEntry.html#ImagePath.PathEntry(java.lang.String, java.net.URL)">ImagePath.PathEntry(String, URL)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#inside()">inside()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>only for backward compatibility</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#intersection(org.sikuli.script.Region)">intersection(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region that is the intersection of the given regions</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#isAbsolute()">isAbsolute()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#isImage()">isImage()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#isObserving()">isObserving()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#isOtherScreen()">isOtherScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#isOtherScreen()">isOtherScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#isValid()">isValid()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">check whether image is available</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#isValid()">isValid()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#isValid()">isValid()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#isValid()">isValid()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#isValid()">isValid()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">check wether the image is valid</div>
+</dd>
+</dl>
+<a name="_K_">
+<!-- -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#keyDown(int)">keyDown(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">press and hold the given key use a constant from java.awt.event.KeyEvent which might be special
+ in the current machine/system environment</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#keyDown(java.lang.String)">keyDown(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">press and hold the given keys including modifier keys <br />use the key constants defined in
+ class Key, <br />which only provides a subset of a US-QWERTY PC keyboard layout <br />might be
+ mixed with simple characters
+ <br />use + to concatenate Key constants</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#keyUp()">keyUp()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">release all currently pressed keys</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#keyUp(int)">keyUp(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">release the given keys (see keyDown(keycode) )</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#keyUp(java.lang.String)">keyUp(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">release the given keys (see keyDown(keys) )</div>
+</dd>
+</dl>
+<a name="_L_">
+<!-- -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#left(int)">left(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset to the left, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#LEFT">LEFT</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#left()">left()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region left of the left side with same height<br /> the new region extends to the left
+ screen border<br /> use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#left(int)">left(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region left of the left side with same height and given width<br />
+ negative width creates the left part with width inside the region
+ use grow() to include the current region <br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#leftAt()">leftAt()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#leftAt(int)">leftAt(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">negative offset goes to the left <br />might be off current screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#listText()">listText()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">VERY EXPERIMENTAL: returns a list of matches, that represent single words, that have been found
+ in this region<br /> the match's x,y,w,h the region of the word<br /> Match.getText() returns
+ the word (utf8) at this match<br />
+ Match.getScore() returns a value between 0 ...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#loadImageFacts()">loadImageFacts()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Location</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">A point like AWT.Point using global coordinates, hence modifications might move location out of
+ any screen (not checked as is done with region)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#Location(double, double)">Location(double, double)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">to allow calculated x and y that might not be integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#Location(int, int)">Location(int, int)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">a new point at the given coordinates</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#Location(org.sikuli.script.Location)">Location(Location)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">duplicates the point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#Location(java.awt.Point)">Location(Point)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">create from AWT point</div>
+</dd>
+</dl>
+<a name="_M_">
+<!-- -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#M2">M2</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#M3">M3</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Match</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">holds the result of a findX operation, is itself the region on the screen,
+ where the image was found and hence inherits all methods from Region<br />
+ attributes:<br /> the match score (0 ...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#Match(org.sikuli.script.Match)">Match(Match)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">create a copy of Match object<br />
+ to e.g.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#match">match</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MH">MH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MID_HORIZONTAL">MID_HORIZONTAL</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MID_VERTICAL">MID_VERTICAL</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#MIDDLE">MIDDLE</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MIDDLE_HALF">MIDDLE_HALF</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MIDDLE_THIRD">MIDDLE_THIRD</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#morphTo(org.sikuli.script.Region)">morphTo(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>to be like AWT Rectangle API use setRect() instead</i></div>
+</div>
+</dd>
+<dt><a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Mouse</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">Main pupose is to coordinate the mouse usage among threads
+ At any one time, the mouse has one owner (usually a Region object)
+ who exclusively uses the mouse, all others wait for the mouse to be free again
+ if more than on possible owner is waiting, the next owner is uncertain
+ It is detected, when the mouse is moved outside the script, which can be
+ used for appropriate actions (e.g.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#mouseDown(int)">mouseDown(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">press and hold the specified buttons - use + to combine Button.LEFT left mouse button
+ Button.MIDDLE middle mouse button Button.RIGHT right mouse button</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#mouseMove()">mouseMove()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">move the mouse pointer to the region's last successful match<br />same as hover<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#mouseMove(PatternFilenameRegionMatchLocation)">mouseMove(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">move the mouse pointer to the given target location<br /> same as hover<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br />
+ Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#MouseMovedAction">MouseMovedAction</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#MouseMovedIgnore">MouseMovedIgnore</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#MouseMovedPause">MouseMovedPause</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#MouseMovedShow">MouseMovedShow</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#mouseUp()">mouseUp()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">release all currently held buttons</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#mouseUp(int)">mouseUp(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">release the specified mouse buttons (see mouseDown) if buttons==0, all currently held buttons
+ are released</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#move(int, int)">move(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">convenience: like awt point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#move(org.sikuli.script.Location)">move(Location)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">move the mouse to the given location (local and remote)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#moveFor(int, int)">moveFor(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">moves the point the given amounts in the x and y direction, might be negative <br />might move
+ point outside of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#moveTo(int, int)">moveTo(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">changes the locations x and y value to the given values (moves it) <br />might move point
+ outside of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#moveTo(org.sikuli.script.Location)">moveTo(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>to be like AWT Rectangle API use setLocation()</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#MV">MV</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+</dl>
+<a name="_N_">
+<!-- -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#N2">N2</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">the area constants for use with get()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#N3">N3</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#name()">name()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NE">NE</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#nearby()">nearby()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>to be like AWT Rectangle API use grow() instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#nearby(int)">nearby(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>to be like AWT Rectangle API use grow() instaed</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#newLocation(org.sikuli.script.Location)">newLocation(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">creates a location on the current screen with the given point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#newRegion(org.sikuli.script.Location, int, int)">newRegion(Location, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">creates a region on the current screen with the given coordinate/size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#next()">next()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#next()">next()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#next()">next()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NORTH">NORTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">the area constants for use with get()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NORTH_EAST">NORTH_EAST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NORTH_NORTH">NORTH_NORTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NORTH_WEST">NORTH_WEST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#NW">NW</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+</dl>
+<a name="_O_">
+<!-- -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#observe()">observe()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#observe(double)">observe(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#observeInBackground(double)">observeInBackground(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Observer</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#Observer()">Observer()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Observer.Event</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.Event.html#Observer.Event()">Observer.Event()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">ObserverCallBack</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#ObserverCallBack()">ObserverCallBack()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#offset(int, int)">offset(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#offset(org.sikuli.script.Location)">offset(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#offset(org.sikuli.script.Location)">offset(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create region with same size at top left corner offset</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#offset(int, int)">offset(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create region with same size at top left corner offset</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#onAppear(PSI, java.lang.Object)">onAppear(PSI, Object)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#onChange(int, java.lang.Object)">onChange(int, Object)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#onChange(SikuliEventObserver)">onChange(SikuliEventObserver)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#onVanish(PSI, java.lang.Object)">onVanish(PSI, Object)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#open(java.lang.String)">open(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#open()">open()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#open(java.lang.String)">open(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#open(java.lang.String)">open(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a> - package org.sikuli.script</dt>
+<dd> </dd>
+</dl>
+<a name="_P_">
+<!-- -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#paste(java.lang.String)">paste(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">pastes the text at the current position of the focus/carret <br />using the clipboard and
+ strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#paste(PatternFilenameRegionMatchLocation, java.lang.String)">paste(PatternFilenameRegionMatchLocation, String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br /> and then
+ pastes the text <br /> using the clipboard and strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.PathEntry.html#pathGiven">pathGiven</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.PathEntry.html#pathURL">pathURL</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Pattern</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">to define a more complex search target<br />
+ - non-standard minimum similarity <br />
+ - click target other than center <br />
+ - image as in-memory image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern()">Pattern()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">creates empty Pattern object at least setFilename() or setBImage() must be used before the
+ Pattern object is ready for anything</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(org.sikuli.script.Pattern)">Pattern(Pattern)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">create a new Pattern from another (attribs are copied)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(org.sikuli.script.Image)">Pattern(Image)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">create a Pattern with given image<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(java.lang.String)">Pattern(String)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">create a Pattern based on an image file name<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(java.net.URL)">Pattern(URL)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">Pattern from a Java resource (Object.class.getResource)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(java.awt.image.BufferedImage)">Pattern(BufferedImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">A Pattern from a BufferedImage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#Pattern(ScreenImage)">Pattern(ScreenImage)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">A Pattern from a ScreenImage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#pattern">pattern</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#printPaths()">printPaths()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">print the list of path entries</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#purge(java.lang.String)">purge(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">Internal Use: IDE: to get rid of cache entries at script close or save as</div>
+</dd>
+</dl>
+<a name="_R_">
+<!-- -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Region</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">A Region always lies completely inside its parent screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#Region(int, int, int, int, int)">Region(int, int, int, int, int)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#Region(int, int, int, int, org.sikuli.script.Screen)">Region(int, int, int, int, Screen)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#Region(int, int, int, int)">Region(int, int, int, int)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region with the provided coordinate / size</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#Region(java.awt.Rectangle)">Region(Rectangle)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a region from a Rectangle</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#Region(org.sikuli.script.Region)">Region(Region)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Create a new region from another region<br />including the region's settings</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#region">region</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Finder.html#remove()">remove()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></dt>
+<dd>
+<div class="block">not used</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#remove()">remove()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#remove()">remove()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#remove(java.lang.String)">remove(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">remove entry with given path</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#remove(java.net.URL)">remove(URL)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">remove entry with given URL</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#remove(java.lang.String)">remove(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">remove the observer from the list, a region observer will be stopped <br />
+ registered events for that observer are removed as well</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#remove(org.sikuli.script.Region)">remove(Region)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">stop and remove all observers registered for this region from the list <br />
+ registered events for those observers are removed as well</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Observer.html#remove(org.sikuli.script.Region, java.lang.String)">remove(Region, String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dt>
+<dd>
+<div class="block">stop and remove the observer registered for this region from the list <br />
+ registered events for that observer are removed as well</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#removeImagePath(java.lang.String)">removeImagePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#removeImagePath(java.lang.String[])">removeImagePath(String[])</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#repeat()">repeat()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#repeat(long)">repeat(long)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#reset(java.lang.String)">reset(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">empty list and add given path</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#reset()">reset()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">empty list and add given path</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#resetBundlePath(java.lang.String)">resetBundlePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">the resetting version of setBundlePath for IDE usage</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#resetImagePath(java.lang.String)">resetImagePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#resetImagePath(java.lang.String[])">resetImagePath(String[])</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=...</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#resetMonitors()">resetMonitors()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">re-initialize the monitor setup (e.g.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#resetScreens()">resetScreens()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">synonym for resetMonitors</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#right(int)">right(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">creates a point at the given offset to the right, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#RIGHT">RIGHT</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#right()">right()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region right of the right side with same height<br /> the new region extends to the
+ right screen border<br /> use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#right(int)">right(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a region right of the right side with same height and given width<br />
+ negative width creates the right part with width inside the region
+ use grow() to include the current region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#rightAt()">rightAt()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#rightAt(int)">rightAt(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">positive offset goes to the right <br />might be off current screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#rightClick()">rightClick()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">Move the mouse to this location point and click right</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#rightClick()">rightClick()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">right click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#rightClick(PatternFilenameRegionMatchLocation)">rightClick(PatternFilenameRegionMatchLocation)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">right click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#rightClick(PatternFilenameRegionMatchLocation, int)">rightClick(PatternFilenameRegionMatchLocation, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">right click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</dd>
+</dl>
+<a name="_S_">
+<!-- -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#S2">S2</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#S3">S3</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#saveImageFacts()">saveImageFacts()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Screen</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd>
+<div class="block">A screen represents a physical monitor with its coordinates and size according to the global
+ point system: the screen areas are grouped around a point (0,0) like in a cartesian system (the
+ top left corner and the points contained in the screen area might have negative x and/or y values)
+ <br >The screens are arranged in an array (index = id) and each screen is always the same object
+ (not possible to create new objects).</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#Screen(int)">Screen(int)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">Is the screen object at the given id</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#Screen(boolean)">Screen(boolean)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#Screen()">Screen()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">Is the screen object having the top left corner as (0,0).</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SE">SE</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#search(PSI, java.lang.Object...)">search(PSI, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#searchAll(PSI, java.lang.Object...)">searchAll(PSI, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#searchAll(PSI, int, java.lang.Object...)">searchAll(PSI, int, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#searchAny(PSI, java.lang.Object...)">searchAny(PSI, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#searchSome(PSI, java.lang.Object...)">searchSome(PSI, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#searchSome(PSI, int, java.lang.Object...)">searchSome(PSI, int, Object...)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#selectRegion()">selectRegion()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">interactive region create with predefined message: lets the user draw the rectangle using the
+ mouse</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#selectRegion(java.lang.String)">selectRegion(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">interactive region create with given message: lets the user draw the rectangle using the mouse</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#setAsScreen()">setAsScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#setAsScreenUnion()">setAsScreenUnion()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setAutoWaitTimeout(double)">setAutoWaitTimeout(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">the time in seconds a find operation should wait for the appearence of the target in this
+ region<br /> initial value 3 secs</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setBImage(java.awt.image.BufferedImage)">setBImage(BufferedImage)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setBottomLeft(org.sikuli.script.Location)">setBottomLeft(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Moves the region to the area, whose bottom left corner is the given location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setBottomRight(org.sikuli.script.Location)">setBottomRight(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Moves the region to the area, whose bottom right corner is the given location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageLocator.html#setBundlePath(java.lang.String)">setBundlePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImagePath.html#setBundlePath(java.lang.String)">setBundlePath(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dt>
+<dd>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setCenter(org.sikuli.script.Location)">setCenter(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Moves the region to the area, whose center is the given location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#setClipboard(java.lang.String)">setClipboard(String)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#setCols(int)">setCols(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">store info: this image is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setCols(int)">setCols(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">store info: this region is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#setCount(int)">setCount(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setEvtMgr(SikuliEventManager)">setEvtMgr(SikuliEventManager)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setFilename(java.lang.String)">setFilename(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set a new image for this pattern</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setFilename(java.net.URL)">setFilename(URL)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set a new image for this pattern</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setFilename(org.sikuli.script.Image)">setFilename(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set a new image for this pattern</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setFindFailedResponse(org.sikuli.script.FindFailedResponse)">setFindFailedResponse(FindFailedResponse)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">FindFailedResponse.<br /> ABORT - (initial value) abort script on FindFailed (=
+ setThrowException(true) )<br /> SKIP - ignore FindFailed (same as setThrowException(false) )<br
+ /> PROMPT - display prompt on FindFailed to let user decide how to proceed<br /> RETRY -
+ continue to wait for appearence on FindFailed (caution: endless loop)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#setFinding(int)">setFinding(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#setFindTimeout(double)">setFindTimeout(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setFindTimeout(double)">setFindTimeout(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#setGroup(org.sikuli.script.ImageGroup)">setGroup(ImageGroup)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setH(int)">setH(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setImage(org.sikuli.script.Image)">setImage(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setImage(org.sikuli.script.Image)">setImage(Image)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">sets the Pattern's image</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#setIsInnerFind()">setIsInnerFind()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setIsMultiFinder()">setIsMultiFinder()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#setLastSeen(java.awt.Rectangle, double)">setLastSeen(Rectangle, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">Internal Use: set the last seen info after a find</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#setLocation(int, int)">setLocation(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#setLocation(double, double)">setLocation(double, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setLocation(org.sikuli.script.Location)">setLocation(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions position<br />this might move the region even to another screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setMinChanges(int)">setMinChanges(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#setMouseMovedResponse(int)">setMouseMovedResponse(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">what to do if mouse is moved outside Sikuli's mouse protection +br
+ - Mouse.MouseMovedIgnore (0) ignore it (default) +br
+ - Mouse.MouseMovedShow (1) show and ignore it +br
+ - Mouse.MouseMovedPause (2) show it and pause until user says continue +br
+ - Mouse.MouseMovedAction (3) perform a user defined action (not implemented yet, currently 0) +br</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setObserveScanRate(float)">setObserveScanRate(float)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions individual ObserveScanRate</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#setOtherScreen(org.sikuli.script.Screen)">setOtherScreen(Screen)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setOtherScreen()">setOtherScreen()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#setRaster(int, int)">setRaster(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">store info: this image is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setRaster(int, int)">setRaster(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">store info: this region is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setRect(java.awt.Rectangle)">setRect(Rectangle)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setRect(int, int, int, int)">setRect(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setRect(org.sikuli.script.Region)">setRect(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setRegion(org.sikuli.script.Region)">setRegion(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setROI(int, int, int, int)">setROI(int, int, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">resets this region to the given location, and size <br /> this might move the region even to
+ another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setROI(java.awt.Rectangle)">setROI(Rectangle)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">resets this region to the given rectangle <br /> this might move the region even to another
+ screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setROI(org.sikuli.script.Region)">setROI(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">resets this region to the given region <br /> this might move the region even to another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#setRows(int)">setRows(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd>
+<div class="block">store info: this image is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setRows(int)">setRows(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">store info: this region is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFinder.html#setScreen(org.sikuli.script.Screen)">setScreen(Screen)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setSize(int, int)">setSize(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#setSorted(int)">setSorted(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#setTargetOffset(org.sikuli.script.Location)">setTargetOffset(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">like Pattern.TargetOffset sets the click target by offset relative to the
+ center</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#setTargetOffset(int, int)">setTargetOffset(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd>
+<div class="block">like Pattern.TargetOffset sets the click target relative to the center</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setThrowException(boolean)">setThrowException(boolean)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">true - (initial setting) should throw exception FindFailed if findX unsuccessful in this
+ region<br /> false - do not abort script on FindFailed (might leed to null pointer exceptions
+ later)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#setTimeAfter(int)">setTimeAfter(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set the seconds to wait, after this pattern is acted on</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#setTimes(long, long)">setTimes(long, long)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setTopLeft(org.sikuli.script.Location)">setTopLeft(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Moves the region to the area, whose top left corner is the given location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setTopRight(org.sikuli.script.Location)">setTopRight(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Moves the region to the area, whose top right corner is the given location</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setW(int)">setW(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setWaitForVanish(int)">setWaitForVanish(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions individual WaitForVanish</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setWaitScanRate(float)">setWaitScanRate(float)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">set the regions individual WaitScanRate</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setX(int)">setX(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#setY(int)">setY(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#showMonitors()">showMonitors()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">show the current monitor setup</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#showScreens()">showScreens()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">synonym for showMonitors</div>
+</dd>
+<dt><a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">SikuliEvent</span></a> - Class in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#SikuliEvent()">SikuliEvent()</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#SikuliEvent(java.lang.Object, org.sikuli.script.Match, org.sikuli.script.Region)">SikuliEvent(Object, Match, Region)</a></span> - Constructor for class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><a href="./org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script"><span class="strong">SikuliEvent.Type</span></a> - Enum in <a href="./org/sikuli/script/package-summary.html">org.sikuli.script</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#similar(float)">similar(float)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">sets the minimum Similarity to use with findX</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageFind.html#SOME_COUNT">SOME_COUNT</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SOUTH">SOUTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SOUTH_EAST">SOUTH_EAST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SOUTH_SOUTH">SOUTH_SOUTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SOUTH_WEST">SOUTH_WEST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#stopObserver()">stopObserver()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#stopObserver()">stopObserver()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#SW">SW</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+</dl>
+<a name="_T_">
+<!-- -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#targetAppeared(SikuliEventAppear)">targetAppeared(SikuliEventAppear)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#targetChanged(SikuliEventChange)">targetChanged(SikuliEventChange)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#targetOffset(int, int)">targetOffset(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#targetOffset(org.sikuli.script.Location)">targetOffset(Location)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#targetVanished(SikuliEventVanish)">targetVanished(SikuliEventVanish)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#text()">text()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">STILL EXPERIMENTAL: tries to read the text in this region<br /> might contain misread
+ characters, NL characters and other stuff, when interpreting contained grafics as text<br />
+ Best results: one line of text with no grafics in the line</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Image.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Pattern.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#toString()">toString()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#toStringShort()">toStringShort()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Match.html#toStringShort()">toStringShort()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#toStringShort()">toStringShort()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#toStringShort()">toStringShort()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">only a short version of toString()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#translate(int, int)">translate(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd>
+<div class="block">convenience: like awt point</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(java.lang.String)">type(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp
+ <br />about the usable Key constants see keyDown(keys) <br />Class Key only provides a subset
+ of a US-QWERTY PC keyboard layout<br />the text is entered at the current position of the
+ focus/carret</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(java.lang.String, int)">type(String, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp<br />while holding
+ down the given modifier keys <br />about the usable Key constants see keyDown(keys) <br />Class
+ Key only provides a subset of a US-QWERTY PC keyboard layout<br />the text is entered at the
+ current position of the focus/carret</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(java.lang.String, java.lang.String)">type(String, String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">enters the given text one character/key after another using
+
+ keyDown/keyUp<br />while holding down the given modifier keys <br />about the usable Key
+ constants see keyDown(keys) <br />Class Key only provides a subset of a US-QWERTY PC keyboard
+ layout<br />the text is entered at the current position of the focus/carret</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String)">type(PatternFilenameRegionMatchLocation, String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />about the usable Key
+ constants see keyDown(keys)
+ <br />Class Key only provides a subset of a US-QWERTY PC keyboard layout</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String, int)">type(PatternFilenameRegionMatchLocation, String, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String, java.lang.String)">type(PatternFilenameRegionMatchLocation, String, String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.html#type">type</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dt>
+<dd> </dd>
+</dl>
+<a name="_U_">
+<!-- -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#unblock()">unblock()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">free the mouse globally after a block()</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#unblock(java.lang.Object)">unblock(Object)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">free the mouse globally for this owner after a block(owner)</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#union(org.sikuli.script.Region)">union(Region)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">create a new region containing both regions</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#up()">up()</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">release all buttons</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#up(int)">up(int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">release the given buttons</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#update(EventSubject)">update(EventSubject)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">Internal use only</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ImageGroup.html#use(java.lang.String)">use(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#userCapture()">userCapture()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">interactive capture with predefined message: lets the user capture a screen image using the
+ mouse to draw the rectangle</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Screen.html#userCapture(java.lang.String)">userCapture(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dt>
+<dd>
+<div class="block">interactive capture with given message: lets the user capture a screen image using the mouse to
+ draw the rectangle</div>
+</dd>
+</dl>
+<a name="_V_">
+<!-- -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/FindFailedResponse.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.sikuli.script.<a href="./org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.Type.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/FindFailedResponse.html#values()">values()</a></span> - Static method in enum org.sikuli.script.<a href="./org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/SikuliEvent.Type.html#values()">values()</a></span> - Static method in enum org.sikuli.script.<a href="./org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/ObserverCallBack.html#vanished(org.sikuli.script.SikuliEvent)">vanished(SikuliEvent)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></dt>
+<dd> </dd>
+</dl>
+<a name="_W_">
+<!-- -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#w">w</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Width of the Region</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#W2">W2</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#W3">W3</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#wait(double)">wait(double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">WARNING: wait(long timeout) is taken by Java Object as final.</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#wait(PSI)">wait(PSI)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Waits for the Pattern, String or Image to appear</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#wait(PSI, double)">wait(PSI, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Waits for the Pattern, String or Image to appear or timeout (in second) is passed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#waitVanish(PSI)">waitVanish(PSI)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#waitVanish(PSI, double)">waitVanish(PSI, double)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WEST">WEST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WEST_NORTH">WEST_NORTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WEST_SOUTH">WEST_SOUTH</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WEST_WEST">WEST_WEST</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#wheel(int, int)">wheel(int, int)</a></span> - Static method in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd>
+<div class="block">move mouse using mouse wheel in the given direction the given steps +br
+ the result is system dependent</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#wheel(int, int)">wheel(int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Move the wheel at the current mouse position<br /> the given steps in the given direction: <br
+ />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#wheel(PatternFilenameRegionMatchLocation, int, int)">wheel(PatternFilenameRegionMatchLocation, int, int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">move the mouse pointer to the given target location<br /> and move the wheel the given steps in
+ the given direction: <br />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+</dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#WHEEL_DOWN">WHEEL_DOWN</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Mouse.html#WHEEL_UP">WHEEL_UP</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#window()">window()</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/App.html#window(int)">window(int)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WN">WN</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#write(java.lang.String)">write(String)</a></span> - Method in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#WS">WS</a></span> - Static variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd> </dd>
+</dl>
+<a name="_X_">
+<!-- -->
+</a>
+<h2 class="title">X</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#x">x</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#x">x</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">X-coordinate of the Region</div>
+</dd>
+</dl>
+<a name="_Y_">
+<!-- -->
+</a>
+<h2 class="title">Y</h2>
+<dl>
+<dt><span class="strong"><a href="./org/sikuli/script/Location.html#y">y</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></dt>
+<dd> </dd>
+<dt><span class="strong"><a href="./org/sikuli/script/Region.html#y">y</a></span> - Variable in class org.sikuli.script.<a href="./org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></dt>
+<dd>
+<div class="block">Y-coordinate of the Region</div>
+</dd>
+</dl>
+<a href="#_A_">A</a> <a href="#_B_">B</a> <a href="#_C_">C</a> <a href="#_D_">D</a> <a href="#_E_">E</a> <a href="#_F_">F</a> <a href="#_G_">G</a> <a href="#_H_">H</a> <a href="#_I_">I</a> <a href="#_K_">K</a> <a href="#_L_">L</a> <a href="#_M_">M</a> <a href="#_N_">N</a> <a href="#_O_">O</a> <a href="#_P_">P</a> <a href="#_R_">R</a> <a href="#_S_">S</a> <a href="#_T_">T</a> <a href="#_U_">U</a>&nbs [...]
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/index.html b/Docs/Java/docs/index.html
new file mode 100644
index 0000000..d71b093
--- /dev/null
+++ b/Docs/Java/docs/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc on Mon Dec 16 17:57:43 CET 2013 -->
+<title>Generated Documentation (Untitled)</title>
+<script type="text/javascript">
+ targetPage = "" + window.location.search;
+ if (targetPage != "" && targetPage != "undefined")
+ targetPage = targetPage.substring(1);
+ if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
+ targetPage = "undefined";
+ function validURL(url) {
+ var pos = url.indexOf(".html");
+ if (pos == -1 || pos != url.length - 5)
+ return false;
+ var allowNumber = false;
+ var allowSep = false;
+ var seenDot = false;
+ for (var i = 0; i < url.length - 5; i++) {
+ var ch = url.charAt(i);
+ if ('a' <= ch && ch <= 'z' ||
+ 'A' <= ch && ch <= 'Z' ||
+ ch == '$' ||
+ ch == '_') {
+ allowNumber = true;
+ allowSep = true;
+ } else if ('0' <= ch && ch <= '9'
+ || ch == '-') {
+ if (!allowNumber)
+ return false;
+ } else if (ch == '/' || ch == '.') {
+ if (!allowSep)
+ return false;
+ allowNumber = false;
+ allowSep = false;
+ if (ch == '.')
+ seenDot = true;
+ if (ch == '/' && seenDot)
+ return false;
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+ function loadFrames() {
+ if (targetPage != "" && targetPage != "undefined")
+ top.classFrame.location = top.targetPage;
+ }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+<frame src="org/sikuli/script/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="org/sikuli/script/package-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/App.html b/Docs/Java/docs/org/sikuli/script/App.html
new file mode 100644
index 0000000..38d823a
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/App.html
@@ -0,0 +1,440 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:41 CET 2013 -->
+<title>App</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="App";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/App.html" target="_top">Frames</a></li>
+<li><a href="App.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class App" class="title">Class App</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.App</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">App</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/App.html#App(java.lang.String)">App</a></strong>(java.lang.String appName)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#close()">close</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#close(java.lang.String)">close</a></strong>(java.lang.String appName)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#focus()">focus</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#focus(int)">focus</a></strong>(int num)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#focus(java.lang.String)">focus</a></strong>(java.lang.String appName)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#focus(java.lang.String, int)">focus</a></strong>(java.lang.String appName,
+ int num)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#focusedWindow()">focusedWindow</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#getClipboard()">getClipboard</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#name()">name</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#open()">open</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#open(java.lang.String)">open</a></strong>(java.lang.String appName)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#setClipboard(java.lang.String)">setClipboard</a></strong>(java.lang.String text)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#toString()">toString</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#window()">window</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/App.html#window(int)">window</a></strong>(int winNum)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="App(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>App</h4>
+<pre>public App(java.lang.String appName)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="open(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre>public static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> open(java.lang.String appName)</pre>
+</li>
+</ul>
+<a name="close(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public static int close(java.lang.String appName)</pre>
+</li>
+</ul>
+<a name="focus(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>focus</h4>
+<pre>public static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> focus(java.lang.String appName)</pre>
+</li>
+</ul>
+<a name="focus(java.lang.String, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>focus</h4>
+<pre>public static <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> focus(java.lang.String appName,
+ int num)</pre>
+</li>
+</ul>
+<a name="focus()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>focus</h4>
+<pre>public <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> focus()</pre>
+</li>
+</ul>
+<a name="focus(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>focus</h4>
+<pre>public <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> focus(int num)</pre>
+</li>
+</ul>
+<a name="open()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre>public <a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a> open()</pre>
+</li>
+</ul>
+<a name="close()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public int close()</pre>
+</li>
+</ul>
+<a name="name()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>public java.lang.String name()</pre>
+</li>
+</ul>
+<a name="window()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>window</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> window()</pre>
+</li>
+</ul>
+<a name="window(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>window</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> window(int winNum)</pre>
+</li>
+</ul>
+<a name="focusedWindow()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>focusedWindow</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> focusedWindow()</pre>
+</li>
+</ul>
+<a name="getClipboard()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClipboard</h4>
+<pre>public static java.lang.String getClipboard()</pre>
+</li>
+</ul>
+<a name="setClipboard(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setClipboard</h4>
+<pre>public static void setClipboard(java.lang.String text)</pre>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/App.html" target="_top">Frames</a></li>
+<li><a href="App.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/FindFailedResponse.html b/Docs/Java/docs/org/sikuli/script/FindFailedResponse.html
new file mode 100644
index 0000000..bc86e83
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/FindFailedResponse.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:41 CET 2013 -->
+<title>FindFailedResponse</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="FindFailedResponse";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/FindFailedResponse.html" target="_top">Frames</a></li>
+<li><a href="FindFailedResponse.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#enum_constant_summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum_constant_detail">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Enum FindFailedResponse" class="title">Enum FindFailedResponse</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum<<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a>></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.FindFailedResponse</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.io.Serializable, java.lang.Comparable<<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a>></dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="strong">FindFailedResponse</span>
+extends java.lang.Enum<<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#ABORT">ABORT</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#PROMPT">PROMPT</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#RETRY">RETRY</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#SKIP">SKIP</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#valueOf(java.lang.String)">valueOf</a></strong>(java.lang.String name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/FindFailedResponse.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Enum</h3>
+<code>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ABORT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ABORT</h4>
+<pre>public static final <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> ABORT</pre>
+</li>
+</ul>
+<a name="PROMPT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROMPT</h4>
+<pre>public static final <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> PROMPT</pre>
+</li>
+</ul>
+<a name="SKIP">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SKIP</h4>
+<pre>public static final <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> SKIP</pre>
+</li>
+</ul>
+<a name="RETRY">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RETRY</h4>
+<pre>public static final <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> RETRY</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="values()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a>[] values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (FindFailedResponse c : FindFailedResponse.values())
+ System.out.println(c);
+</pre></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the constants of this enum type, in
+the order they are declared</dd></dl>
+</li>
+</ul>
+<a name="valueOf(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> valueOf(java.lang.String name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the enum constant with the specified name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant
+with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/FindFailedResponse.html" target="_top">Frames</a></li>
+<li><a href="FindFailedResponse.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#enum_constant_summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum_constant_detail">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Finder.html b/Docs/Java/docs/org/sikuli/script/Finder.html
new file mode 100644
index 0000000..87cc5b2
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Finder.html
@@ -0,0 +1,524 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:41 CET 2013 -->
+<title>Finder</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Finder";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Finder.html" target="_top">Frames</a></li>
+<li><a href="Finder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Finder" class="title">Class Finder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Finder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">Finder</span>
+extends java.lang.Object
+implements java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder()">Finder</a></strong>()</code>
+<div class="block">Just to force library initialization</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder(java.awt.image.BufferedImage)">Finder</a></strong>(java.awt.image.BufferedImage bimg)</code>
+<div class="block">Constructor for special use from a BufferedImage</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder(ScreenImage)">Finder</a></strong>(ScreenImage simg)</code>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder(ScreenImage, org.sikuli.script.Region)">Finder</a></strong>(ScreenImage simg,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)</code>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder(java.lang.String)">Finder</a></strong>(java.lang.String imageFilename)</code>
+<div class="block">Finder constructor (finding within an image).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Finder.html#Finder(java.lang.String, org.sikuli.script.Region)">Finder</a></strong>(java.lang.String imageFilename,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)</code>
+<div class="block">Finder constructor (finding within an image within the given region).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#destroy()">destroy</a></strong>()</code>
+<div class="block">to explicitly free the Finder's resources</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#find(org.sikuli.script.Image)">find</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#find(org.sikuli.script.Pattern)">find</a></strong>(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> aPtn)</code>
+<div class="block">findX given pattern within the stored image</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#find(java.lang.String)">find</a></strong>(java.lang.String imageOrText)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#findAll(org.sikuli.script.Image)">findAll</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#findAll(org.sikuli.script.Pattern)">findAll</a></strong>(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> aPtn)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#findAll(java.lang.String)">findAll</a></strong>(java.lang.String imageOrText)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#findAllText(java.lang.String)">findAllText</a></strong>(java.lang.String text)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#findText(java.lang.String)">findText</a></strong>(java.lang.String text)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#hasNext()">hasNext</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#next()">next</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Finder.html#remove()">remove</a></strong>()</code>
+<div class="block">not used</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Finder()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder()</pre>
+<div class="block">Just to force library initialization</div>
+</li>
+</ul>
+<a name="Finder(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder(java.lang.String imageFilename)
+ throws java.io.IOException</pre>
+<div class="block">Finder constructor (finding within an image).
+ <br />internally used with a screen snapshot</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imageFilename</code> - a string (name, path, url)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="Finder(java.lang.String, org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder(java.lang.String imageFilename,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)
+ throws java.io.IOException</pre>
+<div class="block">Finder constructor (finding within an image within the given region).
+ <br />internally used with a screen snapshot</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imageFilename</code> - a string (name, path, url)</dd><dd><code>region</code> - search Region within image - topleft = (0,0)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="Finder(java.awt.image.BufferedImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder(java.awt.image.BufferedImage bimg)</pre>
+<div class="block">Constructor for special use from a BufferedImage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bimg</code> - </dd></dl>
+</li>
+</ul>
+<a name="Finder(ScreenImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder(ScreenImage simg)</pre>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>simg</code> - </dd></dl>
+</li>
+</ul>
+<a name="Finder(ScreenImage, org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Finder</h4>
+<pre>public Finder(ScreenImage simg,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)</pre>
+<div class="block">Finder constructor for special use from a ScreenImage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>simg</code> - </dd><dd><code>region</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="destroy()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroy</h4>
+<pre>public void destroy()</pre>
+<div class="block">to explicitly free the Finder's resources</div>
+</li>
+</ul>
+<a name="find(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(java.lang.String imageOrText)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imageOrText</code> - </dd></dl>
+</li>
+</ul>
+<a name="find(org.sikuli.script.Pattern)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> aPtn)</pre>
+<div class="block">findX given pattern within the stored image</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>aPtn</code> - </dd></dl>
+</li>
+</ul>
+<a name="find(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+</li>
+</ul>
+<a name="findText(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findText</h4>
+<pre>public java.lang.String findText(java.lang.String text)</pre>
+</li>
+</ul>
+<a name="findAll(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(java.lang.String imageOrText)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imageOrText</code> - </dd></dl>
+</li>
+</ul>
+<a name="findAll(org.sikuli.script.Pattern)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> aPtn)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>aPtn</code> - </dd></dl>
+</li>
+</ul>
+<a name="findAll(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+</li>
+</ul>
+<a name="findAllText(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAllText</h4>
+<pre>public java.lang.String findAllText(java.lang.String text)</pre>
+</li>
+</ul>
+<a name="hasNext()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public boolean hasNext()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>hasNext</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if Finder has a next match, false otherwise</dd></dl>
+</li>
+</ul>
+<a name="next()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> next()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>next</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the next match or null</dd></dl>
+</li>
+</ul>
+<a name="remove()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public void remove()</pre>
+<div class="block">not used</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>remove</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Finder.html" target="_top">Frames</a></li>
+<li><a href="Finder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Image.html b/Docs/Java/docs/org/sikuli/script/Image.html
new file mode 100644
index 0000000..1352011
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Image.html
@@ -0,0 +1,832 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:41 CET 2013 -->
+<title>Image</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Image";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Image.html" target="_top">Frames</a></li>
+<li><a href="Image.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Image" class="title">Class Image</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Image</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Image</span>
+extends java.lang.Object</pre>
+<div class="block">This class hides the complexity behind image names given as string.<br />
+ Its companion is ImagePath that maintains a list of places, where images are stored.<br />
+ Another companion is ImageGroup allowing to to look at images in a folder as a group.<br />
+ An Image object:<br />
+ - has a name, either given or taken from the basename without ending.<br />
+ - keeps its in memory buffered image in a configurable cache avoiding reload from source<br />
+ - remembers, where it was found the last time searched<br />
+ - can be sourced from the filesystem, from jars, from the web and from other in memory images <br />
+ - it will have features for basic image manipulation <br />
+ - it contains the stuff to communicate with the underlying OpenCV based search engine <br />
+
+ This class maintains<br />
+ - a list of all images loaded with there source reference and a ref to the image object<br />
+ - a list of all images currently storing their in memory buffered image (managed as a cache)<br /></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Image.html#Image(java.awt.image.BufferedImage)">Image</a></strong>(java.awt.image.BufferedImage img)</code>
+<div class="block">create a new image from a buffered image<br />
+ can only be reused with the object reference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Image.html#Image(java.awt.image.BufferedImage, java.lang.String)">Image</a></strong>(java.awt.image.BufferedImage img,
+ java.lang.String name)</code>
+<div class="block">create a new image from a buffered image<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Image.html#Image(ScreenImage)">Image</a></strong>(ScreenImage img)</code>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ can only be reused with the object reference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Image.html#Image(ScreenImage, java.lang.String)">Image</a></strong>(ScreenImage img,
+ java.lang.String name)</code>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#create(java.lang.String)">create</a></strong>(java.lang.String imgName)</code>
+<div class="block">create a new image from a filename <br />
+ file ending .png is added if missing <br />
+ filename: [...path.../]name[.png] is searched on current image path and loaded to cache <br />
+ already loaded image with same name is reused (reference) and taken from cache</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#create(java.net.URL)">create</a></strong>(java.net.URL url)</code>
+<div class="block">create a new image from the given url <br />
+ file ending .png is added if missing <br />
+ filename: ...url-path.../name[.png] is loaded from the url and and cached <br />
+ already loaded image with same url is reused (reference) and taken from cache</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.image.BufferedImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#get()">get</a></strong>()</code>
+<div class="block">return the image's BufferedImage (load it if not in cache)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getCell(int, int)">getCell</a></strong>(int r,
+ int c)</code>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getCol(int)">getCol</a></strong>(int c)</code>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getCols()">getCols</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getColW()">getColW</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getFilename()">getFilename</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getGroup()">getGroup</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.awt.Rectangle</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getLastSeen()">getLastSeen</a></strong>()</code>
+<div class="block">if the image was already found before</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getLastSeenScore()">getLastSeenScore</a></strong>()</code>
+<div class="block">if the image was already found before</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>Mat</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getMat()">getMat</a></strong>()</code>
+<div class="block">get the OpenCV Mat version of the image's BufferedImage</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getName()">getName</a></strong>()</code>
+<div class="block">Get the image's descriptive name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getRow(int)">getRow</a></strong>(int r)</code>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getRowH()">getRowH</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getRows()">getRows</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.Dimension</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getSize()">getSize</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getSub(int)">getSub</a></strong>(int part)</code>
+<div class="block">create a sub image from this image</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getSub(int, int, int, int)">getSub</a></strong>(int x,
+ int y,
+ int w,
+ int h)</code>
+<div class="block">create a sub image from this image</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.net.URL</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#getURL()">getURL</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#isAbsolute()">isAbsolute</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#isValid()">isValid</a></strong>()</code>
+<div class="block">check whether image is available</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#purge(java.lang.String)">purge</a></strong>(java.lang.String bundlePath)</code>
+<div class="block">Internal Use: IDE: to get rid of cache entries at script close or save as</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#setCols(int)">setCols</a></strong>(int n)</code>
+<div class="block">store info: this image is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#setGroup(org.sikuli.script.ImageGroup)">setGroup</a></strong>(<a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> group)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#setLastSeen(java.awt.Rectangle, double)">setLastSeen</a></strong>(java.awt.Rectangle lastSeen,
+ double sim)</code>
+<div class="block">Internal Use: set the last seen info after a find</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#setRaster(int, int)">setRaster</a></strong>(int r,
+ int c)</code>
+<div class="block">store info: this image is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#setRows(int)">setRows</a></strong>(int n)</code>
+<div class="block">store info: this image is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Image.html#toString()">toString</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Image(java.awt.image.BufferedImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Image</h4>
+<pre>public Image(java.awt.image.BufferedImage img)</pre>
+<div class="block">create a new image from a buffered image<br />
+ can only be reused with the object reference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd></dl>
+</li>
+</ul>
+<a name="Image(java.awt.image.BufferedImage, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Image</h4>
+<pre>public Image(java.awt.image.BufferedImage img,
+ java.lang.String name)</pre>
+<div class="block">create a new image from a buffered image<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd><dd><code>name</code> - descriptive name</dd></dl>
+</li>
+</ul>
+<a name="Image(ScreenImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Image</h4>
+<pre>public Image(ScreenImage img)</pre>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ can only be reused with the object reference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd></dl>
+</li>
+</ul>
+<a name="Image(ScreenImage, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Image</h4>
+<pre>public Image(ScreenImage img,
+ java.lang.String name)</pre>
+<div class="block">create a new image from a Sikuli ScreenImage (captured)<br />
+ giving it a descriptive name for printout and logging <br />
+ can only be reused with the object reference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd><dd><code>name</code> - descriptive name</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a name="create(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> create(java.lang.String imgName)</pre>
+<div class="block">create a new image from a filename <br />
+ file ending .png is added if missing <br />
+ filename: [...path.../]name[.png] is searched on current image path and loaded to cache <br />
+ already loaded image with same name is reused (reference) and taken from cache</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imgName</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the image</dd></dl>
+</li>
+</ul>
+<a name="create(java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> create(java.net.URL url)</pre>
+<div class="block">create a new image from the given url <br />
+ file ending .png is added if missing <br />
+ filename: ...url-path.../name[.png] is loaded from the url and and cached <br />
+ already loaded image with same url is reused (reference) and taken from cache</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imgName</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the image</dd></dl>
+</li>
+</ul>
+<a name="purge(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>purge</h4>
+<pre>public static void purge(java.lang.String bundlePath)</pre>
+<div class="block">Internal Use: IDE: to get rid of cache entries at script close or save as</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bundlePath</code> - </dd></dl>
+</li>
+</ul>
+<a name="getGroup()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGroup</h4>
+<pre>public <a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> getGroup()</pre>
+</li>
+</ul>
+<a name="setGroup(org.sikuli.script.ImageGroup)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setGroup</h4>
+<pre>public void setGroup(<a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> group)</pre>
+</li>
+</ul>
+<a name="isValid()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isValid</h4>
+<pre>public boolean isValid()</pre>
+<div class="block">check whether image is available</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if located or is an in memory image</dd></dl>
+</li>
+</ul>
+<a name="isAbsolute()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isAbsolute</h4>
+<pre>public boolean isAbsolute()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if image was given with absolute filepath</dd></dl>
+</li>
+</ul>
+<a name="getURL()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getURL</h4>
+<pre>public java.net.URL getURL()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the valid url for this image (might be null)</dd></dl>
+</li>
+</ul>
+<a name="getFilename()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilename</h4>
+<pre>public java.lang.String getFilename()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the image's absolute filename or null if jar, http or in memory image</dd></dl>
+</li>
+</ul>
+<a name="getName()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public java.lang.String getName()</pre>
+<div class="block">Get the image's descriptive name</div>
+</li>
+</ul>
+<a name="get()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public java.awt.image.BufferedImage get()</pre>
+<div class="block">return the image's BufferedImage (load it if not in cache)</div>
+</li>
+</ul>
+<a name="getSize()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>public java.awt.Dimension getSize()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>size of image</dd></dl>
+</li>
+</ul>
+<a name="getLastSeen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastSeen</h4>
+<pre>public java.awt.Rectangle getLastSeen()</pre>
+<div class="block">if the image was already found before</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the rectangle where it was found</dd></dl>
+</li>
+</ul>
+<a name="getLastSeenScore()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastSeenScore</h4>
+<pre>public double getLastSeenScore()</pre>
+<div class="block">if the image was already found before</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the similarity score</dd></dl>
+</li>
+</ul>
+<a name="setLastSeen(java.awt.Rectangle, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLastSeen</h4>
+<pre>public void setLastSeen(java.awt.Rectangle lastSeen,
+ double sim)</pre>
+<div class="block">Internal Use: set the last seen info after a find</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lastSeen</code> - </dd><dd><code>sim</code> - </dd></dl>
+</li>
+</ul>
+<a name="getSub(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSub</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getSub(int x,
+ int y,
+ int w,
+ int h)</pre>
+<div class="block">create a sub image from this image</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - </dd><dd><code>w</code> - </dd><dd><code>h</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new image</dd></dl>
+</li>
+</ul>
+<a name="getSub(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSub</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getSub(int part)</pre>
+<div class="block">create a sub image from this image</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>part</code> - (the constants Region.XXX as used with region.get())</dd>
+<dt><span class="strong">Returns:</span></dt><dd></dd></dl>
+</li>
+</ul>
+<a name="setRows(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRows</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> setRows(int n)</pre>
+<div class="block">store info: this image is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the top row</dd></dl>
+</li>
+</ul>
+<a name="setCols(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCols</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> setCols(int n)</pre>
+<div class="block">store info: this image is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the leftmost column</dd></dl>
+</li>
+</ul>
+<a name="getRows()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRows</h4>
+<pre>public int getRows()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of eventually defined rows in this image or 0</dd></dl>
+</li>
+</ul>
+<a name="getRowH()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRowH</h4>
+<pre>public int getRowH()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>height of eventually defined rows in this image or 0</dd></dl>
+</li>
+</ul>
+<a name="getCols()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCols</h4>
+<pre>public int getCols()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of eventually defined columns in this image or 0</dd></dl>
+</li>
+</ul>
+<a name="getColW()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getColW</h4>
+<pre>public int getColW()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>width of eventually defined columns in this image or 0</dd></dl>
+</li>
+</ul>
+<a name="setRaster(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRaster</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> setRaster(int r,
+ int c)</pre>
+<div class="block">store info: this image is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - </dd><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the top left cell</dd></dl>
+</li>
+</ul>
+<a name="getRow(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRow</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getRow(int r)</pre>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the row as new image or the image itself, if no rows are setup</dd></dl>
+</li>
+</ul>
+<a name="getCol(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCol</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getCol(int c)</pre>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the column as new image or the image itself, if no columns are setup</dd></dl>
+</li>
+</ul>
+<a name="getCell(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCell</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getCell(int r,
+ int c)</pre>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the cell as new image or the image itself, if no raster is setup</dd></dl>
+</li>
+</ul>
+<a name="getMat()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMat</h4>
+<pre>public Mat getMat()</pre>
+<div class="block">get the OpenCV Mat version of the image's BufferedImage</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>OpenCV Mat</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Image.html" target="_top">Frames</a></li>
+<li><a href="Image.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImageFind.html b/Docs/Java/docs/org/sikuli/script/ImageFind.html
new file mode 100644
index 0000000..4165184
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImageFind.html
@@ -0,0 +1,558 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:41 CET 2013 -->
+<title>ImageFind</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImageFind";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageFind.html" target="_top">Frames</a></li>
+<li><a href="ImageFind.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImageFind" class="title">Class ImageFind</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImageFind</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">ImageFind</span>
+extends java.lang.Object
+implements java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#ALL_MAX">ALL_MAX</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#AS_COLUMNS">AS_COLUMNS</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#AS_ROWS">AS_ROWS</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#BEST_FIRST">BEST_FIRST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#FINDING_ALL">FINDING_ALL</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#FINDING_ANY">FINDING_ANY</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#FINDING_SOME">FINDING_SOME</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#SOME_COUNT">SOME_COUNT</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#ImageFind()">ImageFind</a></strong>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#get()">get</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#get(int)">get</a></strong>(int n)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#getMatches()">getMatches</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#getSize()">getSize</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#hasNext()">hasNext</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#isValid()">isValid</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#next()">next</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#remove()">remove</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#setCount(int)">setCount</a></strong>(int c)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#setFinding(int)">setFinding</a></strong>(int ftyp)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#setFindTimeout(double)">setFindTimeout</a></strong>(double t)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#setIsInnerFind()">setIsInnerFind</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFind.html#setSorted(int)">setSorted</a></strong>(int styp)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="AS_ROWS">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AS_ROWS</h4>
+<pre>public static final int AS_ROWS</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.AS_ROWS">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="AS_COLUMNS">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AS_COLUMNS</h4>
+<pre>public static final int AS_COLUMNS</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.AS_COLUMNS">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="BEST_FIRST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BEST_FIRST</h4>
+<pre>public static final int BEST_FIRST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.BEST_FIRST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FINDING_ANY">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FINDING_ANY</h4>
+<pre>public static final int FINDING_ANY</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.FINDING_ANY">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FINDING_SOME">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FINDING_SOME</h4>
+<pre>public static final int FINDING_SOME</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.FINDING_SOME">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FINDING_ALL">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FINDING_ALL</h4>
+<pre>public static final int FINDING_ALL</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.ImageFind.FINDING_ALL">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SOME_COUNT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOME_COUNT</h4>
+<pre>public static int SOME_COUNT</pre>
+</li>
+</ul>
+<a name="ALL_MAX">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ALL_MAX</h4>
+<pre>public static int ALL_MAX</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImageFind()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImageFind</h4>
+<pre>public ImageFind()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="isValid()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isValid</h4>
+<pre>public boolean isValid()</pre>
+</li>
+</ul>
+<a name="setIsInnerFind()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIsInnerFind</h4>
+<pre>public void setIsInnerFind()</pre>
+</li>
+</ul>
+<a name="setFindTimeout(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFindTimeout</h4>
+<pre>public void setFindTimeout(double t)</pre>
+</li>
+</ul>
+<a name="setFinding(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFinding</h4>
+<pre>public void setFinding(int ftyp)</pre>
+</li>
+</ul>
+<a name="setSorted(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSorted</h4>
+<pre>public void setSorted(int styp)</pre>
+</li>
+</ul>
+<a name="setCount(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCount</h4>
+<pre>public void setCount(int c)</pre>
+</li>
+</ul>
+<a name="getMatches()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatches</h4>
+<pre>public java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> getMatches()</pre>
+</li>
+</ul>
+<a name="hasNext()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public boolean hasNext()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>hasNext</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+</dl>
+</li>
+</ul>
+<a name="next()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> next()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>next</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+</dl>
+</li>
+</ul>
+<a name="remove()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public void remove()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>remove</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+</dl>
+</li>
+</ul>
+<a name="get()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> get()</pre>
+</li>
+</ul>
+<a name="get(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> get(int n)</pre>
+</li>
+</ul>
+<a name="getSize()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>public int getSize()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageFind.html" target="_top">Frames</a></li>
+<li><a href="ImageFind.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImageFinder.html b/Docs/Java/docs/org/sikuli/script/ImageFinder.html
new file mode 100644
index 0000000..f7dad96
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImageFinder.html
@@ -0,0 +1,719 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ImageFinder</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImageFinder";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageFinder.html" target="_top">Frames</a></li>
+<li><a href="ImageFinder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImageFinder" class="title">Class ImageFinder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">org.sikuli.script.Finder</a></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImageFinder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">ImageFinder</span>
+extends <a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#ImageFinder()">ImageFinder</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Image)">ImageFinder</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> base)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Region)">ImageFinder</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#ImageFinder(org.sikuli.script.Screen)">ImageFinder</a></strong>(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#destroy()">destroy</a></strong>()</code>
+<div class="block">to explicitly free the Finder's resources</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#find(org.sikuli.script.Image)">find</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#find(org.sikuli.script.Pattern)">find</a></strong>(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> pat)</code>
+<div class="block">findX given pattern within the stored image</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#find(java.lang.String)">find</a></strong>(java.lang.String filenameOrText)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#findAll(org.sikuli.script.Image)">findAll</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#findAll(org.sikuli.script.Pattern)">findAll</a></strong>(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> pat)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#findAll(java.lang.String)">findAll</a></strong>(java.lang.String filenameOrText)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#findText(java.lang.String)">findText</a></strong>(java.lang.String text)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#hasChanges(Mat)">hasChanges</a></strong>(Mat current)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#hasNext()">hasNext</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#isImage()">isImage</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#isValid()">isValid</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#next()">next</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#remove()">remove</a></strong>()</code>
+<div class="block">not used</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#search(PSI, java.lang.Object...)">search</a></strong>(PSI probe,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#searchAll(PSI, int, java.lang.Object...)">searchAll</a></strong>(PSI probe,
+ int sorted,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#searchAll(PSI, java.lang.Object...)">searchAll</a></strong>(PSI probe,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#searchAny(PSI, java.lang.Object...)">searchAny</a></strong>(PSI probe,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#searchSome(PSI, int, java.lang.Object...)">searchSome</a></strong>(PSI probe,
+ int count,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#searchSome(PSI, java.lang.Object...)">searchSome</a></strong>(PSI probe,
+ java.lang.Object... args)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setFindTimeout(double)">setFindTimeout</a></strong>(double t)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setImage(org.sikuli.script.Image)">setImage</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> base)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setIsMultiFinder()">setIsMultiFinder</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setMinChanges(int)">setMinChanges</a></strong>(int min)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setRegion(org.sikuli.script.Region)">setRegion</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageFinder.html#setScreen(org.sikuli.script.Screen)">setScreen</a></strong>(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.sikuli.script.Finder">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></h3>
+<code><a href="../../../org/sikuli/script/Finder.html#findAllText(java.lang.String)">findAllText</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImageFinder()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ImageFinder</h4>
+<pre>public ImageFinder()</pre>
+</li>
+</ul>
+<a name="ImageFinder(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ImageFinder</h4>
+<pre>public ImageFinder(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> base)</pre>
+</li>
+</ul>
+<a name="ImageFinder(org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ImageFinder</h4>
+<pre>public ImageFinder(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</pre>
+</li>
+</ul>
+<a name="ImageFinder(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImageFinder</h4>
+<pre>public ImageFinder(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="destroy()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroy</h4>
+<pre>public void destroy()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Finder.html#destroy()">Finder</a></code></strong></div>
+<div class="block">to explicitly free the Finder's resources</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#destroy()">destroy</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setIsMultiFinder()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIsMultiFinder</h4>
+<pre>public void setIsMultiFinder()</pre>
+</li>
+</ul>
+<a name="setImage(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setImage</h4>
+<pre>public boolean setImage(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> base)</pre>
+</li>
+</ul>
+<a name="isImage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isImage</h4>
+<pre>public boolean isImage()</pre>
+</li>
+</ul>
+<a name="setScreen(org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setScreen</h4>
+<pre>public boolean setScreen(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</pre>
+</li>
+</ul>
+<a name="setRegion(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRegion</h4>
+<pre>public boolean setRegion(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+</li>
+</ul>
+<a name="setFindTimeout(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFindTimeout</h4>
+<pre>public void setFindTimeout(double t)</pre>
+</li>
+</ul>
+<a name="isValid()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isValid</h4>
+<pre>public boolean isValid()</pre>
+</li>
+</ul>
+<a name="find(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#find(org.sikuli.script.Image)">find</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="find(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(java.lang.String filenameOrText)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#find(java.lang.String)">find</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="find(org.sikuli.script.Pattern)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public java.lang.String find(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> pat)</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Finder.html#find(org.sikuli.script.Pattern)">Finder</a></code></strong></div>
+<div class="block">findX given pattern within the stored image</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#find(org.sikuli.script.Pattern)">find</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="findText(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findText</h4>
+<pre>public java.lang.String findText(java.lang.String text)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#findText(java.lang.String)">findText</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="search(java.lang.Object,java.lang.Object[])">
+<!-- -->
+</a><a name="search(PSI, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>search</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> search(PSI probe,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="searchAny(java.lang.Object,java.lang.Object[])">
+<!-- -->
+</a><a name="searchAny(PSI, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>searchAny</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> searchAny(PSI probe,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="searchSome(java.lang.Object,java.lang.Object[])">
+<!-- -->
+</a><a name="searchSome(PSI, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>searchSome</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> searchSome(PSI probe,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="searchSome(java.lang.Object,int,java.lang.Object[])">
+<!-- -->
+</a><a name="searchSome(PSI, int, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>searchSome</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> searchSome(PSI probe,
+ int count,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="findAll(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#findAll(org.sikuli.script.Image)">findAll</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="findAll(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(java.lang.String filenameOrText)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#findAll(java.lang.String)">findAll</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="findAll(org.sikuli.script.Pattern)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public java.lang.String findAll(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> pat)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#findAll(org.sikuli.script.Pattern)">findAll</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="searchAll(java.lang.Object,java.lang.Object[])">
+<!-- -->
+</a><a name="searchAll(PSI, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>searchAll</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> searchAll(PSI probe,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="searchAll(java.lang.Object,int,java.lang.Object[])">
+<!-- -->
+</a><a name="searchAll(PSI, int, java.lang.Object...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>searchAll</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a> searchAll(PSI probe,
+ int sorted,
+ java.lang.Object... args)</pre>
+</li>
+</ul>
+<a name="hasChanges(Mat)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasChanges</h4>
+<pre>public boolean hasChanges(Mat current)</pre>
+</li>
+</ul>
+<a name="setMinChanges(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMinChanges</h4>
+<pre>public void setMinChanges(int min)</pre>
+</li>
+</ul>
+<a name="hasNext()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public boolean hasNext()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>hasNext</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#hasNext()">hasNext</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if Finder has a next match, false otherwise</dd></dl>
+</li>
+</ul>
+<a name="next()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> next()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>next</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#next()">next</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the next match or null</dd></dl>
+</li>
+</ul>
+<a name="remove()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public void remove()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Finder.html#remove()">Finder</a></code></strong></div>
+<div class="block">not used</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>remove</code> in interface <code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Finder.html#remove()">remove</a></code> in class <code><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageFinder.html" target="_top">Frames</a></li>
+<li><a href="ImageFinder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImageGroup.html b/Docs/Java/docs/org/sikuli/script/ImageGroup.html
new file mode 100644
index 0000000..40faead
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImageGroup.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ImageGroup</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImageGroup";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageGroup.html" target="_top">Frames</a></li>
+<li><a href="ImageGroup.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImageGroup" class="title">Class ImageGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImageGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">ImageGroup</span>
+extends java.lang.Object</pre>
+<div class="block">An ImageGroup object represents images, that are all in the same folder.<br />
+ the folder can contain a set of sub folders that can be switched dynamically <br />
+ The folder will be found on the image path.<br />
+ The match data of the images can be stored and reloaded.<br />
+ Its main purpose is to support image sets for different environments.<br />
+ At runtime you can switch between image sets without changing the used image names.<br />
+ Based on the stored match data you might produce a new ImageGroup on the fly.<br /></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#close(org.sikuli.script.ImageGroup)">close</a></strong>(<a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> ig)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#isValid()">isValid</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#loadImageFacts()">loadImageFacts</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#open(java.lang.String)">open</a></strong>(java.lang.String name)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#saveImageFacts()">saveImageFacts</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageGroup.html#use(java.lang.String)">use</a></strong>(java.lang.String sub)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="isValid()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isValid</h4>
+<pre>public boolean isValid()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if this group has been found and is loadable</dd></dl>
+</li>
+</ul>
+<a name="open(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre>public static <a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> open(java.lang.String name)</pre>
+</li>
+</ul>
+<a name="close(org.sikuli.script.ImageGroup)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public static void close(<a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a> ig)</pre>
+</li>
+</ul>
+<a name="use(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>use</h4>
+<pre>public boolean use(java.lang.String sub)</pre>
+</li>
+</ul>
+<a name="loadImageFacts()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadImageFacts</h4>
+<pre>public boolean loadImageFacts()</pre>
+</li>
+</ul>
+<a name="saveImageFacts()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>saveImageFacts</h4>
+<pre>public boolean saveImageFacts()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageGroup.html" target="_top">Frames</a></li>
+<li><a href="ImageGroup.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImageLocator.html b/Docs/Java/docs/org/sikuli/script/ImageLocator.html
new file mode 100644
index 0000000..eb11b03
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImageLocator.html
@@ -0,0 +1,529 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ImageLocator</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImageLocator";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageLocator.html" target="_top">Frames</a></li>
+<li><a href="ImageLocator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImageLocator" class="title">Class ImageLocator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImageLocator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>will completely replaced by the classes Image and ImagePath</i></div>
+</div>
+<br>
+<pre>@Deprecated
+public class <span class="strong">ImageLocator</span>
+extends java.lang.Object</pre>
+<div class="block">This class is currently used to locate image files in the filesystem <br />
+ and in the internet (the files are cached locally) <br /></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#ImageLocator()">ImageLocator</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+ </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#addImagePath(java.lang.String)">addImagePath</a></strong>(java.lang.String path)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the end of the list (file path: if it exists)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#addImagePath(java.lang.String[])">addImagePath</a></strong>(java.lang.String[] pl)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ end of the list (file path: if it exists)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#addImagePathFirst(java.lang.String)">addImagePathFirst</a></strong>(java.lang.String path)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the beginning of the list (file path: if it exists) <br />as
+ entry 1 after the current bundlepath (entry 0)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#addImagePathFirst(java.lang.String[])">addImagePathFirst</a></strong>(java.lang.String[] pl)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ beginning of the list (file path: if it exists) <br />as entry 1 after
+ the current bundlepath (entry 0)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#getBundlePath()">getBundlePath</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+ </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.awt.image.BufferedImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#getImage(java.lang.String)">getImage</a></strong>(java.lang.String filename)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">tries to findX the file using locate(filename) and loads it as image if
+ possible</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String[]</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#getImagePath()">getImagePath</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">list entries might be a file path or an url (http/https) <br />list[0]
+ current bundlepath (Settings.BundlePath) (might be null) <br />list[1:n]
+ path's from -DSIKULI_IMAGE_PATH=...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#removeImagePath(java.lang.String)">removeImagePath</a></strong>(java.lang.String path)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#removeImagePath(java.lang.String[])">removeImagePath</a></strong>(java.lang.String[] pl)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#resetImagePath(java.lang.String)">resetImagePath</a></strong>(java.lang.String path)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=...</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#resetImagePath(java.lang.String[])">resetImagePath</a></strong>(java.lang.String[] pl)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImageLocator.html#setBundlePath(java.lang.String)">setBundlePath</a></strong>(java.lang.String bundlePath)</code>
+<div class="block"><strong>Deprecated.</strong> </div>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImageLocator()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImageLocator</h4>
+<pre>public ImageLocator()</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getImagePath()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImagePath</h4>
+<pre>public static java.lang.String[] getImagePath()</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">list entries might be a file path or an url (http/https) <br />list[0]
+ current bundlepath (Settings.BundlePath) (might be null) <br />list[1:n]
+ path's from -DSIKULI_IMAGE_PATH=... <br />list[n+1:] path's added later
+ <br />each path is contained only once <br />each contained file path
+ existed at the time it was added</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>list of absolute path strings (a path might not exist any more)</dd></dl>
+</li>
+</ul>
+<a name="addImagePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addImagePath</h4>
+<pre>public static java.lang.String addImagePath(java.lang.String path)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the end of the list (file path: if it exists)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - absolute or relative path or url <br />might be a path list
+ string with seperator : (or ; Windows)</dd></dl>
+</li>
+</ul>
+<a name="addImagePathFirst(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addImagePathFirst</h4>
+<pre>public static java.lang.String addImagePathFirst(java.lang.String path)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is(are) first removed from the list <br />- and then
+ added to the beginning of the list (file path: if it exists) <br />as
+ entry 1 after the current bundlepath (entry 0)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - absolute or relative path or url <br />might be a path list
+ string with seperator : (or ; Windows)</dd></dl>
+</li>
+</ul>
+<a name="addImagePath(java.lang.String[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addImagePath</h4>
+<pre>public static java.lang.String addImagePath(java.lang.String[] pl)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ end of the list (file path: if it exists)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pl</code> - absolute or relative paths or urls as string array</dd></dl>
+</li>
+</ul>
+<a name="addImagePathFirst(java.lang.String[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addImagePathFirst</h4>
+<pre>public static java.lang.String addImagePathFirst(java.lang.String[] pl)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given paths <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- are removed from the list <br />- and then added to the
+ beginning of the list (file path: if it exists) <br />as entry 1 after
+ the current bundlepath (entry 0)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pl</code> - absolute or relative paths or urls as string array</dd></dl>
+</li>
+</ul>
+<a name="removeImagePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeImagePath</h4>
+<pre>public static void removeImagePath(java.lang.String path)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - absolute or relative path(s) or url(s) might be a path list
+ string with seperator : (or ; Windows)</dd></dl>
+</li>
+</ul>
+<a name="removeImagePath(java.lang.String[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeImagePath</h4>
+<pre>public static void removeImagePath(java.lang.String[] pl)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given path(s) <br />- might be a file path or an url (http/https) <br
+ />- if file path relative: make absolute path based on current working
+ directory <br />- is/are removed from the list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pl</code> - absolute or relative path(s) or url(s) as string array</dd></dl>
+</li>
+</ul>
+<a name="resetImagePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resetImagePath</h4>
+<pre>public static void resetImagePath(java.lang.String path)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=... and
+ Env(SIKULI_IMAGE_PATH)
+ <br /> then the given path(s) are added using addImagePath()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - absolute or relative path(s) or url(s) might be a path list
+ string with seperator : (or ; Windows)</dd></dl>
+</li>
+</ul>
+<a name="resetImagePath(java.lang.String[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resetImagePath</h4>
+<pre>public static void resetImagePath(java.lang.String[] pl)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the current list is emptied <br />then add -DSIKULI_IMAGE_PATH=... and
+ Env(SIKULI_IMAGE_PATH)
+ <br /> then the given path(s) are added using addImagePath()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pl</code> - absolute or relative path(s) or url(s) as string array</dd></dl>
+</li>
+</ul>
+<a name="setBundlePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBundlePath</h4>
+<pre>public static void setBundlePath(java.lang.String bundlePath)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bundlePath</code> - a path string relative, absolute, empty or null</dd></dl>
+</li>
+</ul>
+<a name="getBundlePath()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBundlePath</h4>
+<pre>public static java.lang.String getBundlePath()</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current bundle path</dd></dl>
+</li>
+</ul>
+<a name="getImage(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getImage</h4>
+<pre>public static java.awt.image.BufferedImage getImage(java.lang.String filename)</pre>
+<div class="block"><span class="strong">Deprecated.</span> </div>
+<div class="block">tries to findX the file using locate(filename) and loads it as image if
+ possible</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>image</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImageLocator.html" target="_top">Frames</a></li>
+<li><a href="ImageLocator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImagePath.PathEntry.html b/Docs/Java/docs/org/sikuli/script/ImagePath.PathEntry.html
new file mode 100644
index 0000000..4c5e7f6
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImagePath.PathEntry.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ImagePath.PathEntry</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImagePath.PathEntry";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImagePath.PathEntry.html" target="_top">Frames</a></li>
+<li><a href="ImagePath.PathEntry.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#methods_inherited_from_class_java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImagePath.PathEntry" class="title">Class ImagePath.PathEntry</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImagePath.PathEntry</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="strong">ImagePath.PathEntry</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.PathEntry.html#pathGiven">pathGiven</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.net.URL</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.PathEntry.html#pathURL">pathURL</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImagePath.PathEntry.html#ImagePath.PathEntry(java.lang.String, java.net.URL)">ImagePath.PathEntry</a></strong>(java.lang.String g,
+ java.net.URL p)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="pathURL">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pathURL</h4>
+<pre>public java.net.URL pathURL</pre>
+</li>
+</ul>
+<a name="pathGiven">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>pathGiven</h4>
+<pre>public java.lang.String pathGiven</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImagePath.PathEntry(java.lang.String, java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImagePath.PathEntry</h4>
+<pre>public ImagePath.PathEntry(java.lang.String g,
+ java.net.URL p)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImagePath.PathEntry.html" target="_top">Frames</a></li>
+<li><a href="ImagePath.PathEntry.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#methods_inherited_from_class_java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ImagePath.html b/Docs/Java/docs/org/sikuli/script/ImagePath.html
new file mode 100644
index 0000000..598b88f
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ImagePath.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ImagePath</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ImagePath";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImagePath.html" target="_top">Frames</a></li>
+<li><a href="ImagePath.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ImagePath" class="title">Class ImagePath</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ImagePath</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">ImagePath</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#ImagePath()">ImagePath</a></strong>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#add(java.lang.String)">add</a></strong>(java.lang.String mainPath)</code>
+<div class="block">see; <a href="../../../org/sikuli/script/ImagePath.html#add(java.lang.String, java.lang.String)"><code>add(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#add(java.lang.String, java.lang.String)">add</a></strong>(java.lang.String mainPath,
+ java.lang.String altPath)</code>
+<div class="block">Set the primary image path to the top folder level of a jar based on the given class name (must
+ be found on class path).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#add(java.net.URL)">add</a></strong>(java.net.URL pURL)</code>
+<div class="block">add entry to end of list</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.net.URL</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#find(java.lang.String)">find</a></strong>(java.lang.String fname)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#getBundlePath()">getBundlePath</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.util.List<<a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#getPaths()">getPaths</a></strong>()</code>
+<div class="block">get the list of path entries</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.io.BufferedReader</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#open(java.lang.String)">open</a></strong>(java.lang.String fname)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#printPaths()">printPaths</a></strong>()</code>
+<div class="block">print the list of path entries</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#remove(java.lang.String)">remove</a></strong>(java.lang.String path)</code>
+<div class="block">remove entry with given path</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#remove(java.net.URL)">remove</a></strong>(java.net.URL pURL)</code>
+<div class="block">remove entry with given URL</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#reset()">reset</a></strong>()</code>
+<div class="block">empty list and add given path</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#reset(java.lang.String)">reset</a></strong>(java.lang.String path)</code>
+<div class="block">empty list and add given path</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#resetBundlePath(java.lang.String)">resetBundlePath</a></strong>(java.lang.String bundlePath)</code>
+<div class="block">the resetting version of setBundlePath for IDE usage</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ImagePath.html#setBundlePath(java.lang.String)">setBundlePath</a></strong>(java.lang.String bundlePath)</code>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ImagePath()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ImagePath</h4>
+<pre>public ImagePath()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPaths()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPaths</h4>
+<pre>public static java.util.List<<a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a>> getPaths()</pre>
+<div class="block">get the list of path entries</div>
+</li>
+</ul>
+<a name="printPaths()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>printPaths</h4>
+<pre>public static void printPaths()</pre>
+<div class="block">print the list of path entries</div>
+</li>
+</ul>
+<a name="find(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public static java.net.URL find(java.lang.String fname)</pre>
+</li>
+</ul>
+<a name="open(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre>public static java.io.BufferedReader open(java.lang.String fname)</pre>
+</li>
+</ul>
+<a name="add(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static boolean add(java.lang.String mainPath)</pre>
+<div class="block">see; <a href="../../../org/sikuli/script/ImagePath.html#add(java.lang.String, java.lang.String)"><code>add(String, String)</code></a></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mainPath</code> - a valid classname optionally followed by /subfolder...</dd></dl>
+</li>
+</ul>
+<a name="add(java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static boolean add(java.lang.String mainPath,
+ java.lang.String altPath)</pre>
+<div class="block">Set the primary image path to the top folder level of a jar based on the given class name (must
+ be found on class path). When not running from a jar (e.g. running in some IDE) the path will be the
+ path to the compiled classes (for Maven based projects this is target/classes that contains all
+ stuff copied from src/main/resources automatically)<br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mainPath</code> - a valid classname optionally followed by /subfolder...</dd><dd><code>altPath</code> - alternative image folder, when not running from jar (absolute path)</dd></dl>
+</li>
+</ul>
+<a name="add(java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static void add(java.net.URL pURL)</pre>
+<div class="block">add entry to end of list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pURL</code> - </dd></dl>
+</li>
+</ul>
+<a name="remove(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public static boolean remove(java.lang.String path)</pre>
+<div class="block">remove entry with given path</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true on success, false ozherwise</dd></dl>
+</li>
+</ul>
+<a name="remove(java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public static boolean remove(java.net.URL pURL)</pre>
+<div class="block">remove entry with given URL</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pURL</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true on success, false ozherwise</dd></dl>
+</li>
+</ul>
+<a name="reset(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public static boolean reset(java.lang.String path)</pre>
+<div class="block">empty list and add given path</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true on success, false ozherwise</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public static boolean reset()</pre>
+<div class="block">empty list and add given path</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true</dd></dl>
+</li>
+</ul>
+<a name="setBundlePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBundlePath</h4>
+<pre>public static boolean setBundlePath(java.lang.String bundlePath)</pre>
+<div class="block">the given path is added to the list replacing the first entry and
+ Settings.BundlePath is replaced as well</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bundlePath</code> - a file path string relative or absolute</dd>
+<dt><span class="strong">Returns:</span></dt><dd>true on success, false otherwise</dd></dl>
+</li>
+</ul>
+<a name="resetBundlePath(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resetBundlePath</h4>
+<pre>public static boolean resetBundlePath(java.lang.String bundlePath)</pre>
+<div class="block">the resetting version of setBundlePath for IDE usage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bundlePath</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true on success, false otherwise</dd></dl>
+</li>
+</ul>
+<a name="getBundlePath()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBundlePath</h4>
+<pre>public static java.lang.String getBundlePath()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current bundle path or null if invalid</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ImagePath.html" target="_top">Frames</a></li>
+<li><a href="ImagePath.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Location.html b/Docs/Java/docs/org/sikuli/script/Location.html
new file mode 100644
index 0000000..03ac15c
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Location.html
@@ -0,0 +1,914 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Location</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Location";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Location.html" target="_top">Frames</a></li>
+<li><a href="Location.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Location" class="title">Class Location</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Location</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Location</span>
+extends java.lang.Object</pre>
+<div class="block">A point like AWT.Point using global coordinates, hence modifications might move location out of
+ any screen (not checked as is done with region)</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#x">x</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#y">y</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Location.html#Location(double, double)">Location</a></strong>(double x,
+ double y)</code>
+<div class="block">to allow calculated x and y that might not be integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Location.html#Location(int, int)">Location</a></strong>(int x,
+ int y)</code>
+<div class="block">a new point at the given coordinates</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Location.html#Location(org.sikuli.script.Location)">Location</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">duplicates the point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Location.html#Location(java.awt.Point)">Location</a></strong>(java.awt.Point point)</code>
+<div class="block">create from AWT point</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#above(int)">above</a></strong>(int dy)</code>
+<div class="block">creates a point at the given offset above, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#below(int)">below</a></strong>(int dy)</code>
+<div class="block">creates a point at the given offset below, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#click()">click</a></strong>()</code>
+<div class="block">Move the mouse to this location point and click left</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#copyTo(int)">copyTo</a></strong>(int scrID)</code>
+<div class="block">new point with same offset to current screen's top left on given screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#copyTo(org.sikuli.script.Screen)">copyTo</a></strong>(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> screen)</code>
+<div class="block">New point with same offset to current screen's top left on given screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#doubleClick()">doubleClick</a></strong>()</code>
+<div class="block">Move the mouse to this location point and double click left</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.Color</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getColor()">getColor</a></strong>()</code>
+<div class="block">Get the color at the given Point for details: see java.awt.Robot and ...Color</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getOffset(org.sikuli.script.Location)">getOffset</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">the offset of given point to this Location</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.Point</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getPoint()">getPoint</a></strong>()</code>
+<div class="block">get as AWT point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getScreen()">getScreen</a></strong>()</code>
+<div class="block">Returns null, if outside of any screen<br />
+ subsequent actions might crash</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getX()">getX</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#getY()">getY</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#grow(int)">grow</a></strong>(int wh)</code>
+<div class="block">create a region with this point as center and the given size</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#grow(int, int)">grow</a></strong>(int w,
+ int h)</code>
+<div class="block">create a region with this point as center and the given size</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#grow(int, int, int, int)">grow</a></strong>(int CREATE_X_DIRECTION,
+ int CREATE_Y_DIRECTION,
+ int w,
+ int h)</code>
+<div class="block">create a region with a corner at this point<br />as specified with x y<br /> 0 0 top left<br />
+ 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#hover()">hover</a></strong>()</code>
+<div class="block">Move the mouse to this location point</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#isOtherScreen()">isOtherScreen</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#left(int)">left</a></strong>(int dx)</code>
+<div class="block">creates a point at the given offset to the left, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#move(int, int)">move</a></strong>(int X,
+ int Y)</code>
+<div class="block">convenience: like awt point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#moveFor(int, int)">moveFor</a></strong>(int dx,
+ int dy)</code>
+<div class="block">moves the point the given amounts in the x and y direction, might be negative <br />might move
+ point outside of any screen, not checked</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#moveTo(int, int)">moveTo</a></strong>(int X,
+ int Y)</code>
+<div class="block">changes the locations x and y value to the given values (moves it) <br />might move point
+ outside of any screen, not checked</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#offset(int, int)">offset</a></strong>(int dx,
+ int dy)</code>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#offset(org.sikuli.script.Location)">offset</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#right(int)">right</a></strong>(int dx)</code>
+<div class="block">creates a point at the given offset to the right, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#rightClick()">rightClick</a></strong>()</code>
+<div class="block">Move the mouse to this location point and click right</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#setLocation(double, double)">setLocation</a></strong>(double x,
+ double y)</code>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#setLocation(int, int)">setLocation</a></strong>(int x,
+ int y)</code>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#setOtherScreen(org.sikuli.script.Screen)">setOtherScreen</a></strong>(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#toString()">toString</a></strong>()</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#toStringShort()">toStringShort</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Location.html#translate(int, int)">translate</a></strong>(int dx,
+ int dy)</code>
+<div class="block">convenience: like awt point</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="x">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>x</h4>
+<pre>public int x</pre>
+</li>
+</ul>
+<a name="y">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>y</h4>
+<pre>public int y</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Location(double, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Location</h4>
+<pre>public Location(double x,
+ double y)</pre>
+<div class="block">to allow calculated x and y that might not be integers</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - truncated to the integer part</dd></dl>
+</li>
+</ul>
+<a name="Location(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Location</h4>
+<pre>public Location(int x,
+ int y)</pre>
+<div class="block">a new point at the given coordinates</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - </dd></dl>
+</li>
+</ul>
+<a name="Location(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Location</h4>
+<pre>public Location(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">duplicates the point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd></dl>
+</li>
+</ul>
+<a name="Location(java.awt.Point)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Location</h4>
+<pre>public Location(java.awt.Point point)</pre>
+<div class="block">create from AWT point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getX()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getX</h4>
+<pre>public int getX()</pre>
+</li>
+</ul>
+<a name="getY()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getY</h4>
+<pre>public int getY()</pre>
+</li>
+</ul>
+<a name="getPoint()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPoint</h4>
+<pre>public java.awt.Point getPoint()</pre>
+<div class="block">get as AWT point</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point</dd></dl>
+</li>
+</ul>
+<a name="setLocation(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLocation</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> setLocation(int x,
+ int y)</pre>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>self/this</dd></dl>
+</li>
+</ul>
+<a name="setLocation(double, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLocation</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> setLocation(double x,
+ double y)</pre>
+<div class="block">sets the coordinates to the given values (moves it)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>self/this</dd></dl>
+</li>
+</ul>
+<a name="getScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScreen</h4>
+<pre>public <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getScreen()</pre>
+<div class="block">Returns null, if outside of any screen<br />
+ subsequent actions might crash</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the screen, that contains the given point.<br /></dd></dl>
+</li>
+</ul>
+<a name="setOtherScreen(org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOtherScreen</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> setOtherScreen(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> scr)</pre>
+</li>
+</ul>
+<a name="isOtherScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOtherScreen</h4>
+<pre>public boolean isOtherScreen()</pre>
+</li>
+</ul>
+<a name="getColor()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getColor</h4>
+<pre>public java.awt.Color getColor()</pre>
+<div class="block">Get the color at the given Point for details: see java.awt.Robot and ...Color</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>The Color of the Point</dd></dl>
+</li>
+</ul>
+<a name="getOffset(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOffset</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getOffset(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">the offset of given point to this Location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>relative offset</dd></dl>
+</li>
+</ul>
+<a name="grow(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int w,
+ int h)</pre>
+<div class="block">create a region with this point as center and the given size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>w</code> - the width</dd><dd><code>h</code> - the height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int wh)</pre>
+<div class="block">create a region with this point as center and the given size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>wh</code> - the width and height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int CREATE_X_DIRECTION,
+ int CREATE_Y_DIRECTION,
+ int w,
+ int h)</pre>
+<div class="block">create a region with a corner at this point<br />as specified with x y<br /> 0 0 top left<br />
+ 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>CREATE_X_DIRECTION</code> - == 0 is left side !=0 is right side, see <code>Region#CREATE_X_DIRECTION_LEFT</code>, <code>Region#CREATE_X_DIRECTION_RIGHT</code></dd><dd><code>CREATE_Y_DIRECTION</code> - == 0 is top side !=0 is bottom side, see <code>Region#CREATE_Y_DIRECTION_TOP</code>, <code>Region#CREATE_Y_DIRECTION_BOTTOM</code></dd><dd><code>w</code> - the width</dd><dd><code>h</code> - the height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="moveFor(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>moveFor</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> moveFor(int dx,
+ int dy)</pre>
+<div class="block">moves the point the given amounts in the x and y direction, might be negative <br />might move
+ point outside of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the location itself modified</dd></dl>
+</li>
+</ul>
+<a name="translate(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>translate</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> translate(int dx,
+ int dy)</pre>
+<div class="block">convenience: like awt point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the location itself modified</dd></dl>
+</li>
+</ul>
+<a name="moveTo(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>moveTo</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> moveTo(int X,
+ int Y)</pre>
+<div class="block">changes the locations x and y value to the given values (moves it) <br />might move point
+ outside of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - </dd><dd><code>Y</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the location itself modified</dd></dl>
+</li>
+</ul>
+<a name="move(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>move</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> move(int X,
+ int Y)</pre>
+<div class="block">convenience: like awt point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - </dd><dd><code>Y</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the location itself modified</dd></dl>
+</li>
+</ul>
+<a name="offset(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>offset</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> offset(int dx,
+ int dy)</pre>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="offset(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>offset</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> offset(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">creates a point at the given offset, might be negative <br />might create a point outside of
+ any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="left(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>left</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> left(int dx)</pre>
+<div class="block">creates a point at the given offset to the left, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="right(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>right</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> right(int dx)</pre>
+<div class="block">creates a point at the given offset to the right, might be negative <br />might create a point
+ outside of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="above(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>above</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> above(int dy)</pre>
+<div class="block">creates a point at the given offset above, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="below(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>below</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> below(int dy)</pre>
+<div class="block">creates a point at the given offset below, might be negative <br />might create a point outside
+ of any screen, not checked</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="copyTo(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyTo</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> copyTo(int scrID)</pre>
+<div class="block">new point with same offset to current screen's top left on given screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scrID</code> - number of screen</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="copyTo(org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyTo</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> copyTo(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> screen)</pre>
+<div class="block">New point with same offset to current screen's top left on given screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>screen</code> - new parent screen</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new location</dd></dl>
+</li>
+</ul>
+<a name="hover()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hover</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> hover()</pre>
+<div class="block">Move the mouse to this location point</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>this</dd></dl>
+</li>
+</ul>
+<a name="click()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>click</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> click()</pre>
+<div class="block">Move the mouse to this location point and click left</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>this</dd></dl>
+</li>
+</ul>
+<a name="doubleClick()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleClick</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> doubleClick()</pre>
+<div class="block">Move the mouse to this location point and double click left</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>this</dd></dl>
+</li>
+</ul>
+<a name="rightClick()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightClick</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> rightClick()</pre>
+<div class="block">Move the mouse to this location point and click right</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>this</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the description</dd></dl>
+</li>
+</ul>
+<a name="toStringShort()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toStringShort</h4>
+<pre>public java.lang.String toStringShort()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a shorter description</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Location.html" target="_top">Frames</a></li>
+<li><a href="Location.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Match.html b/Docs/Java/docs/org/sikuli/script/Match.html
new file mode 100644
index 0000000..e844daa
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Match.html
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Match</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Match";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Match.html" target="_top">Frames</a></li>
+<li><a href="Match.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.Region">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Match" class="title">Class Match</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">org.sikuli.script.Region</a></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Match</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.lang.Comparable</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">Match</span>
+extends <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a>
+implements java.lang.Comparable</pre>
+<div class="block">holds the result of a findX operation, is itself the region on the screen,
+ where the image was found and hence inherits all methods from Region<br />
+ attributes:<br /> the match score (0 ... 1.0)<br /> the click target (e.g.
+ from Pattern)<br /> the filename of the used image<br />or the text used for
+ findX text</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.sikuli.script.Region">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></h3>
+<code><a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_LEFT">CREATE_X_DIRECTION_LEFT</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_RIGHT">CREATE_X_DIRECTION_RIGHT</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_BOTTOM">CREATE_Y_DIRECTION_BOTTOM</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_TOP">CREATE_Y_DIRECTION_TOP</a>, <a href="../../../org/sikuli/script/Region.html#E2">E2</a>, <a href="../.. [...]
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Match.html#Match(org.sikuli.script.Match)">Match</a></strong>(<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> m)</code>
+<div class="block">create a copy of Match object<br />
+ to e.g.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#compareTo(java.lang.Object)">compareTo</a></strong>(java.lang.Object o)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#equals(java.lang.Object)">equals</a></strong>(java.lang.Object oThat)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.image.BufferedImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getImage()">getImage</a></strong>()</code>
+<div class="block">get the image used for searching as in-memory image</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getImageFilename()">getImageFilename</a></strong>()</code>
+<div class="block">get the filename of the image used for searching</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getScore()">getScore</a></strong>()</code>
+<div class="block">the match score</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getTarget()">getTarget</a></strong>()</code>
+<div class="block">convenience method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getTargetOffset()">getTargetOffset</a></strong>()</code>
+<div class="block">convenience - same as for Pattern</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#getText()">getText</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#setTargetOffset(int, int)">setTargetOffset</a></strong>(int x,
+ int y)</code>
+<div class="block">like Pattern.TargetOffset sets the click target relative to the center</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#setTargetOffset(org.sikuli.script.Location)">setTargetOffset</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> offset)</code>
+<div class="block">like Pattern.TargetOffset sets the click target by offset relative to the
+ center</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#setTimes(long, long)">setTimes</a></strong>(long ftime,
+ long stime)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#toString()">toString</a></strong>()</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Match.html#toStringShort()">toStringShort</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.sikuli.script.Region">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></h3>
+<code><a href="../../../org/sikuli/script/Region.html#above()">above</a>, <a href="../../../org/sikuli/script/Region.html#above(int)">above</a>, <a href="../../../org/sikuli/script/Region.html#aboveAt()">aboveAt</a>, <a href="../../../org/sikuli/script/Region.html#aboveAt(int)">aboveAt</a>, <a href="../../../org/sikuli/script/Region.html#add(int, int, int, int)">add</a>, <a href="../../../org/sikuli/script/Region.html#add(org.sikuli.script.Location)">add</a>, <a href="../../../org/sikuli [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Match(org.sikuli.script.Match)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Match</h4>
+<pre>public Match(<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> m)</pre>
+<div class="block">create a copy of Match object<br />
+ to e.g. set another TargetOffset for same match</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>m</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="setTimes(long, long)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimes</h4>
+<pre>public void setTimes(long ftime,
+ long stime)</pre>
+</li>
+</ul>
+<a name="getScore()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScore</h4>
+<pre>public double getScore()</pre>
+<div class="block">the match score</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a decimal value between 0 (no match) and 1 (exact match)</dd></dl>
+</li>
+</ul>
+<a name="getTarget()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTarget</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTarget()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Region.html#getTarget()">Region</a></code></strong></div>
+<div class="block">convenience method</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#getTarget()">getTarget</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region's center</dd></dl>
+</li>
+</ul>
+<a name="setTargetOffset(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTargetOffset</h4>
+<pre>public void setTargetOffset(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> offset)</pre>
+<div class="block">like Pattern.TargetOffset sets the click target by offset relative to the
+ center</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>offset</code> - </dd></dl>
+</li>
+</ul>
+<a name="setTargetOffset(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTargetOffset</h4>
+<pre>public void setTargetOffset(int x,
+ int y)</pre>
+<div class="block">like Pattern.TargetOffset sets the click target relative to the center</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>y</code> - </dd></dl>
+</li>
+</ul>
+<a name="getTargetOffset()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTargetOffset</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTargetOffset()</pre>
+<div class="block">convenience - same as for Pattern</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the relative offset to the center</dd></dl>
+</li>
+</ul>
+<a name="getImage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImage</h4>
+<pre>public java.awt.image.BufferedImage getImage()</pre>
+<div class="block">get the image used for searching as in-memory image</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>image</dd></dl>
+</li>
+</ul>
+<a name="getImageFilename()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImageFilename</h4>
+<pre>public java.lang.String getImageFilename()</pre>
+<div class="block">get the filename of the image used for searching</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filename</dd></dl>
+</li>
+</ul>
+<a name="getText()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getText</h4>
+<pre>public java.lang.String getText()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the text used for searching</dd></dl>
+</li>
+</ul>
+<a name="compareTo(java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compareTo</h4>
+<pre>public int compareTo(java.lang.Object o)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>compareTo</code> in interface <code>java.lang.Comparable</code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public boolean equals(java.lang.Object oThat)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>equals</code> in class <code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Region.html#toString()">Region</a></code></strong></div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#toString()">toString</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the description</dd></dl>
+</li>
+</ul>
+<a name="toStringShort()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toStringShort</h4>
+<pre>public java.lang.String toStringShort()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#toStringShort()">toStringShort</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a compact description</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Match.html" target="_top">Frames</a></li>
+<li><a href="Match.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.Region">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Mouse.html b/Docs/Java/docs/org/sikuli/script/Mouse.html
new file mode 100644
index 0000000..7130ce9
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Mouse.html
@@ -0,0 +1,611 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Mouse</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Mouse";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Mouse.html" target="_top">Frames</a></li>
+<li><a href="Mouse.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li>Constr | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Mouse" class="title">Class Mouse</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Mouse</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Mouse</span>
+extends java.lang.Object</pre>
+<div class="block">Main pupose is to coordinate the mouse usage among threads
+ At any one time, the mouse has one owner (usually a Region object)
+ who exclusively uses the mouse, all others wait for the mouse to be free again
+ if more than on possible owner is waiting, the next owner is uncertain
+ It is detected, when the mouse is moved outside the script, which can be
+ used for appropriate actions (e.g. pause a script)
+ the mouse can be blocked for a longer time, so only this owner can use
+ the mouse (like some transactional processing)
+ Currently deadlocks and infinite waits are not detected, but should not happen ;-)
+ Contained are methods to use the mouse (click, move, button down/up) as is</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#LEFT">LEFT</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#MIDDLE">MIDDLE</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#MouseMovedAction">MouseMovedAction</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#MouseMovedIgnore">MouseMovedIgnore</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#MouseMovedPause">MouseMovedPause</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#MouseMovedShow">MouseMovedShow</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#RIGHT">RIGHT</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#WHEEL_DOWN">WHEEL_DOWN</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#WHEEL_UP">WHEEL_UP</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#block()">block</a></strong>()</code>
+<div class="block">to block the mouse globally +br
+ only the contained mouse methods without owner will be granted</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#block(java.lang.Object)">block</a></strong>(java.lang.Object owner)</code>
+<div class="block">to block the mouse globally for the given owner +br
+ only the contained mouse methods having the same owner will be granted</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#click(org.sikuli.script.Location, java.lang.String, java.lang.Integer...)">click</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ java.lang.String action,
+ java.lang.Integer... args)</code>
+<div class="block">to click (left, right, middle - single or double) at the given location using the given button
+ only useable for local screens
+
+ timing parameters: +br
+ - one value +br
+ < 0 wait before mouse down +br
+ > 0 wait after mouse up +br
+ - 2 or 3 values
+ 1st wait before mouse down +br
+ 2nd wait after mouse up +br
+ 3rd inner wait (milli secs, cut to 1000): pause between mouse down and up (Settings.ClickDelay)
+
+ wait before and after: > 59 taken as milli secs - ;lt& are seconds</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#down(int)">down</a></strong>(int buttons)</code>
+<div class="block">press and hold the given buttons</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#getMouseMovedResponse()">getMouseMovedResponse</a></strong>()</code>
+<div class="block">current setting what to do if mouse is moved outside Sikuli's mouse protection</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#move(org.sikuli.script.Location)">move</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">move the mouse to the given location (local and remote)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#setMouseMovedResponse(int)">setMouseMovedResponse</a></strong>(int mouseMovedResponse)</code>
+<div class="block">what to do if mouse is moved outside Sikuli's mouse protection +br
+ - Mouse.MouseMovedIgnore (0) ignore it (default) +br
+ - Mouse.MouseMovedShow (1) show and ignore it +br
+ - Mouse.MouseMovedPause (2) show it and pause until user says continue +br
+ - Mouse.MouseMovedAction (3) perform a user defined action (not implemented yet, currently 0) +br</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#unblock()">unblock</a></strong>()</code>
+<div class="block">free the mouse globally after a block()</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#unblock(java.lang.Object)">unblock</a></strong>(java.lang.Object owner)</code>
+<div class="block">free the mouse globally for this owner after a block(owner)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#up()">up</a></strong>()</code>
+<div class="block">release all buttons</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#up(int)">up</a></strong>(int buttons)</code>
+<div class="block">release the given buttons</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Mouse.html#wheel(int, int)">wheel</a></strong>(int direction,
+ int steps)</code>
+<div class="block">move mouse using mouse wheel in the given direction the given steps +br
+ the result is system dependent</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="MouseMovedIgnore">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MouseMovedIgnore</h4>
+<pre>public static final int MouseMovedIgnore</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.MouseMovedIgnore">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MouseMovedShow">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MouseMovedShow</h4>
+<pre>public static final int MouseMovedShow</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.MouseMovedShow">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MouseMovedPause">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MouseMovedPause</h4>
+<pre>public static final int MouseMovedPause</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.MouseMovedPause">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MouseMovedAction">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MouseMovedAction</h4>
+<pre>public static final int MouseMovedAction</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.MouseMovedAction">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="LEFT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LEFT</h4>
+<pre>public static final int LEFT</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.LEFT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MIDDLE">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MIDDLE</h4>
+<pre>public static final int MIDDLE</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.MIDDLE">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="RIGHT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RIGHT</h4>
+<pre>public static final int RIGHT</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.RIGHT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WHEEL_UP">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WHEEL_UP</h4>
+<pre>public static final int WHEEL_UP</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Mouse.WHEEL_UP">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WHEEL_DOWN">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WHEEL_DOWN</h4>
+<pre>public static int WHEEL_DOWN</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMouseMovedResponse()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMouseMovedResponse</h4>
+<pre>public static int getMouseMovedResponse()</pre>
+<div class="block">current setting what to do if mouse is moved outside Sikuli's mouse protection</div>
+</li>
+</ul>
+<a name="setMouseMovedResponse(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMouseMovedResponse</h4>
+<pre>public static void setMouseMovedResponse(int mouseMovedResponse)</pre>
+<div class="block">what to do if mouse is moved outside Sikuli's mouse protection +br
+ - Mouse.MouseMovedIgnore (0) ignore it (default) +br
+ - Mouse.MouseMovedShow (1) show and ignore it +br
+ - Mouse.MouseMovedPause (2) show it and pause until user says continue +br
+ - Mouse.MouseMovedAction (3) perform a user defined action (not implemented yet, currently 0) +br</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mouseMovedResponse</code> - </dd></dl>
+</li>
+</ul>
+<a name="block()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>block</h4>
+<pre>public static boolean block()</pre>
+<div class="block">to block the mouse globally +br
+ only the contained mouse methods without owner will be granted</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="block(java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>block</h4>
+<pre>public static boolean block(java.lang.Object owner)</pre>
+<div class="block">to block the mouse globally for the given owner +br
+ only the contained mouse methods having the same owner will be granted</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="unblock()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unblock</h4>
+<pre>public static boolean unblock()</pre>
+<div class="block">free the mouse globally after a block()</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>success (false means: not blocked currently)</dd></dl>
+</li>
+</ul>
+<a name="unblock(java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unblock</h4>
+<pre>public static boolean unblock(java.lang.Object owner)</pre>
+<div class="block">free the mouse globally for this owner after a block(owner)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>success (false means: not blocked currently for this owner)</dd></dl>
+</li>
+</ul>
+<a name="click(org.sikuli.script.Location, java.lang.String, java.lang.Integer...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>click</h4>
+<pre>public static <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> click(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ java.lang.String action,
+ java.lang.Integer... args)</pre>
+<div class="block">to click (left, right, middle - single or double) at the given location using the given button
+ only useable for local screens
+
+ timing parameters: +br
+ - one value +br
+ < 0 wait before mouse down +br
+ > 0 wait after mouse up +br
+ - 2 or 3 values
+ 1st wait before mouse down +br
+ 2nd wait after mouse up +br
+ 3rd inner wait (milli secs, cut to 1000): pause between mouse down and up (Settings.ClickDelay)
+
+ wait before and after: > 59 taken as milli secs - ;lt& are seconds</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - where to click</dd><dd><code>action</code> - L,R,M left, right, middle - D means double click</dd><dd><code>args</code> - timing parameters</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the location</dd></dl>
+</li>
+</ul>
+<a name="move(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>move</h4>
+<pre>public static int move(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">move the mouse to the given location (local and remote)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 for success, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="down(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>down</h4>
+<pre>public static void down(int buttons)</pre>
+<div class="block">press and hold the given buttons</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>buttons</code> - </dd></dl>
+</li>
+</ul>
+<a name="up()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>up</h4>
+<pre>public static void up()</pre>
+<div class="block">release all buttons</div>
+</li>
+</ul>
+<a name="up(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>up</h4>
+<pre>public static void up(int buttons)</pre>
+<div class="block">release the given buttons</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>buttons</code> - (0 releases all buttons)</dd></dl>
+</li>
+</ul>
+<a name="wheel(int, int)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>wheel</h4>
+<pre>public static void wheel(int direction,
+ int steps)</pre>
+<div class="block">move mouse using mouse wheel in the given direction the given steps +br
+ the result is system dependent</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>direction</code> - </dd><dd><code>steps</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Mouse.html" target="_top">Frames</a></li>
+<li><a href="Mouse.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li>Constr | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li>Constr | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Observer.Event.html b/Docs/Java/docs/org/sikuli/script/Observer.Event.html
new file mode 100644
index 0000000..ed2d1a7
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Observer.Event.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Observer.Event</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Observer.Event";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Observer.Event.html" target="_top">Frames</a></li>
+<li><a href="Observer.Event.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.sikuli.script.SikuliEvent">Nested</a> | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.SikuliEvent">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Observer.Event" class="title">Class Observer.Event</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">org.sikuli.script.SikuliEvent</a></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Observer.Event</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="strong">Observer.Event</span>
+extends <a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.sikuli.script.SikuliEvent">
+<!-- -->
+</a>
+<h3>Nested classes/interfaces inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></h3>
+<code><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.sikuli.script.SikuliEvent">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></h3>
+<code><a href="../../../org/sikuli/script/SikuliEvent.html#changes">changes</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#match">match</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#pattern">pattern</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#region">region</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#type">type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Observer.Event.html#Observer.Event()">Observer.Event</a></strong>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.Event.html#getTime()">getTime</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.sikuli.script.SikuliEvent">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></h3>
+<code><a href="../../../org/sikuli/script/SikuliEvent.html#getCount()">getCount</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#getMatch()">getMatch</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#getPattern()">getPattern</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#getRegion()">getRegion</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#repeat()">repeat</a>, <a href="../../../org/sikuli/script/SikuliEvent.html#repeat(long)">repeat</a>, <a href=". [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Observer.Event()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Observer.Event</h4>
+<pre>public Observer.Event()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTime()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTime</h4>
+<pre>public long getTime()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Observer.Event.html" target="_top">Frames</a></li>
+<li><a href="Observer.Event.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.sikuli.script.SikuliEvent">Nested</a> | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.SikuliEvent">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Observer.html b/Docs/Java/docs/org/sikuli/script/Observer.html
new file mode 100644
index 0000000..daa417c
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Observer.html
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Observer</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Observer";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Observer.html" target="_top">Frames</a></li>
+<li><a href="Observer.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Observer" class="title">Class Observer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Observer</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Observer</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Observer.html#Observer()">Observer</a></strong>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#add(org.sikuli.script.Region, org.sikuli.script.ObserverCallBack, org.sikuli.script.SikuliEvent.Type)">add</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ <a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a> obs,
+ <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> type)</code>
+<div class="block">adds an Observer with a callback to the list</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#add(org.sikuli.script.Region, java.lang.String, org.sikuli.script.SikuliEvent.Type)">add</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name,
+ <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> type)</code>
+<div class="block">adds an observer to the list having no callback</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#add(java.lang.String)">add</a></strong>(java.lang.String name)</code>
+<div class="block">adds an observer of type GNERIC to the list having no callback</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#addEvent(java.lang.String, java.lang.Object)">addEvent</a></strong>(java.lang.String name,
+ java.lang.Object pev)</code>
+<div class="block">add a new event to the list</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#clear()">clear</a></strong>()</code>
+<div class="block">stop and remove all observers and their registered events</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#getEvent(java.lang.String)">getEvent</a></strong>(java.lang.String name)</code>
+<div class="block">remove and return the latest event for the named observer <br />
+ earlier events are removed</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#getEvents()">getEvents</a></strong>()</code>
+<div class="block">return the latest events (these are preserved) <br />
+ earlier events for the same observer are removed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#getEvents(org.sikuli.script.Region)">getEvents</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code>
+<div class="block">remove and return the latest events for that region <br />
+ earlier events are removed</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#hasEvent(org.sikuli.script.Region, java.lang.String)">hasEvent</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name)</code>
+<div class="block">are their any events registered for the region's observer having this name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#hasEvent(java.lang.String)">hasEvent</a></strong>(java.lang.String name)</code>
+<div class="block">are their any events registered for the observer having this name</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#hasEvents()">hasEvents</a></strong>()</code>
+<div class="block">are their any events registered</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#hasEvents(org.sikuli.script.Region)">hasEvents</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code>
+<div class="block">are their any events registered for this region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#remove(org.sikuli.script.Region)">remove</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code>
+<div class="block">stop and remove all observers registered for this region from the list <br />
+ registered events for those observers are removed as well</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#remove(org.sikuli.script.Region, java.lang.String)">remove</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name)</code>
+<div class="block">stop and remove the observer registered for this region from the list <br />
+ registered events for that observer are removed as well</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Observer.html#remove(java.lang.String)">remove</a></strong>(java.lang.String name)</code>
+<div class="block">remove the observer from the list, a region observer will be stopped <br />
+ registered events for that observer are removed as well</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Observer()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Observer</h4>
+<pre>public Observer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="add(org.sikuli.script.Region, org.sikuli.script.ObserverCallBack, org.sikuli.script.SikuliEvent.Type)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static java.lang.String add(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ <a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a> obs,
+ <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> type)</pre>
+<div class="block">adds an Observer with a callback to the list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - the observed region</dd><dd><code>obs</code> - the callback</dd><dd><code>type</code> - one off Observer.Type.APPEAR, VANISH, CHANGE, GENERIC</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a unique name derived from time or null if not possible</dd></dl>
+</li>
+</ul>
+<a name="add(org.sikuli.script.Region, java.lang.String, org.sikuli.script.SikuliEvent.Type)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static java.lang.String add(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name,
+ <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> type)</pre>
+<div class="block">adds an observer to the list having no callback</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - the observed region</dd><dd><code>name</code> - a unique name</dd><dd><code>type</code> - one off Observer.Type.APPEAR, VANISH, CHANGE, GENERIC</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the observers name or null if not possible (duplicate?)</dd></dl>
+</li>
+</ul>
+<a name="add(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static java.lang.String add(java.lang.String name)</pre>
+<div class="block">adds an observer of type GNERIC to the list having no callback</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - a unique name</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the observers name or null if not possible (duplicate?)</dd></dl>
+</li>
+</ul>
+<a name="remove(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public static boolean remove(java.lang.String name)</pre>
+<div class="block">remove the observer from the list, a region observer will be stopped <br />
+ registered events for that observer are removed as well</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - name of observer</dd>
+<dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="remove(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public static boolean remove(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+<div class="block">stop and remove all observers registered for this region from the list <br />
+ registered events for those observers are removed as well</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - name of observer</dd>
+<dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="remove(org.sikuli.script.Region, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public static boolean remove(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name)</pre>
+<div class="block">stop and remove the observer registered for this region from the list <br />
+ registered events for that observer are removed as well</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - the observed region</dd><dd><code>name</code> - name of observer</dd>
+<dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="clear()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre>public static boolean clear()</pre>
+<div class="block">stop and remove all observers and their registered events</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>success</dd></dl>
+</li>
+</ul>
+<a name="hasEvents()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEvents</h4>
+<pre>public static boolean hasEvents()</pre>
+<div class="block">are their any events registered</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if yes</dd></dl>
+</li>
+</ul>
+<a name="hasEvents(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEvents</h4>
+<pre>public static boolean hasEvents(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+<div class="block">are their any events registered for this region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if yes</dd></dl>
+</li>
+</ul>
+<a name="hasEvent(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEvent</h4>
+<pre>public static boolean hasEvent(java.lang.String name)</pre>
+<div class="block">are their any events registered for the observer having this name</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if yes</dd></dl>
+</li>
+</ul>
+<a name="hasEvent(org.sikuli.script.Region, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEvent</h4>
+<pre>public static boolean hasEvent(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg,
+ java.lang.String name)</pre>
+<div class="block">are their any events registered for the region's observer having this name</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if yes</dd></dl>
+</li>
+</ul>
+<a name="addEvent(java.lang.String, java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addEvent</h4>
+<pre>public static long addEvent(java.lang.String name,
+ java.lang.Object pev)</pre>
+<div class="block">add a new event to the list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - name of event</dd><dd><code>ev</code> - the event object (SikuliEvent is copied)</dd>
+<dt><span class="strong">Returns:</span></dt><dd></dd></dl>
+</li>
+</ul>
+<a name="getEvent(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEvent</h4>
+<pre>public static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a> getEvent(java.lang.String name)</pre>
+<div class="block">remove and return the latest event for the named observer <br />
+ earlier events are removed</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the event or null if none registered</dd></dl>
+</li>
+</ul>
+<a name="getEvents(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEvents</h4>
+<pre>public static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a>[] getEvents(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+<div class="block">remove and return the latest events for that region <br />
+ earlier events are removed</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the array of events or size 0 array if none</dd></dl>
+</li>
+</ul>
+<a name="getEvents()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEvents</h4>
+<pre>public static <a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a>[] getEvents()</pre>
+<div class="block">return the latest events (these are preserved) <br />
+ earlier events for the same observer are removed</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the array of events or size 0 array if none</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Observer.html" target="_top">Frames</a></li>
+<li><a href="Observer.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/ObserverCallBack.html b/Docs/Java/docs/org/sikuli/script/ObserverCallBack.html
new file mode 100644
index 0000000..820ff56
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/ObserverCallBack.html
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>ObserverCallBack</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ObserverCallBack";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ObserverCallBack.html" target="_top">Frames</a></li>
+<li><a href="ObserverCallBack.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class ObserverCallBack" class="title">Class ObserverCallBack</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.ObserverCallBack</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">ObserverCallBack</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#ObserverCallBack()">ObserverCallBack</a></strong>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#appeared(org.sikuli.script.SikuliEvent)">appeared</a></strong>(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#changed(org.sikuli.script.SikuliEvent)">changed</a></strong>(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#happened(org.sikuli.script.Observer.Event)">happened</a></strong>(<a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a> e)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#targetAppeared(SikuliEventAppear)">targetAppeared</a></strong>(SikuliEventAppear e)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#targetChanged(SikuliEventChange)">targetChanged</a></strong>(SikuliEventChange e)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#targetVanished(SikuliEventVanish)">targetVanished</a></strong>(SikuliEventVanish e)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/ObserverCallBack.html#vanished(org.sikuli.script.SikuliEvent)">vanished</a></strong>(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ObserverCallBack()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ObserverCallBack</h4>
+<pre>public ObserverCallBack()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="targetAppeared(SikuliEventAppear)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>targetAppeared</h4>
+<pre>public void targetAppeared(SikuliEventAppear e)</pre>
+</li>
+</ul>
+<a name="targetVanished(SikuliEventVanish)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>targetVanished</h4>
+<pre>public void targetVanished(SikuliEventVanish e)</pre>
+</li>
+</ul>
+<a name="targetChanged(SikuliEventChange)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>targetChanged</h4>
+<pre>public void targetChanged(SikuliEventChange e)</pre>
+</li>
+</ul>
+<a name="appeared(org.sikuli.script.SikuliEvent)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appeared</h4>
+<pre>public void appeared(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</pre>
+</li>
+</ul>
+<a name="vanished(org.sikuli.script.SikuliEvent)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>vanished</h4>
+<pre>public void vanished(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</pre>
+</li>
+</ul>
+<a name="changed(org.sikuli.script.SikuliEvent)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>changed</h4>
+<pre>public void changed(<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a> e)</pre>
+</li>
+</ul>
+<a name="happened(org.sikuli.script.Observer.Event)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>happened</h4>
+<pre>public void happened(<a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a> e)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/ObserverCallBack.html" target="_top">Frames</a></li>
+<li><a href="ObserverCallBack.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Pattern.html b/Docs/Java/docs/org/sikuli/script/Pattern.html
new file mode 100644
index 0000000..c0e0b5e
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Pattern.html
@@ -0,0 +1,672 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Pattern</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Pattern";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Pattern.html" target="_top">Frames</a></li>
+<li><a href="Pattern.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Pattern" class="title">Class Pattern</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Pattern</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Pattern</span>
+extends java.lang.Object</pre>
+<div class="block">to define a more complex search target<br />
+ - non-standard minimum similarity <br />
+ - click target other than center <br />
+ - image as in-memory image</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern()">Pattern</a></strong>()</code>
+<div class="block">creates empty Pattern object at least setFilename() or setBImage() must be used before the
+ Pattern object is ready for anything</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(java.awt.image.BufferedImage)">Pattern</a></strong>(java.awt.image.BufferedImage bimg)</code>
+<div class="block">A Pattern from a BufferedImage</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(org.sikuli.script.Image)">Pattern</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code>
+<div class="block">create a Pattern with given image<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(org.sikuli.script.Pattern)">Pattern</a></strong>(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> p)</code>
+<div class="block">create a new Pattern from another (attribs are copied)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(ScreenImage)">Pattern</a></strong>(ScreenImage simg)</code>
+<div class="block">A Pattern from a ScreenImage</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(java.lang.String)">Pattern</a></strong>(java.lang.String imgpath)</code>
+<div class="block">create a Pattern based on an image file name<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Pattern.html#Pattern(java.net.URL)">Pattern</a></strong>(java.net.URL url)</code>
+<div class="block">Pattern from a Java resource (Object.class.getResource)</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#exact()">exact</a></strong>()</code>
+<div class="block">sets the minimum Similarity to 0.99 which means exact match</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.awt.image.BufferedImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getBImage()">getBImage</a></strong>()</code>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getFilename()">getFilename</a></strong>()</code>
+<div class="block">the current image's absolute filepath
+ <br />will return null, if image is in jar or in web
+ <br />use getFileURL in this case</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.net.URL</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getFileURL()">getFileURL</a></strong>()</code>
+<div class="block">the current image's URL</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getImage()">getImage</a></strong>()</code>
+<div class="block">get the Pattern's image</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getSimilar()">getSimilar</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getTargetOffset()">getTargetOffset</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#getTimeAfter()">getTimeAfter</a></strong>()</code>
+<div class="block">get the seconds to wait, after this pattern is acted on</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#isValid()">isValid</a></strong>()</code>
+<div class="block">check wether the image is valid</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setBImage(java.awt.image.BufferedImage)">setBImage</a></strong>(java.awt.image.BufferedImage bimg)</code>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setFilename(org.sikuli.script.Image)">setFilename</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code>
+<div class="block">set a new image for this pattern</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setFilename(java.lang.String)">setFilename</a></strong>(java.lang.String fileName)</code>
+<div class="block">set a new image for this pattern</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setFilename(java.net.URL)">setFilename</a></strong>(java.net.URL fileURL)</code>
+<div class="block">set a new image for this pattern</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setImage(org.sikuli.script.Image)">setImage</a></strong>(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</code>
+<div class="block">sets the Pattern's image</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#setTimeAfter(int)">setTimeAfter</a></strong>(int secs)</code>
+<div class="block">set the seconds to wait, after this pattern is acted on</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#similar(float)">similar</a></strong>(float sim)</code>
+<div class="block">sets the minimum Similarity to use with findX</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#targetOffset(int, int)">targetOffset</a></strong>(int dx,
+ int dy)</code>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#targetOffset(org.sikuli.script.Location)">targetOffset</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Pattern.html#toString()">toString</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Pattern()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern()</pre>
+<div class="block">creates empty Pattern object at least setFilename() or setBImage() must be used before the
+ Pattern object is ready for anything</div>
+</li>
+</ul>
+<a name="Pattern(org.sikuli.script.Pattern)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> p)</pre>
+<div class="block">create a new Pattern from another (attribs are copied)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>p</code> - </dd></dl>
+</li>
+</ul>
+<a name="Pattern(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+<div class="block">create a Pattern with given image<br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd></dl>
+</li>
+</ul>
+<a name="Pattern(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(java.lang.String imgpath)</pre>
+<div class="block">create a Pattern based on an image file name<br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>imgpath</code> - </dd></dl>
+</li>
+</ul>
+<a name="Pattern(java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(java.net.URL url)</pre>
+<div class="block">Pattern from a Java resource (Object.class.getResource)</div>
+</li>
+</ul>
+<a name="Pattern(java.awt.image.BufferedImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(java.awt.image.BufferedImage bimg)</pre>
+<div class="block">A Pattern from a BufferedImage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bimg</code> - </dd></dl>
+</li>
+</ul>
+<a name="Pattern(ScreenImage)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Pattern</h4>
+<pre>public Pattern(ScreenImage simg)</pre>
+<div class="block">A Pattern from a ScreenImage</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>simg</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="isValid()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isValid</h4>
+<pre>public boolean isValid()</pre>
+<div class="block">check wether the image is valid</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if image is useable</dd></dl>
+</li>
+</ul>
+<a name="setFilename(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFilename</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> setFilename(java.lang.String fileName)</pre>
+<div class="block">set a new image for this pattern</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>fileName</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern itself</dd></dl>
+</li>
+</ul>
+<a name="setFilename(java.net.URL)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFilename</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> setFilename(java.net.URL fileURL)</pre>
+<div class="block">set a new image for this pattern</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>fileURL</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern itself</dd></dl>
+</li>
+</ul>
+<a name="setFilename(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFilename</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> setFilename(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+<div class="block">set a new image for this pattern</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern itself</dd></dl>
+</li>
+</ul>
+<a name="getFilename()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilename</h4>
+<pre>public java.lang.String getFilename()</pre>
+<div class="block">the current image's absolute filepath
+ <br />will return null, if image is in jar or in web
+ <br />use getFileURL in this case</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>might be null</dd></dl>
+</li>
+</ul>
+<a name="getFileURL()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileURL</h4>
+<pre>public java.net.URL getFileURL()</pre>
+<div class="block">the current image's URL</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>might be null</dd></dl>
+</li>
+</ul>
+<a name="similar(float)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>similar</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> similar(float sim)</pre>
+<div class="block">sets the minimum Similarity to use with findX</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sim</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="exact()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exact</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> exact()</pre>
+<div class="block">sets the minimum Similarity to 0.99 which means exact match</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="getSimilar()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSimilar</h4>
+<pre>public float getSimilar()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current minimum similarity</dd></dl>
+</li>
+</ul>
+<a name="targetOffset(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>targetOffset</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> targetOffset(int dx,
+ int dy)</pre>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dx</code> - </dd><dd><code>dy</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="targetOffset(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>targetOffset</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> targetOffset(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">set the offset from the match's center to be used with mouse actions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="getTargetOffset()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTargetOffset</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTargetOffset()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current offset</dd></dl>
+</li>
+</ul>
+<a name="getBImage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBImage</h4>
+<pre>public java.awt.image.BufferedImage getBImage()</pre>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>might be null</dd></dl>
+</li>
+</ul>
+<a name="setBImage(java.awt.image.BufferedImage)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBImage</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> setBImage(java.awt.image.BufferedImage bimg)</pre>
+<div class="block">ONLY FOR INTERNAL USE! Might vanish without notice!</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>bimg</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="setImage(org.sikuli.script.Image)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setImage</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> setImage(<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> img)</pre>
+<div class="block">sets the Pattern's image</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>img</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Pattern object itself</dd></dl>
+</li>
+</ul>
+<a name="getImage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImage</h4>
+<pre>public <a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a> getImage()</pre>
+<div class="block">get the Pattern's image</div>
+</li>
+</ul>
+<a name="setTimeAfter(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimeAfter</h4>
+<pre>public void setTimeAfter(int secs)</pre>
+<div class="block">set the seconds to wait, after this pattern is acted on</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>secs</code> - </dd></dl>
+</li>
+</ul>
+<a name="getTimeAfter()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimeAfter</h4>
+<pre>public int getTimeAfter()</pre>
+<div class="block">get the seconds to wait, after this pattern is acted on</div>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Pattern.html" target="_top">Frames</a></li>
+<li><a href="Pattern.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Region.html b/Docs/Java/docs/org/sikuli/script/Region.html
new file mode 100644
index 0000000..62fdb40
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Region.html
@@ -0,0 +1,4497 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Region</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Region";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Region.html" target="_top">Frames</a></li>
+<li><a href="Region.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Region" class="title">Class Region</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Region</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>, <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">Region</span>
+extends java.lang.Object</pre>
+<div class="block">A Region always lies completely inside its parent screen</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_LEFT">CREATE_X_DIRECTION_LEFT</a></strong></code>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_RIGHT">CREATE_X_DIRECTION_RIGHT</a></strong></code>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_BOTTOM">CREATE_Y_DIRECTION_BOTTOM</a></strong></code>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_TOP">CREATE_Y_DIRECTION_TOP</a></strong></code>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#E2">E2</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#E3">E3</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#EAST">EAST</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#EAST_EAST">EAST_EAST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#EAST_NORTH">EAST_NORTH</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#EAST_SOUTH">EAST_SOUTH</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#EN">EN</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#ES">ES</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#h">h</a></strong></code>
+<div class="block">Height of the Region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#M2">M2</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#M3">M3</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MH">MH</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MID_HORIZONTAL">MID_HORIZONTAL</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MID_VERTICAL">MID_VERTICAL</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MIDDLE_HALF">MIDDLE_HALF</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MIDDLE_THIRD">MIDDLE_THIRD</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#MV">MV</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#N2">N2</a></strong></code>
+<div class="block">the area constants for use with get()</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#N3">N3</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NE">NE</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NORTH">NORTH</a></strong></code>
+<div class="block">the area constants for use with get()</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NORTH_EAST">NORTH_EAST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NORTH_NORTH">NORTH_NORTH</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NORTH_WEST">NORTH_WEST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#NW">NW</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#S2">S2</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#S3">S3</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SE">SE</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SOUTH">SOUTH</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SOUTH_EAST">SOUTH_EAST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SOUTH_SOUTH">SOUTH_SOUTH</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SOUTH_WEST">SOUTH_WEST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#SW">SW</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#w">w</a></strong></code>
+<div class="block">Width of the Region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#W2">W2</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#W3">W3</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WEST">WEST</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WEST_NORTH">WEST_NORTH</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WEST_SOUTH">WEST_SOUTH</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WEST_WEST">WEST_WEST</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WN">WN</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#WS">WS</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#x">x</a></strong></code>
+<div class="block">X-coordinate of the Region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#y">y</a></strong></code>
+<div class="block">Y-coordinate of the Region</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Region.html#Region(int, int, int, int)">Region</a></strong>(int X,
+ int Y,
+ int W,
+ int H)</code>
+<div class="block">Create a region with the provided coordinate / size</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Region.html#Region(int, int, int, int, int)">Region</a></strong>(int X,
+ int Y,
+ int W,
+ int H,
+ int screenNumber)</code>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Region.html#Region(int, int, int, int, org.sikuli.script.Screen)">Region</a></strong>(int X,
+ int Y,
+ int W,
+ int H,
+ <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> parentScreen)</code>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Region.html#Region(java.awt.Rectangle)">Region</a></strong>(java.awt.Rectangle r)</code>
+<div class="block">Create a region from a Rectangle</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Region.html#Region(org.sikuli.script.Region)">Region</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code>
+<div class="block">Create a new region from another region<br />including the region's settings</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#above()">above</a></strong>()</code>
+<div class="block">create a region above the top side with same width<br /> the new region extends to the top
+ screen border<br /> use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#above(int)">above</a></strong>(int height)</code>
+<div class="block">create a region above the top side with same width and given height<br />
+ negative height creates the top part with height inside the region
+ use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#aboveAt()">aboveAt</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#aboveAt(int)">aboveAt</a></strong>(int offset)</code>
+<div class="block">negative offset goes towards top of screen <br />might be off current screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#add(int, int, int, int)">add</a></strong>(int l,
+ int r,
+ int t,
+ int b)</code>
+<div class="block">resize the region using the given padding values<br />might be negative</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#add(org.sikuli.script.Location)">add</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">extend the region, so it contains the given point<br />but only the part inside the current
+ screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#add(org.sikuli.script.Region)">add</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code>
+<div class="block">extend the region, so it contains the given region<br />but only the part inside the current
+ screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#atMouse()">atMouse</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#below()">below</a></strong>()</code>
+<div class="block">create a region below the bottom side with same width<br /> the new region extends to the
+ bottom screen border<br /> use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#below(int)">below</a></strong>(int height)</code>
+<div class="block">create a region below the bottom side with same width and given height<br />
+ negative height creates the bottom part with height inside the region
+ use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#belowAt()">belowAt</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#belowAt(int)">belowAt</a></strong>(int offset)</code>
+<div class="block">positive offset goes towards bottom of screen <br />might be off current screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#click()">click</a></strong>()</code>
+<div class="block">left click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#click(PatternFilenameRegionMatchLocation)">click</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">left click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#click(PatternFilenameRegionMatchLocation, int)">click</a></strong>(PatternFilenameRegionMatchLocation target,
+ int modifiers)</code>
+<div class="block">left click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#contains(org.sikuli.script.Location)">contains</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> point)</code>
+<div class="block">check if current region contains given point</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#contains(org.sikuli.script.Region)">contains</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)</code>
+<div class="block">check if current region contains given region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#containsMouse()">containsMouse</a></strong>()</code>
+<div class="block">check if mouse pointer is inside current region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#copyTo(int)">copyTo</a></strong>(int scrID)</code>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#copyTo(org.sikuli.script.Screen)">copyTo</a></strong>(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> screen)</code>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#create(int, int, int, int)">create</a></strong>(int X,
+ int Y,
+ int W,
+ int H)</code>
+<div class="block">Create a region with the provided top left corner and size</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int)">create</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int w,
+ int h)</code>
+<div class="block">Create a region with the provided top left corner and size</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)">create</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int create_x_direction,
+ int create_y_direction,
+ int w,
+ int h)</code>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#create(java.awt.Rectangle)">create</a></strong>(java.awt.Rectangle r)</code>
+<div class="block">Create a region from a Rectangle</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Region)">create</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code>
+<div class="block">Create a region from another region<br />including the region's settings</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#delayClick(int)">delayClick</a></strong>(int millisecs)</code>
+<div class="block">time in milliseconds to delay between button down/up at next click only (max 1000)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#delayType(int)">delayType</a></strong>(int millisecs)</code>
+<div class="block">time in milliseconds to delay between each character at next type only (max 1000)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#doubleClick()">doubleClick</a></strong>()</code>
+<div class="block">double click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#doubleClick(PatternFilenameRegionMatchLocation)">doubleClick</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">double click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#doubleClick(PatternFilenameRegionMatchLocation, int)">doubleClick</a></strong>(PatternFilenameRegionMatchLocation target,
+ int modifiers)</code>
+<div class="block">double click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#drag(PatternFilenameRegionMatchLocation)">drag</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">Prepare a drag action: move mouse to given target <br />press and hold left mouse button <br
+ />wait Settings.DelayAfterDrag</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#dragDrop(PatternFilenameRegionMatchLocation)">dragDrop</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">Drag from region's last match and drop at given target <br />applying Settings.DelayAfterDrag
+ and DelayBeforeDrop <br /> using left mouse button</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#dragDrop(PatternFilenameRegionMatchLocation, PatternFilenameRegionMatchLocation)">dragDrop</a></strong>(PatternFilenameRegionMatchLocation t1,
+ PatternFilenameRegionMatchLocation t2)</code>
+<div class="block">Drag from a position and drop to another using left mouse button<br />applying
+ Settings.DelayAfterDrag and DelayBeforeDrop</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#dropAt(PatternFilenameRegionMatchLocation)">dropAt</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">finalize a drag action with a drop: move mouse to given target <br />wait
+ Settings.DelayBeforeDrop <br />release the left mouse button</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#exists(PSI)">exists</a></strong>(PSI target)</code>
+<div class="block">Check if target exists (with the default autoWaitTimeout)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#exists(PSI, double)">exists</a></strong>(PSI target,
+ double timeout)</code>
+<div class="block">Check if target exists with a specified timeout<br />
+ timout = 0: returns immediately after first search</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#find(PSI)">find</a></strong>(PSI target)</code>
+<div class="block">Match find( Pattern/String ) finds the given pattern on the screen and returns the best match.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#findAll(PSI)">findAll</a></strong>(PSI target)</code>
+<div class="block">Iterator<Match> searchAll( Pattern/String/Image ) finds the given pattern on the screen and
+ returns the best match.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#findAllText(java.lang.String)">findAllText</a></strong>(java.lang.String text)</code>
+<div class="block">Use findAllText() instead of find() in cases where the given string could be misinterpreted as
+ an image filename</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#findText(java.lang.String)">findText</a></strong>(java.lang.String text)</code>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#findText(java.lang.String, double)">findText</a></strong>(java.lang.String text,
+ double timeout)</code>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#get(int)">get</a></strong>(int reg)</code>
+<div class="block">select the specified part of the region <br />
+ example for upper part of region (NORTH) <br />
+ NORTH (N2) - upper half <br />
+ NORTH_NORTH (N3) - middle third in upper third <br />
+ NORTH_EAST (NE) - right third in upper third <br />
+ NORTH_WEST (NW) - left third in upper third <br />
+ ...</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getAutoWaitTimeout()">getAutoWaitTimeout</a></strong>()</code>
+<div class="block">current setting for this region (see setAutoWaitTimeout)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getBottomLeft()">getBottomLeft</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getBottomRight()">getBottomRight</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getCell(int, int)">getCell</a></strong>(int r,
+ int c)</code>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getCenter()">getCenter</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getCol(int)">getCol</a></strong>(int c)</code>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getCols()">getCols</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getColW()">getColW</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>SikuliEventManager</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getEvtMgr()">getEvtMgr</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getFindFailedResponse()">getFindFailedResponse</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getH()">getH</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastMatch()">getLastMatch</a></strong>()</code>
+<div class="block">a find operation saves its match on success in the used region object<br />unchanged if not
+ successful</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastMatches()">getLastMatches</a></strong>()</code>
+<div class="block">a searchAll operation saves its matches on success in the used region object<br />unchanged if
+ not successful</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastScreenImage()">getLastScreenImage</a></strong>()</code>
+<div class="block">get the last image taken on this regions screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastScreenImageFile()">getLastScreenImageFile</a></strong>()</code>
+<div class="block">stores the lastScreenImage in the current bundle path with a created unique name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastScreenImageFile(java.lang.String)">getLastScreenImageFile</a></strong>(java.lang.String name)</code>
+<div class="block">stores the lastScreenImage in the current bundle path with the given name</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getLastScreenImageFile(java.lang.String, java.lang.String)">getLastScreenImageFile</a></strong>(java.lang.String path,
+ java.lang.String name)</code>
+<div class="block">stores the lastScreenImage in the given path with the given name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getObserveScanRate()">getObserveScanRate</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.Rectangle</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getRect()">getRect</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getRow(int)">getRow</a></strong>(int r)</code>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getRowH()">getRowH</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getRows()">getRows</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getScreen()">getScreen</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getScreenContaining()">getScreenContaining</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>Only for compatibility, to get the screen containing this region, use
+ <a href="../../../org/sikuli/script/Region.html#getScreen()"><code>getScreen()</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getTarget()">getTarget</a></strong>()</code>
+<div class="block">convenience method</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getThrowException()">getThrowException</a></strong>()</code>
+<div class="block">current setting for this region (see setThrowException)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getTopLeft()">getTopLeft</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getTopRight()">getTopRight</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getW()">getW</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getWaitForVanish()">getWaitForVanish</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getWaitScanRate()">getWaitScanRate</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getX()">getX</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#getY()">getY</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(int)">grow</a></strong>(int range)</code>
+<div class="block">create a region enlarged range pixels on each side</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(int, int)">grow</a></strong>(int w,
+ int h)</code>
+<div class="block">create a region enlarged w pixels on left and right side<br /> and h pixels at top and bottom</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(int, int, int, int)">grow</a></strong>(int l,
+ int r,
+ int t,
+ int b)</code>
+<div class="block">create a region enlarged l pixels on left and r pixels right side<br /> and t pixels at top
+ side and b pixels at bottom side <br />
+ negative values go inside (shrink)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(org.sikuli.script.Location)">grow</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">create a minimal region at given point with size 1 x 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(org.sikuli.script.Location, int, int)">grow</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int w,
+ int h)</code>
+<div class="block">create a region with the given point as center and the given size</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#grow(org.sikuli.script.Location, int, int, int, int)">grow</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int x,
+ int y,
+ int w,
+ int h)</code>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br />same as the
+ corresponding create method, here to be naming compatible with class Location</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#highlight()">highlight</a></strong>()</code>
+<div class="block">Toggle the regions Highlight visibility (currently red frame)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#highlight(float)">highlight</a></strong>(float secs)</code>
+<div class="block">show the regions Highlight for the given time in seconds (currently red frame) if 0 - use the
+ global Settings.SlowMotionDelay</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#highlight(int)">highlight</a></strong>(int secs)</code>
+<div class="block">hack to implement the getLastMatch() convenience 0 means same as highlight() <.0 same as
+ highlight(secs) if available the last match is highlighted</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#hover()">hover</a></strong>()</code>
+<div class="block">move the mouse pointer to region's last successful match <br />use center if no lastMatch <br
+ />if region is a match: move to targetOffset <br />same as mouseMove</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#hover(PatternFilenameRegionMatchLocation)">hover</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">move the mouse pointer to the given target location<br /> same as mouseMove<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#inside()">inside</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>only for backward compatibility</i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#intersection(org.sikuli.script.Region)">intersection</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> ir)</code>
+<div class="block">create a region that is the intersection of the given regions</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#isObserving()">isObserving</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#isOtherScreen()">isOtherScreen</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#keyDown(int)">keyDown</a></strong>(int keycode)</code>
+<div class="block">press and hold the given key use a constant from java.awt.event.KeyEvent which might be special
+ in the current machine/system environment</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#keyDown(java.lang.String)">keyDown</a></strong>(java.lang.String keys)</code>
+<div class="block">press and hold the given keys including modifier keys <br />use the key constants defined in
+ class Key, <br />which only provides a subset of a US-QWERTY PC keyboard layout <br />might be
+ mixed with simple characters
+ <br />use + to concatenate Key constants</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#keyUp()">keyUp</a></strong>()</code>
+<div class="block">release all currently pressed keys</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#keyUp(int)">keyUp</a></strong>(int keycode)</code>
+<div class="block">release the given keys (see keyDown(keycode) )</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#keyUp(java.lang.String)">keyUp</a></strong>(java.lang.String keys)</code>
+<div class="block">release the given keys (see keyDown(keys) )</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#left()">left</a></strong>()</code>
+<div class="block">create a region left of the left side with same height<br /> the new region extends to the left
+ screen border<br /> use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#left(int)">left</a></strong>(int width)</code>
+<div class="block">create a region left of the left side with same height and given width<br />
+ negative width creates the left part with width inside the region
+ use grow() to include the current region <br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#leftAt()">leftAt</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#leftAt(int)">leftAt</a></strong>(int offset)</code>
+<div class="block">negative offset goes to the left <br />might be off current screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#listText()">listText</a></strong>()</code>
+<div class="block">VERY EXPERIMENTAL: returns a list of matches, that represent single words, that have been found
+ in this region<br /> the match's x,y,w,h the region of the word<br /> Match.getText() returns
+ the word (utf8) at this match<br />
+ Match.getScore() returns a value between 0 ...</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#morphTo(org.sikuli.script.Region)">morphTo</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>to be like AWT Rectangle API use setRect() instead</i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#mouseDown(int)">mouseDown</a></strong>(int buttons)</code>
+<div class="block">press and hold the specified buttons - use + to combine Button.LEFT left mouse button
+ Button.MIDDLE middle mouse button Button.RIGHT right mouse button</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#mouseMove()">mouseMove</a></strong>()</code>
+<div class="block">move the mouse pointer to the region's last successful match<br />same as hover<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#mouseMove(PatternFilenameRegionMatchLocation)">mouseMove</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">move the mouse pointer to the given target location<br /> same as hover<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br />
+ Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#mouseUp()">mouseUp</a></strong>()</code>
+<div class="block">release all currently held buttons</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#mouseUp(int)">mouseUp</a></strong>(int buttons)</code>
+<div class="block">release the specified mouse buttons (see mouseDown) if buttons==0, all currently held buttons
+ are released</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#moveTo(org.sikuli.script.Location)">moveTo</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>to be like AWT Rectangle API use setLocation()</i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#nearby()">nearby</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>to be like AWT Rectangle API use grow() instead</i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#nearby(int)">nearby</a></strong>(int range)</code>
+<div class="block"><strong>Deprecated.</strong>
+<div class="block"><i>to be like AWT Rectangle API use grow() instaed</i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#observe()">observe</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#observe(double)">observe</a></strong>(double secs)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#observeInBackground(double)">observeInBackground</a></strong>(double secs)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#offset(int, int)">offset</a></strong>(int x,
+ int y)</code>
+<div class="block">create region with same size at top left corner offset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#offset(org.sikuli.script.Location)">offset</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">create region with same size at top left corner offset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#onAppear(PSI, java.lang.Object)">onAppear</a></strong>(PSI target,
+ java.lang.Object observer)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#onChange(int, java.lang.Object)">onChange</a></strong>(int threshold,
+ java.lang.Object observer)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#onChange(SikuliEventObserver)">onChange</a></strong>(SikuliEventObserver observer)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#onVanish(PSI, java.lang.Object)">onVanish</a></strong>(PSI target,
+ java.lang.Object observer)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#paste(PatternFilenameRegionMatchLocation, java.lang.String)">paste</a></strong>(PatternFilenameRegionMatchLocation target,
+ java.lang.String text)</code>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br /> and then
+ pastes the text <br /> using the clipboard and strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#paste(java.lang.String)">paste</a></strong>(java.lang.String text)</code>
+<div class="block">pastes the text at the current position of the focus/carret <br />using the clipboard and
+ strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#resetScreens()">resetScreens</a></strong>()</code>
+<div class="block">synonym for resetMonitors</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#right()">right</a></strong>()</code>
+<div class="block">create a region right of the right side with same height<br /> the new region extends to the
+ right screen border<br /> use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#right(int)">right</a></strong>(int width)</code>
+<div class="block">create a region right of the right side with same height and given width<br />
+ negative width creates the right part with width inside the region
+ use grow() to include the current region</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#rightAt()">rightAt</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#rightAt(int)">rightAt</a></strong>(int offset)</code>
+<div class="block">positive offset goes to the right <br />might be off current screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#rightClick()">rightClick</a></strong>()</code>
+<div class="block">right click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#rightClick(PatternFilenameRegionMatchLocation)">rightClick</a></strong>(PatternFilenameRegionMatchLocation target)</code>
+<div class="block">right click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#rightClick(PatternFilenameRegionMatchLocation, int)">rightClick</a></strong>(PatternFilenameRegionMatchLocation target,
+ int modifiers)</code>
+<div class="block">right click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setAutoWaitTimeout(double)">setAutoWaitTimeout</a></strong>(double sec)</code>
+<div class="block">the time in seconds a find operation should wait for the appearence of the target in this
+ region<br /> initial value 3 secs</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setBottomLeft(org.sikuli.script.Location)">setBottomLeft</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">Moves the region to the area, whose bottom left corner is the given location</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setBottomRight(org.sikuli.script.Location)">setBottomRight</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">Moves the region to the area, whose bottom right corner is the given location</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setCenter(org.sikuli.script.Location)">setCenter</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">Moves the region to the area, whose center is the given location</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setCols(int)">setCols</a></strong>(int n)</code>
+<div class="block">store info: this region is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setEvtMgr(SikuliEventManager)">setEvtMgr</a></strong>(SikuliEventManager em)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setFindFailedResponse(org.sikuli.script.FindFailedResponse)">setFindFailedResponse</a></strong>(<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> response)</code>
+<div class="block">FindFailedResponse.<br /> ABORT - (initial value) abort script on FindFailed (=
+ setThrowException(true) )<br /> SKIP - ignore FindFailed (same as setThrowException(false) )<br
+ /> PROMPT - display prompt on FindFailed to let user decide how to proceed<br /> RETRY -
+ continue to wait for appearence on FindFailed (caution: endless loop)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setH(int)">setH</a></strong>(int H)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setLocation(org.sikuli.script.Location)">setLocation</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">set the regions position<br />this might move the region even to another screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setObserveScanRate(float)">setObserveScanRate</a></strong>(float observeScanRate)</code>
+<div class="block">set the regions individual ObserveScanRate</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setOtherScreen()">setOtherScreen</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setRaster(int, int)">setRaster</a></strong>(int r,
+ int c)</code>
+<div class="block">store info: this region is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setRect(int, int, int, int)">setRect</a></strong>(int X,
+ int Y,
+ int W,
+ int H)</code>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setRect(java.awt.Rectangle)">setRect</a></strong>(java.awt.Rectangle r)</code>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setRect(org.sikuli.script.Region)">setRect</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setROI(int, int, int, int)">setROI</a></strong>(int X,
+ int Y,
+ int W,
+ int H)</code>
+<div class="block">resets this region to the given location, and size <br /> this might move the region even to
+ another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setROI(java.awt.Rectangle)">setROI</a></strong>(java.awt.Rectangle roi)</code>
+<div class="block">resets this region to the given rectangle <br /> this might move the region even to another
+ screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setROI(org.sikuli.script.Region)">setROI</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code>
+<div class="block">resets this region to the given region <br /> this might move the region even to another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setRows(int)">setRows</a></strong>(int n)</code>
+<div class="block">store info: this region is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setSize(int, int)">setSize</a></strong>(int W,
+ int H)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setThrowException(boolean)">setThrowException</a></strong>(boolean flag)</code>
+<div class="block">true - (initial setting) should throw exception FindFailed if findX unsuccessful in this
+ region<br /> false - do not abort script on FindFailed (might leed to null pointer exceptions
+ later)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setTopLeft(org.sikuli.script.Location)">setTopLeft</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">Moves the region to the area, whose top left corner is the given location</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setTopRight(org.sikuli.script.Location)">setTopRight</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">Moves the region to the area, whose top right corner is the given location</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setW(int)">setW</a></strong>(int W)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setWaitForVanish(int)">setWaitForVanish</a></strong>(int waitForVanish)</code>
+<div class="block">set the regions individual WaitForVanish</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setWaitScanRate(float)">setWaitScanRate</a></strong>(float waitScanRate)</code>
+<div class="block">set the regions individual WaitScanRate</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setX(int)">setX</a></strong>(int X)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#setY(int)">setY</a></strong>(int Y)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#showScreens()">showScreens</a></strong>()</code>
+<div class="block">synonym for showMonitors</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#stopObserver()">stopObserver</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#text()">text</a></strong>()</code>
+<div class="block">STILL EXPERIMENTAL: tries to read the text in this region<br /> might contain misread
+ characters, NL characters and other stuff, when interpreting contained grafics as text<br />
+ Best results: one line of text with no grafics in the line</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#toString()">toString</a></strong>()</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#toStringShort()">toStringShort</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String)">type</a></strong>(PatternFilenameRegionMatchLocation target,
+ java.lang.String text)</code>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />about the usable Key
+ constants see keyDown(keys)
+ <br />Class Key only provides a subset of a US-QWERTY PC keyboard layout</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String, int)">type</a></strong>(PatternFilenameRegionMatchLocation target,
+ java.lang.String text,
+ int modifiers)</code>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(PatternFilenameRegionMatchLocation, java.lang.String, java.lang.String)">type</a></strong>(PatternFilenameRegionMatchLocation target,
+ java.lang.String text,
+ java.lang.String modifiers)</code>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(java.lang.String)">type</a></strong>(java.lang.String text)</code>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp
+ <br />about the usable Key constants see keyDown(keys) <br />Class Key only provides a subset
+ of a US-QWERTY PC keyboard layout<br />the text is entered at the current position of the
+ focus/carret</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(java.lang.String, int)">type</a></strong>(java.lang.String text,
+ int modifiers)</code>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp<br />while holding
+ down the given modifier keys <br />about the usable Key constants see keyDown(keys) <br />Class
+ Key only provides a subset of a US-QWERTY PC keyboard layout<br />the text is entered at the
+ current position of the focus/carret</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#type(java.lang.String, java.lang.String)">type</a></strong>(java.lang.String text,
+ java.lang.String modifiers)</code>
+<div class="block">enters the given text one character/key after another using
+
+ keyDown/keyUp<br />while holding down the given modifier keys <br />about the usable Key
+ constants see keyDown(keys) <br />Class Key only provides a subset of a US-QWERTY PC keyboard
+ layout<br />the text is entered at the current position of the focus/carret</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#union(org.sikuli.script.Region)">union</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> ur)</code>
+<div class="block">create a new region containing both regions</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#wait(double)">wait</a></strong>(double timeout)</code>
+<div class="block">WARNING: wait(long timeout) is taken by Java Object as final.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#wait(PSI)">wait</a></strong>(PSI target)</code>
+<div class="block">Waits for the Pattern, String or Image to appear</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#wait(PSI, double)">wait</a></strong>(PSI target,
+ double timeout)</code>
+<div class="block">Waits for the Pattern, String or Image to appear or timeout (in second) is passed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><PSI> boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#waitVanish(PSI)">waitVanish</a></strong>(PSI target)</code>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PSI> boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#waitVanish(PSI, double)">waitVanish</a></strong>(PSI target,
+ double timeout)</code>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#wheel(int, int)">wheel</a></strong>(int direction,
+ int steps)</code>
+<div class="block">Move the wheel at the current mouse position<br /> the given steps in the given direction: <br
+ />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><PatternFilenameRegionMatchLocation> <br>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#wheel(PatternFilenameRegionMatchLocation, int, int)">wheel</a></strong>(PatternFilenameRegionMatchLocation target,
+ int direction,
+ int steps)</code>
+<div class="block">move the mouse pointer to the given target location<br /> and move the wheel the given steps in
+ the given direction: <br />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Region.html#write(java.lang.String)">write</a></strong>(java.lang.String text)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="x">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>x</h4>
+<pre>public int x</pre>
+<div class="block">X-coordinate of the Region</div>
+</li>
+</ul>
+<a name="y">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>y</h4>
+<pre>public int y</pre>
+<div class="block">Y-coordinate of the Region</div>
+</li>
+</ul>
+<a name="w">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>w</h4>
+<pre>public int w</pre>
+<div class="block">Width of the Region</div>
+</li>
+</ul>
+<a name="h">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>h</h4>
+<pre>public int h</pre>
+<div class="block">Height of the Region</div>
+</li>
+</ul>
+<a name="N2">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>N2</h4>
+<pre>public static final int N2</pre>
+<div class="block">the area constants for use with get()</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.N2">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NORTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORTH</h4>
+<pre>public static final int NORTH</pre>
+<div class="block">the area constants for use with get()</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NORTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="N3">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>N3</h4>
+<pre>public static final int N3</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.N3">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NORTH_NORTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORTH_NORTH</h4>
+<pre>public static final int NORTH_NORTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NORTH_NORTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="E2">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>E2</h4>
+<pre>public static final int E2</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.E2">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="EAST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EAST</h4>
+<pre>public static final int EAST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.EAST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="E3">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>E3</h4>
+<pre>public static final int E3</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.E3">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="EAST_EAST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EAST_EAST</h4>
+<pre>public static final int EAST_EAST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.EAST_EAST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="S2">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>S2</h4>
+<pre>public static final int S2</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.S2">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SOUTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOUTH</h4>
+<pre>public static final int SOUTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SOUTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="S3">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>S3</h4>
+<pre>public static final int S3</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.S3">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SOUTH_SOUTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOUTH_SOUTH</h4>
+<pre>public static final int SOUTH_SOUTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SOUTH_SOUTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="W2">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>W2</h4>
+<pre>public static final int W2</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.W2">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WEST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WEST</h4>
+<pre>public static final int WEST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WEST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="W3">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>W3</h4>
+<pre>public static final int W3</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.W3">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WEST_WEST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WEST_WEST</h4>
+<pre>public static final int WEST_WEST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WEST_WEST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NW">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NW</h4>
+<pre>public static final int NW</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NW">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NORTH_WEST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORTH_WEST</h4>
+<pre>public static final int NORTH_WEST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NORTH_WEST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NE">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NE</h4>
+<pre>public static final int NE</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NE">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="NORTH_EAST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORTH_EAST</h4>
+<pre>public static final int NORTH_EAST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.NORTH_EAST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SW">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SW</h4>
+<pre>public static final int SW</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SW">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SOUTH_WEST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOUTH_WEST</h4>
+<pre>public static final int SOUTH_WEST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SOUTH_WEST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SE">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SE</h4>
+<pre>public static final int SE</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SE">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="SOUTH_EAST">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOUTH_EAST</h4>
+<pre>public static final int SOUTH_EAST</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.SOUTH_EAST">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MV">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MV</h4>
+<pre>public static final int MV</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MV">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MID_VERTICAL">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MID_VERTICAL</h4>
+<pre>public static final int MID_VERTICAL</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MID_VERTICAL">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MH</h4>
+<pre>public static final int MH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MID_HORIZONTAL">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MID_HORIZONTAL</h4>
+<pre>public static final int MID_HORIZONTAL</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MID_HORIZONTAL">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="M2">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>M2</h4>
+<pre>public static final int M2</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.M2">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MIDDLE_HALF">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MIDDLE_HALF</h4>
+<pre>public static final int MIDDLE_HALF</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MIDDLE_HALF">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="M3">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>M3</h4>
+<pre>public static final int M3</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.M3">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="MIDDLE_THIRD">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MIDDLE_THIRD</h4>
+<pre>public static final int MIDDLE_THIRD</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.MIDDLE_THIRD">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="EN">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EN</h4>
+<pre>public static final int EN</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.EN">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="EAST_NORTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EAST_NORTH</h4>
+<pre>public static final int EAST_NORTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.EAST_NORTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ES">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ES</h4>
+<pre>public static final int ES</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.ES">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="EAST_SOUTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EAST_SOUTH</h4>
+<pre>public static final int EAST_SOUTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.EAST_SOUTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WN">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WN</h4>
+<pre>public static final int WN</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WN">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WEST_NORTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WEST_NORTH</h4>
+<pre>public static final int WEST_NORTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WEST_NORTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WS">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WS</h4>
+<pre>public static final int WS</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WS">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="WEST_SOUTH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WEST_SOUTH</h4>
+<pre>public static final int WEST_SOUTH</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.WEST_SOUTH">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="CREATE_X_DIRECTION_LEFT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_X_DIRECTION_LEFT</h4>
+<pre>public static final int CREATE_X_DIRECTION_LEFT</pre>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method. Sets the Location to be on
+ the left corner of the new Region.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.CREATE_X_DIRECTION_LEFT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="CREATE_X_DIRECTION_RIGHT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_X_DIRECTION_RIGHT</h4>
+<pre>public static final int CREATE_X_DIRECTION_RIGHT</pre>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method. Sets the Location to be on
+ the right corner of the new Region.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.CREATE_X_DIRECTION_RIGHT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="CREATE_Y_DIRECTION_TOP">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_Y_DIRECTION_TOP</h4>
+<pre>public static final int CREATE_Y_DIRECTION_TOP</pre>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method. Sets the Location to be on
+ the top corner of the new Region.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.CREATE_Y_DIRECTION_TOP">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="CREATE_Y_DIRECTION_BOTTOM">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CREATE_Y_DIRECTION_BOTTOM</h4>
+<pre>public static final int CREATE_Y_DIRECTION_BOTTOM</pre>
+<div class="block">Flag for the <a href="../../../org/sikuli/script/Region.html#create(org.sikuli.script.Location, int, int, int, int)"><code>create(Location, int, int, int, int)</code></a> method. Sets the Location to be on
+ the bottom corner of the new Region.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../constant-values.html#org.sikuli.script.Region.CREATE_Y_DIRECTION_BOTTOM">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Region(int, int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Region</h4>
+<pre>public Region(int X,
+ int Y,
+ int W,
+ int H,
+ int screenNumber)</pre>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - X position</dd><dd><code>Y</code> - Y position</dd><dd><code>W</code> - width</dd><dd><code>H</code> - heigth</dd><dd><code>screenNumber</code> - The number of the screen containing the Region</dd></dl>
+</li>
+</ul>
+<a name="Region(int, int, int, int, org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Region</h4>
+<pre>public Region(int X,
+ int Y,
+ int W,
+ int H,
+ <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> parentScreen)</pre>
+<div class="block">Create a region with the provided coordinate / size and screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - X position</dd><dd><code>Y</code> - Y position</dd><dd><code>W</code> - width</dd><dd><code>H</code> - heigth</dd><dd><code>parentScreen</code> - the screen containing the Region</dd></dl>
+</li>
+</ul>
+<a name="Region(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Region</h4>
+<pre>public Region(int X,
+ int Y,
+ int W,
+ int H)</pre>
+<div class="block">Create a region with the provided coordinate / size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - X position</dd><dd><code>Y</code> - Y position</dd><dd><code>W</code> - width</dd><dd><code>H</code> - heigth</dd></dl>
+</li>
+</ul>
+<a name="Region(java.awt.Rectangle)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Region</h4>
+<pre>public Region(java.awt.Rectangle r)</pre>
+<div class="block">Create a region from a Rectangle</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the Rectangle</dd></dl>
+</li>
+</ul>
+<a name="Region(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Region</h4>
+<pre>public Region(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+<div class="block">Create a new region from another region<br />including the region's settings</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the region</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getEvtMgr()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEvtMgr</h4>
+<pre>public SikuliEventManager getEvtMgr()</pre>
+</li>
+</ul>
+<a name="setEvtMgr(SikuliEventManager)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEvtMgr</h4>
+<pre>public void setEvtMgr(SikuliEventManager em)</pre>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the description</dd></dl>
+</li>
+</ul>
+<a name="toStringShort()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toStringShort</h4>
+<pre>public java.lang.String toStringShort()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a compact description</dd></dl>
+</li>
+</ul>
+<a name="isOtherScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOtherScreen</h4>
+<pre>public boolean isOtherScreen()</pre>
+</li>
+</ul>
+<a name="setOtherScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOtherScreen</h4>
+<pre>public void setOtherScreen()</pre>
+</li>
+</ul>
+<a name="create(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> create(int X,
+ int Y,
+ int W,
+ int H)</pre>
+<div class="block">Create a region with the provided top left corner and size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - top left X position</dd><dd><code>Y</code> - top left Y position</dd><dd><code>W</code> - width</dd><dd><code>H</code> - heigth</dd>
+<dt><span class="strong">Returns:</span></dt><dd>then new region</dd></dl>
+</li>
+</ul>
+<a name="create(org.sikuli.script.Location, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> create(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int w,
+ int h)</pre>
+<div class="block">Create a region with the provided top left corner and size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - top left corner</dd><dd><code>w</code> - width</dd><dd><code>h</code> - height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>then new region</dd></dl>
+</li>
+</ul>
+<a name="create(org.sikuli.script.Location, int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> create(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int create_x_direction,
+ int create_y_direction,
+ int w,
+ int h)</pre>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the refence point</dd><dd><code>create_x_direction</code> - == 0 is left side !=0 is right side</dd><dd><code>create_y_direction</code> - == 0 is top side !=0 is bottom side</dd><dd><code>w</code> - the width</dd><dd><code>h</code> - the height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(org.sikuli.script.Location, int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int x,
+ int y,
+ int w,
+ int h)</pre>
+<div class="block">create a region with a corner at the given point<br />as specified with x y<br /> 0 0 top
+ left<br /> 0 1 bottom left<br /> 1 0 top right<br /> 1 1 bottom right<br />same as the
+ corresponding create method, here to be naming compatible with class Location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the refence point</dd><dd><code>x</code> - ==0 is left side !=0 is right side</dd><dd><code>y</code> - ==0 is top side !=0 is bottom side</dd><dd><code>w</code> - the width</dd><dd><code>h</code> - the height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="create(java.awt.Rectangle)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> create(java.awt.Rectangle r)</pre>
+<div class="block">Create a region from a Rectangle</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the Rectangle</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="create(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> create(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+<div class="block">Create a region from another region<br />including the region's settings</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>then new region</dd></dl>
+</li>
+</ul>
+<a name="grow(org.sikuli.script.Location, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int w,
+ int h)</pre>
+<div class="block">create a region with the given point as center and the given size</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the center point</dd><dd><code>w</code> - the width</dd><dd><code>h</code> - the height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public static <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">create a minimal region at given point with size 1 x 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the point</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="contains(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public boolean contains(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> point)</pre>
+<div class="block">check if current region contains given point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true/false</dd></dl>
+</li>
+</ul>
+<a name="containsMouse()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsMouse</h4>
+<pre>public boolean containsMouse()</pre>
+<div class="block">check if mouse pointer is inside current region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true/false</dd></dl>
+</li>
+</ul>
+<a name="copyTo(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyTo</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> copyTo(int scrID)</pre>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scrID</code> - number of screen</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new region</dd></dl>
+</li>
+</ul>
+<a name="copyTo(org.sikuli.script.Screen)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyTo</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> copyTo(<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> screen)</pre>
+<div class="block">new region with same offset to current screen's top left on given screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>screen</code> - new parent screen</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new region</dd></dl>
+</li>
+</ul>
+<a name="setThrowException(boolean)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setThrowException</h4>
+<pre>public void setThrowException(boolean flag)</pre>
+<div class="block">true - (initial setting) should throw exception FindFailed if findX unsuccessful in this
+ region<br /> false - do not abort script on FindFailed (might leed to null pointer exceptions
+ later)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>flag</code> - true/false</dd></dl>
+</li>
+</ul>
+<a name="getThrowException()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getThrowException</h4>
+<pre>public boolean getThrowException()</pre>
+<div class="block">current setting for this region (see setThrowException)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true/false</dd></dl>
+</li>
+</ul>
+<a name="setAutoWaitTimeout(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoWaitTimeout</h4>
+<pre>public void setAutoWaitTimeout(double sec)</pre>
+<div class="block">the time in seconds a find operation should wait for the appearence of the target in this
+ region<br /> initial value 3 secs</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sec</code> - </dd></dl>
+</li>
+</ul>
+<a name="getAutoWaitTimeout()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAutoWaitTimeout</h4>
+<pre>public double getAutoWaitTimeout()</pre>
+<div class="block">current setting for this region (see setAutoWaitTimeout)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>value of seconds</dd></dl>
+</li>
+</ul>
+<a name="setFindFailedResponse(org.sikuli.script.FindFailedResponse)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFindFailedResponse</h4>
+<pre>public void setFindFailedResponse(<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> response)</pre>
+<div class="block">FindFailedResponse.<br /> ABORT - (initial value) abort script on FindFailed (=
+ setThrowException(true) )<br /> SKIP - ignore FindFailed (same as setThrowException(false) )<br
+ /> PROMPT - display prompt on FindFailed to let user decide how to proceed<br /> RETRY -
+ continue to wait for appearence on FindFailed (caution: endless loop)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>response</code> - the FindFailedResponse</dd></dl>
+</li>
+</ul>
+<a name="getFindFailedResponse()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFindFailedResponse</h4>
+<pre>public <a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a> getFindFailedResponse()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current setting (see setFindFailedResponse)</dd></dl>
+</li>
+</ul>
+<a name="getWaitScanRate()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitScanRate</h4>
+<pre>public float getWaitScanRate()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the regions current WaitScanRate</dd></dl>
+</li>
+</ul>
+<a name="setWaitScanRate(float)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWaitScanRate</h4>
+<pre>public void setWaitScanRate(float waitScanRate)</pre>
+<div class="block">set the regions individual WaitScanRate</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>waitScanRate</code> - </dd></dl>
+</li>
+</ul>
+<a name="getObserveScanRate()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObserveScanRate</h4>
+<pre>public float getObserveScanRate()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the regions current ObserveScanRate</dd></dl>
+</li>
+</ul>
+<a name="setObserveScanRate(float)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObserveScanRate</h4>
+<pre>public void setObserveScanRate(float observeScanRate)</pre>
+<div class="block">set the regions individual ObserveScanRate</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observeScanRate</code> - </dd></dl>
+</li>
+</ul>
+<a name="getWaitForVanish()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitForVanish</h4>
+<pre>public int getWaitForVanish()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the regions current WaitForVaish time in seconds</dd></dl>
+</li>
+</ul>
+<a name="setWaitForVanish(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWaitForVanish</h4>
+<pre>public void setWaitForVanish(int waitForVanish)</pre>
+<div class="block">set the regions individual WaitForVanish</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>waitForVanish</code> - time in seconds</dd></dl>
+</li>
+</ul>
+<a name="getScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScreen</h4>
+<pre>public <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getScreen()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the Screen object containing the region</dd></dl>
+</li>
+</ul>
+<a name="getScreenContaining()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScreenContaining</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getScreenContaining()</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>Only for compatibility, to get the screen containing this region, use
+ <a href="../../../org/sikuli/script/Region.html#getScreen()"><code>getScreen()</code></a></i></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the screen, that contains the top left corner of the region. Returns primary screen if
+ outside of any screen.</dd></dl>
+</li>
+</ul>
+<a name="showScreens()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>showScreens</h4>
+<pre>public void showScreens()</pre>
+<div class="block">synonym for showMonitors</div>
+</li>
+</ul>
+<a name="resetScreens()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resetScreens</h4>
+<pre>public void resetScreens()</pre>
+<div class="block">synonym for resetMonitors</div>
+</li>
+</ul>
+<a name="getCenter()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCenter</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getCenter()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the center pixel location of the region</dd></dl>
+</li>
+</ul>
+<a name="getTarget()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTarget</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTarget()</pre>
+<div class="block">convenience method</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the region's center</dd></dl>
+</li>
+</ul>
+<a name="setCenter(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCenter</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setCenter(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">Moves the region to the area, whose center is the given location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the location which is the new center of the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getTopLeft()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopLeft</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTopLeft()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>top left corner Location</dd></dl>
+</li>
+</ul>
+<a name="setTopLeft(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTopLeft</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setTopLeft(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">Moves the region to the area, whose top left corner is the given location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the location which is the new top left point of the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getTopRight()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTopRight</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getTopRight()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>top right corner Location</dd></dl>
+</li>
+</ul>
+<a name="setTopRight(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTopRight</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setTopRight(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">Moves the region to the area, whose top right corner is the given location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the location which is the new top right point of the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getBottomLeft()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBottomLeft</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getBottomLeft()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>bottom left corner Location</dd></dl>
+</li>
+</ul>
+<a name="setBottomLeft(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBottomLeft</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setBottomLeft(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">Moves the region to the area, whose bottom left corner is the given location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the location which is the new bottom left point of the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getBottomRight()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBottomRight</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> getBottomRight()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>bottom right corner Location</dd></dl>
+</li>
+</ul>
+<a name="setBottomRight(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBottomRight</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setBottomRight(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">Moves the region to the area, whose bottom right corner is the given location</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the location which is the new bottom right point of the region</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getX()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getX</h4>
+<pre>public int getX()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>x of top left corner</dd></dl>
+</li>
+</ul>
+<a name="getY()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getY</h4>
+<pre>public int getY()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>y of top left corner</dd></dl>
+</li>
+</ul>
+<a name="getW()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getW</h4>
+<pre>public int getW()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>width of region</dd></dl>
+</li>
+</ul>
+<a name="getH()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getH</h4>
+<pre>public int getH()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>height of region</dd></dl>
+</li>
+</ul>
+<a name="setX(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setX</h4>
+<pre>public void setX(int X)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - new x position of top left corner</dd></dl>
+</li>
+</ul>
+<a name="setY(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setY</h4>
+<pre>public void setY(int Y)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>Y</code> - new y position of top left corner</dd></dl>
+</li>
+</ul>
+<a name="setW(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setW</h4>
+<pre>public void setW(int W)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>W</code> - new width</dd></dl>
+</li>
+</ul>
+<a name="setH(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setH</h4>
+<pre>public void setH(int H)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>H</code> - new height</dd></dl>
+</li>
+</ul>
+<a name="setSize(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSize</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setSize(int W,
+ int H)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>W</code> - new width</dd><dd><code>H</code> - new height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getRect()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRect</h4>
+<pre>public java.awt.Rectangle getRect()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the AWT Rectangle of the region</dd></dl>
+</li>
+</ul>
+<a name="setRect(java.awt.Rectangle)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRect</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setRect(java.awt.Rectangle r)</pre>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the AWT Rectangle to use for position/size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="setRect(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRect</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setRect(int X,
+ int Y,
+ int W,
+ int H)</pre>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - new x of top left corner</dd><dd><code>Y</code> - new y of top left corner</dd><dd><code>W</code> - new width</dd><dd><code>H</code> - new height</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="setRect(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRect</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setRect(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the region to use for position/size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="setROI(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setROI</h4>
+<pre>public void setROI(int X,
+ int Y,
+ int W,
+ int H)</pre>
+<div class="block">resets this region to the given location, and size <br /> this might move the region even to
+ another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects. For Region objects use setRect() instead.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>X</code> - </dd><dd><code>Y</code> - </dd><dd><code>W</code> - </dd><dd><code>H</code> - </dd></dl>
+</li>
+</ul>
+<a name="setROI(java.awt.Rectangle)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setROI</h4>
+<pre>public void setROI(java.awt.Rectangle roi)</pre>
+<div class="block">resets this region to the given rectangle <br /> this might move the region even to another
+ screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects. For Region objects use setRect() instead.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>roi</code> - </dd></dl>
+</li>
+</ul>
+<a name="setROI(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setROI</h4>
+<pre>public void setROI(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+<div class="block">resets this region to the given region <br /> this might move the region even to another screen
+
+ Because of the wanted side effect for the containing screen, this should only be used with
+ screen objects. For Region objects use setRect() instead.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - </dd></dl>
+</li>
+</ul>
+<a name="inside()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>inside</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> inside()</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>only for backward compatibility</i></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="moveTo(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>moveTo</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> moveTo(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>to be like AWT Rectangle API use setLocation()</i></div>
+<div class="block">set the regions position<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - new top left corner</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="setLocation(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLocation</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setLocation(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">set the regions position<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - new top left corner</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="morphTo(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>morphTo</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> morphTo(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>to be like AWT Rectangle API use setRect() instead</i></div>
+<div class="block">set the regions position/size<br />this might move the region even to another screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="add(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> add(int l,
+ int r,
+ int t,
+ int b)</pre>
+<div class="block">resize the region using the given padding values<br />might be negative</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>l</code> - padding on left side</dd><dd><code>r</code> - padding on right side</dd><dd><code>t</code> - padding at top side</dd><dd><code>b</code> - padding at bottom side</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="add(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> add(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+<div class="block">extend the region, so it contains the given region<br />but only the part inside the current
+ screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the region to include</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="add(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> add(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">extend the region, so it contains the given point<br />but only the part inside the current
+ screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - the point to include</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="getLastMatch()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastMatch</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> getLastMatch()</pre>
+<div class="block">a find operation saves its match on success in the used region object<br />unchanged if not
+ successful</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the Match object from last successful find in this region</dd></dl>
+</li>
+</ul>
+<a name="getLastMatches()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastMatches</h4>
+<pre>public java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> getLastMatches()</pre>
+<div class="block">a searchAll operation saves its matches on success in the used region object<br />unchanged if
+ not successful</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a Match-Iterator of matches from last successful searchAll in this region</dd></dl>
+</li>
+</ul>
+<a name="getLastScreenImage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastScreenImage</h4>
+<pre>public ScreenImage getLastScreenImage()</pre>
+<div class="block">get the last image taken on this regions screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the stored ScreenImage</dd></dl>
+</li>
+</ul>
+<a name="getLastScreenImageFile()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastScreenImageFile</h4>
+<pre>public java.lang.String getLastScreenImageFile()
+ throws java.io.IOException</pre>
+<div class="block">stores the lastScreenImage in the current bundle path with a created unique name</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the absolute file name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="getLastScreenImageFile(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastScreenImageFile</h4>
+<pre>public java.lang.String getLastScreenImageFile(java.lang.String name)
+ throws java.io.IOException</pre>
+<div class="block">stores the lastScreenImage in the current bundle path with the given name</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - file name (.png is added if not there)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the absolute file name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="getLastScreenImageFile(java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastScreenImageFile</h4>
+<pre>public java.lang.String getLastScreenImageFile(java.lang.String path,
+ java.lang.String name)
+ throws java.io.IOException</pre>
+<div class="block">stores the lastScreenImage in the given path with the given name</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - file name (.png is added if not there)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the absolute file name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="contains(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public boolean contains(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region)</pre>
+<div class="block">check if current region contains given region</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>region</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true/false</dd></dl>
+</li>
+</ul>
+<a name="offset(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>offset</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> offset(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">create region with same size at top left corner offset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - use its x and y to set the offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="offset(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>offset</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> offset(int x,
+ int y)</pre>
+<div class="block">create region with same size at top left corner offset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - horizontal offset</dd><dd><code>y</code> - vertical offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="nearby()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nearby</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> nearby()</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>to be like AWT Rectangle API use grow() instead</i></div>
+<div class="block">create a region enlarged 50 pixels on each side</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="nearby(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nearby</h4>
+<pre>@Deprecated
+public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> nearby(int range)</pre>
+<div class="block"><span class="strong">Deprecated.</span> <i>to be like AWT Rectangle API use grow() instaed</i></div>
+<div class="block">create a region enlarged range pixels on each side</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>range</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int range)</pre>
+<div class="block">create a region enlarged range pixels on each side</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>range</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int w,
+ int h)</pre>
+<div class="block">create a region enlarged w pixels on left and right side<br /> and h pixels at top and bottom</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>w</code> - </dd><dd><code>h</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="grow(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>grow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> grow(int l,
+ int r,
+ int t,
+ int b)</pre>
+<div class="block">create a region enlarged l pixels on left and r pixels right side<br /> and t pixels at top
+ side and b pixels at bottom side <br />
+ negative values go inside (shrink)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>l</code> - add to the left</dd><dd><code>r</code> - add to right</dd><dd><code>t</code> - add above</dd><dd><code>b</code> - add beneath</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="rightAt()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> rightAt()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point middle on right edge</dd></dl>
+</li>
+</ul>
+<a name="rightAt(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> rightAt(int offset)</pre>
+<div class="block">positive offset goes to the right <br />might be off current screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point with given offset horizontally to middle point on right edge</dd></dl>
+</li>
+</ul>
+<a name="right()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>right</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> right()</pre>
+<div class="block">create a region right of the right side with same height<br /> the new region extends to the
+ right screen border<br /> use grow() to include the current region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="right(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>right</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> right(int width)</pre>
+<div class="block">create a region right of the right side with same height and given width<br />
+ negative width creates the right part with width inside the region
+ use grow() to include the current region</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>width</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="leftAt()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>leftAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> leftAt()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point middle on left edge</dd></dl>
+</li>
+</ul>
+<a name="leftAt(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>leftAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> leftAt(int offset)</pre>
+<div class="block">negative offset goes to the left <br />might be off current screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point with given offset horizontally to middle point on left edge</dd></dl>
+</li>
+</ul>
+<a name="left()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>left</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> left()</pre>
+<div class="block">create a region left of the left side with same height<br /> the new region extends to the left
+ screen border<br /> use grow() to include the current region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="left(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>left</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> left(int width)</pre>
+<div class="block">create a region left of the left side with same height and given width<br />
+ negative width creates the left part with width inside the region
+ use grow() to include the current region <br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>width</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="aboveAt()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aboveAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> aboveAt()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point middle on top edge</dd></dl>
+</li>
+</ul>
+<a name="aboveAt(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aboveAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> aboveAt(int offset)</pre>
+<div class="block">negative offset goes towards top of screen <br />might be off current screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point with given offset vertically to middle point on top edge</dd></dl>
+</li>
+</ul>
+<a name="above()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>above</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> above()</pre>
+<div class="block">create a region above the top side with same width<br /> the new region extends to the top
+ screen border<br /> use grow() to include the current region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="above(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>above</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> above(int height)</pre>
+<div class="block">create a region above the top side with same width and given height<br />
+ negative height creates the top part with height inside the region
+ use grow() to include the current region</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>height</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="belowAt()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>belowAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> belowAt()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point middle on bottom edge</dd></dl>
+</li>
+</ul>
+<a name="belowAt(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>belowAt</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> belowAt(int offset)</pre>
+<div class="block">positive offset goes towards bottom of screen <br />might be off current screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>point with given offset vertically to middle point on bottom edge</dd></dl>
+</li>
+</ul>
+<a name="below()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>below</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> below()</pre>
+<div class="block">create a region below the bottom side with same width<br /> the new region extends to the
+ bottom screen border<br /> use grow() to include the current region</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="below(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>below</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> below(int height)</pre>
+<div class="block">create a region below the bottom side with same width and given height<br />
+ negative height creates the bottom part with height inside the region
+ use grow() to include the current region</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>height</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="union(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>union</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> union(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> ur)</pre>
+<div class="block">create a new region containing both regions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ur</code> - region to unite with</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="intersection(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>intersection</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> intersection(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> ir)</pre>
+<div class="block">create a region that is the intersection of the given regions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ir</code> - the region to intersect with like AWT Rectangle API</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> get(int reg)</pre>
+<div class="block">select the specified part of the region <br />
+ example for upper part of region (NORTH) <br />
+ NORTH (N2) - upper half <br />
+ NORTH_NORTH (N3) - middle third in upper third <br />
+ NORTH_EAST (NE) - right third in upper third <br />
+ NORTH_WEST (NW) - left third in upper third <br />
+ ... similar for the other directions <br />
+ MID_VERTICAL (MV) half of width vertically centered <br />
+ MID_HORIZONTAL (MV) half of height horizontally centered <br />
+ MID_HALF (M2) half of width / half of height centered <br />
+ MID_THIRD (M3) third of width / third of height centered <br /></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new region</dd></dl>
+</li>
+</ul>
+<a name="setRows(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRows</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setRows(int n)</pre>
+<div class="block">store info: this region is divided vertically into n even rows <br />
+ a preparation for using getRow()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the top row</dd></dl>
+</li>
+</ul>
+<a name="setCols(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCols</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setCols(int n)</pre>
+<div class="block">store info: this region is divided horizontally into n even columns <br />
+ a preparation for using getCol()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the leftmost column</dd></dl>
+</li>
+</ul>
+<a name="getRows()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRows</h4>
+<pre>public int getRows()</pre>
+</li>
+</ul>
+<a name="getRowH()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRowH</h4>
+<pre>public int getRowH()</pre>
+</li>
+</ul>
+<a name="getCols()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCols</h4>
+<pre>public int getCols()</pre>
+</li>
+</ul>
+<a name="getColW()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getColW</h4>
+<pre>public int getColW()</pre>
+</li>
+</ul>
+<a name="setRaster(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRaster</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> setRaster(int r,
+ int c)</pre>
+<div class="block">store info: this region is divided into a raster of even cells <br />
+ a preparation for using getCell()</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - </dd><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the topleft cell</dd></dl>
+</li>
+</ul>
+<a name="getRow(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRow</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> getRow(int r)</pre>
+<div class="block">get the specified row counting from 0, if rows or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the row as new region or the region itself, if no rows are setup</dd></dl>
+</li>
+</ul>
+<a name="getCol(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCol</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> getCol(int c)</pre>
+<div class="block">get the specified column counting from 0, if columns or raster are setup
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the column as new region or the region itself, if no columns are setup</dd></dl>
+</li>
+</ul>
+<a name="getCell(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCell</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> getCell(int r,
+ int c)</pre>
+<div class="block">get the specified cell counting from (0, 0), if a raster is setup <br />
+ negative counts reverse from the end (last = -1)
+ values outside range are 0 or last respectively</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the cell as new region or the region itself, if no raster is setup</dd></dl>
+</li>
+</ul>
+<a name="highlight()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highlight</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> highlight()</pre>
+<div class="block">Toggle the regions Highlight visibility (currently red frame)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="highlight(float)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highlight</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> highlight(float secs)</pre>
+<div class="block">show the regions Highlight for the given time in seconds (currently red frame) if 0 - use the
+ global Settings.SlowMotionDelay</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>secs</code> - time in seconds</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the region itself</dd></dl>
+</li>
+</ul>
+<a name="highlight(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highlight</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> highlight(int secs)</pre>
+<div class="block">hack to implement the getLastMatch() convenience 0 means same as highlight() <.0 same as
+ highlight(secs) if available the last match is highlighted</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>secs</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>this region</dd></dl>
+</li>
+</ul>
+<a name="wait(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wait</h4>
+<pre>public void wait(double timeout)</pre>
+<div class="block">WARNING: wait(long timeout) is taken by Java Object as final. This method catches any
+ interruptedExceptions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - The time to wait</dd></dl>
+</li>
+</ul>
+<a name="find(java.lang.Object)">
+<!-- -->
+</a><a name="find(PSI)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> find(PSI target)
+ throws FindFailed</pre>
+<div class="block">Match find( Pattern/String ) finds the given pattern on the screen and returns the best match.
+ If AutoWaitTimeout is set, this is equivalent to wait().</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - A search criteria</dd>
+<dt><span class="strong">Returns:</span></dt><dd>If found, the element. null otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation failed</dd></dl>
+</li>
+</ul>
+<a name="findAll(java.lang.Object)">
+<!-- -->
+</a><a name="findAll(PSI)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAll</h4>
+<pre>public <PSI> java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> findAll(PSI target)
+ throws FindFailed</pre>
+<div class="block">Iterator<Match> searchAll( Pattern/String/Image ) finds the given pattern on the screen and
+ returns the best match. If AutoWaitTimeout is set, this is equivalent to wait().</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - A search criteria</dd>
+<dt><span class="strong">Returns:</span></dt><dd>All elements matching</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation failed</dd></dl>
+</li>
+</ul>
+<a name="wait(java.lang.Object)">
+<!-- -->
+</a><a name="wait(PSI)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wait</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> wait(PSI target)
+ throws FindFailed</pre>
+<div class="block">Waits for the Pattern, String or Image to appear</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - The target to search for</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The found Match</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="wait(java.lang.Object,double)">
+<!-- -->
+</a><a name="wait(PSI, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wait</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> wait(PSI target,
+ double timeout)
+ throws FindFailed</pre>
+<div class="block">Waits for the Pattern, String or Image to appear or timeout (in second) is passed</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - The target to search for</dd><dd><code>timeout</code> - Timeout in seconds</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The found Match</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation finally failed</dd></dl>
+</li>
+</ul>
+<a name="exists(java.lang.Object)">
+<!-- -->
+</a><a name="exists(PSI)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exists</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> exists(PSI target)</pre>
+<div class="block">Check if target exists (with the default autoWaitTimeout)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - Pattern or String</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the match (null if not found or image file missing)</dd></dl>
+</li>
+</ul>
+<a name="exists(java.lang.Object,double)">
+<!-- -->
+</a><a name="exists(PSI, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exists</h4>
+<pre>public <PSI> <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> exists(PSI target,
+ double timeout)</pre>
+<div class="block">Check if target exists with a specified timeout<br />
+ timout = 0: returns immediately after first search</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - Pattern, String or Image</dd><dd><code>timeout</code> - Timeout in seconds</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the match (null if not found or image file missing)</dd></dl>
+</li>
+</ul>
+<a name="findText(java.lang.String, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findText</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> findText(java.lang.String text,
+ double timeout)
+ throws FindFailed</pre>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - </dd><dd><code>timeout</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the matched region containing the text</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="findText(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findText</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> findText(java.lang.String text)
+ throws FindFailed</pre>
+<div class="block">Use findText() instead of find() in cases where the given string could be misinterpreted as an
+ image filename</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the matched region containing the text</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="findAllText(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findAllText</h4>
+<pre>public java.util.Iterator<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> findAllText(java.lang.String text)
+ throws FindFailed</pre>
+<div class="block">Use findAllText() instead of find() in cases where the given string could be misinterpreted as
+ an image filename</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the matched region containing the text</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="waitVanish(java.lang.Object)">
+<!-- -->
+</a><a name="waitVanish(PSI)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitVanish</h4>
+<pre>public <PSI> boolean waitVanish(PSI target)</pre>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if the target vanishes, otherwise returns false.</dd></dl>
+</li>
+</ul>
+<a name="waitVanish(java.lang.Object,double)">
+<!-- -->
+</a><a name="waitVanish(PSI, double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitVanish</h4>
+<pre>public <PSI> boolean waitVanish(PSI target,
+ double timeout)</pre>
+<div class="block">boolean waitVanish(Pattern/String/Image target, timeout-sec) waits until target vanishes or
+ timeout (in second) is passed</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if target vanishes, false otherwise and if imagefile is missing.</dd></dl>
+</li>
+</ul>
+<a name="isObserving()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isObserving</h4>
+<pre>public boolean isObserving()</pre>
+</li>
+</ul>
+<a name="onAppear(java.lang.Object,java.lang.Object)">
+<!-- -->
+</a><a name="onAppear(PSI, java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onAppear</h4>
+<pre>public <PSI> java.lang.String onAppear(PSI target,
+ java.lang.Object observer)</pre>
+</li>
+</ul>
+<a name="onVanish(java.lang.Object,java.lang.Object)">
+<!-- -->
+</a><a name="onVanish(PSI, java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onVanish</h4>
+<pre>public <PSI> java.lang.String onVanish(PSI target,
+ java.lang.Object observer)</pre>
+</li>
+</ul>
+<a name="onChange(int, java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onChange</h4>
+<pre>public java.lang.String onChange(int threshold,
+ java.lang.Object observer)</pre>
+</li>
+</ul>
+<a name="onChange(SikuliEventObserver)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onChange</h4>
+<pre>public java.lang.String onChange(SikuliEventObserver observer)</pre>
+</li>
+</ul>
+<a name="observe()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>observe</h4>
+<pre>public void observe()</pre>
+</li>
+</ul>
+<a name="observe(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>observe</h4>
+<pre>public boolean observe(double secs)</pre>
+</li>
+</ul>
+<a name="observeInBackground(double)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>observeInBackground</h4>
+<pre>public void observeInBackground(double secs)</pre>
+</li>
+</ul>
+<a name="stopObserver()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopObserver</h4>
+<pre>public void stopObserver()</pre>
+</li>
+</ul>
+<a name="hover()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hover</h4>
+<pre>public int hover()</pre>
+<div class="block">move the mouse pointer to region's last successful match <br />use center if no lastMatch <br
+ />if region is a match: move to targetOffset <br />same as mouseMove</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="hover(java.lang.Object)">
+<!-- -->
+</a><a name="hover(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hover</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int hover(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">move the mouse pointer to the given target location<br /> same as mouseMove<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="click()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>click</h4>
+<pre>public int click()</pre>
+<div class="block">left click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="click(java.lang.Object)">
+<!-- -->
+</a><a name="click(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>click</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int click(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">left click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="click(java.lang.Object,int)">
+<!-- -->
+</a><a name="click(PatternFilenameRegionMatchLocation, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>click</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int click(PatternFilenameRegionMatchLocation target,
+ int modifiers)
+ throws FindFailed</pre>
+<div class="block">left click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>modifiers</code> - the value of the resulting bitmask (see KeyModifier)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="doubleClick()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleClick</h4>
+<pre>public int doubleClick()</pre>
+<div class="block">double click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="doubleClick(java.lang.Object)">
+<!-- -->
+</a><a name="doubleClick(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleClick</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int doubleClick(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">double click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="doubleClick(java.lang.Object,int)">
+<!-- -->
+</a><a name="doubleClick(PatternFilenameRegionMatchLocation, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleClick</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int doubleClick(PatternFilenameRegionMatchLocation target,
+ int modifiers)
+ throws FindFailed</pre>
+<div class="block">double click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>modifiers</code> - the value of the resulting bitmask (see KeyModifier)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="rightClick()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightClick</h4>
+<pre>public int rightClick()</pre>
+<div class="block">right click at the region's last successful match <br />use center if no lastMatch <br />if
+ region is a match: click targetOffset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="rightClick(java.lang.Object)">
+<!-- -->
+</a><a name="rightClick(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightClick</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int rightClick(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">right click at the given target location<br /> Pattern or Filename - do a find before and use
+ the match<br /> Region - position at center<br /> Match - position at match's targetOffset<br
+ /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="rightClick(java.lang.Object,int)">
+<!-- -->
+</a><a name="rightClick(PatternFilenameRegionMatchLocation, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightClick</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int rightClick(PatternFilenameRegionMatchLocation target,
+ int modifiers)
+ throws FindFailed</pre>
+<div class="block">right click at the given target location<br /> holding down the given modifier keys<br />
+ Pattern or Filename - do a find before and use the match<br /> Region - position at center<br
+ /> Match - position at match's targetOffset<br /> Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>modifiers</code> - the value of the resulting bitmask (see KeyModifier)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="delayClick(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delayClick</h4>
+<pre>public void delayClick(int millisecs)</pre>
+<div class="block">time in milliseconds to delay between button down/up at next click only (max 1000)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>millisecs</code> - </dd></dl>
+</li>
+</ul>
+<a name="dragDrop(java.lang.Object)">
+<!-- -->
+</a><a name="dragDrop(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dragDrop</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int dragDrop(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">Drag from region's last match and drop at given target <br />applying Settings.DelayAfterDrag
+ and DelayBeforeDrop <br /> using left mouse button</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target destination position</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation failed</dd></dl>
+</li>
+</ul>
+<a name="dragDrop(java.lang.Object,java.lang.Object)">
+<!-- -->
+</a><a name="dragDrop(PatternFilenameRegionMatchLocation, PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dragDrop</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int dragDrop(PatternFilenameRegionMatchLocation t1,
+ PatternFilenameRegionMatchLocation t2)
+ throws FindFailed</pre>
+<div class="block">Drag from a position and drop to another using left mouse button<br />applying
+ Settings.DelayAfterDrag and DelayBeforeDrop</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>t1</code> - source position</dd><dd><code>t2</code> - destination position</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation failed</dd></dl>
+</li>
+</ul>
+<a name="drag(java.lang.Object)">
+<!-- -->
+</a><a name="drag(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>drag</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int drag(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">Prepare a drag action: move mouse to given target <br />press and hold left mouse button <br
+ />wait Settings.DelayAfterDrag</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="dropAt(java.lang.Object)">
+<!-- -->
+</a><a name="dropAt(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dropAt</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int dropAt(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">finalize a drag action with a drop: move mouse to given target <br />wait
+ Settings.DelayBeforeDrop <br />release the left mouse button</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="mouseDown(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mouseDown</h4>
+<pre>public void mouseDown(int buttons)</pre>
+<div class="block">press and hold the specified buttons - use + to combine Button.LEFT left mouse button
+ Button.MIDDLE middle mouse button Button.RIGHT right mouse button</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>buttons</code> - </dd></dl>
+</li>
+</ul>
+<a name="mouseUp()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mouseUp</h4>
+<pre>public void mouseUp()</pre>
+<div class="block">release all currently held buttons</div>
+</li>
+</ul>
+<a name="mouseUp(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mouseUp</h4>
+<pre>public void mouseUp(int buttons)</pre>
+<div class="block">release the specified mouse buttons (see mouseDown) if buttons==0, all currently held buttons
+ are released</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>buttons</code> - </dd></dl>
+</li>
+</ul>
+<a name="mouseMove()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mouseMove</h4>
+<pre>public int mouseMove()</pre>
+<div class="block">move the mouse pointer to the region's last successful match<br />same as hover<br /></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="mouseMove(java.lang.Object)">
+<!-- -->
+</a><a name="mouseMove(PatternFilenameRegionMatchLocation)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mouseMove</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int mouseMove(PatternFilenameRegionMatchLocation target)
+ throws FindFailed</pre>
+<div class="block">move the mouse pointer to the given target location<br /> same as hover<br /> Pattern or
+ Filename - do a find before and use the match<br /> Region - position at center<br /> Match -
+ position at match's targetOffset<br />
+ Location - position at that point<br /></div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>target</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - for Pattern or Filename</dd></dl>
+</li>
+</ul>
+<a name="wheel(int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wheel</h4>
+<pre>public int wheel(int direction,
+ int steps)</pre>
+<div class="block">Move the wheel at the current mouse position<br /> the given steps in the given direction: <br
+ />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>direction</code> - to move the wheel</dd><dd><code>steps</code> - the number of steps</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 in any case</dd></dl>
+</li>
+</ul>
+<a name="wheel(java.lang.Object,int,int)">
+<!-- -->
+</a><a name="wheel(PatternFilenameRegionMatchLocation, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wheel</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int wheel(PatternFilenameRegionMatchLocation target,
+ int direction,
+ int steps)
+ throws FindFailed</pre>
+<div class="block">move the mouse pointer to the given target location<br /> and move the wheel the given steps in
+ the given direction: <br />Button.WHEEL_DOWN, Button.WHEEL_UP</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>direction</code> - to move the wheel</dd><dd><code>steps</code> - the number of steps</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code> - if the Find operation failed</dd></dl>
+</li>
+</ul>
+<a name="atMouse()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>atMouse</h4>
+<pre>public static <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> atMouse()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current mouse pointer Location</dd></dl>
+</li>
+</ul>
+<a name="keyDown(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyDown</h4>
+<pre>public void keyDown(int keycode)</pre>
+<div class="block">press and hold the given key use a constant from java.awt.event.KeyEvent which might be special
+ in the current machine/system environment</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keycode</code> - </dd></dl>
+</li>
+</ul>
+<a name="keyDown(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyDown</h4>
+<pre>public void keyDown(java.lang.String keys)</pre>
+<div class="block">press and hold the given keys including modifier keys <br />use the key constants defined in
+ class Key, <br />which only provides a subset of a US-QWERTY PC keyboard layout <br />might be
+ mixed with simple characters
+ <br />use + to concatenate Key constants</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - </dd></dl>
+</li>
+</ul>
+<a name="keyUp()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyUp</h4>
+<pre>public void keyUp()</pre>
+<div class="block">release all currently pressed keys</div>
+</li>
+</ul>
+<a name="keyUp(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyUp</h4>
+<pre>public void keyUp(int keycode)</pre>
+<div class="block">release the given keys (see keyDown(keycode) )</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keycode</code> - </dd></dl>
+</li>
+</ul>
+<a name="keyUp(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyUp</h4>
+<pre>public void keyUp(java.lang.String keys)</pre>
+<div class="block">release the given keys (see keyDown(keys) )</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - </dd></dl>
+</li>
+</ul>
+<a name="write(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public int write(java.lang.String text)</pre>
+</li>
+</ul>
+<a name="type(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public int type(java.lang.String text)</pre>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp
+ <br />about the usable Key constants see keyDown(keys) <br />Class Key only provides a subset
+ of a US-QWERTY PC keyboard layout<br />the text is entered at the current position of the
+ focus/carret</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="type(java.lang.String, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public int type(java.lang.String text,
+ int modifiers)</pre>
+<div class="block">enters the given text one character/key after another using keyDown/keyUp<br />while holding
+ down the given modifier keys <br />about the usable Key constants see keyDown(keys) <br />Class
+ Key only provides a subset of a US-QWERTY PC keyboard layout<br />the text is entered at the
+ current position of the focus/carret</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd><dd><code>modifiers</code> - constants according to class KeyModifiers</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="type(java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public int type(java.lang.String text,
+ java.lang.String modifiers)</pre>
+<div class="block">enters the given text one character/key after another using
+
+ keyDown/keyUp<br />while holding down the given modifier keys <br />about the usable Key
+ constants see keyDown(keys) <br />Class Key only provides a subset of a US-QWERTY PC keyboard
+ layout<br />the text is entered at the current position of the focus/carret</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd><dd><code>modifiers</code> - constants according to class Key - combine using +</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd></dl>
+</li>
+</ul>
+<a name="type(java.lang.Object,java.lang.String)">
+<!-- -->
+</a><a name="type(PatternFilenameRegionMatchLocation, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int type(PatternFilenameRegionMatchLocation target,
+ java.lang.String text)
+ throws FindFailed</pre>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />about the usable Key
+ constants see keyDown(keys)
+ <br />Class Key only provides a subset of a US-QWERTY PC keyboard layout</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="type(java.lang.Object,java.lang.String,int)">
+<!-- -->
+</a><a name="type(PatternFilenameRegionMatchLocation, java.lang.String, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int type(PatternFilenameRegionMatchLocation target,
+ java.lang.String text,
+ int modifiers)
+ throws FindFailed</pre>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd><dd><code>modifiers</code> - constants according to class KeyModifiers</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="type(java.lang.Object,java.lang.String,java.lang.String)">
+<!-- -->
+</a><a name="type(PatternFilenameRegionMatchLocation, java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int type(PatternFilenameRegionMatchLocation target,
+ java.lang.String text,
+ java.lang.String modifiers)
+ throws FindFailed</pre>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br />enters the
+ given text one character/key after another using keyDown/keyUp <br />while holding down the
+ given modifier keys<br />about the usable Key constants see keyDown(keys) <br />Class Key only
+ provides a subset of a US-QWERTY PC keyboard layout</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - containing characters and/or Key constants</dd><dd><code>modifiers</code> - constants according to class Key - combine using +</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1 if possible, 0 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="delayType(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delayType</h4>
+<pre>public void delayType(int millisecs)</pre>
+<div class="block">time in milliseconds to delay between each character at next type only (max 1000)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>millisecs</code> - </dd></dl>
+</li>
+</ul>
+<a name="paste(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>paste</h4>
+<pre>public int paste(java.lang.String text)</pre>
+<div class="block">pastes the text at the current position of the focus/carret <br />using the clipboard and
+ strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - a string, which might contain unicode characters</dd>
+<dt><span class="strong">Returns:</span></dt><dd>0 if possible, 1 otherwise</dd></dl>
+</li>
+</ul>
+<a name="paste(java.lang.Object,java.lang.String)">
+<!-- -->
+</a><a name="paste(PatternFilenameRegionMatchLocation, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>paste</h4>
+<pre>public <PatternFilenameRegionMatchLocation> int paste(PatternFilenameRegionMatchLocation target,
+ java.lang.String text)
+ throws FindFailed</pre>
+<div class="block">first does a click(target) at the given target position to gain focus/carret <br /> and then
+ pastes the text <br /> using the clipboard and strg/ctrl/cmd-v (paste keyboard shortcut)</div>
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PatternFilenameRegionMatchLocation</code> - target</dd><dt><span class="strong">Parameters:</span></dt><dd><code>text</code> - a string, which might contain unicode characters</dd>
+<dt><span class="strong">Returns:</span></dt><dd>0 if possible, 1 otherwise</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>FindFailed</code></dd></dl>
+</li>
+</ul>
+<a name="text()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>text</h4>
+<pre>public java.lang.String text()</pre>
+<div class="block">STILL EXPERIMENTAL: tries to read the text in this region<br /> might contain misread
+ characters, NL characters and other stuff, when interpreting contained grafics as text<br />
+ Best results: one line of text with no grafics in the line</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the text read (utf8 encoded)</dd></dl>
+</li>
+</ul>
+<a name="listText()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>listText</h4>
+<pre>public java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> listText()</pre>
+<div class="block">VERY EXPERIMENTAL: returns a list of matches, that represent single words, that have been found
+ in this region<br /> the match's x,y,w,h the region of the word<br /> Match.getText() returns
+ the word (utf8) at this match<br />
+ Match.getScore() returns a value between 0 ... 1, that represents some OCR-confidence value<br
+ /> (the higher, the better the OCR engine thinks the result is)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a list of matches</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Region.html" target="_top">Frames</a></li>
+<li><a href="Region.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/Screen.html b/Docs/Java/docs/org/sikuli/script/Screen.html
new file mode 100644
index 0000000..f930fd1
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/Screen.html
@@ -0,0 +1,783 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Screen</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Screen";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Screen.html" target="_top">Frames</a></li>
+<li><a href="Screen.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.Region">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class Screen" class="title">Class Screen</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">org.sikuli.script.Region</a></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.Screen</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">Screen</span>
+extends <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></pre>
+<div class="block">A screen represents a physical monitor with its coordinates and size according to the global
+ point system: the screen areas are grouped around a point (0,0) like in a cartesian system (the
+ top left corner and the points contained in the screen area might have negative x and/or y values)
+ <br >The screens are arranged in an array (index = id) and each screen is always the same object
+ (not possible to create new objects).
+ <br />A screen inherits from class Region, so it can be used as such in all aspects. If you need
+ the region of the screen more than once, you have to create new ones based on the screen.
+ <br />The so called primary screen is the one with top left (0,0) and has id 0.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.sikuli.script.Region">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></h3>
+<code><a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_LEFT">CREATE_X_DIRECTION_LEFT</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_X_DIRECTION_RIGHT">CREATE_X_DIRECTION_RIGHT</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_BOTTOM">CREATE_Y_DIRECTION_BOTTOM</a>, <a href="../../../org/sikuli/script/Region.html#CREATE_Y_DIRECTION_TOP">CREATE_Y_DIRECTION_TOP</a>, <a href="../../../org/sikuli/script/Region.html#E2">E2</a>, <a href="../.. [...]
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Screen.html#Screen()">Screen</a></strong>()</code>
+<div class="block">Is the screen object having the top left corner as (0,0).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Screen.html#Screen(boolean)">Screen</a></strong>(boolean isScreenUnion)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/Screen.html#Screen(int)">Screen</a></strong>(int id)</code>
+<div class="block">Is the screen object at the given id</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#capture()">capture</a></strong>()</code>
+<div class="block">create a ScreenImage with the physical bounds of this screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#capture(int, int, int, int)">capture</a></strong>(int x,
+ int y,
+ int w,
+ int h)</code>
+<div class="block">create a ScreenImage with given coordinates on this screen.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#capture(java.awt.Rectangle)">capture</a></strong>(java.awt.Rectangle rect)</code>
+<div class="block">create a ScreenImage with given rectangle on this screen.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#capture(org.sikuli.script.Region)">capture</a></strong>(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</code>
+<div class="block">create a ScreenImage with given region on this screen</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.Rectangle</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getBounds()">getBounds</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.awt.Rectangle</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getBounds(int)">getBounds</a></strong>(int id)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.awt.GraphicsDevice</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getGraphicsDevice()">getGraphicsDevice</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getID()">getID</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getNumberScreens()">getNumberScreens</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getPrimaryId()">getPrimaryId</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getPrimaryScreen()">getPrimaryScreen</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>IRobot</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getRobot()">getRobot</a></strong>()</code>
+<div class="block">Gets the Robot of this Screen.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static IRobot</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getRobot(int)">getRobot</a></strong>(int id)</code>
+<div class="block">each screen has exactly one robot (internally used for screen capturing)
+ <br />available as a convenience for those who know what they are doing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getScreen()">getScreen</a></strong>()</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#getScreen(int)">getScreen</a></strong>(int id)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#newLocation(org.sikuli.script.Location)">newLocation</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</code>
+<div class="block">creates a location on the current screen with the given point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#newRegion(org.sikuli.script.Location, int, int)">newRegion</a></strong>(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int width,
+ int height)</code>
+<div class="block">creates a region on the current screen with the given coordinate/size.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#resetMonitors()">resetMonitors</a></strong>()</code>
+<div class="block">re-initialize the monitor setup (e.g.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#selectRegion()">selectRegion</a></strong>()</code>
+<div class="block">interactive region create with predefined message: lets the user draw the rectangle using the
+ mouse</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#selectRegion(java.lang.String)">selectRegion</a></strong>(java.lang.String msg)</code>
+<div class="block">interactive region create with given message: lets the user draw the rectangle using the mouse</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#setAsScreen()">setAsScreen</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#setAsScreenUnion()">setAsScreenUnion</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#showMonitors()">showMonitors</a></strong>()</code>
+<div class="block">show the current monitor setup</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#toString()">toString</a></strong>()</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#toStringShort()">toStringShort</a></strong>()</code>
+<div class="block">only a short version of toString()</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#update(EventSubject)">update</a></strong>(EventSubject s)</code>
+<div class="block">Internal use only</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#userCapture()">userCapture</a></strong>()</code>
+<div class="block">interactive capture with predefined message: lets the user capture a screen image using the
+ mouse to draw the rectangle</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>ScreenImage</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/Screen.html#userCapture(java.lang.String)">userCapture</a></strong>(java.lang.String msg)</code>
+<div class="block">interactive capture with given message: lets the user capture a screen image using the mouse to
+ draw the rectangle</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.sikuli.script.Region">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.sikuli.script.<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></h3>
+<code><a href="../../../org/sikuli/script/Region.html#above()">above</a>, <a href="../../../org/sikuli/script/Region.html#above(int)">above</a>, <a href="../../../org/sikuli/script/Region.html#aboveAt()">aboveAt</a>, <a href="../../../org/sikuli/script/Region.html#aboveAt(int)">aboveAt</a>, <a href="../../../org/sikuli/script/Region.html#add(int, int, int, int)">add</a>, <a href="../../../org/sikuli/script/Region.html#add(org.sikuli.script.Location)">add</a>, <a href="../../../org/sikuli [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Screen(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Screen</h4>
+<pre>public Screen(int id)
+ throws java.lang.Exception</pre>
+<div class="block">Is the screen object at the given id</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>id</code> - </dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.lang.Exception</code> - TODO: implement an own Exception instead of using the Exception class</dd></dl>
+</li>
+</ul>
+<a name="Screen(boolean)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Screen</h4>
+<pre>public Screen(boolean isScreenUnion)</pre>
+</li>
+</ul>
+<a name="Screen()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Screen</h4>
+<pre>public Screen()</pre>
+<div class="block">Is the screen object having the top left corner as (0,0). If such a screen does not exist it is
+ the screen with id 0.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="setAsScreenUnion()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAsScreenUnion</h4>
+<pre>public void setAsScreenUnion()</pre>
+</li>
+</ul>
+<a name="setAsScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAsScreen</h4>
+<pre>public void setAsScreen()</pre>
+</li>
+</ul>
+<a name="getScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScreen</h4>
+<pre>public <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getScreen()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#getScreen()">getScreen</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the Screen object containing the region</dd></dl>
+</li>
+</ul>
+<a name="showMonitors()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>showMonitors</h4>
+<pre>public static void showMonitors()</pre>
+<div class="block">show the current monitor setup</div>
+</li>
+</ul>
+<a name="resetMonitors()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resetMonitors</h4>
+<pre>public static void resetMonitors()</pre>
+<div class="block">re-initialize the monitor setup (e.g. when it was changed while running)</div>
+</li>
+</ul>
+<a name="getNumberScreens()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberScreens</h4>
+<pre>public static int getNumberScreens()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of available screens</dd></dl>
+</li>
+</ul>
+<a name="getPrimaryId()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryId</h4>
+<pre>public static int getPrimaryId()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the id of the screen at (0,0), if not exists 0</dd></dl>
+</li>
+</ul>
+<a name="getPrimaryScreen()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryScreen</h4>
+<pre>public static <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getPrimaryScreen()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the screen at (0,0), if not exists the one with id 0</dd></dl>
+</li>
+</ul>
+<a name="getScreen(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScreen</h4>
+<pre>public static <a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a> getScreen(int id)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>id</code> - of the screen</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the screen with given id, the primary screen if id is invalid</dd></dl>
+</li>
+</ul>
+<a name="getBounds(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBounds</h4>
+<pre>public static java.awt.Rectangle getBounds(int id)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>id</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the physical coordinate/size <br />as AWT.Rectangle to avoid mix up with getROI</dd></dl>
+</li>
+</ul>
+<a name="getRobot(int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRobot</h4>
+<pre>public static IRobot getRobot(int id)</pre>
+<div class="block">each screen has exactly one robot (internally used for screen capturing)
+ <br />available as a convenience for those who know what they are doing. Should not be needed
+ normally.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>id</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the AWT.Robot of the given screen, if id invalid the primary screen</dd></dl>
+</li>
+</ul>
+<a name="getID()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getID</h4>
+<pre>public int getID()</pre>
+</li>
+</ul>
+<a name="getGraphicsDevice()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGraphicsDevice</h4>
+<pre>public java.awt.GraphicsDevice getGraphicsDevice()</pre>
+</li>
+</ul>
+<a name="getRobot()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRobot</h4>
+<pre>public IRobot getRobot()</pre>
+<div class="block">Gets the Robot of this Screen.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>The Robot for this Screen</dd></dl>
+</li>
+</ul>
+<a name="getBounds()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBounds</h4>
+<pre>public java.awt.Rectangle getBounds()</pre>
+</li>
+</ul>
+<a name="newRegion(org.sikuli.script.Location, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newRegion</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> newRegion(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc,
+ int width,
+ int height)</pre>
+<div class="block">creates a region on the current screen with the given coordinate/size. The coordinate is
+ translated to the current screen from its relative position on the screen it would have been
+ created normally.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd><dd><code>width</code> - </dd><dd><code>height</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new region</dd></dl>
+</li>
+</ul>
+<a name="newLocation(org.sikuli.script.Location)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newLocation</h4>
+<pre>public <a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> newLocation(<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a> loc)</pre>
+<div class="block">creates a location on the current screen with the given point. The coordinate is translated to
+ the current screen from its relative position on the screen it would have been created
+ normally.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>loc</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the new location</dd></dl>
+</li>
+</ul>
+<a name="capture()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>capture</h4>
+<pre>public ScreenImage capture()</pre>
+<div class="block">create a ScreenImage with the physical bounds of this screen</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the image</dd></dl>
+</li>
+</ul>
+<a name="capture(int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>capture</h4>
+<pre>public ScreenImage capture(int x,
+ int y,
+ int w,
+ int h)</pre>
+<div class="block">create a ScreenImage with given coordinates on this screen.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - x-coordinate of the region to be captured</dd><dd><code>y</code> - y-coordinate of the region to be captured</dd><dd><code>w</code> - width of the region to be captured</dd><dd><code>h</code> - height of the region to be captured</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the image of the region</dd></dl>
+</li>
+</ul>
+<a name="capture(java.awt.Rectangle)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>capture</h4>
+<pre>public ScreenImage capture(java.awt.Rectangle rect)</pre>
+<div class="block">create a ScreenImage with given rectangle on this screen.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rect</code> - The Rectangle to be captured</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the image of the region</dd></dl>
+</li>
+</ul>
+<a name="capture(org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>capture</h4>
+<pre>public ScreenImage capture(<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> reg)</pre>
+<div class="block">create a ScreenImage with given region on this screen</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reg</code> - The Region to be captured</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the image of the region</dd></dl>
+</li>
+</ul>
+<a name="userCapture()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>userCapture</h4>
+<pre>public ScreenImage userCapture()</pre>
+<div class="block">interactive capture with predefined message: lets the user capture a screen image using the
+ mouse to draw the rectangle</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the image</dd></dl>
+</li>
+</ul>
+<a name="userCapture(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>userCapture</h4>
+<pre>public ScreenImage userCapture(java.lang.String msg)</pre>
+<div class="block">interactive capture with given message: lets the user capture a screen image using the mouse to
+ draw the rectangle</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the image</dd></dl>
+</li>
+</ul>
+<a name="selectRegion()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectRegion</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> selectRegion()</pre>
+<div class="block">interactive region create with predefined message: lets the user draw the rectangle using the
+ mouse</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the region</dd></dl>
+</li>
+</ul>
+<a name="selectRegion(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectRegion</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> selectRegion(java.lang.String msg)</pre>
+<div class="block">interactive region create with given message: lets the user draw the rectangle using the mouse</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the region</dd></dl>
+</li>
+</ul>
+<a name="update(EventSubject)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public void update(EventSubject s)</pre>
+<div class="block">Internal use only</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>s</code> - </dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<div class="block"><strong>Description copied from class: <code><a href="../../../org/sikuli/script/Region.html#toString()">Region</a></code></strong></div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#toString()">toString</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the description</dd></dl>
+</li>
+</ul>
+<a name="toStringShort()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toStringShort</h4>
+<pre>public java.lang.String toStringShort()</pre>
+<div class="block">only a short version of toString()</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../org/sikuli/script/Region.html#toStringShort()">toStringShort</a></code> in class <code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>like S(0) [0,0, 1440x900]</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/Screen.html" target="_top">Frames</a></li>
+<li><a href="Screen.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_org.sikuli.script.Region">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/SikuliEvent.Type.html b/Docs/Java/docs/org/sikuli/script/SikuliEvent.Type.html
new file mode 100644
index 0000000..867bb85
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/SikuliEvent.Type.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>SikuliEvent.Type</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="SikuliEvent.Type";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/SikuliEvent.Type.html" target="_top">Frames</a></li>
+<li><a href="SikuliEvent.Type.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#enum_constant_summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum_constant_detail">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Enum SikuliEvent.Type" class="title">Enum SikuliEvent.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum<<a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a>></li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.SikuliEvent.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.io.Serializable, java.lang.Comparable<<a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a>></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="strong">SikuliEvent.Type</span>
+extends java.lang.Enum<<a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#APPEAR">APPEAR</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#CHANGE">CHANGE</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#GENERIC">GENERIC</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#VANISH">VANISH</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#valueOf(java.lang.String)">valueOf</a></strong>(java.lang.String name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Enum</h3>
+<code>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="APPEAR">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPEAR</h4>
+<pre>public static final <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> APPEAR</pre>
+</li>
+</ul>
+<a name="VANISH">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VANISH</h4>
+<pre>public static final <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> VANISH</pre>
+</li>
+</ul>
+<a name="CHANGE">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CHANGE</h4>
+<pre>public static final <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> CHANGE</pre>
+</li>
+</ul>
+<a name="GENERIC">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GENERIC</h4>
+<pre>public static final <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> GENERIC</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="values()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a>[] values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (SikuliEvent.Type c : SikuliEvent.Type.values())
+ System.out.println(c);
+</pre></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the constants of this enum type, in
+the order they are declared</dd></dl>
+</li>
+</ul>
+<a name="valueOf(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> valueOf(java.lang.String name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the enum constant with the specified name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant
+with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/SikuliEvent.Type.html" target="_top">Frames</a></li>
+<li><a href="SikuliEvent.Type.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#enum_constant_summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum_constant_detail">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/SikuliEvent.html b/Docs/Java/docs/org/sikuli/script/SikuliEvent.html
new file mode 100644
index 0000000..cb6eca3
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/SikuliEvent.html
@@ -0,0 +1,474 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>SikuliEvent</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="SikuliEvent";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/SikuliEvent.html" target="_top">Frames</a></li>
+<li><a href="SikuliEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.sikuli.script</div>
+<h2 title="Class SikuliEvent" class="title">Class SikuliEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.sikuli.script.SikuliEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">SikuliEvent</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#changes">changes</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#match">match</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#pattern">pattern</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#region">region</a></strong></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#type">type</a></strong></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#SikuliEvent()">SikuliEvent</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#SikuliEvent(java.lang.Object, org.sikuli.script.Match, org.sikuli.script.Region)">SikuliEvent</a></strong>(java.lang.Object ptn,
+ <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> m,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#getCount()">getCount</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#getMatch()">getMatch</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#getPattern()">getPattern</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#getRegion()">getRegion</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#repeat()">repeat</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#repeat(long)">repeat</a></strong>(long secs)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#stopObserver()">stopObserver</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../org/sikuli/script/SikuliEvent.html#toString()">toString</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="type">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre>public <a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a> type</pre>
+</li>
+</ul>
+<a name="region">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>region</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> region</pre>
+</li>
+</ul>
+<a name="match">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> match</pre>
+</li>
+</ul>
+<a name="changes">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>changes</h4>
+<pre>public java.util.List<<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a>> changes</pre>
+</li>
+</ul>
+<a name="pattern">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>pattern</h4>
+<pre>public java.lang.Object pattern</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SikuliEvent()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SikuliEvent</h4>
+<pre>public SikuliEvent()</pre>
+</li>
+</ul>
+<a name="SikuliEvent(java.lang.Object, org.sikuli.script.Match, org.sikuli.script.Region)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SikuliEvent</h4>
+<pre>public SikuliEvent(java.lang.Object ptn,
+ <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> m,
+ <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> r)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getRegion()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRegion</h4>
+<pre>public <a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a> getRegion()</pre>
+</li>
+</ul>
+<a name="getMatch()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatch</h4>
+<pre>public <a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a> getMatch()</pre>
+</li>
+</ul>
+<a name="getPattern()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPattern</h4>
+<pre>public <a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a> getPattern()</pre>
+</li>
+</ul>
+<a name="repeat()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>repeat</h4>
+<pre>public void repeat()</pre>
+</li>
+</ul>
+<a name="repeat(long)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>repeat</h4>
+<pre>public void repeat(long secs)</pre>
+</li>
+</ul>
+<a name="getCount()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCount</h4>
+<pre>public int getCount()</pre>
+</li>
+</ul>
+<a name="stopObserver()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopObserver</h4>
+<pre>public void stopObserver()</pre>
+</li>
+</ul>
+<a name="toString()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public java.lang.String toString()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/SikuliEvent.html" target="_top">Frames</a></li>
+<li><a href="SikuliEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_class_summary">Nested</a> | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/package-frame.html b/Docs/Java/docs/org/sikuli/script/package-frame.html
new file mode 100644
index 0000000..9cbc1af
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/package-frame.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>org.sikuli.script</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../org/sikuli/script/package-summary.html" target="classFrame">org.sikuli.script</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="App.html" title="class in org.sikuli.script" target="classFrame">App</a></li>
+<li><a href="Finder.html" title="class in org.sikuli.script" target="classFrame">Finder</a></li>
+<li><a href="Image.html" title="class in org.sikuli.script" target="classFrame">Image</a></li>
+<li><a href="ImageFind.html" title="class in org.sikuli.script" target="classFrame">ImageFind</a></li>
+<li><a href="ImageFinder.html" title="class in org.sikuli.script" target="classFrame">ImageFinder</a></li>
+<li><a href="ImageGroup.html" title="class in org.sikuli.script" target="classFrame">ImageGroup</a></li>
+<li><a href="ImageLocator.html" title="class in org.sikuli.script" target="classFrame">ImageLocator</a></li>
+<li><a href="ImagePath.html" title="class in org.sikuli.script" target="classFrame">ImagePath</a></li>
+<li><a href="ImagePath.PathEntry.html" title="class in org.sikuli.script" target="classFrame">ImagePath.PathEntry</a></li>
+<li><a href="Location.html" title="class in org.sikuli.script" target="classFrame">Location</a></li>
+<li><a href="Match.html" title="class in org.sikuli.script" target="classFrame">Match</a></li>
+<li><a href="Mouse.html" title="class in org.sikuli.script" target="classFrame">Mouse</a></li>
+<li><a href="Observer.html" title="class in org.sikuli.script" target="classFrame">Observer</a></li>
+<li><a href="Observer.Event.html" title="class in org.sikuli.script" target="classFrame">Observer.Event</a></li>
+<li><a href="ObserverCallBack.html" title="class in org.sikuli.script" target="classFrame">ObserverCallBack</a></li>
+<li><a href="Pattern.html" title="class in org.sikuli.script" target="classFrame">Pattern</a></li>
+<li><a href="Region.html" title="class in org.sikuli.script" target="classFrame">Region</a></li>
+<li><a href="Screen.html" title="class in org.sikuli.script" target="classFrame">Screen</a></li>
+<li><a href="SikuliEvent.html" title="class in org.sikuli.script" target="classFrame">SikuliEvent</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="FindFailedResponse.html" title="enum in org.sikuli.script" target="classFrame">FindFailedResponse</a></li>
+<li><a href="SikuliEvent.Type.html" title="enum in org.sikuli.script" target="classFrame">SikuliEvent.Type</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/package-summary.html b/Docs/Java/docs/org/sikuli/script/package-summary.html
new file mode 100644
index 0000000..f09cdbf
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/package-summary.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>org.sikuli.script</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.sikuli.script";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Package</li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package org.sikuli.script</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script">App</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script">Finder</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script">Image</a></td>
+<td class="colLast">
+<div class="block">This class hides the complexity behind image names given as string.<br />
+ Its companion is ImagePath that maintains a list of places, where images are stored.<br />
+ Another companion is ImageGroup allowing to to look at images in a folder as a group.<br />
+ An Image object:<br />
+ - has a name, either given or taken from the basename without ending.<br />
+ - keeps its in memory buffered image in a configurable cache avoiding reload from source<br />
+ - remembers, where it was found the last time searched<br />
+ - can be sourced from the filesystem, from jars, from the web and from other in memory images <br />
+ - it will have features for basic image manipulation <br />
+ - it contains the stuff to communicate with the underlying OpenCV based search engine <br />
+
+ This class maintains<br />
+ - a list of all images loaded with there source reference and a ref to the image object<br />
+ - a list of all images currently storing their in memory buffered image (managed as a cache)<br /></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script">ImageFind</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script">ImageFinder</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script">ImageGroup</a></td>
+<td class="colLast">
+<div class="block">An ImageGroup object represents images, that are all in the same folder.<br />
+ the folder can contain a set of sub folders that can be switched dynamically <br />
+ The folder will be found on the image path.<br />
+ The match data of the images can be stored and reloaded.<br />
+ Its main purpose is to support image sets for different environments.<br />
+ At runtime you can switch between image sets without changing the used image names.<br />
+ Based on the stored match data you might produce a new ImageGroup on the fly.<br /></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script">ImageLocator</a></td>
+<td class="colLast">Deprecated
+<div class="block"><i>will completely replaced by the classes Image and ImagePath</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script">ImagePath</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script">ImagePath.PathEntry</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script">Location</a></td>
+<td class="colLast">
+<div class="block">A point like AWT.Point using global coordinates, hence modifications might move location out of
+ any screen (not checked as is done with region)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script">Match</a></td>
+<td class="colLast">
+<div class="block">holds the result of a findX operation, is itself the region on the screen,
+ where the image was found and hence inherits all methods from Region<br />
+ attributes:<br /> the match score (0 ...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script">Mouse</a></td>
+<td class="colLast">
+<div class="block">Main pupose is to coordinate the mouse usage among threads
+ At any one time, the mouse has one owner (usually a Region object)
+ who exclusively uses the mouse, all others wait for the mouse to be free again
+ if more than on possible owner is waiting, the next owner is uncertain
+ It is detected, when the mouse is moved outside the script, which can be
+ used for appropriate actions (e.g.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script">Observer</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script">Observer.Event</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script">ObserverCallBack</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script">Pattern</a></td>
+<td class="colLast">
+<div class="block">to define a more complex search target<br />
+ - non-standard minimum similarity <br />
+ - click target other than center <br />
+ - image as in-memory image</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script">Region</a></td>
+<td class="colLast">
+<div class="block">A Region always lies completely inside its parent screen</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script">Screen</a></td>
+<td class="colLast">
+<div class="block">A screen represents a physical monitor with its coordinates and size according to the global
+ point system: the screen areas are grouped around a point (0,0) like in a cartesian system (the
+ top left corner and the points contained in the screen area might have negative x and/or y values)
+ <br >The screens are arranged in an array (index = id) and each screen is always the same object
+ (not possible to create new objects).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script">SikuliEvent</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script">FindFailedResponse</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script">SikuliEvent.Type</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Package</li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/org/sikuli/script/package-tree.html b/Docs/Java/docs/org/sikuli/script/package-tree.html
new file mode 100644
index 0000000..003802f
--- /dev/null
+++ b/Docs/Java/docs/org/sikuli/script/package-tree.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>org.sikuli.script Class Hierarchy</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.sikuli.script Class Hierarchy";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.sikuli.script</h1>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/App.html" title="class in org.sikuli.script"><span class="strong">App</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Finder</span></a> (implements java.util.Iterator<E>)
+<ul>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">ImageFinder</span></a></li>
+</ul>
+</li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Image</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">ImageFind</span></a> (implements java.util.Iterator<E>)</li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">ImageGroup</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">ImageLocator</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">ImagePath</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">ImagePath.PathEntry</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Location</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Mouse</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Observer</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">ObserverCallBack</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Pattern</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Region</span></a>
+<ul>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Match</span></a> (implements java.lang.Comparable<T>)</li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Screen</span></a></li>
+</ul>
+</li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">SikuliEvent</span></a>
+<ul>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Observer.Event</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
+<ul>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script"><span class="strong">SikuliEvent.Type</span></a></li>
+<li type="circle">org.sikuli.script.<a href="../../../org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">FindFailedResponse</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/sikuli/script/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/overview-tree.html b/Docs/Java/docs/overview-tree.html
new file mode 100644
index 0000000..6ca3cc9
--- /dev/null
+++ b/Docs/Java/docs/overview-tree.html
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Mon Dec 16 17:57:42 CET 2013 -->
+<title>Class Hierarchy</title>
+<meta name="date" content="2013-12-16">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Class Hierarchy";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/sikuli/script/package-tree.html">org.sikuli.script</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/App.html" title="class in org.sikuli.script"><span class="strong">App</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Finder.html" title="class in org.sikuli.script"><span class="strong">Finder</span></a> (implements java.util.Iterator<E>)
+<ul>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImageFinder.html" title="class in org.sikuli.script"><span class="strong">ImageFinder</span></a></li>
+</ul>
+</li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Image.html" title="class in org.sikuli.script"><span class="strong">Image</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImageFind.html" title="class in org.sikuli.script"><span class="strong">ImageFind</span></a> (implements java.util.Iterator<E>)</li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImageGroup.html" title="class in org.sikuli.script"><span class="strong">ImageGroup</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImageLocator.html" title="class in org.sikuli.script"><span class="strong">ImageLocator</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImagePath.html" title="class in org.sikuli.script"><span class="strong">ImagePath</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ImagePath.PathEntry.html" title="class in org.sikuli.script"><span class="strong">ImagePath.PathEntry</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Location.html" title="class in org.sikuli.script"><span class="strong">Location</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Mouse.html" title="class in org.sikuli.script"><span class="strong">Mouse</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Observer.html" title="class in org.sikuli.script"><span class="strong">Observer</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/ObserverCallBack.html" title="class in org.sikuli.script"><span class="strong">ObserverCallBack</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Pattern.html" title="class in org.sikuli.script"><span class="strong">Pattern</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Region.html" title="class in org.sikuli.script"><span class="strong">Region</span></a>
+<ul>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Match.html" title="class in org.sikuli.script"><span class="strong">Match</span></a> (implements java.lang.Comparable<T>)</li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Screen.html" title="class in org.sikuli.script"><span class="strong">Screen</span></a></li>
+</ul>
+</li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/SikuliEvent.html" title="class in org.sikuli.script"><span class="strong">SikuliEvent</span></a>
+<ul>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/Observer.Event.html" title="class in org.sikuli.script"><span class="strong">Observer.Event</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
+<ul>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/FindFailedResponse.html" title="enum in org.sikuli.script"><span class="strong">FindFailedResponse</span></a></li>
+<li type="circle">org.sikuli.script.<a href="org/sikuli/script/SikuliEvent.Type.html" title="enum in org.sikuli.script"><span class="strong">SikuliEvent.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="org/sikuli/script/package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/Docs/Java/docs/package-list b/Docs/Java/docs/package-list
new file mode 100644
index 0000000..c42e393
--- /dev/null
+++ b/Docs/Java/docs/package-list
@@ -0,0 +1 @@
+org.sikuli.script
diff --git a/Docs/Java/docs/resources/background.gif b/Docs/Java/docs/resources/background.gif
new file mode 100644
index 0000000..f471940
Binary files /dev/null and b/Docs/Java/docs/resources/background.gif differ
diff --git a/Docs/Java/docs/resources/tab.gif b/Docs/Java/docs/resources/tab.gif
new file mode 100644
index 0000000..1a73a83
Binary files /dev/null and b/Docs/Java/docs/resources/tab.gif differ
diff --git a/Docs/Java/docs/resources/titlebar.gif b/Docs/Java/docs/resources/titlebar.gif
new file mode 100644
index 0000000..17443b3
Binary files /dev/null and b/Docs/Java/docs/resources/titlebar.gif differ
diff --git a/Docs/Java/docs/resources/titlebar_end.gif b/Docs/Java/docs/resources/titlebar_end.gif
new file mode 100644
index 0000000..3ad78d4
Binary files /dev/null and b/Docs/Java/docs/resources/titlebar_end.gif differ
diff --git a/Docs/Java/docs/stylesheet.css b/Docs/Java/docs/stylesheet.css
new file mode 100644
index 0000000..0aeaa97
--- /dev/null
+++ b/Docs/Java/docs/stylesheet.css
@@ -0,0 +1,474 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:Arial, Helvetica, sans-serif;
+ font-size:76%;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4c6b87;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4c6b87;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-size:1.3em;
+}
+h1 {
+ font-size:1.8em;
+}
+h2 {
+ font-size:1.5em;
+}
+h3 {
+ font-size:1.4em;
+}
+h4 {
+ font-size:1.3em;
+}
+h5 {
+ font-size:1.2em;
+}
+h6 {
+ font-size:1.1em;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-size:1.2em;
+}
+dt code {
+ font-size:1.2em;
+}
+table tr td dt code {
+ font-size:1.2em;
+ vertical-align:top;
+}
+sup {
+ font-size:.6em;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:.8em;
+ z-index:200;
+ margin-top:-7px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ background-image:url(resources/titlebar.gif);
+ background-position:left top;
+ background-repeat:no-repeat;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-image:url(resources/background.gif);
+ background-repeat:repeat-x;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:1em;
+ margin:0;
+}
+.topNav {
+ background-image:url(resources/background.gif);
+ background-repeat:repeat-x;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+}
+.bottomNav {
+ margin-top:10px;
+ background-image:url(resources/background.gif);
+ background-repeat:repeat-x;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+}
+.subNav {
+ background-color:#dee3e9;
+ border-bottom:1px solid #9eadc0;
+ float:left;
+ width:100%;
+ overflow:hidden;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding:3px 6px;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+ font-size:90%;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+.navBarCell1Rev {
+ background-image:url(resources/tab.gif);
+ background-color:#a88834;
+ color:#FFFFFF;
+ margin: auto 5px;
+ border:1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader h1 {
+ font-size:1.3em;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 25px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border-top:1px solid #9eadc0;
+ border-bottom:1px solid #9eadc0;
+ margin:0 0 6px -8px;
+ padding:2px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border-top:1px solid #9eadc0;
+ border-bottom:1px solid #9eadc0;
+ margin:0 0 6px -8px;
+ padding:2px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:1.0em;
+}
+.indexContainer h2 {
+ font-size:1.1em;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:1.1em;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:10px 0 10px 20px;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:25px;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #9eadc0;
+ background-color:#f9f9f9;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:1px solid #9eadc0;
+ border-top:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+ border-bottom:1px solid #9eadc0;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+ border-bottom:1px solid #9eadc0;
+ width:100%;
+}
+.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+ width:100%;
+}
+.contentContainer .description table, .contentContainer .details table {
+ border-bottom:none;
+}
+.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
+ vertical-align:top;
+ padding-right:20px;
+}
+.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
+ padding-right:3px;
+}
+.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#FFFFFF;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ margin:0px;
+}
+caption a:link, caption a:hover, caption a:active, caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+ white-space:nowrap;
+ padding-top:8px;
+ padding-left:8px;
+ display:block;
+ float:left;
+ background-image:url(resources/titlebar.gif);
+ height:18px;
+}
+.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+ width:10px;
+ background-image:url(resources/titlebar_end.gif);
+ background-repeat:no-repeat;
+ background-position:top right;
+ position:relative;
+ float:left;
+}
+ul.blockList ul.blockList li.blockList table {
+ margin:0 0 12px 0px;
+ width:100%;
+}
+.tableSubHeadingColor {
+ background-color: #EEEEFF;
+}
+.altColor {
+ background-color:#eeeeef;
+}
+.rowColor {
+ background-color:#ffffff;
+}
+.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+ text-align:left;
+ padding:3px 3px 3px 7px;
+}
+th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+ background:#dee3e9;
+ border-top:1px solid #9eadc0;
+ border-bottom:1px solid #9eadc0;
+ text-align:left;
+ padding:3px 3px 3px 7px;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+td.colFirst, th.colFirst {
+ border-left:1px solid #9eadc0;
+ white-space:nowrap;
+}
+td.colLast, th.colLast {
+ border-right:1px solid #9eadc0;
+}
+td.colOne, th.colOne {
+ border-right:1px solid #9eadc0;
+ border-left:1px solid #9eadc0;
+}
+table.overviewSummary {
+ padding:0px;
+ margin-left:0px;
+}
+table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+ width:25%;
+ vertical-align:middle;
+}
+table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
+ width:25%;
+ vertical-align:middle;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:.9em;
+}
+.block {
+ display:block;
+ margin:3px 0 0 0;
+}
+.strong {
+ font-weight:bold;
+}
diff --git a/Docs/Java/makeJDocs b/Docs/Java/makeJDocs
new file mode 100755
index 0000000..69044d3
--- /dev/null
+++ b/Docs/Java/makeJDocs
@@ -0,0 +1,8 @@
+#!/bin/sh
+base=`pwd`
+src=../../API/src/main/java/org/sikuli/script
+cd $src
+# JavaDocsClasses contains the list of source files whose
+# public elements should be documented
+javadoc -d $base/docs -public @$base/JavaDocsClasses
+cd $OLDPWD
\ No newline at end of file
diff --git a/Docs/Python/Makefile b/Docs/Python/Makefile
new file mode 100644
index 0000000..3ffb58e
--- /dev/null
+++ b/Docs/Python/Makefile
@@ -0,0 +1,130 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/sikuli.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/sikuli.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/sikuli"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/sikuli"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ make -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/Docs/Python/build/html/.buildinfo b/Docs/Python/build/html/.buildinfo
new file mode 100644
index 0000000..ed21d35
--- /dev/null
+++ b/Docs/Python/build/html/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 4001cddcbc6e0d8a6d6ccba8ce328598
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/Docs/Python/build/html/_images/IDE-commandlist.png b/Docs/Python/build/html/_images/IDE-commandlist.png
new file mode 100644
index 0000000..88e0365
Binary files /dev/null and b/Docs/Python/build/html/_images/IDE-commandlist.png differ
diff --git a/Docs/Python/build/html/_images/Safari_spatial.png b/Docs/Python/build/html/_images/Safari_spatial.png
new file mode 100644
index 0000000..3f91197
Binary files /dev/null and b/Docs/Python/build/html/_images/Safari_spatial.png differ
diff --git a/Docs/Python/build/html/_images/SystemDesign.png b/Docs/Python/build/html/_images/SystemDesign.png
new file mode 100644
index 0000000..8f04009
Binary files /dev/null and b/Docs/Python/build/html/_images/SystemDesign.png differ
diff --git a/Docs/Python/build/html/_images/animated-tooltips.gif b/Docs/Python/build/html/_images/animated-tooltips.gif
new file mode 100644
index 0000000..a11eaca
Binary files /dev/null and b/Docs/Python/build/html/_images/animated-tooltips.gif differ
diff --git a/Docs/Python/build/html/_images/annotation-clickable.png b/Docs/Python/build/html/_images/annotation-clickable.png
new file mode 100644
index 0000000..6f48d87
Binary files /dev/null and b/Docs/Python/build/html/_images/annotation-clickable.png differ
diff --git a/Docs/Python/build/html/_images/bug-tracker.png b/Docs/Python/build/html/_images/bug-tracker.png
new file mode 100644
index 0000000..d16db0f
Binary files /dev/null and b/Docs/Python/build/html/_images/bug-tracker.png differ
diff --git a/Docs/Python/build/html/_images/bus_capture_bus_symbol.png b/Docs/Python/build/html/_images/bus_capture_bus_symbol.png
new file mode 100644
index 0000000..614fb83
Binary files /dev/null and b/Docs/Python/build/html/_images/bus_capture_bus_symbol.png differ
diff --git a/Docs/Python/build/html/_images/bus_fullscreen.png b/Docs/Python/build/html/_images/bus_fullscreen.png
new file mode 100644
index 0000000..88a4839
Binary files /dev/null and b/Docs/Python/build/html/_images/bus_fullscreen.png differ
diff --git a/Docs/Python/build/html/_images/bus_region_thumbnail.png b/Docs/Python/build/html/_images/bus_region_thumbnail.png
new file mode 100644
index 0000000..9a8b0e0
Binary files /dev/null and b/Docs/Python/build/html/_images/bus_region_thumbnail.png differ
diff --git a/Docs/Python/build/html/_images/bus_toolbar_region.png b/Docs/Python/build/html/_images/bus_toolbar_region.png
new file mode 100644
index 0000000..af98231
Binary files /dev/null and b/Docs/Python/build/html/_images/bus_toolbar_region.png differ
diff --git a/Docs/Python/build/html/_images/extension-installed.png b/Docs/Python/build/html/_images/extension-installed.png
new file mode 100644
index 0000000..52ca867
Binary files /dev/null and b/Docs/Python/build/html/_images/extension-installed.png differ
diff --git a/Docs/Python/build/html/_images/extension-new.png b/Docs/Python/build/html/_images/extension-new.png
new file mode 100644
index 0000000..e8cc71f
Binary files /dev/null and b/Docs/Python/build/html/_images/extension-new.png differ
diff --git a/Docs/Python/build/html/_images/facebook_capture.png b/Docs/Python/build/html/_images/facebook_capture.png
new file mode 100644
index 0000000..3b2a2dc
Binary files /dev/null and b/Docs/Python/build/html/_images/facebook_capture.png differ
diff --git a/Docs/Python/build/html/_images/facebook_popupmsg.png b/Docs/Python/build/html/_images/facebook_popupmsg.png
new file mode 100644
index 0000000..d9cc8de
Binary files /dev/null and b/Docs/Python/build/html/_images/facebook_popupmsg.png differ
diff --git a/Docs/Python/build/html/_images/find_title_and_below.png b/Docs/Python/build/html/_images/find_title_and_below.png
new file mode 100644
index 0000000..64b2892
Binary files /dev/null and b/Docs/Python/build/html/_images/find_title_and_below.png differ
diff --git a/Docs/Python/build/html/_images/findfailed-prompt.png b/Docs/Python/build/html/_images/findfailed-prompt.png
new file mode 100644
index 0000000..6ec8c08
Binary files /dev/null and b/Docs/Python/build/html/_images/findfailed-prompt.png differ
diff --git a/Docs/Python/build/html/_images/input.png b/Docs/Python/build/html/_images/input.png
new file mode 100644
index 0000000..d14a6fb
Binary files /dev/null and b/Docs/Python/build/html/_images/input.png differ
diff --git a/Docs/Python/build/html/_images/interface_offset.png b/Docs/Python/build/html/_images/interface_offset.png
new file mode 100644
index 0000000..e5ef3ba
Binary files /dev/null and b/Docs/Python/build/html/_images/interface_offset.png differ
diff --git a/Docs/Python/build/html/_images/multi.jpg b/Docs/Python/build/html/_images/multi.jpg
new file mode 100644
index 0000000..0c97c16
Binary files /dev/null and b/Docs/Python/build/html/_images/multi.jpg differ
diff --git a/Docs/Python/build/html/_images/multiple-annotations.png b/Docs/Python/build/html/_images/multiple-annotations.png
new file mode 100644
index 0000000..97d0037
Binary files /dev/null and b/Docs/Python/build/html/_images/multiple-annotations.png differ
diff --git a/Docs/Python/build/html/_images/popup.png b/Docs/Python/build/html/_images/popup.png
new file mode 100644
index 0000000..46253ce
Binary files /dev/null and b/Docs/Python/build/html/_images/popup.png differ
diff --git a/Docs/Python/build/html/_images/scenario.png b/Docs/Python/build/html/_images/scenario.png
new file mode 100644
index 0000000..bc989b6
Binary files /dev/null and b/Docs/Python/build/html/_images/scenario.png differ
diff --git a/Docs/Python/build/html/_images/sikuli-logo-highlight.png b/Docs/Python/build/html/_images/sikuli-logo-highlight.png
new file mode 100644
index 0000000..931f79f
Binary files /dev/null and b/Docs/Python/build/html/_images/sikuli-logo-highlight.png differ
diff --git a/Docs/Python/build/html/_images/skype_capture.png b/Docs/Python/build/html/_images/skype_capture.png
new file mode 100644
index 0000000..a51eb65
Binary files /dev/null and b/Docs/Python/build/html/_images/skype_capture.png differ
diff --git a/Docs/Python/build/html/_images/sound.png b/Docs/Python/build/html/_images/sound.png
new file mode 100644
index 0000000..8e0e77d
Binary files /dev/null and b/Docs/Python/build/html/_images/sound.png differ
diff --git a/Docs/Python/build/html/_images/spatial.jpg b/Docs/Python/build/html/_images/spatial.jpg
new file mode 100644
index 0000000..3c39fd6
Binary files /dev/null and b/Docs/Python/build/html/_images/spatial.jpg differ
diff --git a/Docs/Python/build/html/_images/speech.png b/Docs/Python/build/html/_images/speech.png
new file mode 100644
index 0000000..fc1eccf
Binary files /dev/null and b/Docs/Python/build/html/_images/speech.png differ
diff --git a/Docs/Python/build/html/_images/spotlight-capture.png b/Docs/Python/build/html/_images/spotlight-capture.png
new file mode 100644
index 0000000..cb4c3b3
Binary files /dev/null and b/Docs/Python/build/html/_images/spotlight-capture.png differ
diff --git a/Docs/Python/build/html/_images/spotlight-click.png b/Docs/Python/build/html/_images/spotlight-click.png
new file mode 100644
index 0000000..1e70cae
Binary files /dev/null and b/Docs/Python/build/html/_images/spotlight-click.png differ
diff --git a/Docs/Python/build/html/_images/spotlight-goal.png b/Docs/Python/build/html/_images/spotlight-goal.png
new file mode 100644
index 0000000..3210e91
Binary files /dev/null and b/Docs/Python/build/html/_images/spotlight-goal.png differ
diff --git a/Docs/Python/build/html/_images/spotlight-inserted.png b/Docs/Python/build/html/_images/spotlight-inserted.png
new file mode 100644
index 0000000..7dbaa72
Binary files /dev/null and b/Docs/Python/build/html/_images/spotlight-inserted.png differ
diff --git a/Docs/Python/build/html/_images/spotlight-type.png b/Docs/Python/build/html/_images/spotlight-type.png
new file mode 100644
index 0000000..5305e6a
Binary files /dev/null and b/Docs/Python/build/html/_images/spotlight-type.png differ
diff --git a/Docs/Python/build/html/_images/start-capture.png b/Docs/Python/build/html/_images/start-capture.png
new file mode 100644
index 0000000..a7893d8
Binary files /dev/null and b/Docs/Python/build/html/_images/start-capture.png differ
diff --git a/Docs/Python/build/html/_images/start-click.png b/Docs/Python/build/html/_images/start-click.png
new file mode 100644
index 0000000..837a37f
Binary files /dev/null and b/Docs/Python/build/html/_images/start-click.png differ
diff --git a/Docs/Python/build/html/_images/start-goal.png b/Docs/Python/build/html/_images/start-goal.png
new file mode 100644
index 0000000..f09d6a8
Binary files /dev/null and b/Docs/Python/build/html/_images/start-goal.png differ
diff --git a/Docs/Python/build/html/_images/start-inserted.png b/Docs/Python/build/html/_images/start-inserted.png
new file mode 100644
index 0000000..c497ff5
Binary files /dev/null and b/Docs/Python/build/html/_images/start-inserted.png differ
diff --git a/Docs/Python/build/html/_images/start-type.png b/Docs/Python/build/html/_images/start-type.png
new file mode 100644
index 0000000..c044630
Binary files /dev/null and b/Docs/Python/build/html/_images/start-type.png differ
diff --git a/Docs/Python/build/html/_images/step1.png b/Docs/Python/build/html/_images/step1.png
new file mode 100644
index 0000000..05a6547
Binary files /dev/null and b/Docs/Python/build/html/_images/step1.png differ
diff --git a/Docs/Python/build/html/_images/step2.png b/Docs/Python/build/html/_images/step2.png
new file mode 100644
index 0000000..2f0f221
Binary files /dev/null and b/Docs/Python/build/html/_images/step2.png differ
diff --git a/Docs/Python/build/html/_images/test-sikuli-project.png b/Docs/Python/build/html/_images/test-sikuli-project.png
new file mode 100644
index 0000000..949e93f
Binary files /dev/null and b/Docs/Python/build/html/_images/test-sikuli-project.png differ
diff --git a/Docs/Python/build/html/_images/toolbar_camera.png b/Docs/Python/build/html/_images/toolbar_camera.png
new file mode 100644
index 0000000..3fa15bd
Binary files /dev/null and b/Docs/Python/build/html/_images/toolbar_camera.png differ
diff --git a/Docs/Python/build/html/_images/trash_capture1.png b/Docs/Python/build/html/_images/trash_capture1.png
new file mode 100644
index 0000000..d283005
Binary files /dev/null and b/Docs/Python/build/html/_images/trash_capture1.png differ
diff --git a/Docs/Python/build/html/_images/trash_capture2.png b/Docs/Python/build/html/_images/trash_capture2.png
new file mode 100644
index 0000000..5ae01cd
Binary files /dev/null and b/Docs/Python/build/html/_images/trash_capture2.png differ
diff --git a/Docs/Python/build/html/_images/trash_capture3.png b/Docs/Python/build/html/_images/trash_capture3.png
new file mode 100644
index 0000000..4d9b582
Binary files /dev/null and b/Docs/Python/build/html/_images/trash_capture3.png differ
diff --git a/Docs/Python/build/html/_images/trash_code.png b/Docs/Python/build/html/_images/trash_code.png
new file mode 100644
index 0000000..983fa54
Binary files /dev/null and b/Docs/Python/build/html/_images/trash_code.png differ
diff --git a/Docs/Python/build/html/_images/trash_editor.png b/Docs/Python/build/html/_images/trash_editor.png
new file mode 100644
index 0000000..79db638
Binary files /dev/null and b/Docs/Python/build/html/_images/trash_editor.png differ
diff --git a/Docs/Python/build/html/_images/uncheck_capturing.png b/Docs/Python/build/html/_images/uncheck_capturing.png
new file mode 100644
index 0000000..6275c1b
Binary files /dev/null and b/Docs/Python/build/html/_images/uncheck_capturing.png differ
diff --git a/Docs/Python/build/html/_images/uncheck_code.png b/Docs/Python/build/html/_images/uncheck_code.png
new file mode 100644
index 0000000..3a7dda5
Binary files /dev/null and b/Docs/Python/build/html/_images/uncheck_code.png differ
diff --git a/Docs/Python/build/html/_images/uncheck_findall.png b/Docs/Python/build/html/_images/uncheck_findall.png
new file mode 100644
index 0000000..b9a540e
Binary files /dev/null and b/Docs/Python/build/html/_images/uncheck_findall.png differ
diff --git a/Docs/Python/build/html/_images/uncheck_sharing.png b/Docs/Python/build/html/_images/uncheck_sharing.png
new file mode 100644
index 0000000..8d0be35
Binary files /dev/null and b/Docs/Python/build/html/_images/uncheck_sharing.png differ
diff --git a/Docs/Python/build/html/_sources/best-practice.txt b/Docs/Python/build/html/_sources/best-practice.txt
new file mode 100644
index 0000000..2baf32b
--- /dev/null
+++ b/Docs/Python/build/html/_sources/best-practice.txt
@@ -0,0 +1,7 @@
+Sikuli Best Practice
+==============================
+
+.. toctree::
+ :maxdepth: 2
+
+
diff --git a/Docs/Python/build/html/_sources/changes.txt b/Docs/Python/build/html/_sources/changes.txt
new file mode 100644
index 0000000..e409817
--- /dev/null
+++ b/Docs/Python/build/html/_sources/changes.txt
@@ -0,0 +1,5 @@
+Changes in Sikuli
+=================
+
+X 1.1.0 (2014-01-31)
+----------------------
diff --git a/Docs/Python/build/html/_sources/contributing.txt b/Docs/Python/build/html/_sources/contributing.txt
new file mode 100644
index 0000000..30b715e
--- /dev/null
+++ b/Docs/Python/build/html/_sources/contributing.txt
@@ -0,0 +1,141 @@
+How to get involved
+===================
+
+Have fun working with Sikuli? You can do more than just being a user!
+There are many ways you can help Sikuli's development:
+
+* Blog or tweet about Sikuli. Share your cool Sikuli scripts to the world and
+ let more people know how cool Sikuli is.
+* Report bugs or request new features in our `bug tracker <https://bugs.launchpad.net/sikuli>`_.
+* Visit `the question board <https://answers.launchpad.net/sikuli>`_ and
+ `the bug tracker <https://bugs.launchpad.net/sikuli>`_ regularly and
+ answer people's questions there.
+ (You may want to `subscribe to the bug tracker <https://bugs.launchpad.net/sikuli/+subscribe>`_ or `subscribe to all questions <https://answers.launchpad.net/sikuli/+answer-contact>`_.)
+ Many people have questions that you may know how to deal with. Help them
+ to get through the obstacles and they may help you in the future.
+* :ref:`Submit patches <submit-patches>` to fix bugs or add features.
+* Join the `sikuli-dev mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-dev>`_ and share your ideas to us.
+* Translate Sikuli into your language and help more people who speak
+ different languages to access Sikuli. You can help us to
+
+ * translate Sikuli IDE's interface and messages, or
+
+ * translate Sikuli documentation (this site you are reading).
+
+ Read :ref:`translate-sikuli` for more details.
+
+
+
+.. _submit-patches:
+
+Submit Patches
+--------------
+
+If you are interested in making Sikuli better, submitting patches is a
+good start. We welcome any patches to Sikuli's code. If you've found
+a bug, submitting a bug report with associated patches will get it
+fixed more quickly than those without patches.
+
+Claim a bug
+^^^^^^^^^^^
+
+Here is a typical bug report status.
+
+.. image:: bug-tracker.png
+
+If you see a bug that you think you could fix, feel free to claim the bug.
+Simply click the pencil icon under the "Assigned to" column, and then click
+"Assign Me". Claiming a bug let other people and developers know that this
+bug is being worked on, and prevents duplicate work.
+
+
+Bug claimers' responsibility
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Once you've claimed a bug, you are responsible to work on that bug in
+reasonable time, say one or two weeks.
+If you don't have time to work on it, please unclaim it.
+
+If you’ve claimed a bug and it’s taking a long time to code,
+please keep everybody updated by posting comments on the bug.
+If you don’t update regularly, and you don’t respond to a request
+for a progress report, your claim on the bug may be revoked.
+
+Generate and Submit Patches
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+#. Branch the Sikuli source tree using :command:`bzr branch lp:sikuli`.
+
+#. Fix bugs or add new features.
+
+#. Generate your patches using :command:`bzr diff`, so we can
+ incorporate your patches into our code base esaily.
+
+#. Name the patch file with a :file:`.diff` extension.
+
+#. Click "Add attachment or patch" below the comment area, and attach your
+ patch file.
+
+#. If the patch adds a new feature, or modifies existing behavior, please
+ leave documentation in the comment area.
+
+If you want to contribute changes that involve hundred lines of code,
+Please `register a branch <https://code.launchpad.net/sikuli/+addbranch>`_ on Sikuli and then propose for merging once you have done all changes.
+
+
+.. _translate-sikuli:
+
+Internationalization and localization
+-------------------------------------
+
+We hope Sikuli can be access by anyone from anywhere in the world.
+You can help us to translate the user interface of Sikuli IDE or
+this documentation.
+
+Sikuli IDE Translation
+^^^^^^^^^^^^^^^^^^^^^^
+
+If you find an incorrect translation, or if you would like to add a language
+that isn’t yet translated, here’s what to do:
+
+* Join the `Sikuli i18n mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n>`_ and introduce yourself.
+* Claim what language and what (in this case, the Sikuli IDE) you
+ are going to work on.
+* Visit `our translations
+ page on launchpad <https://translations.launchpad.net/sikuli>`_ and
+ use launchpad's tool to translate the interface items.
+* If there are items you are not sure how to translate, please mark them as
+ "need review".
+* Once you've done the translations, send a mail to the Sikuli i18n mailing list
+ so we can incorporate your work into the Sikuli IDE.
+
+Documentation Translation
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This documentation is created using `Sphinx <http://sphinx.pocoo.org/>`_,
+and written in the
+`reStructuredText format <http://sphinx.pocoo.org/rest.html>`_.
+You can view how the source code looks like using the link "Show Source"
+in the side bar.
+
+To translate the documentation, you need to check out the source of the
+document using :command:`bzr branch lp:sikuli`.
+The documentation source is in the folder :file:`docs/`.
+Once you have the source, you can generate this HTML document using :command:`make html` under the :file:`docs/` directory.
+
+The translation for each language is in :file:`docs/i18n/<language>/source`.
+The :file:`source` directory for your language should mirror
+the main source directory :file:`docs/source`.
+
+If you find an incorrect translation in the documentation,
+or if you would like to add a language that isn’t yet translated,
+here’s what to do:
+
+* Join the `Sikuli i18n mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n>`_ and introduce yourself.
+* Claim what language and which part of the documentation you are going to work on.
+* Once you've done the translations, generate a patch using :command:`bzr diff` and name the patch with a :file:`diff` extension.
+* Send a mail to the Sikuli i18n mailing list and attach the patch, so we know
+ what you've done and we can put your translations online.
+
+If you contribute translations very actively, we can give you the commit
+permission to our bzr source tree so you can submit translations by yourself.
diff --git a/Docs/Python/build/html/_sources/devs/system-design.txt b/Docs/Python/build/html/_sources/devs/system-design.txt
new file mode 100644
index 0000000..e6efaf8
--- /dev/null
+++ b/Docs/Python/build/html/_sources/devs/system-design.txt
@@ -0,0 +1,19 @@
+How Sikuli Works
+=================
+.. image:: SystemDesign.png
+
+Sikuli Script
+-------------
+Sikuli Script is a Jython and Java library that automates GUI interaction using image patterns to direct keyboard/mouse events.
+The core of Sikuli Script is a Java library that consists of two parts: java.awt.Robot, which delivers keyboard and mouse events to appropriate locations, and a C++ engine based on OpenCV, which searches given image patterns on the screen. The C++ engine is connected to Java via JNI and needs to be compiled for each platform.
+On top of the Java library, a thin Jython layer is provided for end-users as a set of simple and clear commands. Therefore, it should be easy to add more thin layers for other languages running on JVM, e.g. JRuby, Scala, Javascript, etc.
+
+
+The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)
+----------------------------------------------------------------------
+A Sikuli script (.sikuli) is a directory that contains a Python source file (.py) representing the automation workflow or the test cases and all the image files (.png) used by the source file. All images used in a Sikuli script are simply a path to the .png file in the .sikuli bundle. Therefore, the Python source file can also be edited by any text editor.
+
+While saving a script using Sikuli IDE, an extra HTML file may optionally be created in the .sikuli directory so that users can share a visual copy of the scripts on the web easily.
+
+A Sikuli zipped script (.skl) is simply a zipped file of all files in the .sikuli folder. It is intended for distribution via mail or web upload, can also be run from command line and reopened in the Sikuli IDE. (The previous naming as "Sikuli executable" is deprecated, since this is misleading: people most often thought, it is something like a self-contained and self-running package comparable to a Windows EXE, but it is not).
+
diff --git a/Docs/Python/build/html/_sources/extensions/extensions_info.txt b/Docs/Python/build/html/_sources/extensions/extensions_info.txt
new file mode 100644
index 0000000..109f6f0
--- /dev/null
+++ b/Docs/Python/build/html/_sources/extensions/extensions_info.txt
@@ -0,0 +1,133 @@
+General Information About Sikuli Extensions
+===========================================
+
+.. _sikuliextensions:
+
+**This feature is currently under developement and might only be available on request.**
+
+Extensions allow to implement new Sikuli features by adding packages to your current Sikuli installation.
+
+They are maintained by the developers (see **Technical Details** below).
+
+If you want to contribute a new extension or a modified exisiting one, please look at **How to contribute an extension** below.
+
+How to Download and use an Extension
+------------------------------------
+
+The download of an extension is supported by the IDE through the menu
+:menuselection:`Tools -> Extensions`.
+You get a popup, that lists the available and already installed extensions and allows to download new packages or updates for installed ones.
+
+This popup shows a new **package not yet installed**:
+
+.. image:: extension-new.png
+
+If you need more information about the features of the extension, just click :guilabel:`More Info` - this will open the related documentation from the web in a browser window.
+
+If you want to install the extension, just click the :guilabel:`Install...` button. The package will be downloaded and added to your extensions repository.
+
+This popup shows an **installed package**:
+
+.. image:: extension-installed.png
+
+If a new version would be available at that time, the :guilabel:`Install...` button would be active again, showing the new version number. Now you could click and download the new version.
+
+**How to Use an Extension**
+
+To use the features of an installed extension in one of your scripts, just say ``from extension-name import *``. For an usage example read :ref:`Sikuli Guide <sikuliguide>`.
+
+For information about features, usage and API use menu :menuselection:`Tools -> Extensions -> More Info` in the IDE.
+
+
+Technical Details
+-----------------
+
+Extensions are Java JAR files containing some Java classes (usually the core functions) and/or Python modules, which define the API to be used in a script.
+
+Sikuli maintains a local extensions directory, where downloaded extensions are stored together with a hidden list of the installed extensions (Windows: ``%APPDATA%\Sikuli\extensions``, Mac: ``~/Library/Application Support/Sikuli/extensions``, Linux: ``~/.sikuli/extensions``).
+
+Once an extension is imported using ``import extension-name``,
+Sikuli automatically searches and loads the JAR file of that extension
+into the current context with :py:func:`load(path-to-jar-file) <load>`.
+
+
+How to develop an extension
+---------------------------
+
+The **source structure** of an extension named ``extension-name`` looks like this: ::
+
+ Java
+ - org/com
+ -- your-organization-or-company
+ --- extension-name
+ ---- yourClass1.java
+ ---- yourClass2.java
+ ---- .... more classes
+ python
+ - extension-name
+ -- __init__.py
+ -- extension-name.py
+
+The **final structure of a JAR** (filename ``extension-name-X.Y`` where X.Y is the version string) looks like this: ::
+
+ org/com
+ - your-organization-or-company
+ -- extension-name
+ --- yourClass1.class
+ --- yourClass2.class
+ --- .... more classes
+ extension-name
+ - __init__.py
+ - extension-name.py
+ META-INF
+ - MANIFEST.MF
+
+The file ``__init__.py`` contains at least ``from extension-name import *`` to avoid one qualification level. So in a script you might either use::
+
+ import extension-name
+ extension-name.functionXYZ()
+
+or::
+
+ from extension-name import *
+ functionXYZ()
+
+The second case requires more investement in a naming convention, that avoids naming conflicts.
+
+The file ``extension-name.py`` contains the classes and methods, that represent the API, that one might use in a Sikuli script.
+
+As an example you may take the source of the extension Sikuli Guide.
+
+Name your extensions properly
+-----------------------------
+
+Sikuli extensions can be Python/Jython modules or Java classes.
+
+For Java classes, following the reverse URL convention of Java is a good idea (for example, org.foo.your-extension). However, **DO NOT use Java's convention for Python/Jython modules**. You need to come up with a unique extension name that does not conflict with existing Python modules and other Sikuli extensions.
+
+Please read `Naming Python Modules and Packages <http://jythonpodcast.hostjava.net/jythonbook/en/1.0/ModulesPackages.html#naming-python-modules-and-packages>`_ to learn the details for naming a Python module.
+
+
+How to test your extension
+--------------------------
+
+While developing your extensions, you can put the JAR file in Sikuli's
+extension directory or in the same .sikuli folder as your test script.
+The JAR file should not have a version number in its file name,
+e.g. ``extension-name.jar``.
+Because Sikuli starts to search extensions in the .sikuli folder of the running script and then
+in the Sikuli extensions folder, it is usually a good idea to put your
+developing extensions in the .sikuli folder of your test script.
+
+Another option is to use the :py:func:`load() <load>` function with
+an absolute path to your ``extension-name.jar``. If this fails, Sikuli
+goes on searching in the current .sikuli folder and then in the Sikuli extensions folder.
+If load() succeeds, it returns ``True`` and puts
+``absolute-path-to-your-extension-name.jar`` into ``sys.path``,
+so you can use ``import extension-name`` afterwards.
+
+How to contribute your extension
+--------------------------------
+
+Currently you have to contact the developers of Sikuli
+and agree on how to proceed.
diff --git a/Docs/Python/build/html/_sources/extensions/index.txt b/Docs/Python/build/html/_sources/extensions/index.txt
new file mode 100644
index 0000000..2b4ae83
--- /dev/null
+++ b/Docs/Python/build/html/_sources/extensions/index.txt
@@ -0,0 +1,9 @@
+Extensions
+==========
+
+.. toctree::
+ :maxdepth: 2
+
+ extensions_info
+ sikuli-guide/index
+
diff --git a/Docs/Python/build/html/_sources/extensions/sikuli-copier/index.txt b/Docs/Python/build/html/_sources/extensions/sikuli-copier/index.txt
new file mode 100644
index 0000000..af402ba
--- /dev/null
+++ b/Docs/Python/build/html/_sources/extensions/sikuli-copier/index.txt
@@ -0,0 +1,5 @@
+Sikuli Copier
+=============
+
+(Under construction)
+
diff --git a/Docs/Python/build/html/_sources/extensions/sikuli-guide/index.txt b/Docs/Python/build/html/_sources/extensions/sikuli-guide/index.txt
new file mode 100644
index 0000000..1a3072d
--- /dev/null
+++ b/Docs/Python/build/html/_sources/extensions/sikuli-guide/index.txt
@@ -0,0 +1,236 @@
+Sikuli Guide
+============
+
+.. _sikuliguide:
+
+.. versionadded:: X1.0-rc2
+
+Sikuli Guide is an extension to Sikuli that provides a revolutionary way to
+create guided tours or tutorials for GUI applications. The revolutionary aspect
+is that the content of the tours or tutorials can be displayed right on the
+**actual interface**, rather than in a video or a series of screenshots on a
+web page. All this can be combined with guided user activities directly in the
+respective GUI applications using all the other Sikuli features.
+
+
+Quick Start
+^^^^^^^^^^^
+
+First Example
+-------------
+
+In our first example, suppose we want to create a guided tour of this very documentation
+page you are currently reading. We want to bring your attention to the logo
+picture to the right. Using the functions provided by Sikuli Guide, we can
+write the following script to accomplish this:
+
+.. sikulicode::
+
+ from guide import *
+ text("sikuli-logo.png", "This is Sikuli's logo")
+ show(5)
+
+When you run this script, Sikuli Guide will search for the logo's image on the
+screen, highlight it, and display the text ''This is Sikuli's logo'' below the
+image, like the figure below:
+
+
+
+.. image:: sikuli-logo-highlight.png
+
+Again, this happens in the **actual interface**, rather than in a video or a
+screenshot. The logo image that is highlighted is the actual interface element
+users can click on.
+
+Let's explain the script line by line. The first line is an ``import``
+statement that tells Sikuli to load the Sikuli Guide extension. The secod line
+uses the :py:func:`text(pattern, text) <guide.text>` function to add ``text``
+next to a given ``pattern``, in this case, the logo image. Note that by default
+the text added is not displayed immediately, it is only internally added
+to the visual element. In the third line, we call
+:py:func:`show(secs) <guide.show>` to explicitly tell Sikuli Guide to now display
+all registerd annotation elements (in this case only the
+text) for the duration specified by ``secs``.
+
+Below is a YouTube video of this example.
+
+
+.. youtube:: ELNWxVjVb7Y?hd=1
+ width:: 640
+ height: 390
+
+
+
+
+Adding Multiple Annotations
+---------------------------
+
+It is possible to add text or other annotations to multiple visual elements before
+calling :py:func:`show(secs) <guide.show>` in order to show them on the screen at the same time.
+
+.. sikulicode::
+
+ from guide import *
+ text("sikuli-logo.png", "This is Sikuli's logo")
+ tooltip("previous.png","Previous")
+ tooltip("next.png","Next")
+ tooltip("index.png","Index")
+ show(5)
+
+The script above uses the function :py:func:`tooltip(text) <guide.tooltip>` to add tooltips to
+three links in addition to the text annotation. The result of running this
+script is shown below:
+
+.. image:: multiple-annotations.png
+
+Rather than showing the annotations all at once, we can also show them one by
+one using separate ``show()`` statements. Below is an example where we cycle
+through the three links and show the tooltip of each link one at a time.
+
+.. sikulicode::
+
+ from guide import *
+ while True:
+ tooltip("previous.png","Previous")
+ show(3)
+ tooltip("next.png","Next")
+ show(3)
+ tooltip("index.png","Index")
+ show(3)
+
+The result of running this script is shown below (3x speed-up):
+
+.. image:: animated-tooltips.gif
+
+Adding Interaction
+------------------
+
+Another way to control the flow of a guided tour is to display a dialog box
+and let users click on a button to continue to the next part of the tour.
+Sikuli Guide provides a function :py:func:`dialog(message) <guide.dialog>`
+to accomplish this easily. Below is an example using this function to create a
+two-part guided tour.
+
+.. sikulicode::
+
+ from guide import *
+ text("links.png","Use these to jump to other parts")
+ dialog("Part 1: Navigation Links")
+ show()
+ text("sikuli-logo.png","Use this to go back to Home")
+ dialog("Part 2: Logo")
+ show()
+
+The tour presented by the script above introduces the navigation links above
+and the Sikuli's logo as a shortcut to go back to the documentation's HOME
+page. The function call ``dialog("Part 1")`` indicates the tour will show
+a dialog that displays the message specified by the string argument
+(i.e., Part 1: Navigation Links). The following call to ``show()`` will
+actually display the dialog along with the text elements spcified earlier.
+
+The figure below shows what happens after Line 3:
+
+.. image:: step1.png
+
+After users click on the **Next** button, the tour moves to the next part. The
+screen will look like below:
+
+.. image:: step2.png
+
+Making a Region clickable
+-------------------------
+
+You might use the feature :py:func:`clickable(PSRM) <guide.clickable>`, to make a region sensitive for clicks.
+
+.. sikulicode::
+
+ from guide import *
+ logo = find("sikuli-logo.png")
+ text(logo, "To proceed click this red ...")
+ clickable(logo)
+ index = logo.above().right().find("index.png")
+ text(index, "... or click this red")
+ clickable(index)
+ show()
+
+The script waits until the user clicks one of the two highlighted areas.
+
+.. image:: annotation-clickable.png
+
+.. py:module:: guide
+
+Function References
+^^^^^^^^^^^^^^^^^^^
+
+**PSRM**: when used as a parameter, it can be either **P** a Pattern,
+**S** a string (image file name or just plain text), a **R** Region object
+or **M** a Match object. With **PS** an implicit find operation takes place.
+(More information: :ref:`Finding inside a Region ... <FindinginsideaRegionandWaitingforaVisualEvent>`)
+
+Static Annotations
+------------------
+
+
+.. py:function:: rectangle(PSRM)
+
+ Add a rectangular overlay in red on the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+.. py:function:: circle(PSRM)
+
+ Add a red circle around the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+
+.. py:function:: text(PSRM, text)
+
+ Add some text (white large letters on dark grey background) left justified below the specified target's region, which is additionally highlighted.
+
+ :param PSRM: a pattern, string, region or match
+ :param text: a string as text to display
+
+.. py:function:: tooltip(PSRM, text)
+
+ Add a tooltip (small text in a light yellow box) left justified below the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+ :param text: a string as text to display
+
+
+Interactive Elements
+--------------------
+
+.. py:function:: dialog(text)
+
+ Add a dialog box displaying the given text in the middle of the screen above all othe windows.
+
+ :param text: a string as text to display
+
+.. py:function:: clickable(PSRM)
+
+ Add a clickable element corresponding to the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+Control
+-------
+
+.. py:function:: show([seconds])
+
+ Show static and interactive components added so far for the specified amount of time.
+
+ :param seconds: a decimal number as display duration in seconds
+
+ The default duration is 10 seconds. If interactive elements (either one or more clickable elements or
+ a dialog box) were previously added, it waits until the user interacts with one of these elements.
+ At this time all elements vanish and are discarded.
+
+ **Note:** If a :py:func:`dialog` element is present, other interactive elements are visible, but not clickable. If the dialog element is clicked, all elements vanish and are discarded.
+
+
+
diff --git a/Docs/Python/build/html/_sources/extensions/sikuli-hotkey/index.txt b/Docs/Python/build/html/_sources/extensions/sikuli-hotkey/index.txt
new file mode 100644
index 0000000..fb64bd4
--- /dev/null
+++ b/Docs/Python/build/html/_sources/extensions/sikuli-hotkey/index.txt
@@ -0,0 +1,5 @@
+Sikuli Hotkey
+=============
+
+(Under construction)
+
diff --git a/Docs/Python/build/html/_sources/faq/000-can-i-do-xxx.txt b/Docs/Python/build/html/_sources/faq/000-can-i-do-xxx.txt
new file mode 100644
index 0000000..a146c03
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/000-can-i-do-xxx.txt
@@ -0,0 +1,36 @@
+Can I do X or Y or Z in Sikuli?
+===============================
+
+If you are wondering if Sikuli can do X or Y, these two rules apply:
+
+* If you can do X with Java, you can also do it in Sikuli by simply adding the respective Java resources to the classpath (the standard Java classes are already there). For example, you can create a GUI with Java Swing, so you can do it in the same way in Sikuli.
+
+* If you can do X with Python, you probably can do it in Sikuli as well. This actually depends on what Python modules you use. Sikuli is with the contained Jython on language level 2.5 and language level 2.7 will be useable soon. So everything available in the respective Python base package is available in Sikuli too. If modules are written in pure Python, you can use them in Sikuli as well. A typical example are the Excel access modules xlrd and xlwt. If they are written in C or depend [...]
+
+Can I write a loop in Sikuli?
+-----------------------------
+
+Yes. Sikuli uses Jython (Python).
+You can use all constructs that are available in standard Python. See Jython's `While loop <http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#while-loop>`_ and `For loop <http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#for-loop>`_.
+
+
+Can I create a GUI in Sikuli?
+-----------------------------
+
+Yes, you can create GUIs with Java Swing or any other Java/Jython GUI toolkits.
+See `Jython's Swing examples <http://wiki.python.org/jython/SwingExamples>`_ for examples.
+
+
+
+Can I connect to MySQL/MS SQL/PostgreSQL or any database systems in Sikuli?
+---------------------------------------------------------------------------
+
+You can use `JDBC <http://www.oracle.com/technetwork/java/javase/jdbc/index.html>`_ or `zxJDBC <http://www.jython.org/jythonbook/en/1.0/DatabasesAndJython.html>`_.
+
+
+Can I read/write files in Sikuli?
+---------------------------------
+
+Yes. See Jython's `File I/O <http://www.jython.org/jythonbook/en/1.0/InputOutput.html#file-i-o>`_.
+
+
diff --git a/Docs/Python/build/html/_sources/faq/010-command-line.txt b/Docs/Python/build/html/_sources/faq/010-command-line.txt
new file mode 100644
index 0000000..bf68afb
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/010-command-line.txt
@@ -0,0 +1,50 @@
+How to run Sikuli from Command Line
+===================================
+
+SikuliX IDE or Script can be used on command line to run a Sikuli script or open it in the IDE.
+
+The usage on each platform:
+
+.. windows::
+
+ :command:`PATH-TO-SIKULIX/runIDE.cmd [options]` or
+ :command:`PATH-TO-SIKULIX/runScript.cmd [options]`
+
+.. mac::
+
+ :command:`PATH-TO-SIKULIX/runIDE [options]` or
+ :command:`PATH-TO-SIKULIX/runScript [options]`
+
+.. linux::
+
+ :command:`PATH-TO-SIKULIX/runIDE [options]` or
+ :command:`PATH-TO-SIKULIX/runScript [options]`
+
+**runIDE(.cmd) without any options** simply starts SikuliX IDE.
+
+**PATH-TO-SIKULIX** is the folder containing the Sikuli stuff after having run setup.
+
+Command Line Options
+--------------------
+
+:program:`SikuliX IDE or Script`
+
+.. option:: -- <arguments>
+
+ the space delimeted and optionally quoted arguments are passed to Jython's sys.argv and hence are available to your script
+
+.. option:: -h,--help
+
+ print the help message showing the available options
+
+.. option:: -r,--run <sikuli-folder/file>
+
+ run .sikuli or .skl file
+
+.. option:: -c,--console
+
+ all output goes to stdout
+
+.. option:: -i,--interactive
+
+ open an interactive Jython session that is prepared for the usage of the Sikuli features
diff --git a/Docs/Python/build/html/_sources/faq/020-unit-test.txt b/Docs/Python/build/html/_sources/faq/020-unit-test.txt
new file mode 100644
index 0000000..a8e33d9
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/020-unit-test.txt
@@ -0,0 +1,53 @@
+How to create Unit Testing Scripts for GUI
+==========================================
+
+Sikuli integrates with jUnit and supports unit testing for Graphical User Interfaces (GUI).
+The unit testing panel can be opened by clicking the menu
+:menuselection:`&View --> Unit Test` or by
+the hot key :kbd:`⌘-U` on Mac or :kbd:`Ctrl-U` on Windows/Linux.
+
+Sikuli IDE aims to minimize the effort of writing code.
+With Sikuli IDE, a Python class inherited from
+`junit.framework.TestCase <http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html>`_
+is automatically generated to wrap your unit testing script.
+
+A typical unit testing script consists of two constructing and
+destructing methods,
+`setUp() <http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html#setUp()>`_ and `tearDown() <http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html#tearDown()>`_,
+and a bunch of methods named with a prefix :token:`test`.
+
+..
+ Two specific Sikuli functions for testing are available:
+ assertExist() and assertNotExist(), that raise an !AssertionError if pattern or image is not found or found respectively. (Details: [http://sikuli.org/documentation.shtml#doc/pythondoc-python.edu.mit.csail.uid.SikuliTest.html Command Reference] )
+
+The basic structure of a script is given as following:
+
+.. sikulicode::
+
+ def setUp(self):
+ openApp("AnyRandom.app")
+ wait(SCREENSHOT_OF_THE_APP) # wait until the app appears
+
+ def tearDown(self):
+ closeApp("AnyRandom.app")
+ untilNotExist(SCREENSHOT_OF_THE_APP) # wait until the app disappears
+
+ def testA(self):
+ ....
+ assert exists(PICTURE_THAT_SHOULD_BE_THERE)
+
+ def testB(self):
+ ....
+ assert not exists(PICTURE_THAT_SHOULD_NOT_BE_THERE)
+
+
+Here is `a complete example <http://sikuli.org/examples/TestJEdit.sikuli/TestJEdit.html>`_.
+
+To run a unit testing script, you need to click on the :guilabel:`Run`
+button in the unit testing panel instead of the ordinary button.
+
+**IMPORTANT:** Before you try to run your script in this test mode the first time, it has to be saved. Everytime you change something, you have to save it again, before the next test run.
+
+Alternatively, you also can run unit testing scripts from command line
+using the option :option:`-t test-script <-t>`.
+
diff --git a/Docs/Python/build/html/_sources/faq/030-java-dev.txt b/Docs/Python/build/html/_sources/faq/030-java-dev.txt
new file mode 100644
index 0000000..bee7d91
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/030-java-dev.txt
@@ -0,0 +1,55 @@
+
+How to use Sikuli Script in your JAVA programs
+==============================================
+
+.. _howtojava:
+
+The core of Sikuli Script is written in Java, which means you can use Sikuli Script as a standard JAVA library in your program. This document lets you know how to do that.
+
+After having setup Sikuli on your system, as recommended on the `download page <http://sikuli.org/download.shtml>`_, you have to do the following:
+
+1. Include sikuli-script.jar in the CLASSPATH of your Java project.
+-------------------------------------------------------------------
+
+We use Eclipse as an example. After adding sikuli-script.jar or preferably sikuli-java.jar as a library reference into your project, the project hierarchy should look like this.
+
+.. image:: test-sikuli-project.png
+
+2. Import the Sikuli classes you need
+-------------------------------------
+
+You can simply "import org.sikuli.script.*" or import the classes you need. In most cases, you would need at least :py:class:`Region` or :py:class:`Screen`.
+
+3. Write code!
+--------------
+
+Here is a hello world example on Mac.
+The program clicks on the spotlight icon on the screen, waits until spotlight's input window appears, activates it by clicking and then writes "hello world" into the field and hits ENTER.
+
+.. code-block:: java
+
+ import org.sikuli.script.*;
+
+ public class TestSikuli {
+
+ public static void main(String[] args) {
+ Screen s = new Screen();
+ try{
+ s.click("imgs/spotlight.png");
+ s.wait("imgs/spotlight-input.png");
+ s.click();
+ s.write("hello world#ENTER.");
+ }
+ catch(FindFailed e){
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+See also
+--------
+Be aware, that some method signatures in the Java API differ from the scripting level.
+ * `Javadoc of SikuliX <http://sikuli.org/doc/java-x/>`_.
+ * :doc:`/sikuli-script-index`.
+
diff --git a/Docs/Python/build/html/_sources/faq/040-other-ide.txt b/Docs/Python/build/html/_sources/faq/040-other-ide.txt
new file mode 100644
index 0000000..57a9a75
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/040-other-ide.txt
@@ -0,0 +1,199 @@
+How to use Sikuli together with other IDE's
+===========================================
+
+.. versionadded:: X1.0-rc2
+
+currently available for :ref:`Netbeans <netbeanssikuli>` and :ref:`Eclipse <eclipsesikuli>`.
+
+In this section we want to talk about requirements and todos, when you want to develop Sikuli scripts in other IDE's than the one that comes with the distribution. You should read further, if you want to develop at least a part of your package using **Python language**. If you "only" want to develop in Java using the Java level API of Sikuli, then you should look here: :ref:`How to use Sikuli Script in your JAVA programs <howtojava>`.
+
+Very detailed background information and helpful examples can be found in the **Jython e-book** `Chapter 11: Using Jython in a IDE <http://jythonpodcast.hostjava.net/jythonbook/en/1.0/JythonIDE.html#chapter-11-using-jython-in-an-ide>`_. So we will concentrate on the key points here.
+
+The following approaches are evaluated and tested on Mac OS X 10.6 and Windows 7 32Bit. Linux users have to find the appropriate setups themselves - but they should be similar or even identical.
+
+These and more might be your reasons:
+
+* you want to stick with your favorite IDE
+
+* you want more features, than Sikuli-IDE currently has
+
+* you want to develop packages/applications combining Sikuli script and Java or even other languages
+
+* you want to develop a :ref:`Sikuli Extension <sikuliextensions>`
+
+* you need a debugger for your script/package/application
+
+* you want to integrate with a versioning system
+
+* you want to do professional unittesting
+
+General Requirements and Comments
+---------------------------------
+
+**Install Sikuli**
+
+* **Windows:** install Sikuli X using the installer (the system %PATH% will be set as needed)
+ There is a new environment variable **%SIKULI_HOME%** that is expected to contain the directory, where Sikuli X is installed. You have to set it, if you have Sikuli X in a different place.
+
+ **Be aware:** using the zipped version, you have to take care for %PATH% and %SIKULI_HOME% yourself.
+
+* **Mac:** have Sikuli-IDE.app in its standard place /Applications. There is generally no need to put it elsewhere.
+
+* **Linux:** you generally have to take care for the environment yourself.
+
+**Meanings of shortcuts used**:
+
+* **path-to/sikuli-script.jar** if we use this, it should be replaced by the absolute path to the file sikuli-script.jar, where you installed Sikuli.
+
+**Images and importing other Sikuli scripts**
+
+It is recommended to carefully read through :ref:`Importing other Sikuli Scripts (reuse code and images) <importingsikuliscripts>`, since you need to have a concept how to capture, how to name and where to store your images. As a first start, just decide to use Sikuli IDE in parallel to capture and store your images and use the import feature or the image path to make them available in your script.
+
+Netbeans
+--------
+
+.. _netbeanssikuli:
+
+This is based on **Netbeans 6.9**. We suppose you have it running in a setup that allows to at least develop Java applications.
+
+Since this is not a tutorial how to use NetBeans in general, you should be familiar with the basic concepts.
+
+**Install Python plugin**
+
+Since the top level language used by Sikuli script is Python, you need the Python plugin that comes bundled with Jython 2.5.1.
+
+In the Python plugin NetBeans is not strict in naming: though they mainly talk about Python, Jython is meant as well. The Python interpreter to use is selected on the project level.
+
+Go to menu **Tools** -> **Plugins** -> **Available Plugins**
+
+In the list select everything that is in the category Python and install. If suggested by the install process always restart Netbeans.
+
+**Configure for using Sikuli script features at runtime**
+
+The plugin itself has nothing to configure, that is of value for the Sikuli usage. Everything is done on the project level, though some basic preferences act like plugin globals - we just have to know and accept this ;-)
+
+These are the setup steps:
+
+* Start a new project: **File** -> **New Project** -> **Categories: Python** -> **Python Project** -> click **Next**
+
+* In the second step **Name and Location** (last line), select as Python Platform: **Jython 2.5.1**.
+
+* you might want to click **Make Default**, if you have real Python also available (Remember: Sikuli scripts cannot be run with real Python!)
+
+* To integrate Sikuli: click the button **Manage** (only needed with the first project - it is remembered)
+
+* on the tab **Python Path** we need an additional entry, that points to **path-to/sikuli-script.jar/Lib**.
+
+ * Windows: click the button **Add** and click through to *path-to/sikuli-script.jar*. Before clicking **Open**, edit the filename so that it shows sikuli-script.jar\\Lib.
+
+ * Mac: since the Netbeans file dialog does not allow to dive into a bundle like Sikuli-IDE.app, we have to edit the preference file directly. Since it is the same with the Java path, we have documented it seperatly below :ref:`Mac/Netbeans: select library path <nbmacselectlibpath>`.
+
+* on the tab **Java Path** we need an additional entry, that points to **path-to/sikuli-script.jar**. If you have other Java libraries, that you need in your project, add them here too.
+
+ * Windows: click the button **Add** and click through to *path-to/sikuli-script.jar*. Clicking **Open**.
+
+ * Mac: same again, see below :ref:`Mac/Netbeans: Select library path <nbmacselectlibpath>`.
+
+Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need *from sikuli.Sikuli import **, to have access to the Sikuli features at runtime.
+
+Everytime later on you might come back to the project's preferences with **File** -> **Project Properties (your-project's-name)** . You will find the above information in the categorie Python.
+
+**Prepare to use Code Completion for the Sikuli methods**
+
+The NetBeans editor in the Python plugin editor is not able to recognize Python classes and methods, as long as the respective source code is embedded inside a jar-file as it is the fact with Sikuli. If you want *Code Completion* to work, you have to extract the folder **Lib/sikuli** from *sikuli-script.jar*, place it somewhere and add the reference to this folder to the Python Path in the project's preferences (see above: Configure Python Path).
+
+.. _extractlibsikuli:
+
+To extract the folder **Lib/sikuli** from *sikuli-script.jar* you might use the jar utility, that comes with the Java JDK or any other utility, that allows to unjar a jar-file.
+
+This is a Mac example how to use the jar uility, supposing it can be found on the system path:
+
+* in a Terminal window go to an appropriate folder, that should contain Lib/sikuli afterwards
+
+* run: jar -xf /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar Lib/sikuli
+
+You might decide, to use a folder, that is already on the Python path. One folder that is designated by Jython to contain complementary sources, that needs to be imported, is the folder *Lib/site-packages* in the Jython installation directory. If you copy the folder **sikuli** here, you do not need an additional Python path entry.
+
+.. _nbmacselectlibpath:
+
+**Mac/NetBeans: Select library path**
+
+To perpare the preference file modification we first add the path to *Sikuli-IDE.app* on both tabs: click the button **Add** and click through to */Applications/Sikuli-IDE.app*. Depending on your selected language, the folder Applications is named like you see it in the Finder. Save the preferences by clicking close and/or ok.
+
+The preference file is located at /Users/your-name/.netbeans/6.9/build.properties. Since it is hidden, you might have to use the Finder option "Go to Folder" (Shift-Command-G), to open the folder /Users/your-name/.netbeans/.
+
+Open the file build.properties in your favorite editor and search for the text */Applications/Sikuli-IDE.app*. It should be at the end of 2 lines beginning with *pythonplatform.*.
+
+On the line beginning *pythonplatform. ... .javalib=* extend */Applications/Sikuli-IDE.app* so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar.
+
+On the line beginning *pythonplatform. ... .pythonlib=* extend */Applications/Sikuli-IDE.app* so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar/Lib.
+
+Save the file and restart Netbeans. It is a good idea to check, that the correct entries are found on the 2 tabs now.
+
+Eclipse
+-------
+
+.. _eclipsesikuli:
+
+This is based on **Eclipse Helios 3.6**. We suppose you have it running in a setup that allows to at least develop Java applications.
+
+Since this is not a tutorial how to use Eclipse in general, you should be familiar with the basic concepts.
+
+**Install Python plugin (PyDev) and Jython**
+
+Since the top level language used by Sikuli script is Python, you need the Python plugin PyDev. Different from NetBeans, though PyDev is prepared to use Jython as interpreter, you have to install Jython on your own seperately.
+
+So **first install Jython**, by downloading the version you want to use from the `Jython download page <http://www.jython.org/downloads.html>`_. Sikuli currently is based on Jython 2.5.1, but you may choose Jython 2.5.2 as well. Install it according to Jythons installation HowTo.
+
+After installation, make a test from a commandline by typing jython.bat (Windows) or jython (Mac/Linux) to open an interactive Jython session.
+
+You might type the following (<enter> means pressing the enter/return key)
+
+* import os <enter>
+
+* import sys <enter>
+
+* for e in sys.path: print e <enter> <enter>
+
+* type exit() <enter> (to leave interactive Jython)
+
+This shows the current Jython configuration of the Python path. Remember the place where Jython is installed.
+
+Now we **install the PyDev plugin** from inside Eclipse: Menu **Help** -> **Eclipse Marketplace**. Either search it or find it on the Popular tab's lower part. Simply click the Install button and do what you are asked to do ;-)
+
+The next step is to tell Eclipse PyDev, where it can find the Jython interpreter. Navigate to the *Eclipse Preferences* pane and open the category *PyDev* and inside the subcategory *Interpreter-Jython*. First try to *Auto Config* by clicking the appropriate button. If this does not work, click the button *New*, name the entry and navigate to the folder, where Jython was installed and select *jython.jar*. After clicking ok, a window *Selection needed* might come up: click *Select all* an [...]
+
+Other options with PyDev are available, but not relevant for our actual matter (`see documentation <http://pydev.org/manual_101_root.html>`_).
+
+**Configure for using Sikuli script features at runtime**
+
+Again we have a difference to Netbeans: The PyDev plugin does not allow library references to folders inside of jar-files in the respective configuration dialog (it does not insert them to the Python path), though Jython itself accepts them, when specified on the Python path. So if you want to run and debug your script in Eclipse, you have to extract the folder **Lib/sikuli** from sikuli-script.jar (:ref:`find one HowTo here <extractlibsikuli>`).
+
+As with Netbeans, the library configuration is done in the project itself. So we open a new project:
+
+* Menu **File** -> **New** -> **Project** -> **PyDev** -> (open sublist) -> **PyDev Project** -> click **Next** button.
+
+On the configuration pane name your project, select Jython as Project type, grammar version 2.5 (higher Python language versions are not supported by Jython 2.5.x) and click
+the **Finish** button. Your project is created. Add at least one *you-name-it.py* file to the source folder and put *from sikuli.Sikuli import ** as the first line.
+
+In the last step, we tell PyDev, where to find the Sikuli libraries.
+
+Goto Menu **Project** -> **Properties** -> select category **PyDev - PYTHONPATH** and go to the tab **External Libraries**. We need a reference to *path-to/sikuli-script.jar* and another one to the extracted folder *Lib* containing the folder *sikuli*.
+
+* reference to *path-to/sikuli-script.jar*
+
+ * Windows: click button **Add zip/jar/egg** and select *sikuli-script.jar* from the Sikuli installation.
+
+ * Mac: As with NetBeans, the file dialog does not allow to step inside Sikuli-IDE.app. So we use the trick, to define a *String Substitution Variable*: on the respective tab click **Add variable**, name it e.g. *sikuli-script* and enter as value: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar. Go back to the tab **External Libraries** and click **Add based on variable**. In the entry field enter: ${sikuli-script} and click **OK**.
+
+* reference to the extracted folder *Lib* containing the folder *sikuli*
+
+ * click **Add source folder** and select the folder *Lib* in the place you had it extracted.
+
+ * this is not needed, if you have moved the extracted folder *sikuli* to a folder, that is already on the Python path (e.g. jython-intallation/Lib/site-packages).
+
+Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need *from sikuli.Sikuli import **, to have access to the Sikuli features at runtime.
+
+Everytime later on you might come back to the project's preferences with **Project** -> **Properties**.
+
+**Code Completion** works from the start without any further configuration and even steps into the Java classes where appropriate.
diff --git a/Docs/Python/build/html/_sources/faq/050-tuning-sikuli.txt b/Docs/Python/build/html/_sources/faq/050-tuning-sikuli.txt
new file mode 100644
index 0000000..673007b
--- /dev/null
+++ b/Docs/Python/build/html/_sources/faq/050-tuning-sikuli.txt
@@ -0,0 +1,14 @@
+Sikuli is too slow or not robust. What can I do?
+================================================
+
+You can tune a parameter of the vision algorithm, :ref:`MinTargetSize <min-target-size>`, to speed up the matching process or make it more robust.
+
+
+.. sikulicode::
+
+ from org.sikuli.script.natives import Vision
+
+ Vision.setParameter("MinTargetSize", 6) # A small value such as 6 makes the matching algorithm be faster.
+ Vision.setParameter("MinTargetSize", 18) # A large value such as 18 makes the matching algorithm be more robust.
+
+
diff --git a/Docs/Python/build/html/_sources/finder.txt b/Docs/Python/build/html/_sources/finder.txt
new file mode 100644
index 0000000..d385751
--- /dev/null
+++ b/Docs/Python/build/html/_sources/finder.txt
@@ -0,0 +1,105 @@
+Finder
+======
+
+.. py:class:: Finder
+
+A Finder object implements an iterator of matches and allows to search for a visual
+object in an image file that you provide (e.g. a screenshot taken and saved in a
+file before). After setting up the finder object and doing a find operation, you can
+iterate through the found matches if any.
+
+Important to know:
+
+* per definition, an iterator can be stepped through only once - it is empty
+ afterwards
+* it has to be destroyed using ``finder.destroy()``, especially when
+ used with ``for:`` or ``while:``
+* when used in a ``with:`` construct, it is destroyed automatically
+
+Compared with the region based find operation, no exception FindFailed is
+raised in case nothing is found at all (use ``hasNext()`` to check). The finder object
+can be compared to what you get with ``region.getLastMatches()`` when using :py:meth:`findAll() <Region.findAll>`.
+
+**Note**: With this version, there is no chance, to get the number of matches in
+advance. If you would iterate through to count, afterwards your finder would be
+empty. So in this case, you have to save your matches somehow (one possible solution
+see example below).
+
+The workflow always is, that you first do a find operation and afterwards go through the
+matches found. After a complete iteration, the finder object is empty. So you
+could start a new find operation again.
+
+.. py:class:: Finder
+
+ .. py:method:: Finder(path-to-imagefile)
+
+ Create a new finder object.
+
+ :param path-to-imagefile: filename to a source image to search within
+
+ .. py:method:: find(path-to-imagefile, [similarity])
+
+ Find a given image within a source image previously specified in the
+ constructor of the finder object.
+
+ :param path-to-imagefile: the target image to search for
+ :param similarity: the minimum similarity a match should have. If omitted,
+ the default is used.
+
+ .. py:method:: hasNext()
+
+ Check whether there are more matches available that satisfy the minimum
+ similarity requirement.
+
+ :return: *True* if more matches exist.
+
+ .. py:method:: next()
+
+ Get the next match.
+
+ :return: a :py:class:`Match` object.
+
+ The returnd reference to a match object is no longer available in the finder
+ object afterwards. So if it is needed later on, it has to be saved to
+ another variable.
+
+
+Example 1: basic operations using a Finder
+
+.. sikulicode::
+
+ # create a Finder with your saved screenshot
+ f = Finder("stars.png")
+ img= "star.png" # the image you are searching
+
+ f.find(img) # find all matches
+
+ while f.hasNext(): # loop as long there is a first and more matches
+ print "found: ", f.next() # access the next match in the row
+
+ print f.hasNext() # is False, because f is empty now
+ f.destroy() # release the memory used by finder
+
+Example 2: we want to know how many matches (based on the previous example).
+
+.. sikulicode::
+
+ # create a Finder with your saved screenshot
+ f = Finder("stars.png")
+ img= "star.png" # the image you are searching
+
+ f.find(img) # find all matches
+ mm = [] # an empty list
+
+ while f.hasNext(): # loop as long there is a first and more matches
+ mm.append(f.next()) # access next match and add to mm
+
+ print f.hasNext() # is False, because f is empty now
+ f.destroy() # release the memory used by finder
+
+ # now we have our matches saved in the list mm
+ print len(mm) # the number of matches
+
+ # we want to use our matches
+ for m in mm:
+ print m
\ No newline at end of file
diff --git a/Docs/Python/build/html/_sources/globals.txt b/Docs/Python/build/html/_sources/globals.txt
new file mode 100644
index 0000000..7360746
--- /dev/null
+++ b/Docs/Python/build/html/_sources/globals.txt
@@ -0,0 +1,1016 @@
+Global Functions and Features
+=============================
+
+.. index:: import .sikuli
+
+.. _ImportingSikuliScripts:
+
+Importing other Sikuli Scripts (reuse code and images)
+------------------------------------------------------
+
+When getting more experienced with scripting or when you are used to structure
+your solutions into a modular system, you might want to have access to the
+related features of the programming environment - in this case the
+Python/Jython features of module support - for your scripts too.
+
+This is possible with Sikuli X:
+
+* import other .sikuli in a way that is fully compatible with Python import
+* import a python module structure including underlying Java classes from a
+ jar-file, that is dynamically loaded using the function :py:func:`load(jar-file) <load>`
+* automatically access images contained in the imported .sikuli (no need to use
+ :py:func:`setBundlePath`)
+
+**Note**: Currently a .skl cannot be imported. As a circumvention it is up to you
+to unzip the .skl on the fly (e.g. with gzip on the command line) to a place of
+your choice as .sikuli (e.g. temp directory) and import it from there.
+
+**The prerequisites**:
+
+* the directories/folders containing your .sikuli's you want to import have to
+ be in ``sys.path`` (see below: Usage)
+
+ .. versionadded:: X1.0-rc3
+
+* Sikuli automatically finds other Sikuli scripts in the same directory, when they are imported
+
+* your imported script must contain (recommendation: as first line) the
+ following statement: ``from sikuli import *`` (this is necessary for the
+ Python environment to know the Sikuli classes, methods, functions and global
+ names)
+
+**Usage**:
+
+* Add the path to the Sikuli module into *sys.path* (since X-1.0rc3: If the modules to import are in the same directory as the main script, skip this step.)
+
+* Import your .sikuli using just its name. For example, to import a_module.sikuli, just write *import a_module*.
+
+* the example contains a recommendation to avoid double entries::
+
+ # an example - choose your own naming
+ # on Windows
+ myScriptPath = "c:\\someDirectory\\myLibrary"
+ # on Mac/Linux
+ myScriptPath = "/someDirectory/myLibrary"
+
+ # all systems
+ if not myScriptPath in sys.path: sys.path.append(myScriptPath)
+
+ # supposing there is a myLib.sikuli
+ import myLib
+
+ # supposing myLib.sikuli contains a function "def myFunction():"
+ myLib.myFunction() # makes the call
+
+
+**Note on contained images:** Together with the import, Sikuli internally uses
+the new :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>` to make sure that images contained in imported
+.sikuli's are found automatically.
+
+**Some comments for readers not familiar with Python import**
+
+* An import is only processed once (the first time it is found in the program
+ flow). So be aware:
+
+ * If your imported script contains code outside of any function definitions ( ``def()`` ),
+ this code is only processed once at the first time, when the import is evaluated
+
+ * Since the IDE does not reload the modules while running a script each time, if you are changing imported scripts while they are in use, you have to use the Jython's reload() function::
+
+ # instead of: import module
+ import module
+ reload(module)
+
+ # instead of: from module import *
+ import module
+ reload(module)
+ from module import *
+
+* Python has a so called namespace concept: names (variables, functions,
+ classes) are only known in it's namespace your main script has it's own namespace
+
+ * Each imported script has its own namespace. So names contained in an
+ imported script have to be qualified with the module name (e.g. ``myLib.myFunction()`` )
+
+ * You may use ``from myLib import *``, which integrates all names from myLib
+ into your current namespace. So you can use ``myFunction()`` directly. When you
+ decide to use this version, be sure you have a naming convention that
+ prevents naming conflicts.
+
+
+**Another example: Importing from the same directory**
+
+This approach allows to develop a modularized script app that is contained in
+one directory. This directory can be moved around with no changes and even
+distributed as a zipped file::
+
+ # works on all platforms
+ import os
+ # get the directory containing your running .sikuli
+ myPath = os.path.dirname(getBundlePath())
+ if not myPath in sys.path: sys.path.append(myPath)
+
+ # now you can import every .sikuli in the same directory
+ import myLib
+
+.. versionadded:: X1.0-rc3
+
+Since scripts in same directory are found automatically::
+
+ # nothing else needed
+ # now you can import every .sikuli in the same directory
+ import myLib
+
+
+**Loading a jar-file containing Java/Python modules**
+
+.. versionadded:: X1.0-rc2
+.. py:function:: load(jar-file)
+
+ Loads a jar-file and puts the absolute path to it into sys.path, so
+ the Java or Python code in that jar-file can be imported afterwards.
+
+ :param jar-file: either a ``filename.jar`` without any path or the absolute
+ path to ``filename.jar``
+ :return: ``True`` if the file was found, otherwise ``False``
+
+ **Note:** if no path is specified, Sikuli first looks into the bundle (the
+ Sikuli folder of the running script) and then into the extensions folder.
+ (more information: :ref:`Sikuli Extensions <sikuliextensions>`)
+
+.. _ControllingSikuliScriptsandtheirBehavior:
+
+Controlling Sikuli Scripts and their Behavior
+---------------------------------------------
+
+.. py:function:: setShowActions(False | True)
+
+ If set to *True*, when a script is run, Sikuli shows a visual effect (a blinking
+ double lined red circle) on the spot where the action will take place before
+ executing actions (e.g. ``click()``, ``dragDrop()``, ``type()``, etc) for about 2 seconds in the
+ standard (see :py:attr:`Settings.SlowMotionDelay` ). The default setting is False.
+
+.. py:function:: exit([value])
+
+ Stops the script gracefully at this point. The value is returned to the calling
+ environment.
+
+.. py:class:: Settings
+
+.. versionadded:: X1.0-rc2
+.. py:attribute:: Settings.ActionLogs
+ Settings.InfoLogs
+ Settings.DebugLogs
+
+ Either option might be switched on (True) or off (False), to show or hide the respective message type in the IDE console or on command line ([log], [info], [debug]).
+
+.. py:attribute:: Settings.MinSimilarity
+
+ The default minimum similiarty of find operations.
+ While using a :py:meth:`Region.find` operation,
+ if only an image file is provided, Sikuli searches
+ the region using a default minimum similarity of 0.7.
+
+.. py:attribute:: Settings.MoveMouseDelay
+
+ Control the time taken for mouse movement to a target location by setting this
+ value to a decimal value (default 0.5). The unit is seconds. Setting it to
+ 0 will switch off any animation (the mouse will "jump" to the target location).
+
+ As a standard behavior the time to move the mouse pointer from the current
+ location to the target location given by mouse actions is 0.5 seconds. During
+ this time, the mouse pointer is moved continuosly with decreasing speed to the
+ target point. An additional benefit of this behavior is, that it gives the
+ active application some time to react on the previous mouse action, since the
+ e.g. click is simulated at the end of the mouse movement::
+
+ mmd = Settings.MoveMouseDelay # save default/actual value
+ click(image1) # implicitly wait 0.5 seconds before click
+ Settings.MoveMouseDelay = 3
+ click(image2) # give app 3 seconds time before clicking again
+ Settings.MoveMouseDelay = mmd # reset to original value
+
+.. py:attribute:: Settings.DelayAfterDrag
+ Settings.DelayBeforeDrop
+
+ *DelayAfterDrag* specifies the waiting time after mouse down at the source
+ location as a decimal value (seconds).
+
+ *DelayBeforeDrop* specifies the
+ waiting time before mouse up at the target location as a decimal value
+ (seconds).
+
+ **Usage**: When using :py:meth:`Region.dragDrop` you may have situations, where the
+ operation is not processed as expected. This may be due to the fact, that the
+ Sikuli actions are too fast for the target application to react properly. With
+ these settings the waiting time after the mouse down at the source location and
+ before the mouse up at the target location of a dragDrop operation are
+ controlled. The standard settings are 0.3 seconds for each value. The time that
+ is taken, to move the mouse from source to target is controlled by
+ :py:attr:`Settings.MoveMouseDelay`::
+
+
+ # you may wish to save the actual settings before
+ Settings.DelayAfterDrag = 1
+ Settings.DelayBeforeDrop = 1
+ Settings.MoveMouseDelay = 3
+ dragDrop(source_image, target_image)
+ # time for complete dragDrop: about 5 seconds + search times
+
+
+.. py:attribute:: Settings.SlowMotionDelay
+
+ Control the duration of the visual effect (seconds).
+
+
+.. py:attribute:: Settings.WaitScanRate
+ Settings.ObserveScanRate
+
+ Specify the number of times actual search operations are performed per second
+ while waiting for a pattern to appear or vanish.
+
+ As a standard behavior Sikuli internally processes about 3 search operations per
+ second, when processing a :py:meth:`Region.wait`, :py:meth:`Region.exists`,
+ :py:meth:`Region.waitVanish`, :py:meth:`Region.observe`). In cases where this
+ leads to an excessive usage of system ressources or if you intentionally want to
+ look for the visual object not so often, you may set the respective values to
+ what you need. Since the value is used as a rate per second, specifying values
+ between 1 and near zero, leads to scans every x seconds (e.g. specifying 0.5
+ will lead to scans every 2 seconds)::
+
+ def myHandler(e):
+ print "it happened"
+
+ # you may wish to save the actual settings before
+ Settings.ObserveScanRate = 0.2
+ onAppear(some_image, myHandler)
+ observe(FOREVER, background = True)
+ # the observer will look every 5 seconds
+ # since your script does not wait here, you
+ # might want to stop the observing later on ;-)
+
+.. versionadded:: X1.0-rc2
+.. py:attribute:: Settings.ObserveMinChangedPixels
+
+ The minimum size in pixels of a change to trigger a change event when using :py:meth:`Region.onChange` without specifying this value.
+ The default value is 50.
+
+
+Controlling Applications and their Windows
+------------------------------------------
+
+Here we talk about opening or closing other applications, switching to them (bring
+their windows to front) or accessing an application's windows.
+
+The three global functions :py:func:`openApp`, :py:func:`switchApp` and
+:py:func:`closeApp` introduced in Sikuli 0.9 and 0.10 are still valid in the moment,
+but they should be considered as deprecated. They are being replaced by a new
+:py:class:`App` class introduced in Sikuli X. This class makes it possible to treat
+a specific application as an object with attributes and methods. We recommend to
+switch to the class App and its features, the next time you work with one of your
+existing scripts and in all cases, when developing new scripts.
+
+**General hint for Windows users** on backslashes \\ and double apostrophes "
+
+In a Sikuli script in normal strings enclosed in " (double apostrophes),
+these special characters \\ and " have to be escaped using a backslash,
+when you have them inside the string. So for one backslash you need \\\\
+and for one " you need \\". In a string enclosed in ' (single apostrophes), a '
+has to be \\' and a " is taken as such.
+
+To avoid any problems, it is recommended to use the raw string ``r'some text with \\ and " ...'``,
+since there is no need for escaping.
+This is especially useful, when you have to specify Windows path's or want to
+setup command lines for use with App.open(), openApp(), os.popen or Jythons Subprocess module.
+
+a fictive command line example::
+
+ cmd = r'c:\Program Files\myapp.exe -x "c:\Some Place\some.txt" >..\log.txt'
+ openApp(cmd)
+
+**This is a comparism of old (xxxApp) and new (App.xxx) functions:**
+
+* Open an application: :py:func:`openApp` --> :py:meth:`App.open`
+* Switch to an application or application window: :py:func:`switchApp` -->
+ :py:meth:`App.focus`
+* Close an application: :py:func:`closeApp` --> :py:meth:`App.close`
+
+.. py:function:: openApp(application)
+
+ Open the specified application.
+
+ :param application: a string containing the name of an application (case-insensitive), that can be
+ found in the path used by the system to locate applications. Or it can be the
+ full path to an application.
+
+ **Note for Windows:** (since X-1.0rc3) The string may contain commandline parameters
+ for the specified program or batch file after the name or full path.
+
+ This function opens the specified application and brings its windows to the
+ front. This is equivalent to :py:meth:`App.open`. Depending on the system and/or
+ the application, this function may switch to an already opened application or
+ may open a new instance of the application.
+
+ Examples::
+
+ # Windows: opens command prompt (found through PATH)
+ openApp("cmd.exe")
+
+ #Windows (since X-1.0rc3): with parameters (no sense, only to show ;-)
+ openApp(r'cmd.exe /c start c:\Program Files\myapp.bat')
+
+ # Windows: opens Firefox (full path specified)
+ openApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Mac: opens Safari
+ openApp("Safari")
+
+.. py:function:: switchApp(application)
+
+ Switch to the specified application.
+
+ :param application: the name of an application (case-insensitive) or (part of) a
+ window title (Windows/Linux).
+
+ This function switches the focus to the specified application and brings its
+ windows to the front. This function is equivalent to :py:meth:`App.focus`.
+
+ On Windows/Linux, the window is the one identified by the *application* string.
+ This string is used to search the title text of all the opened windows for any
+ part of the title matching the string. Thus, this string needs not be an
+ application's name. For example, it can be a filename of an opened document that
+ is displayed in the title bar. It is useful for choosing a particular window out
+ of the many windows with different titles.
+
+ On Mac, the *application* string is used to identify the application. If the
+ application has multiple windows opened, all these windows will be brought to
+ the front. The relatively ordering among these windows remain the same.
+
+ Example::
+
+ # Windows: switches to an existing command prompt or starts a new one
+ switchApp("cmd.exe")
+
+ # Windows: opens a new browser window
+ switchApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Windows: switches to the frontmost opened browser window (or does nothing
+ # if no browser window is currently opened)
+ switchApp("mozilla firefox")
+
+ # Mac: switches to Safari or starts it
+ switchApp("Safari")
+
+.. py:function:: closeApp(application)
+
+ Close the specified application.
+
+ :param application: the name of an application (case-insensitive) or (part of) a
+ window title (Windows/Linux)
+
+ This function closes the application indicated by the string *application* (Mac) or
+ the windows whose titles contain the string *application* (Windows/Linux). this
+ function is equivalent to :py:meth:`App.close`. On Windows/Linux, the
+ application itself may be closed if the main window is closed or if all the
+ windows of the application are closed.
+
+ Example::
+
+ # Windows: closes an existing command prompt
+ closeApp("cmd.exe")
+
+ # Windows: does nothing, since text can not be found in the window title
+ closeApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Windows: stops firefox including all its windows
+ closeApp("mozilla firefox")
+
+ # Mac: closes Safari including all its windows
+ closeApp("Safari")
+
+.. py:function:: run(command)
+
+ Run *command* in the command line
+
+ :param command: a command that can be run from the command line.
+
+ This function executes the command and the script waits for its completion.
+
+
+The Application Class
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. py:class:: App
+
+Sikuli-X introduces the new class called :py:class:`App` to provide a more
+convenient and flexible way to control the application and its windows.
+
+:ref:`go directly to the methods <ClassAppMethods>`
+
+**Using class methods or instance methods**
+
+Generally you have the choice between using the class methods (e.g.
+``App.open("application-identifier")``) or first create an App instance and use
+the instance methods afterwards (e.g. ``myApp = App("application-identifier")``
+and then later on ``myApp.open()``). In the current state of the feature
+developement of the class App, there is no recomendation for a preferred usage.
+The only real difference is, that you might save some ressources, when using the
+instance approach, since using the class methods produces more intermediate
+objects.
+
+.. _CreateAppInstance:
+
+**How to create an App instance**
+
+The basic choice is to just say ``someApp = App("some-app-identifier")`` and you
+have your app instance, that you can later on use together with its methods,
+without having to specify the string again.
+
+Additionally ``App.open("some-app-identifier")`` and ``App.focus("some-app-identifier")``
+return an app instance, that you might save in a variable to use it later on in
+your script.
+
+**Differences between Windows/Linux and Mac**
+
+Windows/Linux: Sikuli's strategy on these systems in the moment is to rely on
+implicit or explicit path specifications to find an application, that has to be
+started. Running "applications" can either be identified using their PID
+(process ID) or by using the window titles. So using a path specification will
+only switch to an open application, if the application internally handles the
+"more than one instance" situation".
+
+You usually will use ``App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe")``
+to start Firefox. This might open an additional window. And you can use
+``App.focus("Firefox")`` to switch to the frontmost Firefox window (which has no
+effect if no window is found). To clarify your situation you may use the new
+window() method, which allows to look for existing windows. The second possible
+approach is to store the App instance, that is returned by ``App.open()``, in a
+variable and use it later on with the instance methods (see examples below).
+
+If you specify the exact window title of an open window, you will get exactly
+this one. But if you specify some text, that is found in more than one open
+window title, you will get all these windows in return. So this is good e.g.
+with Firefox, where every window title contains "Mozilla Firefox", but it might
+be inconvenient when looking for "Untitled" which may be in use by different
+apps for new documents. So if you want exactly one specific window, you either
+need to know the exact window title or at least some part of the title text,
+that makes this window unique in the current context (e.g. save a document with
+a specific name, before accessing it's window).
+
+On Mac OS X, on the system level the information is available, which windows
+belong to which applications. Sikuli uses this information. So by default using
+e.g. ``App.focus("Safari")`` starts Safari if not open already and switches to the
+application Safari if it is open, without doing anything with it's windows (the
+z-order is not touched). Additionally, you can get all windows of an
+application, without knowing it's titles.
+
+Note on Windows: when specifying a path in a string, you have to use \\ (double
+backslash) for each \ (backslash)
+e.g. ``myPath = "c:\\Program Files\\Sikuli-IDE\\Lib\\"`` )
+
+.. _ClassAppMethods:
+
+.. py:class:: App
+
+ .. py:classmethod:: open(application)
+
+ *Usage:* ``App.open(application)``
+
+ Open the specified application.
+
+ :param application: The name of an application (case-insensitive), that can
+ be found in the path used by the system to locate applications, or the
+ full path to an application (Windows: use double backslash \\ in the
+ path string to represent a backslash)
+
+ **Note for Windows:** (since X-1.0rc3) The string may contain commandline parameters
+ for the specified program or batch file after the name or full path (see: :py:func:`openApp`)
+
+
+ :return: an App object, that can be used with the instance methods.
+
+ This method is functionally equivalent to :py:func:`openApp`. It opens the
+ specified application and brings its window the front. Whether this
+ operation switches to an already opened application or opens a new instance
+ of the application depends on the system and application.
+
+ .. py:method:: open()
+
+ *Usage:* ``someApp.open()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Open this application.
+
+
+ .. py:classmethod:: focus(application)
+
+ *Usage:* ``App.focus(application)``
+
+ Switch the focus to an application.
+
+ :param application: The name of an application (case-insensitive) or (part
+ of) a window title (Windows/Linux).
+
+ :return: an App object, that can be used with the instance methods.
+
+ .. py:method:: focus()
+
+ *Usage:* ``someApp.focus()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Switch the focus to this application.
+
+
+ .. py:classmethod:: close(application)
+
+ *Usage:* ``App.close(application)``
+
+ Close the specified application.
+
+ :param application: The name of an application (case-insensitive) or (part
+ of) a window title (Windows/Linux).
+
+ This method is functionally equivalent to :py:func:`closeApp`. It closes the
+ given application or the matching windows (Windows/Linux). It does nothing
+ if no opened window (Windows/Linux) or running application (Mac) can be
+ found. On Windows/Linux, whether the application itself is closed depends on
+ weather all open windows are closed or a main window of the application is
+ closed, that in turn closes all other opened windows.
+
+ .. py:method:: close()
+
+ *Usage:* ``someApp.close()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Close this application.
+
+ .. py:classmethod:: focusedWindow()
+
+ *Usage:* ``App.focusedWindow()``
+
+ Identify the currently focused or the frontmost window and switch to it.
+ Sikuli does not tell you, to which application this window belongs.
+
+ :return: a :py:class:`Region` object representing the window or *None* if
+ there is no such window.
+
+ On Mac, when starting a script, Sikuli hides its window and starts
+ processing the script. In this moment, no window has focus. Thus, it is
+ necessary to first click somewhere or use ``App.focus()`` to focus on a
+ window. In this case, this method may return *None*.
+
+ On Windows, this method always returns a region. When there is no window
+ opened on the desktop, the region may refer to a special window such as the
+ task bar or an icon in the system tray.
+
+ Example::
+
+ # highlight the currently fontmost window for 2 seconds
+ App.focusedWindow().highlight(2)
+
+ # save the windows region before
+ firstWindow = App.focusedWindow()
+ firstWindow.highlight(2)
+
+ .. py:method:: window([n])
+
+ *Usage 1:* ``App(application).window([n])`` an App instance is created on the fly.
+
+ *Usage 2:* ``someApp.window([n])`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Get the region corresponding to the n-th window of this application (Mac) or
+ a series of windows with the matching title (Windows/Linux).
+
+ :param n: 0 or a positive integer number. If ommitted, 0 is taken as
+ default.
+
+ :return: the region on the screen occupied by the window, if such window
+ exists and *None* if otherwise.
+
+ Below is an example that tries to open a Firefox browser window and switches
+ to the address field (Windows)::
+
+ # using an existing window if possible
+ myApp = App("Firefox")
+ if not myApp.window(): # no window(0) - Firefox not open
+ App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe")
+ wait(2)
+ myApp.focus()
+ wait(1)
+ type("l", KEY_CTRL) # switch to address field
+
+ Afterwards, it focuses on the Firefox application, uses the ``window()`` method to
+ obtain the region of the frontmost window, applies some operations
+ within the region, and finally closes the window::
+
+ # using a new window
+ firefox = App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe");
+ wait(2)
+ firefox.focus()
+ wait(1)
+ # now your just opened new window should be the frontmost
+ with firefox.window(): # see the general notes below
+ # some actions inside the window(0)'s region
+ click("somebutton.png")
+ firefox.close() # close the window - stop the process
+
+
+ Below is another example that highlights all the windows of an
+ application by looping through them (Mac)::
+
+ # not more than 100 windows should be open ;-)
+ myApp = App("Safari")
+ for n in range(100):
+ w = myApp.window(n)
+ if not w: break # no more windows
+ w.highlight(2) # window highlighted for 2 second
+
+
+ General notes:
+
+ * Be aware, that especially the window handling feature is experimental
+ and under further development.
+
+ * Especially on Windows be aware, that there might be many matching
+ windows and windows, that might not be visible at all. Currently the
+ ``window()`` function has no feature to identify a special window besides
+ returning the region. So you might need some additional checks to be
+ sure you are acting on the right window.
+
+ * Windows/Linux: The ``close()`` function currently kills the application,
+ without closing it's windows before. This is an abnormal termination and
+ might be recognized by your application at the next start (e.g. Firefox
+ usually tries to reload the pages).
+
+ * Even if the windows are hidden/minimized, their region that they have in
+ the visible state is returned. Currently there is no Sikuli feature, to
+ decide wether the given window(n) is visible or not or if it is
+ currently the frontmost window. The only guarentee: ``window()``/``window(0)``
+ is the topmost window of an application (Mac) or a series of matching
+ windows (Windows/Linux).
+
+ * Currently there are no methods available to act on such a window
+ (resize, bring to front, get the window title, ...).
+
+ Some tips:
+
+ * Check the position of a window's returned region: some apps hide there
+ windows by giving them "outside" coordinates (e.g. negative)
+
+ * Check the size of a window's returned region: normally your app windows
+ will occupy major parts of the screen, so a window's returned region of
+ e.g. 150x30 might be some invisible stuff or an overlay on the real app
+ window (e.g. the "search in history" input field on the Safari Top-Sites
+ page, which is reported as ``windows(0)``)
+
+ * If you have more than one application window, try to position them at
+ different coordinates, so you can decide which one you act on in the
+ moment.
+
+ * It is sometimes possible to use the OCR text extraction feature
+ :py:meth:`Region.text` to obtain the window title.
+
+
+
+Interacting with the User
+-------------------------
+
+.. versionadded:: X1.0-rc3
+.. py:function:: popup(text, [title])
+
+ Display a dialog box with an *OK* button and *text* as the message. The script
+ then waits for the user to click the *OK* button.
+
+ :param text: text to be displayed as message
+
+ :param title: optional title for the messagebox
+
+ Example::
+
+ popup("Hello World!\nHave fun with Sikuli!")
+
+ A dialog box that looks like below will popup (Note: `\n` can break a line).
+
+ .. image:: popup.png
+
+.. py:function:: input([text], [default])
+
+ Display a dialog box with an input field, a Cancel button, and an OK button. The
+ optional *text* can be displayed as a caption. The script then waits for the
+ user to click either the Cancel or the OK button.
+
+ :param text: optional text to be displayed as message
+
+ :param default: optional preset text for the input field (``new in later then X-1.0rc3``)
+
+ :return: the text, contained in the input field, when the user clicked **OK**
+
+ **None**, if the user pressed the **Cancel** button
+
+ Example::
+
+ name = input("Please enter your name to log in:")
+
+ name = input("Please enter your name to log in:", "anonymous") # a preset input text
+
+ .. image:: input.png
+
+ A dialog box that looks like above will appear to allow the user to
+ interactively enter some text. This text is then assigned to the variable
+ *name*, which can be used in other parts of the script, such as ``paste(name)``
+ to paste the text to a login box.
+
+ When using the parameter ``default``, the text input field will be pre-populated with the
+ given text, so the user might just click OK/Cancel or edit the content of the input field.
+
+
+Listening to Global Hotkeys
+---------------------------
+
+Sikuli can listen to global hotkeys that you register with ``Env.addHotkey``
+and call the corresponding handler (sikuli functions) when the user presses
+the hotkeys.
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Env.addHotkey(key, modifiers, handler)
+
+ Register the specified *key* + *modifiers* as a global hotkey.
+ When the hotkey is pressed, the specified function *handler* will be called.
+
+ :param key: a character or a constant value defined in :py:class:`Key`.
+
+ :param modifiers: Key modifiers, which can be one or multiple constants defined in :py:class:`KeyModifier`.
+
+ :return: True if success.
+
+ .. sikulicode::
+
+ def openAppleMenu(event):
+ click("apple.png")
+
+ # When the user pressed Ctrl+Alt+F1, click the top-left apple icon.
+ Env.addHotkey(Key.F1, KeyModifier.ALT+KeyModifier.CTRL, openAppleMenu)
+
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Env.removeHotkey(key, modifiers)
+
+ Unregister the registered global hotkey *key* + *modifiers*.
+
+ :param key: a character or a constant value defined in :py:class:`Key`.
+
+ :param modifiers: Key modifiers, which can be one or multiple constants defined in :py:class:`KeyModifier`.
+
+ :return: True if success.
+
+
+
+General Settings and Access to Environment Information
+------------------------------------------------------
+
+
+**Sikuli Level**
+
+Sikuli internally uses the class :py:class:`Settings` to store globally used
+settings. Publicly available attributes may be accessed by using
+``Settings.[name-of-an-attribute]`` to get it's value and ``Settings.attribute = value``
+to set it. It is highly recommended to only modify attributes, that are described in
+this document or when you really know, what you are doing.
+
+Actually all attributes of some value for scripting are described in the
+topic :ref:`Controlling Sikuli Scripts and their Behavior <ControllingSikuliScriptsandtheirBehavior>`.
+
+**Jython/Python Level**
+
+You may use all settings, that are defined in standard Python/Jython and that are
+available in your system environment. The modules sys and time are already imported,
+so you can use their methods without the need for an import statement.
+
+``sys.path`` may be one of the most valuable settings, since it is used by
+Python/Jython to locate modules, that are referenced using ``import module``. It is
+a list of path's, that is e.g. maintained by Sikuli to implement :ref:`Importing
+other Sikuli Scripts <ImportingSikuliScripts>` as a standard
+compliant feature.
+
+If you want to use ``sys.path``, it is recommended to do it as shown in the following
+example, to avoid appending the same entry again::
+
+ myPath = "some-absolute-path"
+ if not myPath in sys.path:
+ sys.path.append(myPath)
+
+**Java Level**
+
+Java maintains a global storage for settings (key/value pairs), that can be accessed
+by the program/script. Sikuli uses it too for some of it's settings. Normally it is
+not necessary to access these settings at the Java level from a Sikuli script, since
+Sikuli provides getter and setter methods for accessing values, that make sense for
+scripting. One example is the list of paths, that Sikuli maintains to specify
+additional places to search for images (please refer to :ref:`Importing
+other Sikuli Scripts <ImportingSikuliScripts>` for more information).
+
+If needed, you may access the java settings storage as shown in the following
+example::
+
+ import java
+
+ # get a value
+ val = java.lang.System.getProperty("key-of-property")
+
+ # set a property's value
+ java.lang.System.getProperty("key-of-property", value)
+
+.. index::
+ pair: Image Search Path; SIKULI_IMAGE_PATH
+
+.. _ImageSearchPath:
+
+**Image Search Path**
+
+Sikuli maintains a list of locations to search for images when they are not found in
+the current .sikuli folder (a.k.a. bundle path). This list is maintained internally
+but can be inspected and/or modified using the following functions:
+
+.. py:function:: getImagePath()
+
+ Get a list of paths where Sikuli will search for images. ::
+
+ # getImagePath() returns a Java array of unicode strings
+ imgPath = list(getImagePath()) # makes it a Python list
+ # to loop through
+ for p in imgPath:
+ print p
+
+.. py:function:: addImagePath(a-new-path)
+
+ Add a new path to the list of image search paths
+
+.. py:function:: removeImagePath(a-path-already-in-the-list)
+
+ Remove a path from the list of image search paths
+
+*Note*: paths must be specified using the correct path separators (slash on Mac
+and Unix and double blackslashes on Windows).
+
+This list is automatically extended by Sikuli with script folders, that are imported
+(see: :ref:`Importing other Sikuli Scripts <ImportingSikuliScripts>`),
+so their contained images can be accessed. If you want to
+be sure of the results of your manipulations, you can use ``getImagePath`` and check
+the content of the returned list. When searching images, the path's are scanned in
+the order of the list. The first image file with a matching image name is used.
+
+*Note*: Behind the scenes this list is maintained in the java property store with the
+key SIKULI_IMAGE_PATH. This can be preset when starting the JVM using the
+environment variable SIKULI_IMAGE_PATH and can be accessed at runtime using the
+approach as mentioned under Accessing Settings - Java level. Be aware, that this is
+one string, where the different entries are separated with a colon ( : ).
+
+.. index:: Bundle Path
+
+**The default bundle path** can also be accessed and modified by the two functions
+below:
+
+.. py:function:: setBundlePath(path-to-a-folder)
+
+ Set the path for searching images in all Sikuli Script methods. Sikuli IDE sets
+ this automatically to the path of the folder where it saves the script
+ (.sikuli). Therefore, you should use this function only if you really know what
+ you are doing. Using it generally means that you would like to take care of your
+ captured images by yourself.
+
+ Additionally images are searched for in the :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>`, that is a global
+ list of other places to look for images. It is implicitly extended by script
+ folders, that are imported (see: :ref:`Reuse of Code and Images <ImportingSikuliScripts>`).
+
+.. py:function:: getBundlePath()
+
+ Get a string containing a fully qualified path to a folder containing your images
+ used for finding patterns. Note: Sikuli IDE sets this automatically to the path
+ of the folder where it saves the script (.sikuli). You may use this function if,
+ for example, to package your private files together with the script or to access
+ the picture files in the .sikuli bundles for other purposes. Sikuli only gives
+ you to access to the path name, so you may need other python modules for I/O or
+ other purposes.
+
+ Other places, where Sikuli looks for images, might be in the :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>`.
+
+**Other Environment Information**
+
+.. py:method:: Env.getOS()
+ Env.getOSVersion()
+
+ Get the type ( ``getOS()`` ) and version ( ``getOSVersion()`` ) of the operating system your
+ script is running on.
+
+ An example using these methods on a Mac is shown below::
+
+ # on a Mac
+ myOS = Env.getOS()
+ myVer = Env.getOSVersion()
+
+ if myOS == OS.MAC:
+ print "Mac " + myVer # e.g., Mac 10.6.3
+ else:
+ print "Sorry, not a Mac"
+
+ myOS = str(Env.getOS())
+ if myOS == "MAC" or myOS.startswith("M"):
+ print "Mac " + myVer # e.g., Mac 10.6.3
+ else:
+ print "Sorry, not a Mac"
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.getSikuliVersion()
+
+ Get the version of Sikuli.
+
+ :return: a string containing the version text of the IDE window title without "Sikuli "
+
+ An example for Sikuli X-1.0rc2::
+
+ if not Env.getSikuliVersion() == "X-1.0rc2":
+ print "This script needs Sikuli X-1.0rc2"
+ exit(1)
+
+.. py:method:: Env.getClipboard()
+
+ Get the content of the clipboard if it is text, otherwise an empty string.
+
+ *Note*: Be careful, when using ``Env.getClipboard()`` together with ``paste()``,
+ since paste internally uses the clipboard to transfer text to other
+ applications, the clipboard will contain what you just pasted. Therefore, if you
+ need the content of the clipboard, you should call ``Env.getClipboard()`` before
+ using ``paste()``.
+
+ *Tip*: When the clipboard content was copied from a web page that mixes images and
+ text, you should be aware, that there may be whitespace characters around and
+ inside your text, that you did not expect. In this case, you can use
+ ``Env.getClipboard().strip()`` to get rid of surrounding white spaces.
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.isLockOn(key-constant)
+
+ Get the current status ( on / off ) off the respective key. Only one key can be specified.
+
+ :parameter key-constant: one of the key constants ``Key.CAPS_LOCK``, ``Key.NUM_LOCK``, ``Key.SCROLL_LOCK``
+ :return: True if the specified key is on, False otherwise
+
+ Further information about key constants can be found in Class :py:class:`Key`.
+
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.getMouseLocation()
+
+ Get the current location of the mouse cursor.
+
+ :return: a :py:class:`Location` object of the position of the mouse cursor on the screen.
+
+
+
+Advanced Settings for Speed and Robustness
+------------------------------------------
+
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Vision.setParameter(param, value)
+
+ Set the parameter *param* of the vision algorithm to *value*.
+
+ :parameter param: a string that indicates the parameter to set.
+ :parameter value: a float value.
+
+
+.. py:method:: Vision.getParameter(param)
+
+ Get the parameter *param* of the vision algorithm.
+
+ :parameter param: a string that indicates the parameter to get.
+ :return: the float value of the specified parameter.
+
+
+
+The available parameters for tuning the vision algorithm of Sikuli is listed as
+follows.
+
+.. _min-target-size:
+
+.. versionadded:: X1.0-rc3
+
+MinTargetSize
+^^^^^^^^^^^^^
+
+``MinTargetSize`` is the minimum image size to which Sikuli can resize.
+
+Sikuli resizes the screen images to a smaller scale for faster matching. This scaling process speeds up the matching process, but also increases the possibility
+of false matching.
+The default value of ``MinTargetSize`` in X-1.0rc3 is 12, which makes the matching algorithm be balanced between speed and robustness.
+If you feel that Sikuli is running too slow,
+try a smaller value than 12. On the other hand, if you see Sikuli returns a match that is not what you expect, i.e. a false match,
+try to increase ``MinTargetSize`` to make Sikuli be more robust to small details.
+
+You can tune this parameter using the following Jython code.
+
+.. sikulicode::
+
+ from org.sikuli.script.natives import Vision
+
+ Vision.setParameter("MinTargetSize", 6) # the default is 12. Setting the size to a smaller value would make the matching algorithm be faster.
+
+
diff --git a/Docs/Python/build/html/_sources/index.txt b/Docs/Python/build/html/_sources/index.txt
new file mode 100644
index 0000000..861d704
--- /dev/null
+++ b/Docs/Python/build/html/_sources/index.txt
@@ -0,0 +1,109 @@
+Sikuli Documentation for version 1.1+ (01/2014 and later)
+=========================================================
+
+.. sidebar:: Getting Help
+
+ Looking for specific information?
+
+ * Try the :doc:`Table of Contents <toc>`
+ * Look through the :ref:`genindex`
+ * Use the :ref:`search`
+
+ See `other people's questions <https://answers.launchpad.net/sikuli>`_
+ or `ask a question <https://answers.launchpad.net/sikuli/+addquestion>`_ yourself.
+
+ If you think you've found bugs, search or report bugs in
+ our `bug tracker <https://bugs.launchpad.net/sikuli>`_.
+
+This document is being maintained by `Raimund Hocke aka RaiMan
+<https://launchpad.net/~raimund-hocke>`_.
+
+If you have any questions or ideas about this document,
+you are welcome to contact him directly via this link and the email behind.
+
+For questions regarding the
+functions and features of Sikuli itself please use the `Sikuli Questions and
+Answers Board <https://answers.launchpad.net/sikuli>`_.
+
+For hints and links of
+how to get more information and help, please see the sidebar.
+
+**Documentation for previous versions**
+
+The documentation for the versions up to SikuliX-1.0rc3 is still available `here <http://doc.sikuli.org>`_.
+
+How to use this document
+------------------------
+
+Sikuli at the top supports Jython (Python for the Java platform currently at language level 2.5 and later 2.7) as the first scripting language.
+If you are new to
+programming, you can still enjoy using Sikuli to automate simple repetitive
+tasks without learning Python using the Sikuli IDE. A good start might be to have a look at the :doc:`tutorials <tutorials/index>`.
+
+If you plan to write more powerful and
+complex scripts, which might even be structured in classes and modules, you have to dive into the `Python Language
+<http://www.jython.org/jythonbook/en/1.0/>`_.
+
+The features in Sikuli finally are implemented using Java. So you might as well use Sikuli on this Java level API in your Java projects or other Java aware environments. Though this documentation is targeted at the scripting people it contains basic information about the Java level API as well at places, where there are major differences between the two API levels.
+
+The preface of each chapter in this documentaton briefly describes
+a class or a group of methods regarding its basic features. It
+provides general usage information and hints that apply to all methods in
+that chapter. We recommend to read carefully before using the related features.
+
+**If you are totally new with Sikuli**, it might be a good idea to just read
+through this documentation sequentially. An alternative way might be to jump to the
+chapters that you are interested in by scanning the :doc:`table of contents <toc>`.
+A way in the middle would be reading the core classes:
+:py:class:`Region`, then :py:class:`Match`, and finally :py:class:`Screen`.
+
+After that, you can go to any
+places of interest using the :doc:`table of contents<toc>` or
+use the :ref:`genindex` to browse all classes,
+methods and functions in alphabetical order.
+
+Getting Started
+---------------
+
+Tutorials
+^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 2
+
+ tutorials/index
+
+FAQ
+^^^
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ faq/*
+
+* `Read more FAQs on Launchpad <https://answers.launchpad.net/sikuli/+faqs>`_
+
+Complete Guide
+--------------
+.. toctree::
+ :maxdepth: 3
+
+ sikuli-script-index
+
+Extensions
+----------
+.. toctree::
+ :maxdepth: 2
+
+ extensions/index
+
+For Developers
+--------------
+
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ devs/*
+ contributing
+ changes
diff --git a/Docs/Python/build/html/_sources/keys.txt b/Docs/Python/build/html/_sources/keys.txt
new file mode 100644
index 0000000..876de69
--- /dev/null
+++ b/Docs/Python/build/html/_sources/keys.txt
@@ -0,0 +1,120 @@
+Key Constants
+=============
+
+.. py:class:: Key
+
+Applicable usage situations for these predefined constants of special keys and key
+modifiers can be found in :ref:`Acting on a Region <ActingonaRegion>` and :ref:`Low
+Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+
+Special Keys
+------------
+
+The methods supporting the use of special keys are :py:meth:`type() <Region.type>`,
+:py:meth:`keyDown() <Region.keyDown>`, and :py:meth:`keyUp() <Region.keyUp>`.
+
+Usage: `Key.CONSTANT` (where CONSTANT is one of the following key names).
+
+String concatenation with with other text or other key constants is possible using "+". ::
+
+ type("some text" + Key.TAB + "more text" + Key.TAB + Key.ENTER)
+ # or eqivalent
+ type("some text\tmore text\n")
+
+**miscellanous keys** ::
+
+ ENTER, TAB, ESC, BACKSPACE, DELETE, INSERT
+
+.. versionadded:: X1.0-rc3
+
+**miscellanous keys** ::
+
+ SPACE
+
+**function keys** ::
+
+ F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15
+
+**navigation keys** ::
+
+ HOME, END, LEFT, RIGHT, DOWN, UP, PAGE_DOWN, PAGE_UP
+
+**special keys** ::
+
+ PRINTSCREEN, PAUSE, CAPS_LOCK, SCROLL_LOCK, NUM_LOCK
+
+.. versionadded:: X1.0-rc2
+
+**Note:** The status ( on / off ) of the keys ``Key.CAPS_LOCK``, ``Key.NUM_LOCK`` and ``Key.SCROLL_LOCK`` can
+be evaluated with the method :py:meth:`Env.isLockOn() <Env.isLockOn>`.
+
+**numpad keys** ::
+
+ NUM0, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9
+ SEPARATOR, ADD, MINUS, MULTIPLY, DIVIDE
+
+**modifier keys** ::
+
+ ALT, CMD, CTRL, META, SHIFT, WIN
+
+These modifier keys **cannot** be used as a key modifier with functions
+like :py:meth:`type() <Region.type>`, :py:meth:`rightClick() <Region.rightClick>`, etc.
+They can **only** be used with :py:meth:`keyDown() <Region.keyDown>` and :py:meth:`keyUp() <Region.keyUp>`.
+If you need key modifiers, use :py:class:`KeyModifier` instead.
+
+Key Modifiers
+-------------
+
+Methods where key modifiers can be used include: :py:meth:`click() <Region.click>`,
+:py:meth:`dragDrop() <Region.dragDrop>` , :py:meth:`doubleClick()
+<Region.doubleClick>` , :py:meth:`rightClick() <Region.rightClick>`,
+:py:meth:`type() <Region.type>`.
+
+.. deprecated:: X1.0-rc3
+
+**the oldies but goldies** ::
+
+ KEY_ALT, KEY_CTRL, KEY_SHIFT
+
+**system specific Win/Mac** ::
+
+ KEY_WIN, KEY_CMD
+ KEY_META (a synonym for KEY_WIN or KEY_CMD on Windows and Mac respectively).
+
+The old modifiers with a *KEY_* prefix are deprecated. Use ``KeyModifier.CTRL``, ``KeyModifier.ALT``, ``KeyModifier.SHIFT``, ``KeyModifier.META`` instead.
+
+
+.. versionadded:: X1.0-rc3
+.. py:class:: KeyModifier
+
+Usage: `KeyModifier.CONSTANT` (where CONSTANT is one of the following key names).
+
+ .. py:data:: CTRL
+ equivalent to the old KEY_CTRL
+ .. py:data:: SHIFT
+ equivalent to the old KEY_SHIFT
+ .. py:data:: ALT
+ equivalent to the old KEY_ALT
+ .. py:data:: META
+ equivalent to the old KEY_META
+ .. py:data:: CMD
+ equivalent to the old KEY_CMD (and KEY_META)
+ .. py:data:: WIN
+ equivalent to the old KEY_WIN (and KEY_META)
+
+
+The modifier constants can be combined to the modifier parameter by either using "+" or "|", if more than one key modifier is needed. ::
+
+ type(Key.ESC, KeyModifier.CTRL + KeyModifier.ALT)
+ # or equivalent
+ type(Key.ESC, KeyModifier.CTRL | KeyModifier.ALT)
+
+They should **only** be used in the
+modifiers parameter with functions like :py:meth:`type() <Region.type>`, :py:meth:`rightClick() <Region.rightClick>`, etc.
+
+They should **never** be used with :py:meth:`keyDown() <Region.keyDown>` or :py:meth:`keyUp() <Region.keyUp>`.
+
+*Note for Java programming*: These constants are mapped to the according constants of the Java environment
+in the class ``java.awt.event.InputEvent``.
+
diff --git a/Docs/Python/build/html/_sources/location.txt b/Docs/Python/build/html/_sources/location.txt
new file mode 100644
index 0000000..4c74329
--- /dev/null
+++ b/Docs/Python/build/html/_sources/location.txt
@@ -0,0 +1,61 @@
+Location
+========
+
+This class is there as a convenience, to handle single points on the screen directly
+by its position (x, y). It is mainly used in the actions on a region, to directly
+denote the click point. It contains methods, to *move* a point around on the screen.
+
+.. py:class:: Location
+
+ .. py:method:: Location(x,y)
+
+ :param x: x position
+ :param y: y position
+
+ :return: a new location object representing the position (x,y) on the screen
+
+
+ .. py:method:: getX()
+ getY()
+
+ Get the x or y value of a location object
+
+ It is possible to get the values directly by ``location.x`` or ``location.y``.
+ It is also possible to set these values directly by ``location.x = value``
+ or ``location.y = value``.
+
+ **Note:** ``getX()``and ``getY()`` currently (versions 0.10.2 and X 1.0rc2) return float
+ values (Java: double), whereas ``location.x`` and ``location.y`` return integer values.
+
+ .. py:method:: setLocation(x, y)
+
+ Set the location of this object to the specified coordinates.
+
+ .. py:method:: offset(dx, dy)
+
+ Get a new location which is *dx* and *dy* pixels away horizontally and
+ vertically from the current location.
+
+ .. py:method:: above(dy)
+
+ Get a new location which is *dy* pixels vertically above the current
+ location.
+
+ .. py:method:: below(dy)
+
+ Get a new location which is *dy* pixels vertically below the current
+ location.
+
+ .. py:method:: left(dx)
+
+ Get a new location which is *dx* pixels horizontally to the left of the
+ current location.
+
+ .. py:method:: right(dx)
+
+ Get a new location which is *dx* pixels horizontally to the right of the
+ current location.
+
+
+
+
diff --git a/Docs/Python/build/html/_sources/match.txt b/Docs/Python/build/html/_sources/match.txt
new file mode 100644
index 0000000..d51ba12
--- /dev/null
+++ b/Docs/Python/build/html/_sources/match.txt
@@ -0,0 +1,96 @@
+Match
+=====
+
+.. py:class:: Match
+
+An object of class Match represents the result of a successful find operation. It
+has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found.
+
+Since class Match extends class Region, all methods of
+class :py:class:`Region` can be used with a match object.
+
+Creating a Match, Getting Attributes
+------------------------------------
+
+A match object is created as the result of an explicit :ref:`find operation
+<FindinginsideaRegionandWaitingforaVisualEvent>`. It can be
+saved in a variable for later use with actions like :py:meth:`click() <Region.click>`.
+
+It has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found. It knows
+the similarity it was found with and a click point to be used, if set by a pattern.
+
+.. sikulicode::
+
+ # m is a reference to a match object, if found
+ m = find("apple.png")
+ print m # message area: Match[10,0 30x22] score=1.00, target=center
+
+ # m is a reference to a match object, if found
+ m = find(Pattern("apple.png").similar(0.5).targetOffset(100,0))
+ print m # message area: Match[10,0 30x22] score=1.00, target=(105,11)
+
+For all other aspects, the features and attributes of class :py:class:`Region`
+apply.
+
+.. py:class:: Match
+
+ .. py:method:: getScore()
+
+ Get the similarity score the image or pattern was found. The value is
+ between 0 and 1.
+
+ .. py:method:: getTarget()
+
+ Get the :py:class:`location` object that will be used as the click point.
+
+ Typically, when no offset was specified by :py:meth:`Pattern.targetOffset`,
+ the click point is the center of the matched region. If an offset was given,
+ the click point is the offset relative to the center.
+
+.. _IteratingMatches:
+
+Iterating over Matches after findAll()
+--------------------------------------
+
+A find operation :py:meth:`Region.findAll` returns an iterator object that can be
+used to fetch all found matches as match objects one by one. A reference to the
+iterator is stored in the respective
+region and can be accessed using :py:meth:`Region.getLastMatches`.
+
+Important to know:
+
+* per definition, an iterator can be stepped through only once - it is empty
+ afterwards
+
+You can read more about the basics of operations with iterators from the description of
+:py:class:`Finder` class. To save contained matches for later use, you can convert them
+to list.
+
+.. sikulicode::
+
+ findAll("star.png") # find all matches
+ mm = list(getLastMatches())
+
+Example: using ``while:`` with default screen
+
+.. sikulicode::
+
+ findAll("star.png") # find all matches
+ mm = SCREEN.getLastMatches()
+ while mm.hasNext(): # loop as long there is a first and more matches
+ print "found: ", mm.next() # access the next match in the row
+
+ print mm.hasNext() # is False, because mm is empty now
+ print mm.next() # is None, because mm is empty now
+ print SCREEN.getLastMatches().hasNext() # is False also ;-)
+
+Example: using ``with:`` with default screen
+
+.. sikulicode::
+
+ with findAll("star.png") as mm:
+ while mm.hasNext(): # loop as long there is a first and more matches
+ print "found: ", mm.next() # access the next match
+ # mm will be None afterwards (destroyed automatically)
\ No newline at end of file
diff --git a/Docs/Python/build/html/_sources/new-in-sikulix.txt b/Docs/Python/build/html/_sources/new-in-sikulix.txt
new file mode 100644
index 0000000..13cbe41
--- /dev/null
+++ b/Docs/Python/build/html/_sources/new-in-sikulix.txt
@@ -0,0 +1,97 @@
+What is new in Sikuli X
+=======================
+
+Sikuli X is a new experimental branch of Sikuli. (X stands for eXperimental.)
+For all current users of Sikuli 0.9 or 0.10 we recommend to upgrade to X.
+
+However, please keep in mind some new features are still experimental, e.g. text
+recognition and the new API to get the bound of any windows, which means they may
+not work well or not support all platforms yet.
+
+.. versionadded:: X1.0-rc2
+
+Features marked with RC2 in the following list are only available beginning with Sikuli X-1.0rc2.
+In the documentation sections you might look for the above marker to identify new features.
+
+* RC2: the IDE outfit is revised. Find and Undo/Redo is added. Console messages are colored now. The font is now monospaced and smaller.
+
+* RC2: The message concept is completely revised. Verbosity can be adjusted now
+ (see :py:attr:`Sikuli Messages <Settings.ActionLogs>`).
+
+* RC2: Extensions (jar-files containing complementary Sikuli features) can be downloaded from a repository managed by the Sikuli developers. As the first extension **Sikuli Guide** (an annotation tool - Windows and Mac only) is available. You may contribute your own extensions.
+ (see: :ref:`Extensions <sikuliextensions>`).
+
+* RC2: sikuli-script.jar together with the native libraries can now be used really standalone (only a few standards have to be followed), so it is easier now to integrate Sikuli with other IDE's, frameworks or applications and :ref:`run scripts from commandline <runsikuliscript>`.
+
+* RC2: sikuli-script.jar on commandline now accepts a :ref:`new option -i <sikuliscriptinteractive>`, that starts up the interactive Jython with the Sikuli environment already initialized (for tests on the fly from commandline without the IDE).
+
+* RC2: :py:meth:`Env.getSikuliVersion` returns the Sikuli version string.
+
+* New computer vision engine - faster and more reliable
+
+* Better capture mode on Mac (supports multi-screens, no flicker anymore)
+
+* Text recognition and matching
+
+ * ``find("OK")`` returns all regions with a "OK" label
+ (see :ref:`Finding a Pattern (Image or Text) <FindinginsideaRegionandWaitingforaVisualEvent>`)
+
+ * new :py:meth:`Region.text` returns the text in the region
+
+ *
+
+* Screenshot Naming in the IDE:
+
+ * screenshots can be automatically named
+
+ * with timestamps
+
+ * with part of the text found in them
+
+ * manually at time of capture
+
+ * and renamed every time using the preview pane
+
+ *
+
+* Remote Images are supported
+ e.g. ``click("http://sikuli.org/example/ok_button.png")``
+
+* There is an Image Search Path - images can be stored wherever you like, even in the web
+ (see :ref:`Image Search Path <ImageSearchPath>`)
+
+* Scripts can be imported from .sikuli sources as a module (Python style).
+ RC2: jar-files containing java classes and/or Python modules can be loaded at runtime.
+ (see :ref:`Importing Sikuli Scripts <ImportingSikuliScripts>`)
+
+* New App Class replaces the old openApp, switchApp, closeApp functions
+ (see Class :py:class:`App`)
+
+ * :py:meth:`App.open`, :py:meth:`App.close`, :py:meth:`App.focus`
+
+ * :py:meth:`App.window` returns the bound of the app window as a Region, so
+ you can restrict following actions within that region. (Windows and Mac only)
+
+ *
+
+* Beautified Run in Slow Motion mode together with some additional options available now through class :py:class:`Settings`
+ (see :ref:`Controlling Sikuli Scripts <ControllingSikuliScriptsandtheirBehavior>`).
+
+* Smooth mouse movement
+ (see :ref:`Controlling Sikuli Scripts <ControllingSikuliScriptsandtheirBehavior>`)
+
+* More Special Keys are supported (PrintScreen, NumPad, CapsLock...) (see Class :py:class:`Key`)
+ RC2: The status of NumLock, CapsLock and ScrollLock can be requested
+ (see :py:meth:`Env.isLockOn`).
+
+* New Region Highlighting: :py:meth:`Region.highlight` (Windows and Mac only)
+
+* RC2: Additional helper methods to relocate or change region objects and to get their corners (e.g. :py:meth:`reg.moveTo() <Region.moveTo>` or :py:meth:`reg.getTopLeft() <Region.getTopLeft>`). Other new API's like :py:meth:`reg.getRegionFromPSRM() <Region.getRegionPSRM>` might be helpful when developing complex scripts and packages like :ref:`Extensions <sikuliextensions>`.
+
+* RC2: The :ref:`observer feature <ObservingVisualEventsinaRegion>` is completely revised. A class :py:class:`SikuliEvent` is added, containing environmental information about the observed event.
+
+* RC2: A new FindFailed handling option is added, that might come up with a prompt at runtime
+ (see :ref:`ExceptionFindFailed`)
+
+* Mouse Wheel supported: :py:meth:`wheel(target, WHEEL_UP | WHEEL_DOWN, steps)
+ <Region.wheel>` for scrolling the mouse wheel
diff --git a/Docs/Python/build/html/_sources/pattern.txt b/Docs/Python/build/html/_sources/pattern.txt
new file mode 100644
index 0000000..c66d522
--- /dev/null
+++ b/Docs/Python/build/html/_sources/pattern.txt
@@ -0,0 +1,78 @@
+Pattern
+=======
+
+.. py:class:: Pattern
+
+A pattern is used, to associate an image file with additional attributes used in find
+operations and when acting on a match object.
+
+**Minimum Similarity:**
+
+While using a :py:meth:`Region.find` operation,
+if only an image file is provided, Sikuli searches
+the region using a default minimum similarity of 0.7.
+This default value can be changed in :py:attr:`Settings.MinSimilarity`.
+
+Using :py:meth:`similar() <Pattern.similar>` you can associate a specific similarity
+value, that will be used as the minimum value, when this pattern object is searched.
+The IDE supports adjusting the minimum similarity of captured images using the Preview Pane
+(internally in the script, the images are turned into a pattern object automatically).
+
+**Click Point:**
+
+Normally when clicking on a match, the center pixel of the associated
+rectangle is used. With a pattern object, you can define a different click point
+relative to the center using :py:meth:`targetOffset() <Pattern.targetOffset>`.
+
+.. py:class:: Pattern
+
+ .. py:method:: Pattern(string)
+
+ :param string: a path to an image file
+ :return: a new pattern object
+
+ This will initialize a new pattern object without any additional attributes.
+ As long as no pattern methods are used additionally, it is the same as just
+ using the image file name itself in the find operation.
+
+ .. py:method:: similar(similarity)
+
+ Return a new Pattern object containing the same attributes (image, click
+ point) with the minimum similarity set to the specified value.
+
+ :param similarity: the minimum similarity to use in a find operation. The
+ value should be between 0 and 1.
+ :return: a new pattern object
+
+ .. py:method:: exact()
+
+ Return a new Pattern object containing the same attributes (image, click
+ point) with the minimum similarity set to 1.0, which means exact match is
+ required.
+
+ :return: a new pattern object
+
+ .. py:method:: targetOffset(dx, dy)
+
+ Return a new Pattern object containing the same attributes (image,
+ similarity), but a different definition for the click. By
+ default, the click point is the center of the found match. By setting the
+ target offset, it is possible to specify a click point other than the
+ center. *dx* and *dy* will be used to calculate the position relative to the
+ center.
+
+ :param dx: x offset from the center
+ :param dy: y offset from the center
+ :return: a new pattern object
+
+ .. py:method:: getFilename()
+
+ Get the filename of the image contained in the Pattern object.
+
+ :return: a filename as a string
+
+ .. py:method:: getTargetOffset()
+
+ Get the target offset of the Pattern object.
+
+ :return: a :py:class:`Location` object as the target offset
diff --git a/Docs/Python/build/html/_sources/region.txt b/Docs/Python/build/html/_sources/region.txt
new file mode 100644
index 0000000..3f341f7
--- /dev/null
+++ b/Docs/Python/build/html/_sources/region.txt
@@ -0,0 +1,1417 @@
+Region
+======
+
+.. py:class:: Region
+
+Region is a rectangular area on a screen, which is defined by
+ 1. its upper left corner (x, y) as a distance relative to the
+ upper left corner of the screen (0, 0) and
+ 2. its dimension (w, h) as its width and height.
+
+x, y, w, h are integer numbers counting a distance in pixels.
+
+A region knows nothing about its visual content (windows, pictures, graphics,
+text, ...). It only knows :ref:`the position on the screen and its dimension
+<CreatingaRegionSettingandGettingAttributes>`.
+
+New regions can be created, based on an existing region: you can :ref:`extend a
+region in all directions or get the adjacent rectangle <ExtendingaRegion>` up
+to the bounds of the screen horizontally or vertically.
+
+The visual content of a region is evaluated by using methods like
+:py:meth:`Region.find`, which looks for a given rectangular pixel pattern
+(defined by a :py:class:`Pattern` object) within the region. The matching
+content in the region has a similarity between 0 (not found) and 1 (found and
+it is per pixel exactly matches to the pattern). The find can be advised, to
+search with a minimum similarity, so that some minor variations in shape and
+color can be ignored. If nothing else is specified, Sikuli searches with a
+minimum similarity of 0.7, which does what is expected in general cases.
+(This default value can be changed in :py:attr:`Settings.MinSimilarity`.)
+
+:ref:`Find operations <FindinginsideaRegionandWaitingforaVisualEvent>` return a
+:py:class:`Match` object, which has all the attributes and methods of a region
+and can be used in exactly the same way (e.g. to find or click another
+target within it). A :py:class:`Match` has the dimension of the pattern used
+for searching and also knows the position where it was found and its similarity
+score. A region preserves the best match of the last successful find operation
+and all matches of the last successful :py:meth:`Region.findAll` (accessible
+with :py:meth:`Region.getLastMatches`. You can wait for patterns to show up
+using :py:meth:`Region.wait`, to vanish using :py:meth:`Region.waitVanish` or
+just check whether a pattern :py:meth:`exists <Region.exists>` without the need to handle
+:ref:`exceptions <ExceptionFindFailed>`.
+
+Sikuli supports visual event driven programming. You can tell a region
+:ref:`to observe that something appears, vanishes or changes <ObservingVisualEventsinaRegion>`.
+It is possible to wait for the completion of an
+observation or let it run in the background while your following script
+continues running.
+When one of the visual events happens, a handler in your script is called. Each
+region has one observer and each observer can handle multiple visual events.
+It's your responsibility to stop an observation.
+
+.. _CreatingaRegionSettingandGettingAttributes:
+
+Creating a Region, Setting and Getting Attributes
+-------------------------------------------------
+
+In this chapter, you can find information on how to create a new region object.
+The attributes of a region object can be accessed directly or via
+method calls, e.g. to change their position and/or dimension. Here you will find the HowTo's.
+
+.. py:class:: Region
+
+ .. py:method:: Region(x,y,w,h)
+ Region(region)
+ Region(Rectangle)
+
+ Create a region object
+
+ :param x: x position of a rectangle.
+ :param y: y position of a rectangle.
+ :param w: height of a rectangle.
+ :param h: width of a rectangle.
+ :param region: an existing region object.
+ :param rectangle: an existing object of Java class Rectangle
+ :return: a new region object.
+
+ In addition to creating a region by using the tool provided
+ by the IDE, a region can be created by specifying a rectangle. This is how
+ the visual representation in the IDE of such a region is internally set up in
+ the script. A region can also be created by users in run-time using
+ :py:meth:`Region.selectRegion`.
+
+ You can create a region based on another region. This just
+ duplicates the region (new object). This can be useful, if
+ you need the same region with different attributes, such as another
+ :ref:`observation loop <ObservingVisualEventsinaRegion>`
+ or use :py:meth:`Region.setThrowException` to control
+ whether throwing an exception when finding fails. Another way to create a
+ region is to specify a rectangle object or to
+ :ref:`extend an existing region <ExtendingaRegion>`.
+
+ *Note:* The position and dimension attributes are named x, y
+ (values representing the top left corner) and w, h (width and height).
+ You might use these or the get/set methods.
+ ::
+
+ topLeft = Location(reg.x, reg.y) # equivalent to
+ topLeft = reg.getTopLeft()
+
+ theWidth = reg.w # equivalent to
+ theWidth = reg.getW()
+
+ reg.h = theWidth # equivalent to
+ reg.setH(theWidth)
+
+ **Note:** Additionally you might use :py:meth:`selectRegion() <Screen.selectRegion>` to interactively create a new region.
+
+ .. py:method:: setX(number)
+ setY(number)
+ setW(number)
+ setH(number)
+
+ Set the respective attribute of the region to the new value. This
+ effectively moves the region around and/or changes its dimension.
+
+ :param number: the new value
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: moveTo(location)
+
+ Set the position of this region regarding it's top left corner
+ to the given location (the x and y values are modified).
+
+ :param location: location object becomes the new top left corner
+ :return: the modified region object
+
+ ::
+
+ reg.moveTo(anotherLocation) # equivalent to
+ reg.setX(anotherLocation.x); reg.setY(anotherLocation.y)
+
+ .. py:method:: setROI(x,y,w,h)
+ setROI(rectangle)
+ setRect(x,y,w,h)
+ setRect(rectangle)
+
+ Both methods are doing exactly the same: setting position and dimension to
+ new values. The motivation for two names is to make scripts more readable:
+ ``setROI()`` is intended to restrict the search to a smaller area to speed up
+ processing searches (region of interest), whereas ``setRect()`` should be
+ used to redefine a region (which could be enlarging it).
+
+ :param all x, y, w, h: the attributes of a rectangle
+ :param rectangle: a rectangle object
+ :return: None
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: morphTo(region)
+
+ Set the position and dimension of this region to the corresponding values
+ of the region given as parameter. (see: :py:meth:`setRect() <Region.setRect>`)
+
+ :param region: a region object
+ :return: the modified region object
+
+ ::
+
+ reg.morphTo(anotherRegion) # equivalent to
+ r = anotherRegion; reg.setX(r.x); reg.setY(r.y); reg.setW(r.w); reg.setH(r.h)
+
+ .. py:method:: getX()
+ getY()
+ getW()
+ getH()
+
+ Get the respective attribute of the region.
+
+ :return: integer value
+
+ .. py:method:: getCenter()
+
+ Get the center of the region.
+
+ :return: an object of :py:class:`Location`
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getTopLeft()
+ getTopRight()
+ getBottomLeft()
+ getBottomRight()
+
+ Get the location of the region's respective corner
+
+ :return: Location object
+
+ .. py:method:: getScreen()
+
+ Returns the screen object that contains this region.
+
+ :return: a new :py:class:`Screen` object
+
+ This method only makes sense in
+ :ref:`Multi Monitor Environments <MultiMonitorEnvironments>`,
+ since it always returns the default screen in a single monitor environment.
+
+ .. py:method:: getLastMatch()
+ getLastMatches()
+
+ :return: the best match as a :py:class:`Match` object or one or more
+ match objects as an :py:class:`Iterator` object respectively
+
+ All successful find operations (explicit like ``find()`` or
+ implicit like ``click()``), store the best match in the `lastMatch` attribute
+ of the region that was searched. ``findAll()`` stores all found matches into
+ `lastMatches` atribute of the region that was searched as an iterator.
+
+ To access these attributes use ``region.getLastMatch()`` or
+ ``region.getLastMatches()`` respectively.
+
+ How to use the iterator object returned by getLastMatches()
+ :ref:`is documented here <IteratingMatches>`.
+
+ .. py:method:: setAutoWaitTimeout(seconds)
+
+ Set the maximum waiting time for all subsequent find operations.
+
+ :param seconds: a number, which can have a fraction. The internal
+ granularity is milliseconds.
+
+ This method enables all find operations to wait for the given
+ pattern to appear until the specified amount of time has elapsed. The
+ default is 3.0 seconds. This method is intended for users to override
+ this default setting. As such it lets :py:meth:`Region.find` work like
+ :py:meth:`Region.wait`, without being able to set an individual timeout value
+ for a specific find operation.
+
+ .. py:method:: getAutoWaitTimeout()
+
+ Get the current value of the maximum waiting time for find operations.
+
+ :return: timeout in seconds
+
+.. _ExtendingaRegion:
+
+Extending a Region
+------------------
+
+These methods (exception ``inside()``) return a new region object, that is
+based on the specified region (sometimes called spatial operators).
+The range parameter, if given as positive integer number, restricts the
+dimension of the new region (width and/or height respectively) to that
+value. If range is not specified, the new region extends to the respective
+boundary of the screen the given region belongs to. An exception is ``nearby()``,
+which uses 50 as its default range.
+
+**Note**: In all cases the current region remains unchanged.
+
+**Note**: In all cases the new region does not extend beyond any boundary of the
+screen that contains the given region.
+
+.. py:class:: Region
+
+ .. py:method:: offset(location)
+
+ Returns a new Region object, whose upper left corner is relocated
+ adding the location's x and y value to the respective values of the given region.
+ Width and height are the same. So this clones a region at a different place.
+
+ :param location: a :py:class:`Location` object
+ :return: a new :py:class:`Region` object
+
+ ::
+
+ new_reg = reg.offset(Location(xoff, yoff)) # same as
+ new_reg = Region(reg.x + xoff, reg.y + yoff, reg.w, reg.h)
+
+ .. py:method:: inside()
+
+ Returns the same object. Retained for upward compatibility.
+
+ :return: the :py:class:`Region` object
+
+ This method can be used to make scripts more readable.
+ ``region.inside().find()`` is totally equivalent to ``region.find()``.
+
+ .. image:: spatial.jpg
+
+ .. py:method:: nearby([range])
+
+ Returns a new :py:class:`Region` that includes the nearby neighbourhood
+ of the the current region. The new region is defined by extending the
+ current region's dimensions in all directions by *range* number of pixels. The
+ center of the new region remains the same.
+
+ :param range: a positive integer indicating the number of pixels (default = 50).
+ :return: a :py:class:`Region` object
+
+ .. py:method:: above([range])
+
+ Returns a new :py:class:`Region` that is defined above the current region's
+ top border with a height of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the top
+ of the screen. The new region has the same width and x-position as the
+ current region.
+
+ :param range: a positive integer defining the new height
+ :return: a :py:class:`Region` object
+
+ .. py:method:: below([range])
+
+ Returns a new :py:class:`Region` that is defined below the current region's
+ bottom border with a height of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the bottom
+ of the screen. The new region has the same width and x-position as the
+ current region.
+
+ :param range: a positive integer defining the new height
+ :return: a :py:class:`Region` object
+
+ .. py:method:: left([range])
+
+ Returns a new :py:class:`Region` that is defined left of the current region's
+ left border with a width of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the left border
+ of the screen. The new region has the same height and y-position as the
+ current region.
+
+ :param range: a positive integer defining the new width
+ :return: a :py:class:`Region` object
+
+ .. py:method:: right([range])
+
+ Returns a new :py:class:`Region` that is defined right of the current region's
+ right border with a width of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the right border
+ of the screen. The new region has the same height and y-position as the
+ current region.
+
+ :param range: a positive integer defining the new width
+ :return: a :py:class:`Region` object
+
+.. _FindinginsideaRegionandWaitingforaVisualEvent:
+
+Finding inside a Region and Waiting for a Visual Event
+------------------------------------------------------
+
+Besides :ref:`acting on visual objects <ActingonaRegion>`, finding them is one of the core
+functions of Sikuli.
+
+**PS**: means, that either a :py:class:`Pattern` or a string (path to an image
+file or just plain text) can be used as parameter. A find operation is
+successful, if the given image is found with the given minimum similarity or
+the given text is found exactly. Similarity is a value between 0 and 1 to
+specify how likely the given image looks like the target. By default, the
+similarity is 0.7 if an image rather than a pattern object with a specific
+similarity is given to :py:meth:`Region.find()`.
+
+Normally all these region methods are used as ``reg.find(PS)``, where reg is a
+region object. If written as ``find(PS)`` it acts on the default screen, which is
+an implicit region in this case (see: :ref:`SCREEN as Default Region <DefaultScreen>`).
+But in most cases it is a good idea to use
+``region.find()`` to restrict the search to a smaller region in order to speed up
+processing.
+
+If a find operation is successful, the returned match is additionally stored
+internally with the region that was used for the search. So instead of using a
+variable to store the match ( ``m = reg.find()`` ), you can use ``reg.getLastMatch()`` to access
+it afterwards. Unsuccessful find operations will leave these values unchanged.
+
+.. _PatternNotFound:
+
+By default, if the **visual object (image or text) cannot be found**, Sikuli
+will stop the script by raising an :ref:`Exception FindFailed <ExceptionFindFailed>`.
+This follows the standards of the Python language, so that you could handle such exceptions using
+``try: ... except: ...``.
+
+If you are not used to programming using the Python language or because of other reasons, you might just want to bypass the
+exception handling, which means just ignoring it (None is returned in that case).
+Or you might interactively react on a FindFailed situation (e.g. optionally repeat the find).
+Read more about concepts and options at: :ref:`Exception FindFailed <ExceptionFindFailed>`.
+
+If you have **multiple monitors**, please read
+:ref:`Multi Monitor Environments <MultiMonitorEnvironments>`.
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain, the images itself are specified simply by
+using a string containing the file name (path to an image file).
+
+.. py:class:: Region
+
+ .. py:method:: find(PS)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image file or just plain text)
+ :return: a :py:class:`Match` object that contains the best match or fails if :ref:`not found <PatternNotFound>`
+
+ Find a particular GUI element, which is seen as the given image or
+ just plain text. The given file name of an image specifies the element's
+ appearance. It searches within the region and returns the best match,
+ which shows a similarity greater than the minimum similarity given by
+ the pattern. If no similarity was set for the pattern by
+ :py:meth:`Pattern.similar` before, a default minimum similarity of 0.7
+ is set automatically.
+
+ If autoWaitTimeout is set to a non-zero value, find() just acts as a wait().
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: findAll(PS)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :return: one or more :py:class:`Match` objects as an iterator object or fails if :ref:`not found <PatternNotFound>`
+
+ How to iterate through is :ref:`documented here <IteratingMatches>`.
+
+ Repeatedly find ALL instances of a pattern, until no match can be
+ found anymore, that meets the requirements for a single
+ :py:meth:`Region.find()` with the specified pattern.
+
+ By default, the returned matches are sorted by the similiarty.
+ If you need them ordered by their positions, say the Y coordinates,
+ you have to use Python's `sorted <http://wiki.python.org/moin/HowTo/Sorting/>`_ function. Here is a example of sorting the matches from top to bottom.
+
+ .. sikulicode::
+
+ def by_y(match):
+ return match.y
+
+ icons = findAll("png_icon.png")
+ # sort the icons by their y coordinates and put them into a new variable sorted_icons
+ sorted_icons = sorted(icons, key=by_y)
+ # another shorter version is using lambda.
+ sorted_icons = sorted(icons, key=lambda m:m.y)
+ for icon in sorted_icons:
+ pass # do whatever you want to do with the sorted icons
+
+
+
+ **Side Effect** *lastMatches*: a reference to the returned iterator object containing the
+ found matches is stored with the region that was searched. It can be
+ accessed using getLastMatches() afterwards. How to iterate through an
+ iterator of matches is :ref:`documented here <IteratingMatches>`.
+
+ .. py:method:: wait([PS],[seconds])
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: a :py:class:`Match` object that contains the best match or fails if :ref:`not found <PatternNotFound>`
+
+ If *PS* is not specified, the script just pauses for the specified
+ amount of time. It is still possible to use ``sleep(seconds)`` instead,
+ but this is deprecated.
+
+ If *PS* is specified, it keeps searching the given pattern in the
+ region until the image appears ( would have been found with
+ :py:meth:`Region.find`) or the specified amount of time has elapsed. At
+ least one find operation is performed, even if 0 seconds is specified.)
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ Note: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+ .. py:method:: waitVanish(PS, [seconds])
+
+ Wait until the give pattern *PS* in the region vanishes.
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: *True* if the pattern vanishes within the specified waiting
+ time, or *False* if the pattern stays visible after the waiting time
+ has elapsed.
+
+ This method keeps searching the given pattern in the region until the
+ image vanishes (can not be found with :py:meth:`Region.find` any
+ longer) or the specified amount of time has elapsed. At least one find
+ operation is performed, even if 0 seconds is specified.
+
+ **Note**: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+ .. py:method:: exists(PS, [seconds])
+
+ Check whether the give pattern is visible on the screen.
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: a :py:class:`Match` object that contains the best match. None
+ is returned, if nothing is found within the specified waiting time
+
+ Does exactly the same as :py:meth:`Region.wait()`, but no exception is
+ raised in case of FindFailed. So it can be used to symplify scripting
+ in case that you only want to know wether something is there or not to
+ decide how to proceed in your workflow. So it is typically used with an
+ if statement. At least one find operation is performed, even if 0
+ seconds is specified. So specifying 0 seconds saves some time, in case
+ there is no need to wait, since its your intention to get the
+ information "not found" directly.
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+.. _ObservingVisualEventsinaRegion:
+
+Observing Visual Events in a Region
+-----------------------------------
+
+You can tell a region to observe that something appears or vanishes,
+or something changes in that region. Using the methods
+:py:meth:`Region.onAppear`, :py:meth:`Region.onVanish` and :py:meth:`Region.onChange`,
+you register an event observer that starts its observation when you
+call :py:meth:`Region.observe`. Each region object can have exactly one observation active and
+running. For each observation, you can register as many event observers as
+needed. So you can think of it as grouping some ``wait()`` and ``waitVanish()``
+together and have them processed simultanouesly, while you are waiting for one
+of these events to happen.
+
+It is possible to let the script wait for the completion of an observation or
+let it run in the background, while your script is continuing. With a timing
+parameter you can tell :py:meth:`Region.observe`
+to stop observation anyway after the given time.
+
+When one of the visual events happens, an event handler written by you is
+called. An event handler is a function contained in your script and expects a
+:py:class:`SikuliEvent` object as a parameter.
+During the processing in your handler, the
+observation is paused until your handler has ended. Information between the
+main script and your handlers can be given forward and backward using global
+variables.
+
+It's your responsibility to stop an observation. This can either be done by
+calling :py:meth:`Region.stopObserver`
+or by starting the observation with a timing parameter.
+
+Since you can have as many region objects as needed and each region can have
+one observation active and running. So theoretically it's possible to have as
+many visual events being observered at the same time as needed. But in reality,
+the number of observation is still limited by the system resources available to
+Sikuli at that time.
+
+Be aware, that every observation is a number of different find operations that
+are processed repeatedly. So to speed up processing and keep your script
+acting, you may want to define a region for observation as small as possible.
+You may adjust the scan rate (how often a search during the observation takes
+place) by setting
+:py:attr:`Settings.ObserveScanRate` appropriately.
+
+**PS**: means, that either a Pattern or a String (path to an image file or just
+plain text) can be used as parameter.
+
+.. _ObserveHandler:
+
+**handler**: as a parameter in the following methods, you have to specify the *name*
+of a function, which will be called by the observer, in case the observed event
+happens. The function itself has to be defined in your script before using the
+method that references the function. The existance of the function will be
+checked before starting the script. So to get your script running, you have to
+have at least the following statements in your script::
+
+ def myHandler(event): # you can choose any valid function name
+ # event: can be any variable name, it references the SikuliEvent object
+ pass # add your statements here
+
+ onAppear("path-to-an-image-file", myHandler) # or any other onEvent()
+ observe(10) # observes for 10 seconds
+
+Read :py:class:`SikuliEvent` to know what is contained in a SikuliEvent object
+
+**Note on performance**: Normally all the region methods are used as ``reg.onAppear(PS)``, where ``reg`` is a
+region object. If written as ``onAppear(PS)`` it operates on the default screen being the implicit
+region in this case. Using ``region.onEvent()`` instead will restrict the search to the
+region's rectangle and speed up processing, if region is significantly smaller
+than the whole screen.
+
+**Note**: In case of having more than one Monitor active, read
+:ref:`Multi Monitor Environments <MultiMonitorEnvironments>` before.
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain the images itself are specified by using a
+string containing the file name (path to an image file).
+
+.. py:class:: Region
+
+ .. py:method:: onAppear(PS, handler)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text.
+
+ :param handler: the name of a handler function in the script
+
+ With the given region you register an observer, that should wait for
+ the pattern to be there or to appaear and is activated with the next
+ call of ``observe()``. In the moment the internal find operation on the
+ given pattern is successful during observation, your handler is called
+ and the observation is paused until you return from your handler.
+
+ .. py:method:: onVanish(PS, handler)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text.
+
+ :param handler: the name of a handler function in the script
+
+ With the given region you register an observer, that should wait for
+ the pattern to be not there or to vanish and is activated with the next
+ call of ``observe()``. In the moment the internal find operation on the
+ given pattern fails during observation, your handler is called and the
+ observation is paused until you return from your handler.
+
+ .. py:method:: onChange([minChangedSize], handler)
+
+ :param minChangedSize: the minimum size in pixels of a change to trigger a change event.
+ If omitted: 50 is used (see :py:attr:`Settings.ObserveMinChangedPixels`).
+ :param handler: the name of a handler function in the script
+
+ .. versionadded:: X1.0-rc2
+ **minChangedSize**
+
+ With the given region you register an observer, that should wait for
+ the visual content of the given region to change and is activated with
+ the next call of ``observe()``. In the moment the visual content changes
+ during observation, your handler is called and the observation is
+ paused until you return from your handler.
+
+ Here is a example that highlights all changes in an observed region.
+ ::
+
+ def changed(event):
+ print "something changed in ", event.region
+ for ch in event.changes:
+ ch.highlight() # highlight all changes
+ sleep(1)
+ for ch in event.changes:
+ ch.highlight() # turn off the highlights
+ with selectRegion("select a region to observe") as r:
+ # any change in r larger than 50 pixels would trigger the changed function
+ onChange(50, changed)
+ observe(background=True)
+
+ wait(30) # another way to observe for 30 seconds
+ r.stopObserver()
+
+
+ .. py:method:: observe([seconds], [background = False | True])
+
+ Begin observation within the region.
+
+ :param seconds: a number, which can have a fraction, as maximum
+ observation time in seconds. Omit it or use the constant FOREVER to
+ tell the observation to run for an infinite time (or until stopped
+ by a call of ``stopObserve()``).
+
+ :param background: a flag indicating whether observation is run in the
+ background. when set to *True*, the observation will be run in the
+ background and processing of your script is continued immediately.
+ Otherwise the script is paused until the completion of the
+ observation.
+
+ For each region object, only one observation can be running at a given time.
+
+ **Note**: You may adjust the scan rate (how often a search during the
+ observation takes place) by setting :py:attr:`Settings.ObserveScanRate`
+ appropriately.
+
+ .. py:method:: stopObserver()
+
+ Stop observation within the region.
+
+ This must be called on a valid region object. The source region of an
+ observed visual event is available as one of the attributes of the *event*
+ parameter that is passed to the handler function when the function is
+ invoked.
+
+ For example, to stop observation within a handler function, simply
+ call ``event.region.stopObserver()`` inside the handler function.::
+
+ def myHandler(event):
+ event.region.stopObserver() # stops the observation
+
+ onAppear("path-to-an-image-file", myHandler)
+ observe(FOREVER) # observes until stopped in handler
+
+
+.. versionadded:: X1.0-rc2
+.. py:class:: SikuliEvent
+
+ When processing an :ref:`observation in a region <ObservingVisualEventsinaRegion>`,
+ a :ref:`handler function is called <ObserveHandler>`, when one of your
+ registered events :py:meth:`Region.onAppear`, :py:meth:`Region.onVanish` or :py:meth:`Region.onChange` happen.
+
+ The one parameter, you have access to in your handler function is an instance
+ of *Class SikuliEvent*. You have access to the following attributes of the event,
+ that might help to identify the cause of the event and act on the resulting matches.
+
+ *Usage:* ``event.attribute``
+ where ``event`` is the parameter from the definition of your handler function: ``def myHandler(event):``
+
+ .. py:attribute:: type
+
+ The :py:attr:`type` of this event can be
+ :py:const:`SikuliEvent.Type.APPEAR`, :py:const:`SikuliEvent.Type.VANISH`,
+ or :py:const:`SikuliEvent.Type.CHANGE`.
+
+ .. py:attribute:: pattern
+
+ The source pattern that triggered this event. This is only valid
+ in APPEAR and VANISH events.
+
+ .. py:attribute:: region
+
+ The source region of this event.
+
+ .. py:attribute:: match
+
+ In an APPEAR event, *match* saves the top :py:class:`Match` object
+ that appeared in the observed region.
+
+ In a VANISH event, *match* saves the *last* :py:class:`Match` object
+ that was in the observed region but vanished.
+
+ This attribute is not valid in a CHANGE event.
+
+ .. py:attribute:: changes
+
+ This attribute is valid only in a CHANGE event.
+
+ This *changes* attribute is a list of :py:class:`Match` objects that
+ changed and their sizes are at least :py:meth:`minChangedSize <Region.onChange>` pixels.
+
+
+.. _ActingonaRegion:
+
+Acting on a Region
+------------------
+
+Besides :ref:`finding visual objects <FindinginsideaRegionandWaitingforaVisualEvent>`
+on the screen, acting on these elements is one of the
+kernel operations of Sikuli. Mouse actions can be simulated as well as pressing keys
+on a keyboard.
+
+The place on the screen, that should be acted on (in the end just one specific
+pixel, the click point), can be given either as a :py:class:`pattern <Pattern>` like with the find
+operations or by directly referencing a pixel :py:class:`location <Location>`
+or as center of a :py:class:`region <Region>` object (:py:class:`match <Match>` or
+:py:class:`screen <Screen>` also) or the target offset location connected with a :py:class:`match <Match>`. Since all
+these choices can be used with all action methods as needed, they are abbreviated
+and called like this:
+
+**PSMRL:** which means, that either a :py:class:`Pattern` object or a string (path to an image file or just
+plain text) or a :py:class:`Match` or a :py:class:`Region` or a :py:class:`Location` can be used as parameter, in
+detail:
+
+* **P**: *pattern*: a :py:class:`Pattern` object. An implicit find operation is
+ processed first. If successful, the center of the resulting matches rectangle is
+ the click point. If the pattern object has a target offset specified, this is
+ used as click point instead.
+
+* **S**: *string*: a path to an image file or just plain text. An implicit find
+ operation with the default minimum similarity 0.7 is processed first. If
+ successful, the center of the resulting match object is the click point.
+
+* **M**: *match:* a :py:class:`match <Match>` object from a previous find operation. If the match has a target
+ specified it is used as the click point, otherwise the center of the matches
+ rectangle.
+
+* **R**: *region:* a :py:class:`region <Region>` object whose center is used as click point.
+
+* **L**: *location:* a :py:class:`location <Location>` object which by definition represents a point on the
+ screen that is used as click point.
+
+It is possible to simulate pressing the so called :doc:`key modifiers <keys>` together with the mouse
+operation or when simulating keyboard typing. The respective parameter is given by
+one or more predefined constants. If more than one modifier is necessary, they are
+combined by using "+" or "|".
+
+Normally all these region methods are used as ``reg.click(PS)``, where reg is a
+region object. If written as ``click(PS)`` the implicit find is done on the default
+screen being the implicit region in this case (see: :ref:`SCREEN as Default Region <DefaultScreen>`).
+But using ``reg.click(PS)`` will
+restrict the search to the region's rectangle and speed up processing, if region is
+significantly smaller than the whole screen.
+
+Generally all aspects of :ref:`find operations
+<FindinginsideaRegionandWaitingforaVisualEvent>` and of :py:meth:`Region.find`
+apply.
+
+If the find operation was successful, the match that was acted on, can be
+recalled using :py:meth:`Region.getLastMatch`.
+
+As a default, if the **visual object (image or text) cannot be found**, Sikuli
+will stop the script by raising an :ref:`Exception FindFailed <ExceptionFindFailed>`
+(details see: :ref:`not found <PatternNotFound>`).
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search for.
+These images are named automatically by the IDE and stored together with the script,
+at the time it is saved (we call the location in the file system bundle-path).
+Behind the curtain the images itself are specified by using a string containing the
+file name (path to an image file).
+
+**Note**: If you need to implement more sophisticated mouse and keyboard actions look at
+:ref:`Low Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+**Note**: In case of having more than one Monitor active, refer to :ref:`Multi Monitor
+Environments <MultimonitorEnvironments>` for more details.
+
+**Note on Mac**: it might be necessary, to use :py:func:`switchApp` before, to prepare the
+application for accepting the action.
+
+.. py:class:: Region
+
+ .. py:method:: click(PSMRL, [modifiers])
+
+ Perform a mouse click on the click point using the left button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed clicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Example:**
+
+ .. sikulicode::
+
+ # Windows XP
+ click("xpstart.png")
+
+ # Windows Vista
+ click("vistastart.png")
+
+ # Windows 7
+ click("w7start.png")
+
+ # Mac
+ click("apple.png")
+
+
+ .. py:method:: doubleClick(PSMRL, [modifiers])
+
+ Perform a mouse double-click on the click point using the left button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed double-clicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+
+ .. py:method:: rightClick(PSMRL, [modifiers])
+
+ Perform a mouse click on the click point using the right button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed right cilicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: highlight([seconds])
+
+ Highlight the region for some period of time.
+
+ :param seconds: a decimal number taken as duration in seconds
+
+ The region is highlighted showing a red colored frame around it. If the
+ parameter seconds is given, the script is suspended for the specified time.
+ If no time is given, the highlighting is started and the script continues.
+ When later on the same highlight call without a parameter is made, the
+ highlighting is stopped (behaves like a toggling switch).
+
+ Example::
+
+ m = find(some_image)
+
+ # the red frame will blink for about 7 - 8 seconds
+ for i in range(5):
+ m.highlight(1)
+ wait(0.5)
+
+ # a second red frame will blink as an overlay to the first one
+ m.highlight()
+ for i in range(5):
+ m.highlight(1)
+ wait(0.5)
+ m.highlight()
+
+ # the red frame will grow 5 times
+ for i in range(5):
+ m.highlight(1)
+ m = m.nearby(20)
+
+ **Note**: The red frame is just an overlay in front of all other screen content and
+ stays in its place, independently from the behavior of this other content,
+ which means it is not "connected" to the *content* of the defining region.
+ But it will be adjusted automatically, if you change position and/or dimension
+ of this region in your script, while it is highlighted.
+
+ .. py:method:: hover(PSMRL)
+
+ Move the mouse cursor to hover above a click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number 1 if the mousepointer could be moved to the click point.
+ A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+
+ .. py:method:: dragDrop(PSMRL, PSMRL, [modifiers])
+
+ Perform a drag-and-drop operation from a starting click point to the target
+ click point indicated by the two PSMRLs respectively.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ If one of the parameters is *PS*, the operation might fail due to :ref:`not Found <PatternNotFound>`.
+
+ **Sideeffect**: when using *PS*, the match of the target can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards. If only the first parameter is
+ given as *PS*, this match is returned by :py:meth:`Region.getLastMatch`.
+
+ **When the operation does not perform as expected** (usually caused by timing
+ problems due to delayed reactions of applications), you may adjust the
+ internal timing parameters :py:attr:`Settings.DelayAfterDrag` and
+ :py:attr:`Settings.DelayBeforeDrop` eventually combined with the internal
+ timing parameter :py:attr:`Settings.MoveMouseDelay`.
+
+ Another solution might be, to use a combination of :py:meth:`Region.drag`
+ and :py:meth:`Region.dropAt` combined with your own ``wait()`` usages. If the mouse
+ movement from source to target is the problem, you might break up the move
+ path into short steps using :py:meth:`Region.mouseMove`.
+
+ **Note**: If you need to implement more sophisticated mouse and keyboard actions
+ look at :ref:`Low Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+
+ .. py:method:: drag(PSMRL)
+
+ Start a drag-and-drop operation by dragging at the given click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :return: the number 1 if the operation could be performed. A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ The mousepointer is moved to the click point and the left mouse button is
+ pressed and held, until another mouse action is performed (e.g. a
+ :py:meth:`Region.dropAt()` afterwards). This is nomally used to start a
+ drag-and-drop operation.
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: dropAt(PSMRL, [delay])
+
+ Complete a drag-and-drop operation by dropping a previously dragged item at
+ the given target click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param delay: time to wait after in seconds as decimal value
+
+ :return: the number 1 if the operation could be performed. A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ The mousepointer is moved to the click point. After waiting for delay
+ seconds the left mouse button is released. This is normally used to finalize
+ a drag-and-drop operation. If it is necessary to visit one ore more click
+ points after dragging and before dropping, you can use
+ :py:meth:`Region.mouseMove` inbetween.
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: type([PSMRL], text, [modifiers])
+
+ Type the text at the current focused input field or at a click point
+ specified by *PSMRL*.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :returns: the number 1 if the operation could be
+ performed, otherwise 0 (integer null), which means,
+ that because of some reason, it was not possible or the click
+ could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ This method simulates keyboard typing interpreting the characters of text
+ based on the layout/keymap of the **standard US keyboard (QWERTY)**. Special
+ keys (ENTER, TAB, BACKSPACE, ...) can be incorporated into text by using the
+ constants defined in :doc:`Class Key <keys>` using the standard string concatenation (+).
+
+ If *PSMRL* is given, a click on the clickpoint is performed before typing, to
+ gain the focus. (Mac: it might be necessary, to use :py:func:`switchApp`
+ to give focus to a target application before, to accept typed/pasted characters.)
+
+ If *PSMRL* is omitted, it performs the typing on the current focused visual
+ component (normally an input field or an menu entry that can be selected by
+ typing something).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: If you need to type international characters or you are using
+ layouts/keymaps other than US-QWERTY, you should use :py:meth:`Region.paste`
+ instead. Since type() is rather slow because it simulates each key press,
+ for longer text it is preferrable to use :py:meth:`Region.paste`.
+
+ **Best Practice**: As a general guideline, the best choice is to use ``paste()``
+ for readable text and ``type()`` for action keys like TAB, ENTER, ESC, ....
+ Use one ``type()`` for each key or key combination and be aware, that in some cases
+ a short ``wait()`` after a ``type()`` might be necessary
+ to give the target application some time to react and be prepared
+ for the next Sikuli action.
+
+ .. py:method:: paste([PSMRL], text)
+
+ Paste the text at a click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :returns: the number 1 if the operation could be performed, otherwise 0
+ (integer null), which means,
+ that because of some reason, it was not possible or the click
+ could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ Pastes *text* using the clipboard (OS-level shortcut (Ctrl-V or Cmd-V)). So
+ afterwards your clipboard contains *text*. ``paste()`` is a temporary solution for
+ typing international characters or typing on keyboard layouts other than
+ US-QWERTY.
+
+ If *PSMRL* is given, a click on the clickpoint is performed before typing, to
+ gain the focus. (Mac: it might be necessary, to use :py:func:`switchApp`
+ to give focus to a target application before, to accept typed/pasted characters.)
+
+ If *PSMRL* is omitted, it performs the paste on the current focused component
+ (normally an input field).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: Special keys (ENTER, TAB, BACKSPACE, ...) cannot be used with ``paste()``.
+ If needed, you have to split your complete text into two or more ``paste()``
+ and use ``type()`` for typing the special keys inbetween.
+ Characters like \\n (enter/new line) and \\t (tab) should work as expected with ``paste()``,
+ but be aware of timing problems, when using e.g. intervening \\t to jump
+ to the next input field of a form.
+
+.. _RegionExtractingText:
+
+Extracting Text from a Region
+-----------------------------
+
+.. py:class:: Region
+
+ .. py:method:: text()
+
+ Extract the text contained in the region using OCR.
+
+ :return: the text as a string. Multiple lines of text are separated by intervening '\n'.
+
+ **Note**: Since this feature is still in an **experimental state**, be aware,
+ that in some cases it might not work as expected. If you face any problems
+ look at the `Questions & Answers / FAQ's <https://answers.launchpad.net/sikuli>`_
+ and the `Bugs <https://answers.launchpad.net/sikuli>`_.
+
+.. _LowLevelMouseAndKeyboardActions:
+
+Low-level Mouse and Keyboard Actions
+------------------------------------
+
+.. py:class:: Region
+
+ .. py:method:: mouseDown(button)
+
+ Press the mouse *button* down.
+
+ :param button: one or a combination of the button constants ``Button.LEFT``,
+ ``Button.MIDDLE``, ``Button.RIGHT``.
+
+ :return: the number 1 if the operation is performed successfully, and zero if
+ otherwise.
+
+ The mouse button or buttons specified by *button* are pressed until another
+ mouse action is performed.
+
+ .. py:method:: mouseUp([button])
+
+ Release the mouse button previously pressed.
+
+ :param button: one or a combination of the button constants ``Button.LEFT``,
+ ``Button.MIDDLE``, ``Button.RIGHT``.
+
+ :return: the number 1 if the operation is performed successfully, and zero if
+ otherwise.
+
+ The button specified by *button* is released. If *button* is omitted, all
+ currently pressed buttons are released.
+
+ .. py:method:: mouseMove(PSRML)
+
+ Move the mouse pointer to a location indicated by PSRML.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :return: the number 1 if the operation could be performed. If using *PS*
+ (which invokes an implicity find operation), find fails and you have
+ switched off FindFailed exception, a 0 (integer null) is returned.
+ Otherwise, the script is stopped with a FindFailed exception.
+
+ **Sideeffects**: when using *PS*, the match can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards
+
+ .. py:method:: wheel(PSRML, WHEEL_DOWN | WHEEL_UP, steps)
+
+ Move the mouse pointer to a location indicated by PSRML and turn the mouse
+ wheel in the specified direction by the specified number of steps.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param WHEEL_DOWN|WHEEL_UP: one of the two constants denoting the wheeling
+ direction.
+
+ :param steps: an integer indicating the amoung of wheeling.
+
+ **Sideeffects**: when using *PS*, the match can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards
+
+ .. py:method:: keyDown(key | list-of-keys)
+
+ Press and hold the specified key(s) until released by a later call to
+ :py:meth:`Region.keyUp`.
+
+ :param key|list-of-keys: one or more keys (use the consts of class Key). A
+ list of keys is a concatenation of several key constants using "+".
+
+ :return: the number 1 if the operation could be performed and 0 if
+ otherwise.
+
+ .. py:method:: keyUp([key | list-of-keys])
+
+ Release given keys. If no key is given, all currently pressed keys are
+ released.
+
+ :param key|list-of-keys: one or more keys (use the consts of class Key). A
+ list of keys is a concatenation of several key constants using "+".
+
+ :return: the number 1 if the operation could be performed and 0 if
+ otherwise.
+
+.. _ExceptionFindFailed:
+
+Exception FindFailed
+--------------------
+
+As a default, find operations (:ref:`explicit <FindinginsideaRegionandWaitingforaVisualEvent>`
+and :ref:`implicit <ActingonaRegion>`) when not successful
+raise an ``Exception FindFailed``, that will
+stop the script immediately. This is of great help, when developing a script, to
+step by step adjust timing and similarity. When the script runs perfectly, then an
+exception FindFailed signals, that something is not as it should be.
+
+To implement some checkpoints, where you want to asure your workflow, use
+:py:meth:`Region.exists`, that reports a not found situation without raising
+FindFailed (returns False instead).
+
+To run all or only parts of your script without FindFailed exceptions to be raised,
+use :py:meth:`Region.setThrowException` or :py:meth:`Region.setFindFailedResponse`
+to switch it on and off as needed.
+
+For more sophisticated concepts, you can implement your own exception handling using
+the standard Python construct ``try: ... except: ...`` .
+
+.. versionadded:: X1.0-rc2
+
+These are the possibilities to handle "not found" situations:
+ * generally abort a script, if not handled with ``try: ... except: ...``
+ (the default setting or using :py:meth:`setThrowException(True) <Region.setThrowException>`
+ or :py:meth:`setFindFailedResponse(ABORT) <Region.setFindFailedResponse>`)
+ * generally ignore all "not found" situations
+ (using :py:meth:`setThrowException(False) <Region.setThrowException>`
+ or :py:meth:`setFindFailedResponse(SKIP) <Region.setFindFailedResponse>`),
+ * want to be prompted in such a case
+ (using :py:meth:`setFindFailedResponse(PROMPT) <Region.setFindFailedResponse>`)
+ * advise Sikuli to wait forever (be careful with that!)
+ (using :py:meth:`setFindFailedResponse(RETRY) <Region.setFindFailedResponse>`)
+
+.. _FindFailedPrompt:
+
+**Comment on using PROMPT**:
+
+This feature is helpful in following situations:
+
+* you are developing something, that needs an application with it's windows to be in place, but this workflow you want to script later. If it comes to that point, you get the prompt, arrange the app and click *Retry*. Your workflow should continue.
+* you have a workflow, where the user might do some corrective actions, if you get a FindFailed
+* guess you find more ;-)
+
+In case of a FindFailed, you get the following prompt:
+
+.. image:: findfailed-prompt.png
+
+Clicking *Retry* would again try to find the image. *Skip* would continue the script and *Abort* would end the script.
+
+**Examples**: 4 solutions for a case, where you want to decide how to proceed in a
+workflow based on the fact that a specific image can be found. (pass is the python
+statement, that does nothing, but maintains indentation to form the blocks)::
+
+ # --- nice and easy
+ if exists("path-to-image"): # no exception, returns None when not found
+ pass # it is there
+ else:
+ pass # we miss it
+
+ # --- using exception handling
+ # every not found in the try block will switch to the except block
+ try:
+ find("path-to-image")
+ pass # it is there
+ except FindFailed:
+ pass # we miss it
+
+ # --- using setFindFailedResponse
+ setFindFailedResponse(SKIP) # no exception raised, not found returns None
+ if find("path-to-image"):
+ setFindFailedResponse(ABORT) # reset to default
+ pass # it is there
+ else:
+ setFindFailedResponse(ABORT) # reset to default
+ pass # we miss it
+
+ # --- using setThrowException
+ setThrowException(False) # no exception raised, not found returns None
+ if find("path-to-image"):
+ setThrowException(True) # reset to default
+ pass # it is there
+ else:
+ setThrowException(True) # reset to default
+ pass # we miss it
+
+.. py:class:: Region
+
+ **Reminder** If used without specifying a region, the default/primary screen
+ (default region SCREEN) is used.
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: setFindFailedResponse(ABORT | SKIP | PROMPT | RETRY)
+
+ For the specified region set the option, how Sikuli should handle
+ "not found" situations. The option stays in effect until changed
+ by another ``setFindFailedResponse()``.
+
+ :param ABORT: all subsequent find failed operations (explicit or
+ implicit) will raise exception FindFailed (which is the default when a
+ script is started).
+
+ :param SKIP: all subsequent find operations will not raise
+ exception FindFailed. Instead, explicit find operations such as
+ :py:meth:`Region.find` will return *None*. Implicit find operations
+ (action functions) such as :py:meth:`Region.click` will do
+ nothing and return 0.
+
+ :param PROMPT: all subsequent find operations will not raise
+ exception FindFailed. Instead you will be prompted for the way
+ to handle the situation (see :ref:`using PROMPT <FindFailedPrompt>`). Only the current
+ find operation is affected by your response to the prompt.
+
+ :param RETRY: all subsequent find operations will not raise
+ exception FindFailed. Instead, Sikuli will try to find the target
+ until it gets visible. This is equivalent to using ``wait( ... , FOREVER)``
+ instead of ``find()`` or using setAutoWaitTimeout(FOREVER).
+
+ .. py:method:: getFindFailedResponse()
+
+ Get the current setting in this region.
+
+ :return: ABORT or SKIP or PROMPT or RETRY
+
+ Usage::
+
+ val = getFindFailedResponse()
+ if val == ABORT:
+ print "not found will stop script with Exception FindFailed"
+ elif val == SKIP:
+ print "not found will be ignored"
+ elif val == PROMPT:
+ print "when not found you will be prompted"
+ elif val == RETRY:
+ print "we will always wait forever"
+ else:
+ print val, ": this is a bug :-("
+
+ **Note**: It is recommended to use ``set/getFindFailedResponse()`` instead of
+ ``set/getThrowException()`` since the latter ones might be deprecated in the future.
+
+ .. py:method:: setThrowException(False | True)
+
+ By using this method you control, how Sikuli should handle not found
+ situations in this region.
+
+ :param True: all subsequent find operations (explicit or
+ implicit) will raise exception FindFailed (which is the default when a
+ script is started) in case of not found.
+
+ :param False: all subsequent find operations will not raise
+ exception FindFailed. Instead, explicit find operations such as
+ :py:meth:`Region.find` will return *None*. Implicit find operations
+ (action functions) such as :py:meth:`Region.click` will do
+ nothing and return 0.
+
+ .. py:method:: getThrowException()
+
+ :return: ``True`` or ``False``
+
+ Get the current setting as True or False (after start of script, this is True by
+ default) in this region.
+
+.. _GroupingMethodCallsWithRegion:
+
+Grouping Method Calls ( with Region: )
+--------------------------------------
+
+Instead of::
+
+ # reg is a region object
+ if not reg.exists(image1):
+ reg.click(image2)
+ reg.wait(image3, 10)
+ reg.doubleClick(image4)
+
+you can group methods applied to the same region using Python's ``with`` syntax::
+
+
+ # reg is a region object
+ with reg:
+ if not exists(image1):
+ click(image2)
+ wait(image3, 10)
+ doubleClick(image4)
+
+All methods inside the ``with`` block that have the region omitted are redirected to the
+region object specified at the ``with`` statement.
+
+**Note for Sikuli X versions up to rc3**
+
+This should work for Regions and Region-like objects (Region, Screen, App.window()).
+Match objects have to be made a Region explicitly using ``Region(some_match)``.
+
+This is a general workaround when facing any problems using ``with some_region:``.
+
+Special Methods for Developers
+------------------------------
+
+Here we document Region methods, that might be helpful, when developing complex scripts
+with its own API, as it is the fact, when developing an :ref:`Extension <sikuliextensions>`.
+
+Be aware, that these might change without notice (should not be, but might be ;-).
+
+These two methods might help to implement more generic functions than just find() and click().
+
+.. py:class:: Region
+
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getRegionFromPSRM( PSRM )
+
+ Returns a new Region object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match is returned. In case RM, just a copy of the given region is returned.
+
+ :params PSRM: a Pattern, String, Region or Match object
+ :return: a new Region object
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getLocationFromPSRML( PSRML )
+
+ Returns a new Location object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match's target offset position is returned. In case RM, just a copy of the given region's respective location (center or target offset) is returned.
+
+ :params PSRML: a Pattern, String, Region, Match or Location object
+ :return: a new Location object
diff --git a/Docs/Python/build/html/_sources/screen.txt b/Docs/Python/build/html/_sources/screen.txt
new file mode 100644
index 0000000..1eb0829
--- /dev/null
+++ b/Docs/Python/build/html/_sources/screen.txt
@@ -0,0 +1,268 @@
+Screen
+======
+
+.. py:class:: Screen
+
+Class Screen is there, to have a representation for a pysical monitor where the
+capturing process (grabbing a rectangle from a screenshot, to be used for further
+processing with find operations is implemented. For :ref:`Multi Monitor Environments
+<MultimonitorEnvironments>` it contains features to map to the relevant monitor.
+
+Since Screen extends class :py:class:`Region`, all methods of
+class Region can be used with a screen object.
+
+Of special interest might be the grouping of region method calls using ``with:`` in Multi Monitor
+Environments: use it for other screens, than the default/primary screen, where
+you have this feature by default.
+
+Be aware, that using the whole screen for find
+operations may have an impact on performance. So if possible either use ``setROI()`` or
+restrict a find operation to a smaller region object (e.g. ``reg.find()``) to speed up
+processing.
+
+
+Screen: Setting, Getting Attributes and Information
+---------------------------------------------------
+
+.. py:class:: Screen
+
+ .. py:method:: Screen([id])
+
+ Create a new Screen object
+
+ :param id: an integer number indicating which monitor in a multi-monitor
+ environment.
+
+ :return: a new screen object.
+
+ It creates a new screen object, that represents the default/primary monitor
+ (whose id is 0), if id is omitted. Numbers 1 and higher represent additional
+ monitors that are available at the time, the script is running (read for
+ details).
+
+ Using numbers, that do not represent an existing monitor, will stop the
+ script with an error. So you may either use getNumberScreens() or exception
+ handling, to avoid this.
+
+ Note: If you want to access the default/primary monitor ( Screen(0) )
+ without creating a new screen object, use the constant reference SCREEN,
+ that is initiated when your script starts: SCREEN=Screen(0).
+
+
+ .. py:method:: getNumberScreens()
+
+ Get the number of screens in a multi-monitor environment at the time the
+ script is running
+
+ .. py:method:: getBounds()
+
+ Get the dimensions of monitor represented by the screen object.
+
+ :return: a rectangle object
+
+ The width and height of the rectangle denote the dimensions of the monitor
+ represented by the screen object. These attributes are obtained from the
+ operating system. They can not be modified using Sikuli script.
+
+.. _DefaultScreen:
+
+Screen as (Default) Region
+--------------------------
+
+Normally all region methods are used as reg.find(PS), where reg is a region object
+(or a screen or a match object). If written as find(PS) it acts on the default
+screen being the implicit region in this case (mapped to the constant reference
+SCREEN). In Multi Monitor Environments this is the primary monitor (use the
+constant reference SCREEN, to access it all the time), that normally is Screen(0),
+but might be another Screen() object depending on your platform.
+
+So its a convenience feature, that can be seen as an implicit use of the python
+construct '''with object:'''.
+
+On the other hand this may slow down processing speed, because of time consuming
+searches. So to speed up processing, saying region.find() will restrict the search
+to the specified rectangle. Another possibility is to say setROI() to restrict the
+search for all following find operations to a smaller region than the whole screen.
+This will speed up processing, if the region is significantly smaller than the whole
+screen.
+
+Capturing
+---------
+
+Capturing is the feature, that allows to grab a rectangle from a screenshot, to save
+it for later use. At each time, a capturing is initiated, a new screenshot is taken.
+
+There are two different versions: the first one :py:meth:`Screen.capture` saves the
+content of the selected rectangle in a file and returns its file name, whereas the
+second one :py:meth:`Screen.selectRegion` just returns the position and dimension of
+the selected rectangle.
+
+Both features are available in the IDE via the buttons in the toolbar.
+
+.. py:class:: Screen
+
+ .. py:method:: capture([region | rectangle | text])
+ capture(x,y,w,h)
+
+ :param region: an existing region object.
+ :param rectangle: an existing rectangle object (e.g., as a return value of
+ another region method).
+ :param text: text to display in the middle of the screen in the interactive
+ mode.
+ :param x: x position of the rectangle to capture
+ :param y: y position of the rectangle to capture
+ :param w: width of the rectangle to capture
+ :param h: height of the rectangle to capture
+
+ :return: the path to the file, where the captured image was saved. In
+ interactive mode, the user may cancel the capturing, in which case
+ *None* is returned.
+
+ **Interactive Mode:** The script enters the screen-capture mode like when
+ clicking the button in the IDE, enabling the user to capture a rectangle on
+ the screen. If no *text* is given, the default "Select a region on the screen"
+ is displayed.
+
+ If any arguments other than text are specified, capture() automatically
+ captures the given rectangle of the screen. In any case, a new screenshot is
+ taken, the content of the selected rectangle is saved in a temporary file.
+ The file name is returned and can be used later in the script as a reference
+ to this image. It can be used directly in cases, where a parameter PS is
+ allowed (e.g. :py:meth:`Region.find`, :py:meth:`Region.click`, ...).
+
+ .. py:method:: selectRegion([text])
+
+ Select a region on the screen interactively
+
+ :param text: Text to display in the middle of the screen.
+ :return: a new :py:class:`Region` object or None, if the user cancels the capturing process.
+
+ **text** is displayed for about 2 seconds in the middle of the screen.
+ If **text** is omitted, the default "Select a region on the screen" is
+ displayed.
+
+ The interactive capture mode is entered and allows the user to select a
+ region the same way as using the selection tool in the IDE.
+
+ **Note:** You should check the result, since the user may cancel the capturing.
+
+.. _MultimonitorEnvironments:
+
+Multi-Monitor Environments
+--------------------------
+
+If more than one monitor is available, Sikuli is able to manage regions and click
+points on these monitors.
+
+.. image:: multi.jpg
+
+The base is the coordinate system (picture above), that positions the primary
+monitor with its upper left corner at (0,0) extending the x-direction to the right
+and the y-direction towards the lower boundary of the screen. The position of
+additional monitors can be configured in the operating system to be on either side
+of the primary monitor, with different positions and sizes. So monitors left of the
+primary will have pixels with negative x-values and monitors above will have
+negative y-values (left and above both x and y are negative).
+
+At script start, Sikuli gets the relevant information from the operating system and
+creates respective screen objects, that have an ID (0 for the first or primary
+monitor, 1 and higher for additional monitors with a maximum of one less than the
+number of screens) and know the rectangle, they cover in the coordinate system.
+These informations are readonly for a script.
+
+These predefined screen objects can be accessed with Screen(0), Screen(1), ... and
+are normally used to create your own screen objects. The possibility to use the
+region methods on a default region mapped to the primary monitor is implemented with
+the constant reference SCREEN. This concept is only available for the primary
+monitor.
+
+How to get the relevant information:
+
+* :py:func:`getNumberScreens() <Screen.getNumberScreens>` returns the number of available screens.
+* :py:func:`getBounds() <Screen.getBounds>` returns the rectangle covered by the default/primary
+ monitor.
+* :py:meth:`Screen.getBounds` returns the rectangle covered by a screen object
+ created using :py:meth:`Screen(id) <Screen.Screen>`.
+
+Be aware: Changes in your system settings are only recognized by the IDE, when it is
+started.
+
+**Windows:** The monitor, that is the first one based on hardware mapping (e.g. the
+laptop monitor), will always be Screen(0). In the Windows settings it is possible to
+place the taskbar on one of the secondary monitors, which makes it the primary
+monitor getting the base coordinates (0,0). The other available monitors are mapped
+around based on your settings. But the Sikuli internal mapping is not changed, so the primary
+monitor might be any of your Screen() objects. Sikuli takes care for that and maps
+SCREEN always to the primary monitor (the one with the (0,0) coordinates).
+So for example you have a laptop with an external monitor, that shows the taskbar
+(is primary monitor):
+
+* SCREEN maps to Screen(1)
+* Screen(0) is your laptop monitor
+
+**Mac:** The monitor, that has the System Menu Bar, is always Screen(0) and mapped
+to the default SCREEN.
+
+**Linux** (Under construction)
+
+With its rectangle, a screen object is always identical with the monitor
+it was created using :py:meth:`Screen(id) <Screen.Screen>`. Using :py:meth:`Region.setROI` to restrict
+the region of interest for find operations has no effect on the base rectangle of
+the screen object.
+
+On the other hand region objects and location objects can be positioned anywhere in
+the coordinate system. Only when a find operation or a click action has to be
+performed, the objects rectangle or point has to be inside the rectangle of an
+existing monitor (basically repersented by Screen(0), Screen(1), ...). When
+this condition is met, everything works as expected and known from a single monitor
+system.
+
+With finding and acting there are the following exceptions:
+
+* **Point Outside:** a click point is outside any monitor rectangle. The
+ clickpoint will be mapped to the edges or corners of the primary monitor
+ according to the relative position:
+
+ * to the edges if its x or y value is in the range of the respective edge
+ (right, left, above, below)i
+ * to the corners, if x and y are outside any range of any edge (left/above ->
+ upper left corner, ...)
+
+* **Region Outside:** a region is completely outside any monitor
+
+ * a click action is handled in thesame way as **Point Outside**
+ * a find operation will always fail
+
+* **Region Partially Outside:** a region is partially outside a monitor but
+ not overlapping another monitor
+
+ * a click action is handled in the same way as **Point Outside**
+ * a find operation will be carried out only in the part of region within the
+ bounds of the monitor, excluding the area outside the monitor.
+
+* **Region Across Monitors:** a region lies across multiple monitors:
+
+ * a click action is handled in the same way as **Point Outside**
+ * a find operation will be restricted to the region within the bounds of the
+ monitor that has a smaller *id*.
+
+
+An interactive capture (the user is asked to select an image or a rectangle via
+:py:meth:`Screen.capture` or :py:meth:`Screen.selectRegion`) will automatically be
+restricted to the monitor, where it was started.
+
+A scripted capture using a rectangle or a region
+(i.e. :py:meth:`Screen.capture( region | rectangle ) <Screen.capture>`),
+will be handled accordingly:
+
+* **Region Outside:** no image is captured, *None* is returned
+* **Region Partially Outside:** the returned image will only cover the part
+ inside the monitor
+* **Region Across Monitors:** the returned image will only cover the part
+ inside the monitor with the smallest id.
+
+Based on the knowledge of your monitor configuration, you can now start some further
+evaluations using e.g. :py:meth:`Region.hover` together with
+:py:func:`setShowActions(True) <setShowActions>` and highlighting using :py:meth:`Region.highlight`.
+
+
diff --git a/Docs/Python/build/html/_sources/sikuli-script-index.txt b/Docs/Python/build/html/_sources/sikuli-script-index.txt
new file mode 100644
index 0000000..2b53abf
--- /dev/null
+++ b/Docs/Python/build/html/_sources/sikuli-script-index.txt
@@ -0,0 +1,14 @@
+Everything about Sikuli Script
+==============================
+
+.. toctree::
+ :maxdepth: 2
+
+ globals
+ region
+ screen
+ location
+ match
+ pattern
+ finder
+ keys
diff --git a/Docs/Python/build/html/_sources/toc.txt b/Docs/Python/build/html/_sources/toc.txt
new file mode 100644
index 0000000..93307e2
--- /dev/null
+++ b/Docs/Python/build/html/_sources/toc.txt
@@ -0,0 +1,40 @@
+Table of Contents
+=================
+
+Getting Started
+---------------
+
+Tutorials
+^^^^^^^^^
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ tutorials/index
+
+FAQ
+^^^
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ faq/*
+
+Complete Guide to Sikuli Script
+-------------------------------
+.. toctree::
+ :maxdepth: 3
+ :glob:
+
+ new-in-sikulix
+ sikuli-script-index
+
+For Hackers and Developers
+--------------------------
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ devs/*
+ contributing
+ changes
diff --git a/Docs/Python/build/html/_sources/tutorials/checkone/checkone.txt b/Docs/Python/build/html/_sources/tutorials/checkone/checkone.txt
new file mode 100644
index 0000000..179bad5
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/checkone/checkone.txt
@@ -0,0 +1,72 @@
+Check the Right Checkbox
+========================
+
+This tutorial demonstrates how to check a particular checkbox when there are
+multiple checkboxes in a window. Consider the following window, which is the window
+for setting the preferences for *Dock* on Mac, and we want to check the checkbox
+indicated by the circle that reads "Minimize Windows into Application Icons."
+
+.. image:: scenario.png
+ :width: 550
+
+Simply looking for the image of the checkbox like below will not work.
+
+.. sikulicode::
+
+ click("checkbox.png")
+
+Sikuli does not know which checkbox we are referring to; it simply clicks on the
+first one it finds. Below is what we will do instead.
+
+First we want to obtain the region covering the content area of the *Dock* pane. One
+way to accomplish this is to use a spatial operator to obtain a region below the
+title bar of the *Dock* pane. The figure below illustrates this strategy.
+
+.. image:: find_title_and_below.png
+ :width: 550
+
+The Sikuli script to do this is:
+
+.. sikulicode::
+
+ r = find("title.png").below(300)
+
+It finds the title bar and then extend the matched region 300 pixels below, using
+the spatial operator :py:meth:`below <Region.below>`. The resulting region is
+assigned to the variable *r*, which is the orange rectangle in the figure above.
+
+Next, we can search within the content region *r* for the label text of the checkbox
+we want to check and click on it.
+
+.. sikulicode::
+
+ t = r.find("label.png")
+ click(t)
+
+If we do ``click(t)``, Sikuli will click on the center of the label. However, what
+we want is to click on the right of the label where the check box is.
+
+Sikuli IDE provides a convenient interface for specifying where to click relative to
+the center of a pattern. This is known as the *target offset*. The interface is
+shown below.
+
+.. image:: interface_offset.png
+ :width: 500
+
+In this interface, we can click on the checkbox to indicate the desired location of
+the click point. In this example, the offset is then determined to be -137 in x,
+which means 137 pixels to the left of the center of the text label. After selecting
+the offset, the thumbnail in the script editor will be updated with a small red
+cross to indicate the new click point.
+
+.. sikulicode::
+
+ t = r.find("label_offset.png")
+ click(t)
+
+Then, the call ``click(t)`` will do the right thing, clicking on the checkbox
+instead of the center of the text label.
+
+
+
+
diff --git a/Docs/Python/build/html/_sources/tutorials/goodbyetrash/goodbyetrash.txt b/Docs/Python/build/html/_sources/tutorials/goodbyetrash/goodbyetrash.txt
new file mode 100644
index 0000000..069e888
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/goodbyetrash/goodbyetrash.txt
@@ -0,0 +1,33 @@
+Goodbye Trash (Mac)
+===================
+
+In this tutorial, we will write a Sikuli Script to automate the operation of
+clearing the content of the trash bin. On Mac OS X, this operation takes three
+steps:
+
+1. Click on the Trash icon in the dock
+2. Click on the Empty button in the container window
+3. Click on the Empty Trash button to confirm
+
+To automate this operation, first we need to capture the images of the GUI elements
+that need to be clicked.
+
+.. image:: trash_capture1.png
+.. image:: trash_capture2.png
+.. image:: trash_capture3.png
+
+These captured images will be inserted into the Script editor.
+
+.. image:: trash_editor.png
+
+Then, we can write a sequence of three :py:meth:`click() <Region.click>` statements
+to click on the three elements that need to be clicked in order.
+
+.. image:: trash_code.png
+
+Notice how closely these three lines of code are mapped to the text description of
+the three-step operation earlier. We simply replace the description of each GUI
+element (e.g., Trash bin) by its image directly. How intuitive it is!
+
+Before running the script, make sure the Trash icon is visible on the screen,
+otherwise Sikuli Script can not find it.
diff --git a/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-mac.txt b/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-mac.txt
new file mode 100644
index 0000000..95cc065
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-mac.txt
@@ -0,0 +1,75 @@
+Hello World (Mac)
+=================
+
+Let us begin with a customary Hello World example!
+
+You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:
+
+1. Click on that element
+2. Type a string in that element
+
+The goal of the Hello World script is to automatically type "Hello World" into the
+spotlight search box, like this:
+
+.. image:: ./spotlight-goal.png
+
+Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+Spotlight symbol in the upper-right corner, so that we can tell Sikuli Script what
+to look for and click on.
+
+To simulate a mouse click on the Spotlight symbol, we are going to use the
+:py:meth:`click <Region.click>` function. To tell Sikuli how the target looks like,
+we need to capture the target's image on the screen.
+
+Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.
+
+.. image:: ./toolbar_camera.png
+
+The second method is to press a hot-key (Command + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE's window. You can
+minimize the IDE's window and use this hot-key to switch to the capturing mode.
+
+In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the spotlight
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.
+
+.. image:: ./spotlight-capture.png
+
+After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.
+
+.. image:: ./spotlight-inserted.png
+
+Now, you can write the click function using this image as an argument to tell Sikuli
+to click on spotlight symbol.
+
+.. image:: ./spotlight-click.png
+
+As a convenience, Sikuli IDE provides a *Command List* on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.
+
+.. image:: ./IDE-commandlist.png
+
+Locate the click() function in the list and click on it. If **Auto Capture** is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.
+
+The next step is to tell Sikuli to enter the string "Hello World" into spotlight's
+search box, which can be done with a simple :py:meth:`type <Region.type>` function.
+
+.. image:: ./spotlight-type.png
+
+This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the spotlight symbol, we can expect
+the spotlight search box will be the input that has the focus.
+
+Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!
+
diff --git a/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-win.txt b/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-win.txt
new file mode 100644
index 0000000..031b27f
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/helloworld/helloworld-win.txt
@@ -0,0 +1,75 @@
+Hello World (Windows)
+=====================
+
+Let us begin with a customary Hello World example!
+
+You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:
+
+1. Click on that element
+2. Type a string in that element
+
+The goal of the Hello World script is to automatically type "Hello World" into the
+*Start* menu search box, like this:
+
+.. image:: ./start-goal.png
+
+Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+*Start* menu symbol that is usually located in the lower-left corner of the desktop.
+Using this screenshot, we can tell Sikuli script what to click on.
+
+To simulate a mouse click on the *Start* symbol, we are going to use the
+:py:meth:`click <Region.click>` function. To tell Sikuli how the *Start* symbol look
+like, we need to capture its image on teh screen.
+
+Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.
+
+.. image:: ./toolbar_camera.png
+
+The second method is to press a hot-key (Ctrl + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE's window. You can
+minimize the IDE's window and use this hot-key to switch to the capturing mode.
+
+In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the *Start*
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.
+
+.. image:: ./start-capture.png
+
+After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.
+
+.. image:: ./start-inserted.png
+
+Now, you can write the click function using this image as an argument to tell Sikuli
+to click on start symbol.
+
+.. image:: ./start-click.png
+
+As a convenience, Sikuli IDE provides a *Command List* on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.
+
+.. image:: ./IDE-commandlist.png
+
+Locate the click() function in the list and click on it. If **Auto Capture** is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.
+
+The next step is to tell Sikuli to enter the string "Hello World" into search box,
+which can be done with a simple :py:meth:`type <Region.type>` function.
+
+.. image:: ./start-type.png
+
+This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the *Start* symbol, we can expect
+the search box will be the input that has the focus.
+
+Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!
+
diff --git a/Docs/Python/build/html/_sources/tutorials/index.txt b/Docs/Python/build/html/_sources/tutorials/index.txt
new file mode 100644
index 0000000..0ba17b2
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/index.txt
@@ -0,0 +1,16 @@
+Tutorials
+=========
+
+.. toctree::
+ :maxdepth: 2
+
+ helloworld/helloworld-mac
+ helloworld/helloworld-win
+ goodbyetrash/goodbyetrash
+ uncheckall/uncheckall
+ checkone/checkone
+ sliders/sliders
+ surveillance/surveillance
+ resize/resize
+
+* Slide: `Practical Sikuli: using screenshots for GUI automation and testing <http://www.slideshare.net/vgod/practical-sikuli-using-screenshots-for-gui-automation-and-testing>`_.
diff --git a/Docs/Python/build/html/_sources/tutorials/resize/resize.txt b/Docs/Python/build/html/_sources/tutorials/resize/resize.txt
new file mode 100644
index 0000000..225d9a4
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/resize/resize.txt
@@ -0,0 +1,88 @@
+Resizing a Window
+=================
+
+This tutorial demonstrates how to use Sikuli script to resize a window by dragging
+its bottom-right corner. In order to do so, you have to evaluate the current
+position of this corner on the screen, move the mouse pointer to the applicable
+click point and then perform one or more drag actions.
+
+.. sikulicode::
+
+ def resizeApp(app, dx, dy):
+ switchApp(app)
+ corner = find(Pattern("SafariBR.png").targetOffset(3,14))
+
+ drop_point = corner.getTarget().offset(dx, dy)
+ dragDrop(corner, drop_point)
+
+ resizeApp("Safari", 50, 50)
+
+
+This example defines a function "resizeApp" to enlarge a window on a Mac, and then call
+the function to enlarge the size of Safari by 50x50 pixels. There are several approaches to do this task. The simplest one is directly looking
+for the corner and drag it to enlarge the window.
+
+
+In addition to this simplest approach, we also want to show you more possible ways
+to do the same thing. The following example demonstrates how to use the :ref:`spatial
+operators <ExtendingaRegion>` to extend or restrict your searching regions.
+
+The approach to find this corner is to first identify the most characteristic corner
+of the window (mostly the one with the window buttons) and then try to find the
+other relevant corners, to be sure you get the click point you need. The strategy is
+illustrated below. We want to find the top-right corner, then go to the right to
+find the top-right corner, then go below to find the bottom-right corner.
+
+.. image:: Safari_spatial.png
+
+The script that implements this plan can be written as below:
+
+.. sikulicode::
+
+ #setShowActions(True) # debug
+ switchApp("Safari") # get the frontmost Safari window active
+
+ (clickOffsetX, clickOffsetY) = (3, 18) # evaluated using the preview in IDE
+ mTL = find("SafariTL.png") # find top left
+ #print mTL; hover(mTL) # debug
+
+ mTR = mTL.nearby(200).right().find("SafariTR.png") # find top right
+
+ #print mTR; hover(mTR) # debug
+ mBR = mTR.below().find("SafariBR.png") # find bottom right, the target corner
+ #print mBR # debug
+
+ # move mouse to click point
+ hover(mBR.getCenter().offset(clickOffsetX, clickOffsetY))
+ #exit() # debug
+
+ mouseDown(Button.LEFT) # press and hold left button
+ # move mouse to a new location, may be repeated with other values
+ mouseMove(Env.getMouseLocation().offset(10, 10))
+ mouseUp() # release mouse button
+
+
+The workflow and the mouse-move to the click point can be compressed to a one-liner (no
+check on the title in this case).
+
+.. sikulicode::
+
+ hover(find("SafariTL.png").nearby(200).right().find("SafariTR.png").below().find("SafariBR.png").getCenter().offset(3,18))
+
+General comments:
+
+* whenever possible the find operations are restricted to a region, that should
+ contain the relevant match, to minimize the risk, that something else is
+ found. On top this speeds it up.
+* this example could easily be turned into a helper function, where all
+ images and variables can be given as parameters.
+* the click point was evaluated in the IDE using the preview window, but
+ then put in the code for flexibility and readability.
+* the low level mouse functions are used, so you would be more
+ flexible with continuous movements.
+* the development approach was, to first get everything running
+ to evaluate the relevant corner. In this phase, the comments
+ having a "# debug" were all uncommented to have some feedback.
+ Especially setShowActions() and exit() are very helpful.
+
+
diff --git a/Docs/Python/build/html/_sources/tutorials/sliders/sliders.txt b/Docs/Python/build/html/_sources/tutorials/sliders/sliders.txt
new file mode 100644
index 0000000..a024159
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/sliders/sliders.txt
@@ -0,0 +1,65 @@
+Working with Sliders
+====================
+
+In this tutorial, we will learn how to use :py:meth:`dragDrop() <Region.dragDrop>`
+and :ref:`spatial operators <ExtendingaRegion>` by writing a number of scripts to
+manipulate sliders.
+
+Suppose we wish to lower the speaking rate of the Text to Speech function. We want
+to drag the slider to the slow side in the Speech preferences window shown below.
+
+.. image:: speech.png
+
+The function that can perform the dragging is :py:meth:`dragDrop()
+<Region.dragDrop>`. This function takes two images as arguments. The first image
+describes the source GUI object to drag and the second image describes the
+appearance of the destination location where the GUI object should be dragged to and
+dropped.
+
+Let us capture the source and destination images respectively.
+
+.. sikulicode::
+
+ dragDrop("thumb.png", "slow.png")
+
+What happen if there are more than two sliders. How can we make sure the right
+slider is dragged? The above example works because the particular window only has
+one slider. How can we deal with cases when there are several instances of similar
+looking GUI components? Let us consider the Sound preferences window shown below.
+
+.. image:: sound.png
+
+Suppose we wish to lower the Alert volume. To make sure Sikuli Script drags the
+right slider, we need a way to tell Sikuli Script to look for the one that is to the
+right of the Alert volume label, not the one next to the Output volume label. Sikuli
+Script provides a set of spatial operators to do exactly this. Here we will apply
+the :py:meth:`right() <Region.right>` operator as follows.
+
+.. sikulicode::
+
+ t = find("alert.png").right().find("thumb.png")
+
+This statement tells Sikuli Script to first find the Alert volume label and then
+find the slider thumb only within the region strictly to the right of the result of
+the first find. The slider thumb found is then stored in the variable t. Now that we
+have identified the desired slider thumb, we can call :py:meth:`dragDrop()
+<Region.dragDrop>` to drag it to the left by giving the image of the Alter volume as
+the target.
+
+.. sikulicode::
+
+ dragDrop(t, "alert.png")
+
+In the above example, we use the image of the Alert volume label to implicitly guide
+the direction of dragging to the left. It is also possible to use relative
+coordinates to explicitly drag to the left, as shown below.
+
+.. sikulicode::
+
+ dragDrop(t, [t.x - 200, t.y])
+
+Here, the (x,y) coordinates of the slider thumb are accessible as the attributes of
+t. We can thus calculate the position 200 pixels to the left of t and ask Sikuli
+Script to drag the thumb to that position.
+
+
diff --git a/Docs/Python/build/html/_sources/tutorials/surveillance/surveillance.txt b/Docs/Python/build/html/_sources/tutorials/surveillance/surveillance.txt
new file mode 100644
index 0000000..4b850aa
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/surveillance/surveillance.txt
@@ -0,0 +1,175 @@
+Desktop Surveillance
+====================
+
+Sikuli Script can be used to perform **desktop surveillance**. In this tutorial, we will
+go through a number of exercises to create scripts that can monitor the screen and
+notify us when certain interesting visual event happens.
+
+
+Facebook App
+------------
+
+The first exercise is to create a Facebook app to periodically check our Facebook
+homepage visually and see if a particular friend has recently updated the status
+message. One easy way to detect this event is to look for the friend's face image on
+our Facebook homepage. If found, the friend must have posted a new status message.
+If not found, we should check back again in a few moments.
+
+Let's implement this operation using a ``while:`` loop. First we need to capture a
+screenshot of the friend's face image.
+
+.. image:: facebook_capture.png
+
+To check if the friend's face can be seen on the screen, we use :py:meth:`exists()
+<Region.exists>`,
+which returns True when the face image is found. We set the looping condition to Not
+Found so that the while loop will terminate only when the face image is found. We
+add a :py:func:`sleep(n) <sleep>` statement in the body of the loop to introduce a 5
+second interval between attempts to look for the face image on the screen.
+
+.. sikulicode::
+
+ while not exists("obama.png"):
+ sleep(5)
+
+Alternatively, Sikuli provides a convenient :py:meth:`wait() <Region.wait>` function
+that periodically checks the screen to wait for a given image pattern to appear.
+Using wait(), the above code can be rewritten as:
+
+.. sikulicode::
+
+ wait("obama.png", FOREVER)
+
+The constant *FOREVER* means we want Sikuli to wait indefinitely. If we do not want
+to wait forever, we can replace *FOREVER* with a number to indicate the number of
+seconds to wait until Sikuli should giveup.
+
+.. sikulicode::
+
+ wait("obama.png", 3600) # wait for an hour
+
+After the while loop exits or the wait function returns, we can call
+:py:func:`popup` to display a notification message.
+
+.. sikulicode::
+
+ popup("Obama has updated his message")
+
+This will display a popup message that looks like below:
+
+.. image:: facebook_popupmsg.png
+
+Now we can run this Sikuli Facebook App, sit back and relax, and get notified when
+our friend updates his message.
+
+Skype App
+---------
+
+In the previous exercise, we wrote a script to detect an image's appearance. In this
+exercise, we will do the opposite --- *detecting the disappearance of a visual
+pattern*.
+
+Skype is a great tool that allows us to stay in close contact with our friends even
+if they are in remote parts of the world. However, there might be some unfortunate
+circumstances we may want to avoid being seen online by a certain individual.
+Perhaps the individual talks too much. Perhaps we owe the individual some money. It
+would be nice to know when the individual is offline so that it is safe to get
+online. While Skype does provide a feature to notify us when an individual is
+online, there is no notification feature when the opposite happens.
+
+An automatic logoff notifier would be desirable to deal with this situation. Let us
+build this tool using Sikuli Script. Notice that if an individual is no longer
+online, the combined visual pattern of the green status icon and the individual's
+screen name will disappear. Thus, we can take a screenshot that includes both the
+green icon and the screen name as follows.
+
+.. image:: skype_capture.png
+
+Then, we can write a Sikuli Script to watch for the disappearance of the screenshot
+image we just captured.
+
+.. sikulicode::
+
+ while exists("vgod.png"):
+ sleep(5)
+
+ popup("vgod just logged off")
+
+This script is very similar to the one in the previous exercise. The only difference
+is the removal of the NOT operator from the condition statement for the while loop,
+since we are trying to do the opposite.
+
+Another way to wait for the disappearance of an image is to use the
+:py:meth:`waitVanish() <Region.waitVanish>` function. The above script can be
+rewritten as follows:
+
+.. sikulicode::
+
+ waitVanish("vgod.png", FOREVER)
+ popup("vgod just logged off")
+
+
+Bus Arrival Notifier
+--------------------
+
+The third exercise is to build a bus arrival notification tool. For many bus riders,
+online GPS-based tracking services are very useful. Instead of patiently standing
+outside at a bust stop, braving the freezing wind in the winter or scorching sun in
+the summer, riders can sit comfortably inside in front of their computers, checking
+emails, updating Facebook status, or watching YouTube? videos, or what have you.
+They only need to look at the map every few moments to check the location of the bus
+symbol on the map. Only when the bus is close enough do they have to finally get out
+and walk to the bus top.
+
+Since we care about whether the bus is getting close to the stop, we only need to
+look at the neighborhood around the stop. Thus, we can resize the browser to show
+just that portion of the map, while leaving a lot of screen space to do something
+else, in this case, reading CNN news.
+
+.. image:: bus_fullscreen.png
+
+Let us write a Sikuli Script to do the bus tracking for us. It is possible to define
+a region and ask Sikuli Script to focus only on that region to search for a
+particular visual pattern. This way, Sikuli don't have to waste precious computing
+cycles scanning the whole screen. To do so, let us click on the "select a region"
+button in the toolbar as indicated below.
+
+.. image:: bus_toolbar_region.png
+
+The entire screen will freeze and turn darker, similar to what happen in the screen
+capture mode. Simply draw a rectangle to cover the entire neighborhood map. The
+region covered by this rectangle is visually represented as a thumbnail image of the
+entire desktop where the region is shaded in red.
+
+.. image:: bus_region_thumbnail.png
+
+Next, we capture the screenshot image of the bus symbol so that we can tell Sikuli
+Script to watch for its appearance.
+
+.. image:: bus_capture_bus_symbol.png
+
+
+Now. we can write the following script to check the map and watch for the appearance
+of a bus symbol:
+
+.. sikulicode::
+
+ while not "region.png".inside().exists("bus.png"):
+ sleep(5)
+ popup("bus has arrived")
+
+Interpreting the meaning of the while loop is straightforward---while it is not the
+case that a bus symbol can be found inside the region, sleep for 5 seconds. In other
+words, the while loop will exit only when the bus symbol is found inside the region.
+Then, the popup statement will be executed to notify us the bus has arrived.
+
+Again, the same effect can be achived using :py:meth:`wait() <Region.wait>`. The
+script can be rewritten as:
+
+.. sikulicode::
+
+ "region.png".inside().wait("bus.png",FOREVER)
+ popup("bus has arrived")
+
+
+
diff --git a/Docs/Python/build/html/_sources/tutorials/uncheckall/uncheckall.txt b/Docs/Python/build/html/_sources/tutorials/uncheckall/uncheckall.txt
new file mode 100644
index 0000000..47ffeac
--- /dev/null
+++ b/Docs/Python/build/html/_sources/tutorials/uncheckall/uncheckall.txt
@@ -0,0 +1,31 @@
+Uncheck All Checkboxes
+======================
+
+In this tutorial, we will demonstrate how to use a ``for`` loop to interact with
+multiple instances of a GUI component. Suppose we want to uncheck all the check
+boxes in a window, such as the Sharing preferences window shown below:
+
+.. image:: uncheck_sharing.png
+
+
+Unfortunately, there is no "uncheck all" function available. The solution? Write a
+Sikuli Script to look for ALL the checked items and uncheck them automatically. The
+function needed for this operation is :py:meth:`findAll() <Region.findAll>`.
+
+First, let's capture the screenshot image of a checked item.
+
+.. image:: uncheck_capturing.png
+
+Then, we can insert the image into the ``findAll()`` function.
+
+.. image:: uncheck_findall.png
+
+``findAll()`` searches the entire screen for all the matching visual patterns and
+returns a list of locations of those similar patterns. This capability allows us to
+obtain all the checked items are on the screen. Then, we can simply write a for loop
+in standard Python syntax and call ``click()`` on each element in the list.
+
+.. image:: uncheck_code.png
+
+When this script is executed, Sikuli will find all the items that are currently
+checked and click on each item one by one in the loop.
diff --git a/Docs/Python/build/html/_static/ajax-loader.gif b/Docs/Python/build/html/_static/ajax-loader.gif
new file mode 100644
index 0000000..61faf8c
Binary files /dev/null and b/Docs/Python/build/html/_static/ajax-loader.gif differ
diff --git a/Docs/Python/build/html/_static/basic.css b/Docs/Python/build/html/_static/basic.css
new file mode 100644
index 0000000..a04c8e1
--- /dev/null
+++ b/Docs/Python/build/html/_static/basic.css
@@ -0,0 +1,540 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+ clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+ width: 100%;
+ font-size: 90%;
+}
+
+div.related h3 {
+ display: none;
+}
+
+div.related ul {
+ margin: 0;
+ padding: 0 0 0 10px;
+ list-style: none;
+}
+
+div.related li {
+ display: inline;
+}
+
+div.related li.right {
+ float: right;
+ margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+ padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+ float: left;
+ width: 230px;
+ margin-left: -100%;
+ font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+ list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+ margin-left: 20px;
+ list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+ margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+ border: 1px solid #98dbcc;
+ font-family: sans-serif;
+ font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+ width: 170px;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+ width: 30px;
+}
+
+img {
+ border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+ margin: 10px 0 0 20px;
+ padding: 0;
+}
+
+ul.search li {
+ padding: 5px 0 5px 20px;
+ background-image: url(file.png);
+ background-repeat: no-repeat;
+ background-position: 0 7px;
+}
+
+ul.search li a {
+ font-weight: bold;
+}
+
+ul.search li div.context {
+ color: #888;
+ margin: 2px 0 0 30px;
+ text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+ font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+ width: 90%;
+}
+
+table.contentstable p.biglink {
+ line-height: 150%;
+}
+
+a.biglink {
+ font-size: 1.3em;
+}
+
+span.linkdescr {
+ font-style: italic;
+ padding-top: 5px;
+ font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+ width: 100%;
+}
+
+table.indextable td {
+ text-align: left;
+ vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+ height: 10px;
+}
+
+table.indextable tr.cap {
+ margin-top: 10px;
+ background-color: #f2f2f2;
+}
+
+img.toggler {
+ margin-right: 3px;
+ margin-top: 3px;
+ cursor: pointer;
+}
+
+div.modindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+ visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+ visibility: visible;
+}
+
+div.body p.caption {
+ text-align: inherit;
+}
+
+div.body td {
+ text-align: left;
+}
+
+.field-list ul {
+ padding-left: 1em;
+}
+
+.first {
+ margin-top: 0 !important;
+}
+
+p.rubric {
+ margin-top: 30px;
+ font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+ clear: left;
+ float: left;
+ margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+ margin: 0 0 0.5em 1em;
+ border: 1px solid #ddb;
+ padding: 7px 7px 0 7px;
+ background-color: #ffe;
+ width: 40%;
+ float: right;
+}
+
+p.sidebar-title {
+ font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+ border: 1px solid #ccc;
+ padding: 7px 7px 0 7px;
+ margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding: 7px;
+}
+
+div.admonition dt {
+ font-weight: bold;
+}
+
+div.admonition dl {
+ margin-bottom: 0;
+}
+
+p.admonition-title {
+ margin: 0px 10px 5px 0px;
+ font-weight: bold;
+}
+
+div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+ padding: 1px 8px 1px 5px;
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+ border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+ border: 0 !important;
+}
+
+th {
+ text-align: left;
+ padding-right: 5px;
+}
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+ list-style: decimal;
+}
+
+ol.loweralpha {
+ list-style: lower-alpha;
+}
+
+ol.upperalpha {
+ list-style: upper-alpha;
+}
+
+ol.lowerroman {
+ list-style: lower-roman;
+}
+
+ol.upperroman {
+ list-style: upper-roman;
+}
+
+dl {
+ margin-bottom: 15px;
+}
+
+dd p {
+ margin-top: 0px;
+}
+
+dd ul, dd table {
+ margin-bottom: 10px;
+}
+
+dd {
+ margin-top: 3px;
+ margin-bottom: 10px;
+ margin-left: 30px;
+}
+
+dt:target, .highlighted {
+ background-color: #fbe54e;
+}
+
+dl.glossary dt {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.field-list ul {
+ margin: 0;
+ padding-left: 1em;
+}
+
+.field-list p {
+ margin: 0;
+}
+
+.refcount {
+ color: #060;
+}
+
+.optional {
+ font-size: 1.3em;
+}
+
+.versionmodified {
+ font-style: italic;
+}
+
+.system-message {
+ background-color: #fda;
+ padding: 5px;
+ border: 3px solid red;
+}
+
+.footnote:target {
+ background-color: #ffa;
+}
+
+.line-block {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.line-block .line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+ font-family: sans-serif;
+}
+
+.accelerator {
+ text-decoration: underline;
+}
+
+.classifier {
+ font-style: oblique;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+ overflow: auto;
+ overflow-y: hidden; /* fixes display issues on Chrome browsers */
+}
+
+td.linenos pre {
+ padding: 5px 0px;
+ border: 0;
+ background-color: transparent;
+ color: #aaa;
+}
+
+table.highlighttable {
+ margin-left: 0.5em;
+}
+
+table.highlighttable td {
+ padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+ background-color: transparent;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+
+tt.descclassname {
+ background-color: transparent;
+}
+
+tt.xref, a tt {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+ background-color: transparent;
+}
+
+.viewcode-link {
+ float: right;
+}
+
+.viewcode-back {
+ float: right;
+ font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+ margin: -1px -10px;
+ padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+ vertical-align: middle;
+}
+
+div.body div.math p {
+ text-align: center;
+}
+
+span.eqno {
+ float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+ at media print {
+ div.document,
+ div.documentwrapper,
+ div.bodywrapper {
+ margin: 0 !important;
+ width: 100%;
+ }
+
+ div.sphinxsidebar,
+ div.related,
+ div.footer,
+ #top-link {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/Docs/Python/build/html/_static/comment-bright.png b/Docs/Python/build/html/_static/comment-bright.png
new file mode 100644
index 0000000..551517b
Binary files /dev/null and b/Docs/Python/build/html/_static/comment-bright.png differ
diff --git a/Docs/Python/build/html/_static/comment-close.png b/Docs/Python/build/html/_static/comment-close.png
new file mode 100644
index 0000000..09b54be
Binary files /dev/null and b/Docs/Python/build/html/_static/comment-close.png differ
diff --git a/Docs/Python/build/html/_static/comment.png b/Docs/Python/build/html/_static/comment.png
new file mode 100644
index 0000000..92feb52
Binary files /dev/null and b/Docs/Python/build/html/_static/comment.png differ
diff --git a/Docs/Python/build/html/_static/contents.png b/Docs/Python/build/html/_static/contents.png
new file mode 100644
index 0000000..7fb8215
Binary files /dev/null and b/Docs/Python/build/html/_static/contents.png differ
diff --git a/Docs/Python/build/html/_static/doctools.js b/Docs/Python/build/html/_static/doctools.js
new file mode 100644
index 0000000..8614442
--- /dev/null
+++ b/Docs/Python/build/html/_static/doctools.js
@@ -0,0 +1,235 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+if (!window.console || !console.firebug) {
+ var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
+ "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
+ "profile", "profileEnd"];
+ window.console = {};
+ for (var i = 0; i < names.length; ++i)
+ window.console[names[i]] = function() {};
+}
+ */
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+ return decodeURIComponent(x).replace(/\+/g, ' ');
+};
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+ if (typeof s == 'undefined')
+ s = document.location.search;
+ var parts = s.substr(s.indexOf('?') + 1).split('&');
+ var result = {};
+ for (var i = 0; i < parts.length; i++) {
+ var tmp = parts[i].split('=', 2);
+ var key = jQuery.urldecode(tmp[0]);
+ var value = jQuery.urldecode(tmp[1]);
+ if (key in result)
+ result[key].push(value);
+ else
+ result[key] = [value];
+ }
+ return result;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+ function highlight(node) {
+ if (node.nodeType == 3) {
+ var val = node.nodeValue;
+ var pos = val.toLowerCase().indexOf(text);
+ if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
+ var span = document.createElement("span");
+ span.className = className;
+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+ node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+ document.createTextNode(val.substr(pos + text.length)),
+ node.nextSibling));
+ node.nodeValue = val.substr(0, pos);
+ }
+ }
+ else if (!jQuery(node).is("button, select, textarea")) {
+ jQuery.each(node.childNodes, function() {
+ highlight(this);
+ });
+ }
+ }
+ return this.each(function() {
+ highlight(this);
+ });
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+ init : function() {
+ this.fixFirefoxAnchorBug();
+ this.highlightSearchWords();
+ this.initIndexTable();
+ },
+
+ /**
+ * i18n support
+ */
+ TRANSLATIONS : {},
+ PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
+ LOCALE : 'unknown',
+
+ // gettext and ngettext don't access this so that the functions
+ // can safely bound to a different name (_ = Documentation.gettext)
+ gettext : function(string) {
+ var translated = Documentation.TRANSLATIONS[string];
+ if (typeof translated == 'undefined')
+ return string;
+ return (typeof translated == 'string') ? translated : translated[0];
+ },
+
+ ngettext : function(singular, plural, n) {
+ var translated = Documentation.TRANSLATIONS[singular];
+ if (typeof translated == 'undefined')
+ return (n == 1) ? singular : plural;
+ return translated[Documentation.PLURALEXPR(n)];
+ },
+
+ addTranslations : function(catalog) {
+ for (var key in catalog.messages)
+ this.TRANSLATIONS[key] = catalog.messages[key];
+ this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+ this.LOCALE = catalog.locale;
+ },
+
+ /**
+ * add context elements like header anchor links
+ */
+ addContextElements : function() {
+ $('div[id] > :header:first').each(function() {
+ $('<a class="headerlink">\u00B6</a>').
+ attr('href', '#' + this.id).
+ attr('title', _('Permalink to this headline')).
+ appendTo(this);
+ });
+ $('dt[id]').each(function() {
+ $('<a class="headerlink">\u00B6</a>').
+ attr('href', '#' + this.id).
+ attr('title', _('Permalink to this definition')).
+ appendTo(this);
+ });
+ },
+
+ /**
+ * workaround a firefox stupidity
+ */
+ fixFirefoxAnchorBug : function() {
+ if (document.location.hash && $.browser.mozilla)
+ window.setTimeout(function() {
+ document.location.href += '';
+ }, 10);
+ },
+
+ /**
+ * highlight the search words provided in the url in the text
+ */
+ highlightSearchWords : function() {
+ var params = $.getQueryParameters();
+ var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+ if (terms.length) {
+ var body = $('div.body');
+ window.setTimeout(function() {
+ $.each(terms, function() {
+ body.highlightText(this.toLowerCase(), 'highlighted');
+ });
+ }, 10);
+ $('<p class="highlight-link"><a href="javascript:Documentation.' +
+ 'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+ .appendTo($('#searchbox'));
+ }
+ },
+
+ /**
+ * init the domain index toggle buttons
+ */
+ initIndexTable : function() {
+ var togglers = $('img.toggler').click(function() {
+ var src = $(this).attr('src');
+ var idnum = $(this).attr('id').substr(7);
+ $('tr.cg-' + idnum).toggle();
+ if (src.substr(-9) == 'minus.png')
+ $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+ else
+ $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+ }).css('display', '');
+ if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
+ togglers.click();
+ }
+ },
+
+ /**
+ * helper function to hide the search marks again
+ */
+ hideSearchWords : function() {
+ $('#searchbox .highlight-link').fadeOut(300);
+ $('span.highlighted').removeClass('highlighted');
+ },
+
+ /**
+ * make the url absolute
+ */
+ makeURL : function(relativeURL) {
+ return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+ },
+
+ /**
+ * get the current relative url
+ */
+ getCurrentURL : function() {
+ var path = document.location.pathname;
+ var parts = path.split(/\//);
+ $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+ if (this == '..')
+ parts.pop();
+ });
+ var url = parts.join('/');
+ return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+ }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+ Documentation.init();
+});
diff --git a/Docs/Python/build/html/_static/down-pressed.png b/Docs/Python/build/html/_static/down-pressed.png
new file mode 100644
index 0000000..6f7ad78
Binary files /dev/null and b/Docs/Python/build/html/_static/down-pressed.png differ
diff --git a/Docs/Python/build/html/_static/down.png b/Docs/Python/build/html/_static/down.png
new file mode 100644
index 0000000..3003a88
Binary files /dev/null and b/Docs/Python/build/html/_static/down.png differ
diff --git a/Docs/Python/build/html/_static/file.png b/Docs/Python/build/html/_static/file.png
new file mode 100644
index 0000000..d18082e
Binary files /dev/null and b/Docs/Python/build/html/_static/file.png differ
diff --git a/Docs/Python/build/html/_static/ide-icon-64.png b/Docs/Python/build/html/_static/ide-icon-64.png
new file mode 100644
index 0000000..d3ffa43
Binary files /dev/null and b/Docs/Python/build/html/_static/ide-icon-64.png differ
diff --git a/Docs/Python/build/html/_static/jquery.js b/Docs/Python/build/html/_static/jquery.js
new file mode 100644
index 0000000..83589da
--- /dev/null
+++ b/Docs/Python/build/html/_static/jquery.js
@@ -0,0 +1,2 @@
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){retur [...]
\ No newline at end of file
diff --git a/Docs/Python/build/html/_static/minus.png b/Docs/Python/build/html/_static/minus.png
new file mode 100644
index 0000000..da1c562
Binary files /dev/null and b/Docs/Python/build/html/_static/minus.png differ
diff --git a/Docs/Python/build/html/_static/navigation.png b/Docs/Python/build/html/_static/navigation.png
new file mode 100644
index 0000000..1081dc1
Binary files /dev/null and b/Docs/Python/build/html/_static/navigation.png differ
diff --git a/Docs/Python/build/html/_static/plus.png b/Docs/Python/build/html/_static/plus.png
new file mode 100644
index 0000000..b3cb374
Binary files /dev/null and b/Docs/Python/build/html/_static/plus.png differ
diff --git a/Docs/Python/build/html/_static/pygments.css b/Docs/Python/build/html/_static/pygments.css
new file mode 100644
index 0000000..d79caa1
--- /dev/null
+++ b/Docs/Python/build/html/_static/pygments.css
@@ -0,0 +1,62 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #eeffcc; }
+.highlight .c { color: #408090; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #333333 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #208050 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #208050 } /* Literal.Number.Float */
+.highlight .mh { color: #208050 } /* Literal.Number.Hex */
+.highlight .mi { color: #208050 } /* Literal.Number.Integer */
+.highlight .mo { color: #208050 } /* Literal.Number.Oct */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/Docs/Python/build/html/_static/searchtools.js b/Docs/Python/build/html/_static/searchtools.js
new file mode 100644
index 0000000..cbafbed
--- /dev/null
+++ b/Docs/Python/build/html/_static/searchtools.js
@@ -0,0 +1,622 @@
+/*
+ * searchtools.js_t
+ * ~~~~~~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilties for the full-text search.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+ var step2list = {
+ ational: 'ate',
+ tional: 'tion',
+ enci: 'ence',
+ anci: 'ance',
+ izer: 'ize',
+ bli: 'ble',
+ alli: 'al',
+ entli: 'ent',
+ eli: 'e',
+ ousli: 'ous',
+ ization: 'ize',
+ ation: 'ate',
+ ator: 'ate',
+ alism: 'al',
+ iveness: 'ive',
+ fulness: 'ful',
+ ousness: 'ous',
+ aliti: 'al',
+ iviti: 'ive',
+ biliti: 'ble',
+ logi: 'log'
+ };
+
+ var step3list = {
+ icate: 'ic',
+ ative: '',
+ alize: 'al',
+ iciti: 'ic',
+ ical: 'ic',
+ ful: '',
+ ness: ''
+ };
+
+ var c = "[^aeiou]"; // consonant
+ var v = "[aeiouy]"; // vowel
+ var C = c + "[^aeiouy]*"; // consonant sequence
+ var V = v + "[aeiou]*"; // vowel sequence
+
+ var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
+ var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
+ var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
+ var s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ this.stemWord = function (w) {
+ var stem;
+ var suffix;
+ var firstch;
+ var origword = w;
+
+ if (w.length < 3)
+ return w;
+
+ var re;
+ var re2;
+ var re3;
+ var re4;
+
+ firstch = w.substr(0,1);
+ if (firstch == "y")
+ w = firstch.toUpperCase() + w.substr(1);
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w))
+ w = w.replace(re,"$1$2");
+ else if (re2.test(w))
+ w = w.replace(re2,"$1$2");
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w))
+ w = w + "e";
+ else if (re3.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ else if (re4.test(w))
+ w = w + "e";
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem))
+ w = stem + "i";
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step2list[suffix];
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step3list[suffix];
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem))
+ w = stem;
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem))
+ w = stem;
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+ w = stem;
+ }
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+ if (firstch == "y")
+ w = firstch.toLowerCase() + w.substr(1);
+ return w;
+ }
+}
+
+
+
+/**
+ * Simple result scoring code.
+ */
+var Scorer = {
+ // Implement the following function to further tweak the score for each result
+ // The function takes a result array [filename, title, anchor, descr, score]
+ // and returns the new score.
+ /*
+ score: function(result) {
+ return result[4];
+ },
+ */
+
+ // query matches the full name of an object
+ objNameMatch: 11,
+ // or matches in the last dotted part of the object name
+ objPartialMatch: 6,
+ // Additive scores depending on the priority of the object
+ objPrio: {0: 15, // used to be importantResults
+ 1: 5, // used to be objectResults
+ 2: -5}, // used to be unimportantResults
+ // Used when the priority is not in the mapping.
+ objPrioDefault: 0,
+
+ // query found in title
+ title: 15,
+ // query found in terms
+ term: 5
+};
+
+
+/**
+ * Search Module
+ */
+var Search = {
+
+ _index : null,
+ _queued_query : null,
+ _pulse_status : -1,
+
+ init : function() {
+ var params = $.getQueryParameters();
+ if (params.q) {
+ var query = params.q[0];
+ $('input[name="q"]')[0].value = query;
+ this.performSearch(query);
+ }
+ },
+
+ loadIndex : function(url) {
+ $.ajax({type: "GET", url: url, data: null,
+ dataType: "script", cache: true,
+ complete: function(jqxhr, textstatus) {
+ if (textstatus != "success") {
+ document.getElementById("searchindexloader").src = url;
+ }
+ }});
+ },
+
+ setIndex : function(index) {
+ var q;
+ this._index = index;
+ if ((q = this._queued_query) !== null) {
+ this._queued_query = null;
+ Search.query(q);
+ }
+ },
+
+ hasIndex : function() {
+ return this._index !== null;
+ },
+
+ deferQuery : function(query) {
+ this._queued_query = query;
+ },
+
+ stopPulse : function() {
+ this._pulse_status = 0;
+ },
+
+ startPulse : function() {
+ if (this._pulse_status >= 0)
+ return;
+ function pulse() {
+ var i;
+ Search._pulse_status = (Search._pulse_status + 1) % 4;
+ var dotString = '';
+ for (i = 0; i < Search._pulse_status; i++)
+ dotString += '.';
+ Search.dots.text(dotString);
+ if (Search._pulse_status > -1)
+ window.setTimeout(pulse, 500);
+ }
+ pulse();
+ },
+
+ /**
+ * perform a search for something (or wait until index is loaded)
+ */
+ performSearch : function(query) {
+ // create the required interface elements
+ this.out = $('#search-results');
+ this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
+ this.dots = $('<span></span>').appendTo(this.title);
+ this.status = $('<p style="display: none"></p>').appendTo(this.out);
+ this.output = $('<ul class="search"/>').appendTo(this.out);
+
+ $('#search-progress').text(_('Preparing search...'));
+ this.startPulse();
+
+ // index already loaded, the browser was quick!
+ if (this.hasIndex())
+ this.query(query);
+ else
+ this.deferQuery(query);
+ },
+
+ /**
+ * execute search (requires search index to be loaded)
+ */
+ query : function(query) {
+ var i;
+ var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
+
+ // stem the searchterms and add them to the correct list
+ var stemmer = new Stemmer();
+ var searchterms = [];
+ var excluded = [];
+ var hlterms = [];
+ var tmp = query.split(/\s+/);
+ var objectterms = [];
+ for (i = 0; i < tmp.length; i++) {
+ if (tmp[i] !== "") {
+ objectterms.push(tmp[i].toLowerCase());
+ }
+
+ if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
+ tmp[i] === "") {
+ // skip this "word"
+ continue;
+ }
+ // stem the word
+ var word = stemmer.stemWord(tmp[i]).toLowerCase();
+ var toAppend;
+ // select the correct list
+ if (word[0] == '-') {
+ toAppend = excluded;
+ word = word.substr(1);
+ }
+ else {
+ toAppend = searchterms;
+ hlterms.push(tmp[i].toLowerCase());
+ }
+ // only add if not already in the list
+ if (!$u.contains(toAppend, word))
+ toAppend.push(word);
+ }
+ var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
+
+ // console.debug('SEARCH: searching for:');
+ // console.info('required: ', searchterms);
+ // console.info('excluded: ', excluded);
+
+ // prepare search
+ var terms = this._index.terms;
+ var titleterms = this._index.titleterms;
+
+ // array of [filename, title, anchor, descr, score]
+ var results = [];
+ $('#search-progress').empty();
+
+ // lookup as object
+ for (i = 0; i < objectterms.length; i++) {
+ var others = [].concat(objectterms.slice(0, i),
+ objectterms.slice(i+1, objectterms.length));
+ results = results.concat(this.performObjectSearch(objectterms[i], others));
+ }
+
+ // lookup as search terms in fulltext
+ results = results.concat(this.performTermsSearch(searchterms, excluded, terms, Scorer.term))
+ .concat(this.performTermsSearch(searchterms, excluded, titleterms, Scorer.title));
+
+ // let the scorer override scores with a custom scoring function
+ if (Scorer.score) {
+ for (i = 0; i < results.length; i++)
+ results[i][4] = Scorer.score(results[i]);
+ }
+
+ // now sort the results by score (in opposite order of appearance, since the
+ // display function below uses pop() to retrieve items) and then
+ // alphabetically
+ results.sort(function(a, b) {
+ var left = a[4];
+ var right = b[4];
+ if (left > right) {
+ return 1;
+ } else if (left < right) {
+ return -1;
+ } else {
+ // same score: sort alphabetically
+ left = a[1].toLowerCase();
+ right = b[1].toLowerCase();
+ return (left > right) ? -1 : ((left < right) ? 1 : 0);
+ }
+ });
+
+ // for debugging
+ //Search.lastresults = results.slice(); // a copy
+ //console.info('search results:', Search.lastresults);
+
+ // print the results
+ var resultCount = results.length;
+ function displayNextItem() {
+ // results left, load the summary and display it
+ if (results.length) {
+ var item = results.pop();
+ var listItem = $('<li style="display:none"></li>');
+ if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
+ // dirhtml builder
+ var dirname = item[0] + '/';
+ if (dirname.match(/\/index\/$/)) {
+ dirname = dirname.substring(0, dirname.length-6);
+ } else if (dirname == 'index/') {
+ dirname = '';
+ }
+ listItem.append($('<a/>').attr('href',
+ DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
+ highlightstring + item[2]).html(item[1]));
+ } else {
+ // normal html builders
+ listItem.append($('<a/>').attr('href',
+ item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
+ highlightstring + item[2]).html(item[1]));
+ }
+ if (item[3]) {
+ listItem.append($('<span> (' + item[3] + ')</span>'));
+ Search.output.append(listItem);
+ listItem.slideDown(5, function() {
+ displayNextItem();
+ });
+ } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
+ $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
+ dataType: "text",
+ complete: function(jqxhr, textstatus) {
+ var data = jqxhr.responseText;
+ if (data !== '') {
+ listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
+ }
+ Search.output.append(listItem);
+ listItem.slideDown(5, function() {
+ displayNextItem();
+ });
+ }});
+ } else {
+ // no source available, just display title
+ Search.output.append(listItem);
+ listItem.slideDown(5, function() {
+ displayNextItem();
+ });
+ }
+ }
+ // search finished, update title and status message
+ else {
+ Search.stopPulse();
+ Search.title.text(_('Search Results'));
+ if (!resultCount)
+ Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
+ else
+ Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
+ Search.status.fadeIn(500);
+ }
+ }
+ displayNextItem();
+ },
+
+ /**
+ * search for object names
+ */
+ performObjectSearch : function(object, otherterms) {
+ var filenames = this._index.filenames;
+ var objects = this._index.objects;
+ var objnames = this._index.objnames;
+ var titles = this._index.titles;
+
+ var i;
+ var results = [];
+
+ for (var prefix in objects) {
+ for (var name in objects[prefix]) {
+ var fullname = (prefix ? prefix + '.' : '') + name;
+ if (fullname.toLowerCase().indexOf(object) > -1) {
+ var score = 0;
+ var parts = fullname.split('.');
+ // check for different match types: exact matches of full name or
+ // "last name" (i.e. last dotted part)
+ if (fullname == object || parts[parts.length - 1] == object) {
+ score += Scorer.objNameMatch;
+ // matches in last name
+ } else if (parts[parts.length - 1].indexOf(object) > -1) {
+ score += Scorer.objPartialMatch;
+ }
+ var match = objects[prefix][name];
+ var objname = objnames[match[1]][2];
+ var title = titles[match[0]];
+ // If more than one term searched for, we require other words to be
+ // found in the name/title/description
+ if (otherterms.length > 0) {
+ var haystack = (prefix + ' ' + name + ' ' +
+ objname + ' ' + title).toLowerCase();
+ var allfound = true;
+ for (i = 0; i < otherterms.length; i++) {
+ if (haystack.indexOf(otherterms[i]) == -1) {
+ allfound = false;
+ break;
+ }
+ }
+ if (!allfound) {
+ continue;
+ }
+ }
+ var descr = objname + _(', in ') + title;
+
+ var anchor = match[3];
+ if (anchor === '')
+ anchor = fullname;
+ else if (anchor == '-')
+ anchor = objnames[match[1]][1] + '-' + fullname;
+ // add custom score for some objects according to scorer
+ if (Scorer.objPrio.hasOwnProperty(match[2])) {
+ score += Scorer.objPrio[match[2]];
+ } else {
+ score += Scorer.objPrioDefault;
+ }
+ results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]);
+ }
+ }
+ }
+
+ return results;
+ },
+
+ /**
+ * search for full-text terms in the index
+ */
+ performTermsSearch : function(searchterms, excluded, terms, score) {
+ var filenames = this._index.filenames;
+ var titles = this._index.titles;
+
+ var i, j, file, files;
+ var fileMap = {};
+ var results = [];
+
+ // perform the search on the required terms
+ for (i = 0; i < searchterms.length; i++) {
+ var word = searchterms[i];
+ // no match but word was a required one
+ if ((files = terms[word]) === undefined)
+ break;
+ if (files.length === undefined) {
+ files = [files];
+ }
+ // create the mapping
+ for (j = 0; j < files.length; j++) {
+ file = files[j];
+ if (file in fileMap)
+ fileMap[file].push(word);
+ else
+ fileMap[file] = [word];
+ }
+ }
+
+ // now check if the files don't contain excluded terms
+ for (file in fileMap) {
+ var valid = true;
+
+ // check if all requirements are matched
+ if (fileMap[file].length != searchterms.length)
+ continue;
+
+ // ensure that none of the excluded terms is in the search result
+ for (i = 0; i < excluded.length; i++) {
+ if (terms[excluded[i]] == file ||
+ $u.contains(terms[excluded[i]] || [], file)) {
+ valid = false;
+ break;
+ }
+ }
+
+ // if we have still a valid result we can add it to the result list
+ if (valid) {
+ results.push([filenames[file], titles[file], '', null, score]);
+ }
+ }
+ return results;
+ },
+
+ /**
+ * helper function to return a node containing the
+ * search summary for a given text. keywords is a list
+ * of stemmed words, hlwords is the list of normal, unstemmed
+ * words. the first one is used to find the occurance, the
+ * latter for highlighting it.
+ */
+ makeSearchSummary : function(text, keywords, hlwords) {
+ var textLower = text.toLowerCase();
+ var start = 0;
+ $.each(keywords, function() {
+ var i = textLower.indexOf(this.toLowerCase());
+ if (i > -1)
+ start = i;
+ });
+ start = Math.max(start - 120, 0);
+ var excerpt = ((start > 0) ? '...' : '') +
+ $.trim(text.substr(start, 240)) +
+ ((start + 240 - text.length) ? '...' : '');
+ var rv = $('<div class="context"></div>').text(excerpt);
+ $.each(hlwords, function() {
+ rv = rv.highlightText(this, 'highlighted');
+ });
+ return rv;
+ }
+};
+
+$(document).ready(function() {
+ Search.init();
+});
\ No newline at end of file
diff --git a/Docs/Python/build/html/_static/sikulidoc.css b/Docs/Python/build/html/_static/sikulidoc.css
new file mode 100644
index 0000000..6e094c0
--- /dev/null
+++ b/Docs/Python/build/html/_static/sikulidoc.css
@@ -0,0 +1,123 @@
+ at import url("sphinxdoc.css");
+
+.sikuli-code {
+ font-size: 1.2em;
+ font-family: "Osaka-mono", Monospace;
+ line-height: 1.5em;
+ display:table-cell;
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ width: 99%; /* remove horizontal scroll-bar when viewing in IE7 */
+ overflow: visible;
+ margin-left: 2em;
+}
+
+.lineno {
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ color: #ccc;
+ position: relative;
+ left: -2.4em;
+ width: 1.5em;
+ margin-right: -1.5em;
+ display:inline-block;
+ text-align:right;
+ font-size: small;
+}
+
+.kw {
+ color: blue;
+}
+.skw {
+ color: rgb(63, 127, 127);
+}
+
+.str {
+ color: rgb(128, 0, 0);
+}
+
+.dig {
+ color: rgb(128, 64, 0);
+}
+
+.cmt {
+ color: #408090;
+}
+
+.info {
+ border-bottom: 1px solid #ddd;
+ padding-bottom: 5px;
+ margin-bottom: 20px;
+ $HIDE_INFO
+}
+
+div.related ul li a, a {
+ color: #9D2900;
+}
+
+a tt {
+ font-size: 1em;
+ color: #9D2900;
+}
+
+div.sphinxsidebar {
+ width: 216px;
+ padding-right: 12px;
+ padding-left: 12px;
+}
+
+.sidebar li {
+ margin-bottom: 5px;
+}
+
+.document img {
+ margin: 10px;
+ border: 1px solid #999;
+ padding: 2px;
+
+ -webkit-box-shadow: 1px 1px 1px #ccc;
+ -moz-box-shadow: 1px 1px 1px #ccc;
+ box-shadow: 1px 1px 1px #ccc;
+
+}
+
+.sikuli-code img {
+ vertical-align: middle;
+ margin: 2px;
+ border: 1px solid #ccc;
+ padding: 2px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-box-shadow: 1px 1px 1px gray;
+ -webkit-box-shadow: 1px 1px 2px gray;
+}
+
+
+.versionmodified {
+ float: right;
+ position:relative;
+ padding:0;
+ padding-right: 5px;
+ margin:0;
+ color:#000;
+ background: #F7F6A6;
+ height: 20px;
+}
+
+/* creates triangle */
+.versionmodified:before {
+ content:"";
+ display:block; /* reduce the damage in FF3.0 */
+ position:absolute;
+ left: -10px;
+ top: 0;
+ width: 0;
+ height: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ border-right:10px solid #F7F6A6;
+}
diff --git a/Docs/Python/build/html/_static/sphinxdoc.css b/Docs/Python/build/html/_static/sphinxdoc.css
new file mode 100644
index 0000000..ece970d
--- /dev/null
+++ b/Docs/Python/build/html/_static/sphinxdoc.css
@@ -0,0 +1,339 @@
+/*
+ * sphinxdoc.css_t
+ * ~~~~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- sphinxdoc theme. Originally created by
+ * Armin Ronacher for Werkzeug.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+ at import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
+ 'Verdana', sans-serif;
+ font-size: 14px;
+ letter-spacing: -0.01em;
+ line-height: 150%;
+ text-align: center;
+ background-color: #BFD1D4;
+ color: black;
+ padding: 0;
+ border: 1px solid #aaa;
+
+ margin: 0px 80px 0px 80px;
+ min-width: 740px;
+}
+
+div.document {
+ background-color: white;
+ text-align: left;
+ background-image: url(contents.png);
+ background-repeat: repeat-x;
+}
+
+div.bodywrapper {
+ margin: 0 240px 0 0;
+ border-right: 1px solid #ccc;
+}
+
+div.body {
+ margin: 0;
+ padding: 0.5em 20px 20px 20px;
+}
+
+div.related {
+ font-size: 1em;
+}
+
+div.related ul {
+ background-image: url(navigation.png);
+ height: 2em;
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+}
+
+div.related ul li {
+ margin: 0;
+ padding: 0;
+ height: 2em;
+ float: left;
+}
+
+div.related ul li.right {
+ float: right;
+ margin-right: 5px;
+}
+
+div.related ul li a {
+ margin: 0;
+ padding: 0 5px 0 5px;
+ line-height: 1.75em;
+ color: #EE9816;
+}
+
+div.related ul li a:hover {
+ color: #3CA8E7;
+}
+
+div.sphinxsidebarwrapper {
+ padding: 0;
+}
+
+div.sphinxsidebar {
+ margin: 0;
+ padding: 0.5em 15px 15px 0;
+ width: 210px;
+ float: right;
+ font-size: 1em;
+ text-align: left;
+}
+
+div.sphinxsidebar h3, div.sphinxsidebar h4 {
+ margin: 1em 0 0.5em 0;
+ font-size: 1em;
+ padding: 0.1em 0 0.1em 0.5em;
+ color: white;
+ border: 1px solid #86989B;
+ background-color: #AFC1C4;
+}
+
+div.sphinxsidebar h3 a {
+ color: white;
+}
+
+div.sphinxsidebar ul {
+ padding-left: 1.5em;
+ margin-top: 7px;
+ padding: 0;
+ line-height: 130%;
+}
+
+div.sphinxsidebar ul ul {
+ margin-left: 20px;
+}
+
+div.footer {
+ background-color: #E3EFF1;
+ color: #86989B;
+ padding: 3px 8px 3px 0;
+ clear: both;
+ font-size: 0.8em;
+ text-align: right;
+}
+
+div.footer a {
+ color: #86989B;
+ text-decoration: underline;
+}
+
+/* -- body styles ----------------------------------------------------------- */
+
+p {
+ margin: 0.8em 0 0.5em 0;
+}
+
+a {
+ color: #CA7900;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #2491CF;
+}
+
+div.body a {
+ text-decoration: underline;
+}
+
+h1 {
+ margin: 0;
+ padding: 0.7em 0 0.3em 0;
+ font-size: 1.5em;
+ color: #11557C;
+}
+
+h2 {
+ margin: 1.3em 0 0.2em 0;
+ font-size: 1.35em;
+ padding: 0;
+}
+
+h3 {
+ margin: 1em 0 -0.3em 0;
+ font-size: 1.2em;
+}
+
+div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
+ color: black!important;
+}
+
+h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
+ display: none;
+ margin: 0 0 0 0.3em;
+ padding: 0 0.2em 0 0.2em;
+ color: #aaa!important;
+}
+
+h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
+h5:hover a.anchor, h6:hover a.anchor {
+ display: inline;
+}
+
+h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
+h5 a.anchor:hover, h6 a.anchor:hover {
+ color: #777;
+ background-color: #eee;
+}
+
+a.headerlink {
+ color: #c60f0f!important;
+ font-size: 1em;
+ margin-left: 6px;
+ padding: 0 4px 0 4px;
+ text-decoration: none!important;
+}
+
+a.headerlink:hover {
+ background-color: #ccc;
+ color: white!important;
+}
+
+cite, code, tt {
+ font-family: 'Consolas', 'Deja Vu Sans Mono',
+ 'Bitstream Vera Sans Mono', monospace;
+ font-size: 0.95em;
+ letter-spacing: 0.01em;
+}
+
+tt {
+ background-color: #f2f2f2;
+ border-bottom: 1px solid #ddd;
+ color: #333;
+}
+
+tt.descname, tt.descclassname, tt.xref {
+ border: 0;
+}
+
+hr {
+ border: 1px solid #abc;
+ margin: 2em;
+}
+
+a tt {
+ border: 0;
+ color: #CA7900;
+}
+
+a tt:hover {
+ color: #2491CF;
+}
+
+pre {
+ font-family: 'Consolas', 'Deja Vu Sans Mono',
+ 'Bitstream Vera Sans Mono', monospace;
+ font-size: 0.95em;
+ letter-spacing: 0.015em;
+ line-height: 120%;
+ padding: 0.5em;
+ border: 1px solid #ccc;
+ background-color: #f8f8f8;
+}
+
+pre a {
+ color: inherit;
+ text-decoration: underline;
+}
+
+td.linenos pre {
+ padding: 0.5em 0;
+}
+
+div.quotebar {
+ background-color: #f8f8f8;
+ max-width: 250px;
+ float: right;
+ padding: 2px 7px;
+ border: 1px solid #ccc;
+}
+
+div.topic {
+ background-color: #f8f8f8;
+}
+
+table {
+ border-collapse: collapse;
+ margin: 0 -0.5em 0 -0.5em;
+}
+
+table td, table th {
+ padding: 0.2em 0.5em 0.2em 0.5em;
+}
+
+div.admonition, div.warning {
+ font-size: 0.9em;
+ margin: 1em 0 1em 0;
+ border: 1px solid #86989B;
+ background-color: #f7f7f7;
+ padding: 0;
+}
+
+div.admonition p, div.warning p {
+ margin: 0.5em 1em 0.5em 1em;
+ padding: 0;
+}
+
+div.admonition pre, div.warning pre {
+ margin: 0.4em 1em 0.4em 1em;
+}
+
+div.admonition p.admonition-title,
+div.warning p.admonition-title {
+ margin: 0;
+ padding: 0.1em 0 0.1em 0.5em;
+ color: white;
+ border-bottom: 1px solid #86989B;
+ font-weight: bold;
+ background-color: #AFC1C4;
+}
+
+div.warning {
+ border: 1px solid #940000;
+}
+
+div.warning p.admonition-title {
+ background-color: #CF0000;
+ border-bottom-color: #940000;
+}
+
+div.admonition ul, div.admonition ol,
+div.warning ul, div.warning ol {
+ margin: 0.1em 0.5em 0.5em 3em;
+ padding: 0;
+}
+
+div.versioninfo {
+ margin: 1em 0 0 0;
+ border: 1px solid #ccc;
+ background-color: #DDEAF0;
+ padding: 8px;
+ line-height: 1.3em;
+ font-size: 0.9em;
+}
+
+.viewcode-back {
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
+ 'Verdana', sans-serif;
+}
+
+div.viewcode-block:target {
+ background-color: #f4debf;
+ border-top: 1px solid #ac9;
+ border-bottom: 1px solid #ac9;
+}
\ No newline at end of file
diff --git a/Docs/Python/build/html/_static/underscore.js b/Docs/Python/build/html/_static/underscore.js
new file mode 100644
index 0000000..5b55f32
--- /dev/null
+++ b/Docs/Python/build/html/_static/underscore.js
@@ -0,0 +1,31 @@
+// Underscore.js 1.3.1
+// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the MIT license.
+// Portions of Underscore are inspired or borrowed from Prototype,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore
+(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object [...]
+c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h i [...]
+h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var [...]
+b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.l [...]
+null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.f [...]
+function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g, [...]
+e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d) [...]
+function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a [...]
+return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedInd [...]
+c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length- [...]
+b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];retur [...]
+return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=func [...]
+d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d; [...]
+var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.mem [...]
+c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c)) [...]
+a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)] [...]
+b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function( [...]
+1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){ret [...]
+b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a) [...]
+b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin [...]
+function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return [...]
+u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=func [...]
+function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.ch [...]
+true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
diff --git a/Docs/Python/build/html/_static/up-pressed.png b/Docs/Python/build/html/_static/up-pressed.png
new file mode 100644
index 0000000..8bd587a
Binary files /dev/null and b/Docs/Python/build/html/_static/up-pressed.png differ
diff --git a/Docs/Python/build/html/_static/up.png b/Docs/Python/build/html/_static/up.png
new file mode 100644
index 0000000..b946256
Binary files /dev/null and b/Docs/Python/build/html/_static/up.png differ
diff --git a/Docs/Python/build/html/_static/websupport.js b/Docs/Python/build/html/_static/websupport.js
new file mode 100644
index 0000000..19fcda5
--- /dev/null
+++ b/Docs/Python/build/html/_static/websupport.js
@@ -0,0 +1,808 @@
+/*
+ * websupport.js
+ * ~~~~~~~~~~~~~
+ *
+ * sphinx.websupport utilties for all documentation.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+(function($) {
+ $.fn.autogrow = function() {
+ return this.each(function() {
+ var textarea = this;
+
+ $.fn.autogrow.resize(textarea);
+
+ $(textarea)
+ .focus(function() {
+ textarea.interval = setInterval(function() {
+ $.fn.autogrow.resize(textarea);
+ }, 500);
+ })
+ .blur(function() {
+ clearInterval(textarea.interval);
+ });
+ });
+ };
+
+ $.fn.autogrow.resize = function(textarea) {
+ var lineHeight = parseInt($(textarea).css('line-height'), 10);
+ var lines = textarea.value.split('\n');
+ var columns = textarea.cols;
+ var lineCount = 0;
+ $.each(lines, function() {
+ lineCount += Math.ceil(this.length / columns) || 1;
+ });
+ var height = lineHeight * (lineCount + 1);
+ $(textarea).css('height', height);
+ };
+})(jQuery);
+
+(function($) {
+ var comp, by;
+
+ function init() {
+ initEvents();
+ initComparator();
+ }
+
+ function initEvents() {
+ $('a.comment-close').live("click", function(event) {
+ event.preventDefault();
+ hide($(this).attr('id').substring(2));
+ });
+ $('a.vote').live("click", function(event) {
+ event.preventDefault();
+ handleVote($(this));
+ });
+ $('a.reply').live("click", function(event) {
+ event.preventDefault();
+ openReply($(this).attr('id').substring(2));
+ });
+ $('a.close-reply').live("click", function(event) {
+ event.preventDefault();
+ closeReply($(this).attr('id').substring(2));
+ });
+ $('a.sort-option').live("click", function(event) {
+ event.preventDefault();
+ handleReSort($(this));
+ });
+ $('a.show-proposal').live("click", function(event) {
+ event.preventDefault();
+ showProposal($(this).attr('id').substring(2));
+ });
+ $('a.hide-proposal').live("click", function(event) {
+ event.preventDefault();
+ hideProposal($(this).attr('id').substring(2));
+ });
+ $('a.show-propose-change').live("click", function(event) {
+ event.preventDefault();
+ showProposeChange($(this).attr('id').substring(2));
+ });
+ $('a.hide-propose-change').live("click", function(event) {
+ event.preventDefault();
+ hideProposeChange($(this).attr('id').substring(2));
+ });
+ $('a.accept-comment').live("click", function(event) {
+ event.preventDefault();
+ acceptComment($(this).attr('id').substring(2));
+ });
+ $('a.delete-comment').live("click", function(event) {
+ event.preventDefault();
+ deleteComment($(this).attr('id').substring(2));
+ });
+ $('a.comment-markup').live("click", function(event) {
+ event.preventDefault();
+ toggleCommentMarkupBox($(this).attr('id').substring(2));
+ });
+ }
+
+ /**
+ * Set comp, which is a comparator function used for sorting and
+ * inserting comments into the list.
+ */
+ function setComparator() {
+ // If the first three letters are "asc", sort in ascending order
+ // and remove the prefix.
+ if (by.substring(0,3) == 'asc') {
+ var i = by.substring(3);
+ comp = function(a, b) { return a[i] - b[i]; };
+ } else {
+ // Otherwise sort in descending order.
+ comp = function(a, b) { return b[by] - a[by]; };
+ }
+
+ // Reset link styles and format the selected sort option.
+ $('a.sel').attr('href', '#').removeClass('sel');
+ $('a.by' + by).removeAttr('href').addClass('sel');
+ }
+
+ /**
+ * Create a comp function. If the user has preferences stored in
+ * the sortBy cookie, use those, otherwise use the default.
+ */
+ function initComparator() {
+ by = 'rating'; // Default to sort by rating.
+ // If the sortBy cookie is set, use that instead.
+ if (document.cookie.length > 0) {
+ var start = document.cookie.indexOf('sortBy=');
+ if (start != -1) {
+ start = start + 7;
+ var end = document.cookie.indexOf(";", start);
+ if (end == -1) {
+ end = document.cookie.length;
+ by = unescape(document.cookie.substring(start, end));
+ }
+ }
+ }
+ setComparator();
+ }
+
+ /**
+ * Show a comment div.
+ */
+ function show(id) {
+ $('#ao' + id).hide();
+ $('#ah' + id).show();
+ var context = $.extend({id: id}, opts);
+ var popup = $(renderTemplate(popupTemplate, context)).hide();
+ popup.find('textarea[name="proposal"]').hide();
+ popup.find('a.by' + by).addClass('sel');
+ var form = popup.find('#cf' + id);
+ form.submit(function(event) {
+ event.preventDefault();
+ addComment(form);
+ });
+ $('#s' + id).after(popup);
+ popup.slideDown('fast', function() {
+ getComments(id);
+ });
+ }
+
+ /**
+ * Hide a comment div.
+ */
+ function hide(id) {
+ $('#ah' + id).hide();
+ $('#ao' + id).show();
+ var div = $('#sc' + id);
+ div.slideUp('fast', function() {
+ div.remove();
+ });
+ }
+
+ /**
+ * Perform an ajax request to get comments for a node
+ * and insert the comments into the comments tree.
+ */
+ function getComments(id) {
+ $.ajax({
+ type: 'GET',
+ url: opts.getCommentsURL,
+ data: {node: id},
+ success: function(data, textStatus, request) {
+ var ul = $('#cl' + id);
+ var speed = 100;
+ $('#cf' + id)
+ .find('textarea[name="proposal"]')
+ .data('source', data.source);
+
+ if (data.comments.length === 0) {
+ ul.html('<li>No comments yet.</li>');
+ ul.data('empty', true);
+ } else {
+ // If there are comments, sort them and put them in the list.
+ var comments = sortComments(data.comments);
+ speed = data.comments.length * 100;
+ appendComments(comments, ul);
+ ul.data('empty', false);
+ }
+ $('#cn' + id).slideUp(speed + 200);
+ ul.slideDown(speed);
+ },
+ error: function(request, textStatus, error) {
+ showError('Oops, there was a problem retrieving the comments.');
+ },
+ dataType: 'json'
+ });
+ }
+
+ /**
+ * Add a comment via ajax and insert the comment into the comment tree.
+ */
+ function addComment(form) {
+ var node_id = form.find('input[name="node"]').val();
+ var parent_id = form.find('input[name="parent"]').val();
+ var text = form.find('textarea[name="comment"]').val();
+ var proposal = form.find('textarea[name="proposal"]').val();
+
+ if (text == '') {
+ showError('Please enter a comment.');
+ return;
+ }
+
+ // Disable the form that is being submitted.
+ form.find('textarea,input').attr('disabled', 'disabled');
+
+ // Send the comment to the server.
+ $.ajax({
+ type: "POST",
+ url: opts.addCommentURL,
+ dataType: 'json',
+ data: {
+ node: node_id,
+ parent: parent_id,
+ text: text,
+ proposal: proposal
+ },
+ success: function(data, textStatus, error) {
+ // Reset the form.
+ if (node_id) {
+ hideProposeChange(node_id);
+ }
+ form.find('textarea')
+ .val('')
+ .add(form.find('input'))
+ .removeAttr('disabled');
+ var ul = $('#cl' + (node_id || parent_id));
+ if (ul.data('empty')) {
+ $(ul).empty();
+ ul.data('empty', false);
+ }
+ insertComment(data.comment);
+ var ao = $('#ao' + node_id);
+ ao.find('img').attr({'src': opts.commentBrightImage});
+ if (node_id) {
+ // if this was a "root" comment, remove the commenting box
+ // (the user can get it back by reopening the comment popup)
+ $('#ca' + node_id).slideUp();
+ }
+ },
+ error: function(request, textStatus, error) {
+ form.find('textarea,input').removeAttr('disabled');
+ showError('Oops, there was a problem adding the comment.');
+ }
+ });
+ }
+
+ /**
+ * Recursively append comments to the main comment list and children
+ * lists, creating the comment tree.
+ */
+ function appendComments(comments, ul) {
+ $.each(comments, function() {
+ var div = createCommentDiv(this);
+ ul.append($(document.createElement('li')).html(div));
+ appendComments(this.children, div.find('ul.comment-children'));
+ // To avoid stagnating data, don't store the comments children in data.
+ this.children = null;
+ div.data('comment', this);
+ });
+ }
+
+ /**
+ * After adding a new comment, it must be inserted in the correct
+ * location in the comment tree.
+ */
+ function insertComment(comment) {
+ var div = createCommentDiv(comment);
+
+ // To avoid stagnating data, don't store the comments children in data.
+ comment.children = null;
+ div.data('comment', comment);
+
+ var ul = $('#cl' + (comment.node || comment.parent));
+ var siblings = getChildren(ul);
+
+ var li = $(document.createElement('li'));
+ li.hide();
+
+ // Determine where in the parents children list to insert this comment.
+ for(i=0; i < siblings.length; i++) {
+ if (comp(comment, siblings[i]) <= 0) {
+ $('#cd' + siblings[i].id)
+ .parent()
+ .before(li.html(div));
+ li.slideDown('fast');
+ return;
+ }
+ }
+
+ // If we get here, this comment rates lower than all the others,
+ // or it is the only comment in the list.
+ ul.append(li.html(div));
+ li.slideDown('fast');
+ }
+
+ function acceptComment(id) {
+ $.ajax({
+ type: 'POST',
+ url: opts.acceptCommentURL,
+ data: {id: id},
+ success: function(data, textStatus, request) {
+ $('#cm' + id).fadeOut('fast');
+ $('#cd' + id).removeClass('moderate');
+ },
+ error: function(request, textStatus, error) {
+ showError('Oops, there was a problem accepting the comment.');
+ }
+ });
+ }
+
+ function deleteComment(id) {
+ $.ajax({
+ type: 'POST',
+ url: opts.deleteCommentURL,
+ data: {id: id},
+ success: function(data, textStatus, request) {
+ var div = $('#cd' + id);
+ if (data == 'delete') {
+ // Moderator mode: remove the comment and all children immediately
+ div.slideUp('fast', function() {
+ div.remove();
+ });
+ return;
+ }
+ // User mode: only mark the comment as deleted
+ div
+ .find('span.user-id:first')
+ .text('[deleted]').end()
+ .find('div.comment-text:first')
+ .text('[deleted]').end()
+ .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
+ ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
+ .remove();
+ var comment = div.data('comment');
+ comment.username = '[deleted]';
+ comment.text = '[deleted]';
+ div.data('comment', comment);
+ },
+ error: function(request, textStatus, error) {
+ showError('Oops, there was a problem deleting the comment.');
+ }
+ });
+ }
+
+ function showProposal(id) {
+ $('#sp' + id).hide();
+ $('#hp' + id).show();
+ $('#pr' + id).slideDown('fast');
+ }
+
+ function hideProposal(id) {
+ $('#hp' + id).hide();
+ $('#sp' + id).show();
+ $('#pr' + id).slideUp('fast');
+ }
+
+ function showProposeChange(id) {
+ $('#pc' + id).hide();
+ $('#hc' + id).show();
+ var textarea = $('#pt' + id);
+ textarea.val(textarea.data('source'));
+ $.fn.autogrow.resize(textarea[0]);
+ textarea.slideDown('fast');
+ }
+
+ function hideProposeChange(id) {
+ $('#hc' + id).hide();
+ $('#pc' + id).show();
+ var textarea = $('#pt' + id);
+ textarea.val('').removeAttr('disabled');
+ textarea.slideUp('fast');
+ }
+
+ function toggleCommentMarkupBox(id) {
+ $('#mb' + id).toggle();
+ }
+
+ /** Handle when the user clicks on a sort by link. */
+ function handleReSort(link) {
+ var classes = link.attr('class').split(/\s+/);
+ for (var i=0; i<classes.length; i++) {
+ if (classes[i] != 'sort-option') {
+ by = classes[i].substring(2);
+ }
+ }
+ setComparator();
+ // Save/update the sortBy cookie.
+ var expiration = new Date();
+ expiration.setDate(expiration.getDate() + 365);
+ document.cookie= 'sortBy=' + escape(by) +
+ ';expires=' + expiration.toUTCString();
+ $('ul.comment-ul').each(function(index, ul) {
+ var comments = getChildren($(ul), true);
+ comments = sortComments(comments);
+ appendComments(comments, $(ul).empty());
+ });
+ }
+
+ /**
+ * Function to process a vote when a user clicks an arrow.
+ */
+ function handleVote(link) {
+ if (!opts.voting) {
+ showError("You'll need to login to vote.");
+ return;
+ }
+
+ var id = link.attr('id');
+ if (!id) {
+ // Didn't click on one of the voting arrows.
+ return;
+ }
+ // If it is an unvote, the new vote value is 0,
+ // Otherwise it's 1 for an upvote, or -1 for a downvote.
+ var value = 0;
+ if (id.charAt(1) != 'u') {
+ value = id.charAt(0) == 'u' ? 1 : -1;
+ }
+ // The data to be sent to the server.
+ var d = {
+ comment_id: id.substring(2),
+ value: value
+ };
+
+ // Swap the vote and unvote links.
+ link.hide();
+ $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
+ .show();
+
+ // The div the comment is displayed in.
+ var div = $('div#cd' + d.comment_id);
+ var data = div.data('comment');
+
+ // If this is not an unvote, and the other vote arrow has
+ // already been pressed, unpress it.
+ if ((d.value !== 0) && (data.vote === d.value * -1)) {
+ $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
+ $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
+ }
+
+ // Update the comments rating in the local data.
+ data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
+ data.vote = d.value;
+ div.data('comment', data);
+
+ // Change the rating text.
+ div.find('.rating:first')
+ .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
+
+ // Send the vote information to the server.
+ $.ajax({
+ type: "POST",
+ url: opts.processVoteURL,
+ data: d,
+ error: function(request, textStatus, error) {
+ showError('Oops, there was a problem casting that vote.');
+ }
+ });
+ }
+
+ /**
+ * Open a reply form used to reply to an existing comment.
+ */
+ function openReply(id) {
+ // Swap out the reply link for the hide link
+ $('#rl' + id).hide();
+ $('#cr' + id).show();
+
+ // Add the reply li to the children ul.
+ var div = $(renderTemplate(replyTemplate, {id: id})).hide();
+ $('#cl' + id)
+ .prepend(div)
+ // Setup the submit handler for the reply form.
+ .find('#rf' + id)
+ .submit(function(event) {
+ event.preventDefault();
+ addComment($('#rf' + id));
+ closeReply(id);
+ })
+ .find('input[type=button]')
+ .click(function() {
+ closeReply(id);
+ });
+ div.slideDown('fast', function() {
+ $('#rf' + id).find('textarea').focus();
+ });
+ }
+
+ /**
+ * Close the reply form opened with openReply.
+ */
+ function closeReply(id) {
+ // Remove the reply div from the DOM.
+ $('#rd' + id).slideUp('fast', function() {
+ $(this).remove();
+ });
+
+ // Swap out the hide link for the reply link
+ $('#cr' + id).hide();
+ $('#rl' + id).show();
+ }
+
+ /**
+ * Recursively sort a tree of comments using the comp comparator.
+ */
+ function sortComments(comments) {
+ comments.sort(comp);
+ $.each(comments, function() {
+ this.children = sortComments(this.children);
+ });
+ return comments;
+ }
+
+ /**
+ * Get the children comments from a ul. If recursive is true,
+ * recursively include childrens' children.
+ */
+ function getChildren(ul, recursive) {
+ var children = [];
+ ul.children().children("[id^='cd']")
+ .each(function() {
+ var comment = $(this).data('comment');
+ if (recursive)
+ comment.children = getChildren($(this).find('#cl' + comment.id), true);
+ children.push(comment);
+ });
+ return children;
+ }
+
+ /** Create a div to display a comment in. */
+ function createCommentDiv(comment) {
+ if (!comment.displayed && !opts.moderator) {
+ return $('<div class="moderate">Thank you! Your comment will show up '
+ + 'once it is has been approved by a moderator.</div>');
+ }
+ // Prettify the comment rating.
+ comment.pretty_rating = comment.rating + ' point' +
+ (comment.rating == 1 ? '' : 's');
+ // Make a class (for displaying not yet moderated comments differently)
+ comment.css_class = comment.displayed ? '' : ' moderate';
+ // Create a div for this comment.
+ var context = $.extend({}, opts, comment);
+ var div = $(renderTemplate(commentTemplate, context));
+
+ // If the user has voted on this comment, highlight the correct arrow.
+ if (comment.vote) {
+ var direction = (comment.vote == 1) ? 'u' : 'd';
+ div.find('#' + direction + 'v' + comment.id).hide();
+ div.find('#' + direction + 'u' + comment.id).show();
+ }
+
+ if (opts.moderator || comment.text != '[deleted]') {
+ div.find('a.reply').show();
+ if (comment.proposal_diff)
+ div.find('#sp' + comment.id).show();
+ if (opts.moderator && !comment.displayed)
+ div.find('#cm' + comment.id).show();
+ if (opts.moderator || (opts.username == comment.username))
+ div.find('#dc' + comment.id).show();
+ }
+ return div;
+ }
+
+ /**
+ * A simple template renderer. Placeholders such as <%id%> are replaced
+ * by context['id'] with items being escaped. Placeholders such as <#id#>
+ * are not escaped.
+ */
+ function renderTemplate(template, context) {
+ var esc = $(document.createElement('div'));
+
+ function handle(ph, escape) {
+ var cur = context;
+ $.each(ph.split('.'), function() {
+ cur = cur[this];
+ });
+ return escape ? esc.text(cur || "").html() : cur;
+ }
+
+ return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+ return handle(arguments[2], arguments[1] == '%' ? true : false);
+ });
+ }
+
+ /** Flash an error message briefly. */
+ function showError(message) {
+ $(document.createElement('div')).attr({'class': 'popup-error'})
+ .append($(document.createElement('div'))
+ .attr({'class': 'error-message'}).text(message))
+ .appendTo('body')
+ .fadeIn("slow")
+ .delay(2000)
+ .fadeOut("slow");
+ }
+
+ /** Add a link the user uses to open the comments popup. */
+ $.fn.comment = function() {
+ return this.each(function() {
+ var id = $(this).attr('id').substring(1);
+ var count = COMMENT_METADATA[id];
+ var title = count + ' comment' + (count == 1 ? '' : 's');
+ var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+ var addcls = count == 0 ? ' nocomment' : '';
+ $(this)
+ .append(
+ $(document.createElement('a')).attr({
+ href: '#',
+ 'class': 'sphinx-comment-open' + addcls,
+ id: 'ao' + id
+ })
+ .append($(document.createElement('img')).attr({
+ src: image,
+ alt: 'comment',
+ title: title
+ }))
+ .click(function(event) {
+ event.preventDefault();
+ show($(this).attr('id').substring(2));
+ })
+ )
+ .append(
+ $(document.createElement('a')).attr({
+ href: '#',
+ 'class': 'sphinx-comment-close hidden',
+ id: 'ah' + id
+ })
+ .append($(document.createElement('img')).attr({
+ src: opts.closeCommentImage,
+ alt: 'close',
+ title: 'close'
+ }))
+ .click(function(event) {
+ event.preventDefault();
+ hide($(this).attr('id').substring(2));
+ })
+ );
+ });
+ };
+
+ var opts = {
+ processVoteURL: '/_process_vote',
+ addCommentURL: '/_add_comment',
+ getCommentsURL: '/_get_comments',
+ acceptCommentURL: '/_accept_comment',
+ deleteCommentURL: '/_delete_comment',
+ commentImage: '/static/_static/comment.png',
+ closeCommentImage: '/static/_static/comment-close.png',
+ loadingImage: '/static/_static/ajax-loader.gif',
+ commentBrightImage: '/static/_static/comment-bright.png',
+ upArrow: '/static/_static/up.png',
+ downArrow: '/static/_static/down.png',
+ upArrowPressed: '/static/_static/up-pressed.png',
+ downArrowPressed: '/static/_static/down-pressed.png',
+ voting: false,
+ moderator: false
+ };
+
+ if (typeof COMMENT_OPTIONS != "undefined") {
+ opts = jQuery.extend(opts, COMMENT_OPTIONS);
+ }
+
+ var popupTemplate = '\
+ <div class="sphinx-comments" id="sc<%id%>">\
+ <p class="sort-options">\
+ Sort by:\
+ <a href="#" class="sort-option byrating">best rated</a>\
+ <a href="#" class="sort-option byascage">newest</a>\
+ <a href="#" class="sort-option byage">oldest</a>\
+ </p>\
+ <div class="comment-header">Comments</div>\
+ <div class="comment-loading" id="cn<%id%>">\
+ loading comments... <img src="<%loadingImage%>" alt="" /></div>\
+ <ul id="cl<%id%>" class="comment-ul"></ul>\
+ <div id="ca<%id%>">\
+ <p class="add-a-comment">Add a comment\
+ (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
+ <div class="comment-markup-box" id="mb<%id%>">\
+ reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
+ <tt>``code``</tt>, \
+ code blocks: <tt>::</tt> and an indented block after blank line</div>\
+ <form method="post" id="cf<%id%>" class="comment-form" action="">\
+ <textarea name="comment" cols="80"></textarea>\
+ <p class="propose-button">\
+ <a href="#" id="pc<%id%>" class="show-propose-change">\
+ Propose a change ▹\
+ </a>\
+ <a href="#" id="hc<%id%>" class="hide-propose-change">\
+ Propose a change ▿\
+ </a>\
+ </p>\
+ <textarea name="proposal" id="pt<%id%>" cols="80"\
+ spellcheck="false"></textarea>\
+ <input type="submit" value="Add comment" />\
+ <input type="hidden" name="node" value="<%id%>" />\
+ <input type="hidden" name="parent" value="" />\
+ </form>\
+ </div>\
+ </div>';
+
+ var commentTemplate = '\
+ <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
+ <div class="vote">\
+ <div class="arrow">\
+ <a href="#" id="uv<%id%>" class="vote" title="vote up">\
+ <img src="<%upArrow%>" />\
+ </a>\
+ <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
+ <img src="<%upArrowPressed%>" />\
+ </a>\
+ </div>\
+ <div class="arrow">\
+ <a href="#" id="dv<%id%>" class="vote" title="vote down">\
+ <img src="<%downArrow%>" id="da<%id%>" />\
+ </a>\
+ <a href="#" id="du<%id%>" class="un vote" title="vote down">\
+ <img src="<%downArrowPressed%>" />\
+ </a>\
+ </div>\
+ </div>\
+ <div class="comment-content">\
+ <p class="tagline comment">\
+ <span class="user-id"><%username%></span>\
+ <span class="rating"><%pretty_rating%></span>\
+ <span class="delta"><%time.delta%></span>\
+ </p>\
+ <div class="comment-text comment"><#text#></div>\
+ <p class="comment-opts comment">\
+ <a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\
+ <a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\
+ <a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\
+ <a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\
+ <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
+ <span id="cm<%id%>" class="moderation hidden">\
+ <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
+ </span>\
+ </p>\
+ <pre class="proposal" id="pr<%id%>">\
+<#proposal_diff#>\
+ </pre>\
+ <ul class="comment-children" id="cl<%id%>"></ul>\
+ </div>\
+ <div class="clearleft"></div>\
+ </div>\
+ </div>';
+
+ var replyTemplate = '\
+ <li>\
+ <div class="reply-div" id="rd<%id%>">\
+ <form id="rf<%id%>">\
+ <textarea name="comment" cols="80"></textarea>\
+ <input type="submit" value="Add reply" />\
+ <input type="button" value="Cancel" />\
+ <input type="hidden" name="parent" value="<%id%>" />\
+ <input type="hidden" name="node" value="" />\
+ </form>\
+ </div>\
+ </li>';
+
+ $(document).ready(function() {
+ init();
+ });
+})(jQuery);
+
+$(document).ready(function() {
+ // add comment anchors for all paragraphs that are commentable
+ $('.sphinx-has-comment').comment();
+
+ // highlight search words in search results
+ $("div.context").each(function() {
+ var params = $.getQueryParameters();
+ var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+ var result = $(this);
+ $.each(terms, function() {
+ result.highlightText(this.toLowerCase(), 'highlighted');
+ });
+ });
+
+ // directly open comment window if requested
+ var anchor = document.location.hash;
+ if (anchor.substring(0, 9) == '#comment-') {
+ $('#ao' + anchor.substring(9)).click();
+ document.location.hash = '#s' + anchor.substring(9);
+ }
+});
diff --git a/Docs/Python/build/html/apple.png b/Docs/Python/build/html/apple.png
new file mode 100644
index 0000000..92b3111
Binary files /dev/null and b/Docs/Python/build/html/apple.png differ
diff --git a/Docs/Python/build/html/best-practice.html b/Docs/Python/build/html/best-practice.html
new file mode 100644
index 0000000..a62c9ff
--- /dev/null
+++ b/Docs/Python/build/html/best-practice.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli Best Practice — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/best-practice.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-best-practice">
+<h1>Sikuli Best Practice<a class="headerlink" href="#sikuli-best-practice" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul class="simple">
+</ul>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/changes.html b/Docs/Python/build/html/changes.html
new file mode 100644
index 0000000..68e7eb0
--- /dev/null
+++ b/Docs/Python/build/html/changes.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Changes in Sikuli — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="prev" title="How to get involved" href="contributing.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="contributing.html" title="How to get involved"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Changes in Sikuli</a><ul>
+<li><a class="reference internal" href="#x-1-1-0-2014-01-31">X 1.1.0 (2014-01-31)</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="contributing.html"
+ title="previous chapter">How to get involved</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/changes.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="changes-in-sikuli">
+<h1>Changes in Sikuli<a class="headerlink" href="#changes-in-sikuli" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="x-1-1-0-2014-01-31">
+<h2>X 1.1.0 (2014-01-31)<a class="headerlink" href="#x-1-1-0-2014-01-31" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="contributing.html" title="How to get involved"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/contributing.html b/Docs/Python/build/html/contributing.html
new file mode 100644
index 0000000..283dd6d
--- /dev/null
+++ b/Docs/Python/build/html/contributing.html
@@ -0,0 +1,264 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How to get involved — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="next" title="Changes in Sikuli" href="changes.html" />
+ <link rel="prev" title="How Sikuli Works" href="devs/system-design.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="changes.html" title="Changes in Sikuli"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="devs/system-design.html" title="How Sikuli Works"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">How to get involved</a><ul>
+<li><a class="reference internal" href="#submit-patches">Submit Patches</a><ul>
+<li><a class="reference internal" href="#claim-a-bug">Claim a bug</a></li>
+<li><a class="reference internal" href="#bug-claimers-responsibility">Bug claimers’ responsibility</a></li>
+<li><a class="reference internal" href="#generate-and-submit-patches">Generate and Submit Patches</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#internationalization-and-localization">Internationalization and localization</a><ul>
+<li><a class="reference internal" href="#sikuli-ide-translation">Sikuli IDE Translation</a></li>
+<li><a class="reference internal" href="#documentation-translation">Documentation Translation</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="devs/system-design.html"
+ title="previous chapter">How Sikuli Works</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="changes.html"
+ title="next chapter">Changes in Sikuli</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/contributing.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-to-get-involved">
+<h1>How to get involved<a class="headerlink" href="#how-to-get-involved" title="Permalink to this headline">¶</a></h1>
+<p>Have fun working with Sikuli? You can do more than just being a user!
+There are many ways you can help Sikuli’s development:</p>
+<ul>
+<li><p class="first">Blog or tweet about Sikuli. Share your cool Sikuli scripts to the world and
+let more people know how cool Sikuli is.</p>
+</li>
+<li><p class="first">Report bugs or request new features in our <a class="reference external" href="https://bugs.launchpad.net/sikuli">bug tracker</a>.</p>
+</li>
+<li><p class="first">Visit <a class="reference external" href="https://answers.launchpad.net/sikuli">the question board</a> and
+<a class="reference external" href="https://bugs.launchpad.net/sikuli">the bug tracker</a> regularly and
+answer people’s questions there.
+(You may want to <a class="reference external" href="https://bugs.launchpad.net/sikuli/+subscribe">subscribe to the bug tracker</a> or <a class="reference external" href="https://answers.launchpad.net/sikuli/+answer-contact">subscribe to all questions</a>.)
+Many people have questions that you may know how to deal with. Help them
+to get through the obstacles and they may help you in the future.</p>
+</li>
+<li><p class="first"><a class="reference internal" href="#submit-patches"><em>Submit patches</em></a> to fix bugs or add features.</p>
+</li>
+<li><p class="first">Join the <a class="reference external" href="https://lists.csail.mit.edu/mailman/listinfo/sikuli-dev">sikuli-dev mailing list</a> and share your ideas to us.</p>
+</li>
+<li><p class="first">Translate Sikuli into your language and help more people who speak
+different languages to access Sikuli. You can help us to</p>
+<ul class="simple">
+<li>translate Sikuli IDE’s interface and messages, or</li>
+<li>translate Sikuli documentation (this site you are reading).</li>
+</ul>
+<p>Read <a class="reference internal" href="#translate-sikuli"><em>Internationalization and localization</em></a> for more details.</p>
+</li>
+</ul>
+<div class="section" id="submit-patches">
+<span id="id1"></span><h2>Submit Patches<a class="headerlink" href="#submit-patches" title="Permalink to this headline">¶</a></h2>
+<p>If you are interested in making Sikuli better, submitting patches is a
+good start. We welcome any patches to Sikuli’s code. If you’ve found
+a bug, submitting a bug report with associated patches will get it
+fixed more quickly than those without patches.</p>
+<div class="section" id="claim-a-bug">
+<h3>Claim a bug<a class="headerlink" href="#claim-a-bug" title="Permalink to this headline">¶</a></h3>
+<p>Here is a typical bug report status.</p>
+<img alt="_images/bug-tracker.png" src="_images/bug-tracker.png" />
+<p>If you see a bug that you think you could fix, feel free to claim the bug.
+Simply click the pencil icon under the “Assigned to” column, and then click
+“Assign Me”. Claiming a bug let other people and developers know that this
+bug is being worked on, and prevents duplicate work.</p>
+</div>
+<div class="section" id="bug-claimers-responsibility">
+<h3>Bug claimers’ responsibility<a class="headerlink" href="#bug-claimers-responsibility" title="Permalink to this headline">¶</a></h3>
+<p>Once you’ve claimed a bug, you are responsible to work on that bug in
+reasonable time, say one or two weeks.
+If you don’t have time to work on it, please unclaim it.</p>
+<p>If you’ve claimed a bug and it’s taking a long time to code,
+please keep everybody updated by posting comments on the bug.
+If you don’t update regularly, and you don’t respond to a request
+for a progress report, your claim on the bug may be revoked.</p>
+</div>
+<div class="section" id="generate-and-submit-patches">
+<h3>Generate and Submit Patches<a class="headerlink" href="#generate-and-submit-patches" title="Permalink to this headline">¶</a></h3>
+<ol class="arabic simple">
+<li>Branch the Sikuli source tree using <strong class="command">bzr branch lp:sikuli</strong>.</li>
+<li>Fix bugs or add new features.</li>
+<li>Generate your patches using <strong class="command">bzr diff</strong>, so we can
+incorporate your patches into our code base esaily.</li>
+<li>Name the patch file with a <tt class="file docutils literal"><span class="pre">.diff</span></tt> extension.</li>
+<li>Click “Add attachment or patch” below the comment area, and attach your
+patch file.</li>
+<li>If the patch adds a new feature, or modifies existing behavior, please
+leave documentation in the comment area.</li>
+</ol>
+<p>If you want to contribute changes that involve hundred lines of code,
+Please <a class="reference external" href="https://code.launchpad.net/sikuli/+addbranch">register a branch</a> on Sikuli and then propose for merging once you have done all changes.</p>
+</div>
+</div>
+<div class="section" id="internationalization-and-localization">
+<span id="translate-sikuli"></span><h2>Internationalization and localization<a class="headerlink" href="#internationalization-and-localization" title="Permalink to this headline">¶</a></h2>
+<p>We hope Sikuli can be access by anyone from anywhere in the world.
+You can help us to translate the user interface of Sikuli IDE or
+this documentation.</p>
+<div class="section" id="sikuli-ide-translation">
+<h3>Sikuli IDE Translation<a class="headerlink" href="#sikuli-ide-translation" title="Permalink to this headline">¶</a></h3>
+<p>If you find an incorrect translation, or if you would like to add a language
+that isn’t yet translated, here’s what to do:</p>
+<ul class="simple">
+<li>Join the <a class="reference external" href="https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n">Sikuli i18n mailing list</a> and introduce yourself.</li>
+<li>Claim what language and what (in this case, the Sikuli IDE) you
+are going to work on.</li>
+<li>Visit <a class="reference external" href="https://translations.launchpad.net/sikuli">our translations
+page on launchpad</a> and
+use launchpad’s tool to translate the interface items.</li>
+<li>If there are items you are not sure how to translate, please mark them as
+“need review”.</li>
+<li>Once you’ve done the translations, send a mail to the Sikuli i18n mailing list
+so we can incorporate your work into the Sikuli IDE.</li>
+</ul>
+</div>
+<div class="section" id="documentation-translation">
+<h3>Documentation Translation<a class="headerlink" href="#documentation-translation" title="Permalink to this headline">¶</a></h3>
+<p>This documentation is created using <a class="reference external" href="http://sphinx.pocoo.org/">Sphinx</a>,
+and written in the
+<a class="reference external" href="http://sphinx.pocoo.org/rest.html">reStructuredText format</a>.
+You can view how the source code looks like using the link “Show Source”
+in the side bar.</p>
+<p>To translate the documentation, you need to check out the source of the
+document using <strong class="command">bzr branch lp:sikuli</strong>.
+The documentation source is in the folder <tt class="file docutils literal"><span class="pre">docs/</span></tt>.
+Once you have the source, you can generate this HTML document using <strong class="command">make html</strong> under the <tt class="file docutils literal"><span class="pre">docs/</span></tt> directory.</p>
+<p>The translation for each language is in <tt class="file docutils literal"><span class="pre">docs/i18n/<language>/source</span></tt>.
+The <tt class="file docutils literal"><span class="pre">source</span></tt> directory for your language should mirror
+the main source directory <tt class="file docutils literal"><span class="pre">docs/source</span></tt>.</p>
+<p>If you find an incorrect translation in the documentation,
+or if you would like to add a language that isn’t yet translated,
+here’s what to do:</p>
+<ul class="simple">
+<li>Join the <a class="reference external" href="https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n">Sikuli i18n mailing list</a> and introduce yourself.</li>
+<li>Claim what language and which part of the documentation you are going to work on.</li>
+<li>Once you’ve done the translations, generate a patch using <strong class="command">bzr diff</strong> and name the patch with a <tt class="file docutils literal"><span class="pre">diff</span></tt> extension.</li>
+<li>Send a mail to the Sikuli i18n mailing list and attach the patch, so we know
+what you’ve done and we can put your translations online.</li>
+</ul>
+<p>If you contribute translations very actively, we can give you the commit
+permission to our bzr source tree so you can submit translations by yourself.</p>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="changes.html" title="Changes in Sikuli"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="devs/system-design.html" title="How Sikuli Works"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/devs/system-design.html b/Docs/Python/build/html/devs/system-design.html
new file mode 100644
index 0000000..f519494
--- /dev/null
+++ b/Docs/Python/build/html/devs/system-design.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How Sikuli Works — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="How to get involved" href="../contributing.html" />
+ <link rel="prev" title="Sikuli Guide" href="../extensions/sikuli-guide/index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../contributing.html" title="How to get involved"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../extensions/sikuli-guide/index.html" title="Sikuli Guide"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">How Sikuli Works</a><ul>
+<li><a class="reference internal" href="#sikuli-script">Sikuli Script</a></li>
+<li><a class="reference internal" href="#the-structure-of-a-sikuli-source-folder-or-zipped-file-sikuli-skl">The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../extensions/sikuli-guide/index.html"
+ title="previous chapter">Sikuli Guide</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../contributing.html"
+ title="next chapter">How to get involved</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/devs/system-design.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-sikuli-works">
+<h1>How Sikuli Works<a class="headerlink" href="#how-sikuli-works" title="Permalink to this headline">¶</a></h1>
+<img alt="../_images/SystemDesign.png" src="../_images/SystemDesign.png" />
+<div class="section" id="sikuli-script">
+<h2>Sikuli Script<a class="headerlink" href="#sikuli-script" title="Permalink to this headline">¶</a></h2>
+<p>Sikuli Script is a Jython and Java library that automates GUI interaction using image patterns to direct keyboard/mouse events.
+The core of Sikuli Script is a Java library that consists of two parts: java.awt.Robot, which delivers keyboard and mouse events to appropriate locations, and a C++ engine based on OpenCV, which searches given image patterns on the screen. The C++ engine is connected to Java via JNI and needs to be compiled for each platform.
+On top of the Java library, a thin Jython layer is provided for end-users as a set of simple and clear commands. Therefore, it should be easy to add more thin layers for other languages running on JVM, e.g. JRuby, Scala, Javascript, etc.</p>
+</div>
+<div class="section" id="the-structure-of-a-sikuli-source-folder-or-zipped-file-sikuli-skl">
+<h2>The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)<a class="headerlink" href="#the-structure-of-a-sikuli-source-folder-or-zipped-file-sikuli-skl" title="Permalink to this headline">¶</a></h2>
+<p>A Sikuli script (.sikuli) is a directory that contains a Python source file (.py) representing the automation workflow or the test cases and all the image files (.png) used by the source file. All images used in a Sikuli script are simply a path to the .png file in the .sikuli bundle. Therefore, the Python source file can also be edited by any text editor.</p>
+<p>While saving a script using Sikuli IDE, an extra HTML file may optionally be created in the .sikuli directory so that users can share a visual copy of the scripts on the web easily.</p>
+<p>A Sikuli zipped script (.skl) is simply a zipped file of all files in the .sikuli folder. It is intended for distribution via mail or web upload, can also be run from command line and reopened in the Sikuli IDE. (The previous naming as “Sikuli executable” is deprecated, since this is misleading: people most often thought, it is something like a self-contained and self-running package comparable to a Windows EXE, but it is not).</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../contributing.html" title="How to get involved"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../extensions/sikuli-guide/index.html" title="Sikuli Guide"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/extensions/extensions_info.html b/Docs/Python/build/html/extensions/extensions_info.html
new file mode 100644
index 0000000..47b4b1d
--- /dev/null
+++ b/Docs/Python/build/html/extensions/extensions_info.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>General Information About Sikuli Extensions — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="up" title="Extensions" href="index.html" />
+ <link rel="next" title="Sikuli Guide" href="sikuli-guide/index.html" />
+ <link rel="prev" title="Extensions" href="index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="sikuli-guide/index.html" title="Sikuli Guide"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="index.html" title="Extensions"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="index.html" accesskey="U">Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">General Information About Sikuli Extensions</a><ul>
+<li><a class="reference internal" href="#how-to-download-and-use-an-extension">How to Download and use an Extension</a></li>
+<li><a class="reference internal" href="#technical-details">Technical Details</a></li>
+<li><a class="reference internal" href="#how-to-develop-an-extension">How to develop an extension</a></li>
+<li><a class="reference internal" href="#name-your-extensions-properly">Name your extensions properly</a></li>
+<li><a class="reference internal" href="#how-to-test-your-extension">How to test your extension</a></li>
+<li><a class="reference internal" href="#how-to-contribute-your-extension">How to contribute your extension</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="index.html"
+ title="previous chapter">Extensions</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="sikuli-guide/index.html"
+ title="next chapter">Sikuli Guide</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/extensions/extensions_info.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="general-information-about-sikuli-extensions">
+<h1>General Information About Sikuli Extensions<a class="headerlink" href="#general-information-about-sikuli-extensions" title="Permalink to this headline">¶</a></h1>
+<p id="sikuliextensions"><strong>This feature is currently under developement and might only be available on request.</strong></p>
+<p>Extensions allow to implement new Sikuli features by adding packages to your current Sikuli installation.</p>
+<p>They are maintained by the developers (see <strong>Technical Details</strong> below).</p>
+<p>If you want to contribute a new extension or a modified exisiting one, please look at <strong>How to contribute an extension</strong> below.</p>
+<div class="section" id="how-to-download-and-use-an-extension">
+<h2>How to Download and use an Extension<a class="headerlink" href="#how-to-download-and-use-an-extension" title="Permalink to this headline">¶</a></h2>
+<p>The download of an extension is supported by the IDE through the menu
+<em class="menuselection">Tools -> Extensions</em>.
+You get a popup, that lists the available and already installed extensions and allows to download new packages or updates for installed ones.</p>
+<p>This popup shows a new <strong>package not yet installed</strong>:</p>
+<img alt="../_images/extension-new.png" src="../_images/extension-new.png" />
+<p>If you need more information about the features of the extension, just click <em class="guilabel">More Info</em> - this will open the related documentation from the web in a browser window.</p>
+<p>If you want to install the extension, just click the <em class="guilabel">Install...</em> button. The package will be downloaded and added to your extensions repository.</p>
+<p>This popup shows an <strong>installed package</strong>:</p>
+<img alt="../_images/extension-installed.png" src="../_images/extension-installed.png" />
+<p>If a new version would be available at that time, the <em class="guilabel">Install...</em> button would be active again, showing the new version number. Now you could click and download the new version.</p>
+<p><strong>How to Use an Extension</strong></p>
+<p>To use the features of an installed extension in one of your scripts, just say <tt class="docutils literal"><span class="pre">from</span> <span class="pre">extension-name</span> <span class="pre">import</span> <span class="pre">*</span></tt>. For an usage example read <a class="reference internal" href="sikuli-guide/index.html#sikuliguide"><em>Sikuli Guide</em></a>.</p>
+<p>For information about features, usage and API use menu <em class="menuselection">Tools -> Extensions -> More Info</em> in the IDE.</p>
+</div>
+<div class="section" id="technical-details">
+<h2>Technical Details<a class="headerlink" href="#technical-details" title="Permalink to this headline">¶</a></h2>
+<p>Extensions are Java JAR files containing some Java classes (usually the core functions) and/or Python modules, which define the API to be used in a script.</p>
+<p>Sikuli maintains a local extensions directory, where downloaded extensions are stored together with a hidden list of the installed extensions (Windows: <tt class="docutils literal"><span class="pre">%APPDATA%\Sikuli\extensions</span></tt>, Mac: <tt class="docutils literal"><span class="pre">~/Library/Application</span> <span class="pre">Support/Sikuli/extensions</span></tt>, Linux: <tt class="docutils literal"><span class="pre">~/.sikuli/extensions</span></tt>).</p>
+<p>Once an extension is imported using <tt class="docutils literal"><span class="pre">import</span> <span class="pre">extension-name</span></tt>,
+Sikuli automatically searches and loads the JAR file of that extension
+into the current context with <a class="reference internal" href="../globals.html#load" title="load"><tt class="xref py py-func docutils literal"><span class="pre">load(path-to-jar-file)</span></tt></a>.</p>
+</div>
+<div class="section" id="how-to-develop-an-extension">
+<h2>How to develop an extension<a class="headerlink" href="#how-to-develop-an-extension" title="Permalink to this headline">¶</a></h2>
+<p>The <strong>source structure</strong> of an extension named <tt class="docutils literal"><span class="pre">extension-name</span></tt> looks like this:</p>
+<div class="highlight-python"><pre>Java
+- org/com
+-- your-organization-or-company
+--- extension-name
+---- yourClass1.java
+---- yourClass2.java
+---- .... more classes
+python
+- extension-name
+-- __init__.py
+-- extension-name.py</pre>
+</div>
+<p>The <strong>final structure of a JAR</strong> (filename <tt class="docutils literal"><span class="pre">extension-name-X.Y</span></tt> where X.Y is the version string) looks like this:</p>
+<div class="highlight-python"><pre>org/com
+- your-organization-or-company
+-- extension-name
+--- yourClass1.class
+--- yourClass2.class
+--- .... more classes
+extension-name
+- __init__.py
+- extension-name.py
+META-INF
+- MANIFEST.MF</pre>
+</div>
+<p>The file <tt class="docutils literal"><span class="pre">__init__.py</span></tt> contains at least <tt class="docutils literal"><span class="pre">from</span> <span class="pre">extension-name</span> <span class="pre">import</span> <span class="pre">*</span></tt> to avoid one qualification level. So in a script you might either use:</p>
+<div class="highlight-python"><pre>import extension-name
+extension-name.functionXYZ()</pre>
+</div>
+<p>or:</p>
+<div class="highlight-python"><pre>from extension-name import *
+functionXYZ()</pre>
+</div>
+<p>The second case requires more investement in a naming convention, that avoids naming conflicts.</p>
+<p>The file <tt class="docutils literal"><span class="pre">extension-name.py</span></tt> contains the classes and methods, that represent the API, that one might use in a Sikuli script.</p>
+<p>As an example you may take the source of the extension Sikuli Guide.</p>
+</div>
+<div class="section" id="name-your-extensions-properly">
+<h2>Name your extensions properly<a class="headerlink" href="#name-your-extensions-properly" title="Permalink to this headline">¶</a></h2>
+<p>Sikuli extensions can be Python/Jython modules or Java classes.</p>
+<p>For Java classes, following the reverse URL convention of Java is a good idea (for example, org.foo.your-extension). However, <strong>DO NOT use Java’s convention for Python/Jython modules</strong>. You need to come up with a unique extension name that does not conflict with existing Python modules and other Sikuli extensions.</p>
+<p>Please read <a class="reference external" href="http://jythonpodcast.hostjava.net/jythonbook/en/1.0/ModulesPackages.html#naming-python-modules-and-packages">Naming Python Modules and Packages</a> to learn the details for naming a Python module.</p>
+</div>
+<div class="section" id="how-to-test-your-extension">
+<h2>How to test your extension<a class="headerlink" href="#how-to-test-your-extension" title="Permalink to this headline">¶</a></h2>
+<p>While developing your extensions, you can put the JAR file in Sikuli’s
+extension directory or in the same .sikuli folder as your test script.
+The JAR file should not have a version number in its file name,
+e.g. <tt class="docutils literal"><span class="pre">extension-name.jar</span></tt>.
+Because Sikuli starts to search extensions in the .sikuli folder of the running script and then
+in the Sikuli extensions folder, it is usually a good idea to put your
+developing extensions in the .sikuli folder of your test script.</p>
+<p>Another option is to use the <a class="reference internal" href="../globals.html#load" title="load"><tt class="xref py py-func docutils literal"><span class="pre">load()</span></tt></a> function with
+an absolute path to your <tt class="docutils literal"><span class="pre">extension-name.jar</span></tt>. If this fails, Sikuli
+goes on searching in the current .sikuli folder and then in the Sikuli extensions folder.
+If load() succeeds, it returns <tt class="docutils literal"><span class="pre">True</span></tt> and puts
+<tt class="docutils literal"><span class="pre">absolute-path-to-your-extension-name.jar</span></tt> into <tt class="docutils literal"><span class="pre">sys.path</span></tt>,
+so you can use <tt class="docutils literal"><span class="pre">import</span> <span class="pre">extension-name</span></tt> afterwards.</p>
+</div>
+<div class="section" id="how-to-contribute-your-extension">
+<h2>How to contribute your extension<a class="headerlink" href="#how-to-contribute-your-extension" title="Permalink to this headline">¶</a></h2>
+<p>Currently you have to contact the developers of Sikuli
+and agree on how to proceed.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="sikuli-guide/index.html" title="Sikuli Guide"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="index.html" title="Extensions"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="index.html" >Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/extensions/index.html b/Docs/Python/build/html/extensions/index.html
new file mode 100644
index 0000000..a712d94
--- /dev/null
+++ b/Docs/Python/build/html/extensions/index.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Extensions — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="General Information About Sikuli Extensions" href="extensions_info.html" />
+ <link rel="prev" title="Key Constants" href="../keys.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="extensions_info.html" title="General Information About Sikuli Extensions"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../keys.html" title="Key Constants"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../keys.html"
+ title="previous chapter">Key Constants</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="extensions_info.html"
+ title="next chapter">General Information About Sikuli Extensions</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/extensions/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="extensions">
+<h1>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="extensions_info.html">General Information About Sikuli Extensions</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#how-to-download-and-use-an-extension">How to Download and use an Extension</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#technical-details">Technical Details</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#how-to-develop-an-extension">How to develop an extension</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#name-your-extensions-properly">Name your extensions properly</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#how-to-test-your-extension">How to test your extension</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions_info.html#how-to-contribute-your-extension">How to contribute your extension</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="sikuli-guide/index.html">Sikuli Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="sikuli-guide/index.html#quick-start">Quick Start</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sikuli-guide/index.html#function-references">Function References</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="extensions_info.html" title="General Information About Sikuli Extensions"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../keys.html" title="Key Constants"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/extensions/sikuli-copier/index.html b/Docs/Python/build/html/extensions/sikuli-copier/index.html
new file mode 100644
index 0000000..21a4349
--- /dev/null
+++ b/Docs/Python/build/html/extensions/sikuli-copier/index.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli Copier — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Extensions" href="../index.html" />
+ <link rel="next" title="Sikuli Hotkey" href="../sikuli-hotkey/index.html" />
+ <link rel="prev" title="Sikuli Guide" href="../sikuli-guide/index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-hotkey/index.html" title="Sikuli Hotkey"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-guide/index.html" title="Sikuli Guide"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../sikuli-guide/index.html"
+ title="previous chapter">Sikuli Guide</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../sikuli-hotkey/index.html"
+ title="next chapter">Sikuli Hotkey</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/extensions/sikuli-copier/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-copier">
+<h1>Sikuli Copier<a class="headerlink" href="#sikuli-copier" title="Permalink to this headline">¶</a></h1>
+<p>(Under construction)</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-hotkey/index.html" title="Sikuli Hotkey"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-guide/index.html" title="Sikuli Guide"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/index.html b/Docs/Python/build/html/extensions/sikuli-guide/index.html
new file mode 100644
index 0000000..800ec8e
--- /dev/null
+++ b/Docs/Python/build/html/extensions/sikuli-guide/index.html
@@ -0,0 +1,405 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli Guide — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Extensions" href="../index.html" />
+ <link rel="next" title="How Sikuli Works" href="../../devs/system-design.html" />
+ <link rel="prev" title="General Information About Sikuli Extensions" href="../extensions_info.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../devs/system-design.html" title="How Sikuli Works"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../extensions_info.html" title="General Information About Sikuli Extensions"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Sikuli Guide</a><ul>
+<li><a class="reference internal" href="#quick-start">Quick Start</a><ul>
+<li><a class="reference internal" href="#first-example">First Example</a></li>
+<li><a class="reference internal" href="#adding-multiple-annotations">Adding Multiple Annotations</a></li>
+<li><a class="reference internal" href="#adding-interaction">Adding Interaction</a></li>
+<li><a class="reference internal" href="#making-a-region-clickable">Making a Region clickable</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#function-references">Function References</a><ul>
+<li><a class="reference internal" href="#static-annotations">Static Annotations</a></li>
+<li><a class="reference internal" href="#interactive-elements">Interactive Elements</a></li>
+<li><a class="reference internal" href="#control">Control</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../extensions_info.html"
+ title="previous chapter">General Information About Sikuli Extensions</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../../devs/system-design.html"
+ title="next chapter">How Sikuli Works</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/extensions/sikuli-guide/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-guide">
+<h1>Sikuli Guide<a class="headerlink" href="#sikuli-guide" title="Permalink to this headline">¶</a></h1>
+<div class="versionadded" id="sikuliguide">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<p>Sikuli Guide is an extension to Sikuli that provides a revolutionary way to
+create guided tours or tutorials for GUI applications. The revolutionary aspect
+is that the content of the tours or tutorials can be displayed right on the
+<strong>actual interface</strong>, rather than in a video or a series of screenshots on a
+web page. All this can be combined with guided user activities directly in the
+respective GUI applications using all the other Sikuli features.</p>
+<div class="section" id="quick-start">
+<h2>Quick Start<a class="headerlink" href="#quick-start" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="first-example">
+<h3>First Example<a class="headerlink" href="#first-example" title="Permalink to this headline">¶</a></h3>
+<p>In our first example, suppose we want to create a guided tour of this very documentation
+page you are currently reading. We want to bring your attention to the logo
+picture to the right. Using the functions provided by Sikuli Guide, we can
+write the following script to accomplish this:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> guide <span class="kw">import</span> *
+<span class='lineno'>2</span>text(<img src="sikuli-logo.png"/>, <span class="str">"This is Sikuli's logo"</span>)
+<span class='lineno'>3</span>show(<span class="dig">5</span>)
+</pre>
+<p>When you run this script, Sikuli Guide will search for the logo’s image on the
+screen, highlight it, and display the text ‘’This is Sikuli’s logo’’ below the
+image, like the figure below:</p>
+<img alt="../../_images/sikuli-logo-highlight.png" src="../../_images/sikuli-logo-highlight.png" />
+<p>Again, this happens in the <strong>actual interface</strong>, rather than in a video or a
+screenshot. The logo image that is highlighted is the actual interface element
+users can click on.</p>
+<p>Let’s explain the script line by line. The first line is an <tt class="docutils literal"><span class="pre">import</span></tt>
+statement that tells Sikuli to load the Sikuli Guide extension. The secod line
+uses the <a class="reference internal" href="#guide.text" title="guide.text"><tt class="xref py py-func docutils literal"><span class="pre">text(pattern,</span> <span class="pre">text)</span></tt></a> function to add <tt class="docutils literal"><span class="pre">text</span></tt>
+next to a given <tt class="docutils literal"><span class="pre">pattern</span></tt>, in this case, the logo image. Note that by default
+the text added is not displayed immediately, it is only internally added
+to the visual element. In the third line, we call
+<a class="reference internal" href="#guide.show" title="guide.show"><tt class="xref py py-func docutils literal"><span class="pre">show(secs)</span></tt></a> to explicitly tell Sikuli Guide to now display
+all registerd annotation elements (in this case only the
+text) for the duration specified by <tt class="docutils literal"><span class="pre">secs</span></tt>.</p>
+<p>Below is a YouTube video of this example.</p>
+<object type="application/x-shockwave-flash"
+ width="640"
+ height="385"
+ class="youtube-embed"
+ data="http://www.youtube.com/v/ELNWxVjVb7Y?hd=1">
+ <param name="movie" value="http://www.youtube.com/v/ELNWxVjVb7Y?hd=1"></param>
+ <param name="wmode" value="transparent"></param>
+</object>
+</div>
+<div class="section" id="adding-multiple-annotations">
+<h3>Adding Multiple Annotations<a class="headerlink" href="#adding-multiple-annotations" title="Permalink to this headline">¶</a></h3>
+<p>It is possible to add text or other annotations to multiple visual elements before
+calling <a class="reference internal" href="#guide.show" title="guide.show"><tt class="xref py py-func docutils literal"><span class="pre">show(secs)</span></tt></a> in order to show them on the screen at the same time.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> guide <span class="kw">import</span> *
+<span class='lineno'>2</span>text(<img src="sikuli-logo.png"/>, <span class="str">"This is Sikuli's logo"</span>)
+<span class='lineno'>3</span>tooltip(<img src="previous.png"/>,<span class="str">"Previous"</span>)
+<span class='lineno'>4</span>tooltip(<img src="next.png"/>,<span class="str">"Next"</span>)
+<span class='lineno'>5</span>tooltip(<img src="index.png"/>,<span class="str">"Index"</span>)
+<span class='lineno'>6</span>show(<span class="dig">5</span>)
+</pre>
+<p>The script above uses the function <a class="reference internal" href="#guide.tooltip" title="guide.tooltip"><tt class="xref py py-func docutils literal"><span class="pre">tooltip(text)</span></tt></a> to add tooltips to
+three links in addition to the text annotation. The result of running this
+script is shown below:</p>
+<img alt="../../_images/multiple-annotations.png" src="../../_images/multiple-annotations.png" />
+<p>Rather than showing the annotations all at once, we can also show them one by
+one using separate <tt class="docutils literal"><span class="pre">show()</span></tt> statements. Below is an example where we cycle
+through the three links and show the tooltip of each link one at a time.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> guide <span class="kw">import</span> *
+<span class='lineno'>2</span><span class="kw">while</span> True:
+<span class='lineno'>3</span> tooltip(<img src="previous.png"/>,<span class="str">"Previous"</span>)
+<span class='lineno'>4</span> show(<span class="dig">3</span>)
+<span class='lineno'>5</span> tooltip(<img src="next.png"/>,<span class="str">"Next"</span>)
+<span class='lineno'>6</span> show(<span class="dig">3</span>)
+<span class='lineno'>7</span> tooltip(<img src="index.png"/>,<span class="str">"Index"</span>)
+<span class='lineno'>8</span> show(<span class="dig">3</span>)
+</pre>
+<p>The result of running this script is shown below (3x speed-up):</p>
+<img alt="../../_images/animated-tooltips.gif" src="../../_images/animated-tooltips.gif" />
+</div>
+<div class="section" id="adding-interaction">
+<h3>Adding Interaction<a class="headerlink" href="#adding-interaction" title="Permalink to this headline">¶</a></h3>
+<p>Another way to control the flow of a guided tour is to display a dialog box
+and let users click on a button to continue to the next part of the tour.
+Sikuli Guide provides a function <a class="reference internal" href="#guide.dialog" title="guide.dialog"><tt class="xref py py-func docutils literal"><span class="pre">dialog(message)</span></tt></a>
+to accomplish this easily. Below is an example using this function to create a
+two-part guided tour.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> guide <span class="kw">import</span> *
+<span class='lineno'>2</span>text(<img src="links.png"/>,<span class="str">"Use these to jump to other parts"</span>)
+<span class='lineno'>3</span>dialog(<span class="str">"Part 1: Navigation Links"</span>)
+<span class='lineno'>4</span>show()
+<span class='lineno'>5</span>text(<img src="sikuli-logo.png"/>,<span class="str">"Use this to go back to Home"</span>)
+<span class='lineno'>6</span>dialog(<span class="str">"Part 2: Logo"</span>)
+<span class='lineno'>7</span>show()
+</pre>
+<p>The tour presented by the script above introduces the navigation links above
+and the Sikuli’s logo as a shortcut to go back to the documentation’s HOME
+page. The function call <tt class="docutils literal"><span class="pre">dialog("Part</span> <span class="pre">1")</span></tt> indicates the tour will show
+a dialog that displays the message specified by the string argument
+(i.e., Part 1: Navigation Links). The following call to <tt class="docutils literal"><span class="pre">show()</span></tt> will
+actually display the dialog along with the text elements spcified earlier.</p>
+<p>The figure below shows what happens after Line 3:</p>
+<img alt="../../_images/step1.png" src="../../_images/step1.png" />
+<p>After users click on the <strong>Next</strong> button, the tour moves to the next part. The
+screen will look like below:</p>
+<img alt="../../_images/step2.png" src="../../_images/step2.png" />
+</div>
+<div class="section" id="making-a-region-clickable">
+<h3>Making a Region clickable<a class="headerlink" href="#making-a-region-clickable" title="Permalink to this headline">¶</a></h3>
+<p>You might use the feature <a class="reference internal" href="#guide.clickable" title="guide.clickable"><tt class="xref py py-func docutils literal"><span class="pre">clickable(PSRM)</span></tt></a>, to make a region sensitive for clicks.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> guide <span class="kw">import</span> *
+<span class='lineno'>2</span>logo = <span class="skw">find</span>(<img src="sikuli-logo.png"/>)
+<span class='lineno'>3</span>text(logo, <span class="str">"To proceed click this red ..."</span>)
+<span class='lineno'>4</span>clickable(logo)
+<span class='lineno'>5</span>index = logo.above().right().<span class="skw">find</span>(<img src="index.png"/>)
+<span class='lineno'>6</span>text(index, <span class="str">"... or click this red"</span>)
+<span class='lineno'>7</span>clickable(index)
+<span class='lineno'>8</span>show()
+</pre>
+<p>The script waits until the user clicks one of the two highlighted areas.</p>
+<img alt="../../_images/annotation-clickable.png" src="../../_images/annotation-clickable.png" />
+<span class="target" id="module-guide"></span></div>
+</div>
+<div class="section" id="function-references">
+<h2>Function References<a class="headerlink" href="#function-references" title="Permalink to this headline">¶</a></h2>
+<p><strong>PSRM</strong>: when used as a parameter, it can be either <strong>P</strong> a Pattern,
+<strong>S</strong> a string (image file name or just plain text), a <strong>R</strong> Region object
+or <strong>M</strong> a Match object. With <strong>PS</strong> an implicit find operation takes place.
+(More information: <a class="reference internal" href="../../region.html#findinginsidearegionandwaitingforavisualevent"><em>Finding inside a Region ...</em></a>)</p>
+<div class="section" id="static-annotations">
+<h3>Static Annotations<a class="headerlink" href="#static-annotations" title="Permalink to this headline">¶</a></h3>
+<dl class="function">
+<dt id="guide.rectangle">
+<tt class="descclassname">guide.</tt><tt class="descname">rectangle</tt><big>(</big><em>PSRM</em><big>)</big><a class="headerlink" href="#guide.rectangle" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a rectangular overlay in red on the specified target’s region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PSRM</strong> – a pattern, string, region or match</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="guide.circle">
+<tt class="descclassname">guide.</tt><tt class="descname">circle</tt><big>(</big><em>PSRM</em><big>)</big><a class="headerlink" href="#guide.circle" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a red circle around the specified target’s region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PSRM</strong> – a pattern, string, region or match</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="guide.text">
+<tt class="descclassname">guide.</tt><tt class="descname">text</tt><big>(</big><em>PSRM</em>, <em>text</em><big>)</big><a class="headerlink" href="#guide.text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add some text (white large letters on dark grey background) left justified below the specified target’s region, which is additionally highlighted.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PSRM</strong> – a pattern, string, region or match</li>
+<li><strong>text</strong> – a string as text to display</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="guide.tooltip">
+<tt class="descclassname">guide.</tt><tt class="descname">tooltip</tt><big>(</big><em>PSRM</em>, <em>text</em><big>)</big><a class="headerlink" href="#guide.tooltip" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a tooltip (small text in a light yellow box) left justified below the specified target’s region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PSRM</strong> – a pattern, string, region or match</li>
+<li><strong>text</strong> – a string as text to display</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="interactive-elements">
+<h3>Interactive Elements<a class="headerlink" href="#interactive-elements" title="Permalink to this headline">¶</a></h3>
+<dl class="function">
+<dt id="guide.dialog">
+<tt class="descclassname">guide.</tt><tt class="descname">dialog</tt><big>(</big><em>text</em><big>)</big><a class="headerlink" href="#guide.dialog" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a dialog box displaying the given text in the middle of the screen above all othe windows.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> – a string as text to display</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="guide.clickable">
+<tt class="descclassname">guide.</tt><tt class="descname">clickable</tt><big>(</big><em>PSRM</em><big>)</big><a class="headerlink" href="#guide.clickable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a clickable element corresponding to the specified target’s region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PSRM</strong> – a pattern, string, region or match</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="control">
+<h3>Control<a class="headerlink" href="#control" title="Permalink to this headline">¶</a></h3>
+<dl class="function">
+<dt id="guide.show">
+<tt class="descclassname">guide.</tt><tt class="descname">show</tt><big>(</big><span class="optional">[</span><em>seconds</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#guide.show" title="Permalink to this definition">¶</a></dt>
+<dd><p>Show static and interactive components added so far for the specified amount of time.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seconds</strong> – a decimal number as display duration in seconds</td>
+</tr>
+</tbody>
+</table>
+<p>The default duration is 10 seconds. If interactive elements (either one or more clickable elements or
+a dialog box) were previously added, it waits until the user interacts with one of these elements.
+At this time all elements vanish and are discarded.</p>
+<p><strong>Note:</strong> If a <a class="reference internal" href="#guide.dialog" title="guide.dialog"><tt class="xref py py-func docutils literal"><span class="pre">dialog()</span></tt></a> element is present, other interactive elements are visible, but not clickable. If the dialog element is clicked, all elements vanish and are discarded.</p>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../devs/system-design.html" title="How Sikuli Works"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../extensions_info.html" title="General Information About Sikuli Extensions"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/index.png b/Docs/Python/build/html/extensions/sikuli-guide/index.png
new file mode 100644
index 0000000..cf15dac
Binary files /dev/null and b/Docs/Python/build/html/extensions/sikuli-guide/index.png differ
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/links.png b/Docs/Python/build/html/extensions/sikuli-guide/links.png
new file mode 100644
index 0000000..d87a167
Binary files /dev/null and b/Docs/Python/build/html/extensions/sikuli-guide/links.png differ
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/next.png b/Docs/Python/build/html/extensions/sikuli-guide/next.png
new file mode 100644
index 0000000..bbe8a30
Binary files /dev/null and b/Docs/Python/build/html/extensions/sikuli-guide/next.png differ
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/previous.png b/Docs/Python/build/html/extensions/sikuli-guide/previous.png
new file mode 100644
index 0000000..a030be5
Binary files /dev/null and b/Docs/Python/build/html/extensions/sikuli-guide/previous.png differ
diff --git a/Docs/Python/build/html/extensions/sikuli-guide/sikuli-logo.png b/Docs/Python/build/html/extensions/sikuli-guide/sikuli-logo.png
new file mode 100644
index 0000000..9276cfc
Binary files /dev/null and b/Docs/Python/build/html/extensions/sikuli-guide/sikuli-logo.png differ
diff --git a/Docs/Python/build/html/extensions/sikuli-hotkey/index.html b/Docs/Python/build/html/extensions/sikuli-hotkey/index.html
new file mode 100644
index 0000000..1e4e6f5
--- /dev/null
+++ b/Docs/Python/build/html/extensions/sikuli-hotkey/index.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli Hotkey — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Extensions" href="../index.html" />
+ <link rel="next" title="How Sikuli Works" href="../../devs/system-design.html" />
+ <link rel="prev" title="Sikuli Copier" href="../sikuli-copier/index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../devs/system-design.html" title="How Sikuli Works"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-copier/index.html" title="Sikuli Copier"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../sikuli-copier/index.html"
+ title="previous chapter">Sikuli Copier</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../../devs/system-design.html"
+ title="next chapter">How Sikuli Works</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/extensions/sikuli-hotkey/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-hotkey">
+<h1>Sikuli Hotkey<a class="headerlink" href="#sikuli-hotkey" title="Permalink to this headline">¶</a></h1>
+<p>(Under construction)</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../devs/system-design.html" title="How Sikuli Works"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-copier/index.html" title="Sikuli Copier"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Extensions</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/000-can-i-do-xxx.html b/Docs/Python/build/html/faq/000-can-i-do-xxx.html
new file mode 100644
index 0000000..3d6e969
--- /dev/null
+++ b/Docs/Python/build/html/faq/000-can-i-do-xxx.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Can I do X or Y or Z in Sikuli? — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="How to run Sikuli from Command Line" href="010-command-line.html" />
+ <link rel="prev" title="Resizing a Window" href="../tutorials/resize/resize.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../tutorials/resize/resize.html" title="Resizing a Window"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Can I do X or Y or Z in Sikuli?</a><ul>
+<li><a class="reference internal" href="#can-i-write-a-loop-in-sikuli">Can I write a loop in Sikuli?</a></li>
+<li><a class="reference internal" href="#can-i-create-a-gui-in-sikuli">Can I create a GUI in Sikuli?</a></li>
+<li><a class="reference internal" href="#can-i-connect-to-mysql-ms-sql-postgresql-or-any-database-systems-in-sikuli">Can I connect to MySQL/MS SQL/PostgreSQL or any database systems in Sikuli?</a></li>
+<li><a class="reference internal" href="#can-i-read-write-files-in-sikuli">Can I read/write files in Sikuli?</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../tutorials/resize/resize.html"
+ title="previous chapter">Resizing a Window</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="010-command-line.html"
+ title="next chapter">How to run Sikuli from Command Line</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/000-can-i-do-xxx.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="can-i-do-x-or-y-or-z-in-sikuli">
+<h1>Can I do X or Y or Z in Sikuli?<a class="headerlink" href="#can-i-do-x-or-y-or-z-in-sikuli" title="Permalink to this headline">¶</a></h1>
+<p>If you are wondering if Sikuli can do X or Y, these two rules apply:</p>
+<ul class="simple">
+<li>If you can do X with Java, you can also do it in Sikuli by simply adding the respective Java resources to the classpath (the standard Java classes are already there). For example, you can create a GUI with Java Swing, so you can do it in the same way in Sikuli.</li>
+<li>If you can do X with Python, you probably can do it in Sikuli as well. This actually depends on what Python modules you use. Sikuli is with the contained Jython on language level 2.5 and language level 2.7 will be useable soon. So everything available in the respective Python base package is available in Sikuli too. If modules are written in pure Python, you can use them in Sikuli as well. A typical example are the Excel access modules xlrd and xlwt. If they are written in C or depen [...]
+</ul>
+<div class="section" id="can-i-write-a-loop-in-sikuli">
+<h2>Can I write a loop in Sikuli?<a class="headerlink" href="#can-i-write-a-loop-in-sikuli" title="Permalink to this headline">¶</a></h2>
+<p>Yes. Sikuli uses Jython (Python).
+You can use all constructs that are available in standard Python. See Jython’s <a class="reference external" href="http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#while-loop">While loop</a> and <a class="reference external" href="http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#for-loop">For loop</a>.</p>
+</div>
+<div class="section" id="can-i-create-a-gui-in-sikuli">
+<h2>Can I create a GUI in Sikuli?<a class="headerlink" href="#can-i-create-a-gui-in-sikuli" title="Permalink to this headline">¶</a></h2>
+<p>Yes, you can create GUIs with Java Swing or any other Java/Jython GUI toolkits.
+See <a class="reference external" href="http://wiki.python.org/jython/SwingExamples">Jython’s Swing examples</a> for examples.</p>
+</div>
+<div class="section" id="can-i-connect-to-mysql-ms-sql-postgresql-or-any-database-systems-in-sikuli">
+<h2>Can I connect to MySQL/MS SQL/PostgreSQL or any database systems in Sikuli?<a class="headerlink" href="#can-i-connect-to-mysql-ms-sql-postgresql-or-any-database-systems-in-sikuli" title="Permalink to this headline">¶</a></h2>
+<p>You can use <a class="reference external" href="http://www.oracle.com/technetwork/java/javase/jdbc/index.html">JDBC</a> or <a class="reference external" href="http://www.jython.org/jythonbook/en/1.0/DatabasesAndJython.html">zxJDBC</a>.</p>
+</div>
+<div class="section" id="can-i-read-write-files-in-sikuli">
+<h2>Can I read/write files in Sikuli?<a class="headerlink" href="#can-i-read-write-files-in-sikuli" title="Permalink to this headline">¶</a></h2>
+<p>Yes. See Jython’s <a class="reference external" href="http://www.jython.org/jythonbook/en/1.0/InputOutput.html#file-i-o">File I/O</a>.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../tutorials/resize/resize.html" title="Resizing a Window"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/010-command-line.html b/Docs/Python/build/html/faq/010-command-line.html
new file mode 100644
index 0000000..d0cf52c
--- /dev/null
+++ b/Docs/Python/build/html/faq/010-command-line.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How to run Sikuli from Command Line — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="How to use Sikuli Script in your JAVA programs" href="030-java-dev.html" />
+ <link rel="prev" title="Can I do X or Y or Z in Sikuli?" href="000-can-i-do-xxx.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="000-can-i-do-xxx.html" title="Can I do X or Y or Z in Sikuli?"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">How to run Sikuli from Command Line</a><ul>
+<li><a class="reference internal" href="#command-line-options">Command Line Options</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="000-can-i-do-xxx.html"
+ title="previous chapter">Can I do X or Y or Z in Sikuli?</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="030-java-dev.html"
+ title="next chapter">How to use Sikuli Script in your JAVA programs</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/010-command-line.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-to-run-sikuli-from-command-line">
+<h1>How to run Sikuli from Command Line<a class="headerlink" href="#how-to-run-sikuli-from-command-line" title="Permalink to this headline">¶</a></h1>
+<p>SikuliX IDE or Script can be used on command line to run a Sikuli script or open it in the IDE.</p>
+<p>The usage on each platform:</p>
+<div class="admonition-windows admonition">
+<p class="first admonition-title">Windows</p>
+<p class="last"><strong class="command">PATH-TO-SIKULIX/runIDE.cmd [options]</strong> or
+<strong class="command">PATH-TO-SIKULIX/runScript.cmd [options]</strong></p>
+</div>
+<div class="admonition-mac-os-x admonition">
+<p class="first admonition-title">Mac OS X</p>
+<p class="last"><strong class="command">PATH-TO-SIKULIX/runIDE [options]</strong> or
+<strong class="command">PATH-TO-SIKULIX/runScript [options]</strong></p>
+</div>
+<div class="admonition-linux admonition">
+<p class="first admonition-title">Linux</p>
+<p class="last"><strong class="command">PATH-TO-SIKULIX/runIDE [options]</strong> or
+<strong class="command">PATH-TO-SIKULIX/runScript [options]</strong></p>
+</div>
+<p><strong>runIDE(.cmd) without any options</strong> simply starts SikuliX IDE.</p>
+<p><strong>PATH-TO-SIKULIX</strong> is the folder containing the Sikuli stuff after having run setup.</p>
+<div class="section" id="command-line-options">
+<h2>Command Line Options<a class="headerlink" href="#command-line-options" title="Permalink to this headline">¶</a></h2>
+<p><strong class="program">SikuliX IDE or Script</strong></p>
+<dl class="option">
+<dt id="cmdoption--">
+<tt class="descname">--</tt><tt class="descclassname"> <arguments></tt><a class="headerlink" href="#cmdoption--" title="Permalink to this definition">¶</a></dt>
+<dd><p>the space delimeted and optionally quoted arguments are passed to Jython’s sys.argv and hence are available to your script</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-h">
+<tt class="descname">-h</tt><tt class="descclassname">,--help</tt><a class="headerlink" href="#cmdoption-h" title="Permalink to this definition">¶</a></dt>
+<dd><p>print the help message showing the available options</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-r">
+<tt class="descname">-r</tt><tt class="descclassname">,--run <sikuli-folder/file></tt><a class="headerlink" href="#cmdoption-r" title="Permalink to this definition">¶</a></dt>
+<dd><p>run .sikuli or .skl file</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-c">
+<tt class="descname">-c</tt><tt class="descclassname">,--console</tt><a class="headerlink" href="#cmdoption-c" title="Permalink to this definition">¶</a></dt>
+<dd><p>all output goes to stdout</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-i">
+<tt class="descname">-i</tt><tt class="descclassname">,--interactive</tt><a class="headerlink" href="#cmdoption-i" title="Permalink to this definition">¶</a></dt>
+<dd><p>open an interactive Jython session that is prepared for the usage of the Sikuli features</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="000-can-i-do-xxx.html" title="Can I do X or Y or Z in Sikuli?"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/020-unit-test.html b/Docs/Python/build/html/faq/020-unit-test.html
new file mode 100644
index 0000000..d5afcb0
--- /dev/null
+++ b/Docs/Python/build/html/faq/020-unit-test.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How to create Unit Testing Scripts for GUI — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="How to use Sikuli Script in your JAVA programs" href="030-java-dev.html" />
+ <link rel="prev" title="How to run Sikuli from Command Line" href="010-command-line.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="010-command-line.html"
+ title="previous chapter">How to run Sikuli from Command Line</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="030-java-dev.html"
+ title="next chapter">How to use Sikuli Script in your JAVA programs</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/020-unit-test.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-to-create-unit-testing-scripts-for-gui">
+<h1>How to create Unit Testing Scripts for GUI<a class="headerlink" href="#how-to-create-unit-testing-scripts-for-gui" title="Permalink to this headline">¶</a></h1>
+<p>Sikuli integrates with jUnit and supports unit testing for Graphical User Interfaces (GUI).
+The unit testing panel can be opened by clicking the menu
+<em class="menuselection"><span class="accelerator">V</span>iew ‣ Unit Test</em> or by
+the hot key <tt class="kbd docutils literal"><span class="pre">⌘-U</span></tt> on Mac or <tt class="kbd docutils literal"><span class="pre">Ctrl-U</span></tt> on Windows/Linux.</p>
+<p>Sikuli IDE aims to minimize the effort of writing code.
+With Sikuli IDE, a Python class inherited from
+<a class="reference external" href="http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html">junit.framework.TestCase</a>
+is automatically generated to wrap your unit testing script.</p>
+<p>A typical unit testing script consists of two constructing and
+destructing methods,
+<a class="reference external" href="http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html#setUp()">setUp()</a> and <a class="reference external" href="http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html#tearDown()">tearDown()</a>,
+and a bunch of methods named with a prefix <tt class="xref std std-token docutils literal"><span class="pre">test</span></tt>.</p>
+<p>The basic structure of a script is given as following:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">def</span> setUp(self):
+<span class='lineno'>2</span> openApp(<span class="str">"AnyRandom.app"</span>)
+<span class='lineno'>3</span> <span class="skw">wait</span>(SCREENSHOT_OF_THE_APP) <span class="cmt"># wait until the app appears</span>
+<span class='lineno'>4</span>
+<span class='lineno'>5</span><span class="kw">def</span> tearDown(self):
+<span class='lineno'>6</span> closeApp(<span class="str">"AnyRandom.app"</span>)
+<span class='lineno'>7</span> untilNotExist(SCREENSHOT_OF_THE_APP) <span class="cmt"># wait until the app disappears</span>
+<span class='lineno'>8</span>
+<span class='lineno'>9</span><span class="kw">def</span> testA(self):
+<span class='lineno'>10</span> ....
+<span class='lineno'>11</span> <span class="kw">assert</span> exists(PICTURE_THAT_SHOULD_BE_THERE)
+<span class='lineno'>12</span>
+<span class='lineno'>13</span><span class="kw">def</span> testB(self):
+<span class='lineno'>14</span> ....
+<span class='lineno'>15</span> <span class="kw">assert</span> <span class="kw">not</span> exists(PICTURE_THAT_SHOULD_NOT_BE_THERE)
+</pre>
+<p>Here is <a class="reference external" href="http://sikuli.org/examples/TestJEdit.sikuli/TestJEdit.html">a complete example</a>.</p>
+<p>To run a unit testing script, you need to click on the <em class="guilabel">Run</em>
+button in the unit testing panel instead of the ordinary button.</p>
+<p><strong>IMPORTANT:</strong> Before you try to run your script in this test mode the first time, it has to be saved. Everytime you change something, you have to save it again, before the next test run.</p>
+<p>Alternatively, you also can run unit testing scripts from command line
+using the option <em class="xref std std-option">-t test-script</em>.</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/030-java-dev.html b/Docs/Python/build/html/faq/030-java-dev.html
new file mode 100644
index 0000000..928b46e
--- /dev/null
+++ b/Docs/Python/build/html/faq/030-java-dev.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How to use Sikuli Script in your JAVA programs — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="How to use Sikuli together with other IDE’s" href="040-other-ide.html" />
+ <link rel="prev" title="How to run Sikuli from Command Line" href="010-command-line.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">How to use Sikuli Script in your JAVA programs</a><ul>
+<li><a class="reference internal" href="#include-sikuli-script-jar-in-the-classpath-of-your-java-project">1. Include sikuli-script.jar in the CLASSPATH of your Java project.</a></li>
+<li><a class="reference internal" href="#import-the-sikuli-classes-you-need">2. Import the Sikuli classes you need</a></li>
+<li><a class="reference internal" href="#write-code">3. Write code!</a></li>
+<li><a class="reference internal" href="#see-also">See also</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="010-command-line.html"
+ title="previous chapter">How to run Sikuli from Command Line</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="040-other-ide.html"
+ title="next chapter">How to use Sikuli together with other IDE’s</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/030-java-dev.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-to-use-sikuli-script-in-your-java-programs">
+<h1>How to use Sikuli Script in your JAVA programs<a class="headerlink" href="#how-to-use-sikuli-script-in-your-java-programs" title="Permalink to this headline">¶</a></h1>
+<p id="howtojava">The core of Sikuli Script is written in Java, which means you can use Sikuli Script as a standard JAVA library in your program. This document lets you know how to do that.</p>
+<p>After having setup Sikuli on your system, as recommended on the <a class="reference external" href="http://sikuli.org/download.shtml">download page</a>, you have to do the following:</p>
+<div class="section" id="include-sikuli-script-jar-in-the-classpath-of-your-java-project">
+<h2>1. Include sikuli-script.jar in the CLASSPATH of your Java project.<a class="headerlink" href="#include-sikuli-script-jar-in-the-classpath-of-your-java-project" title="Permalink to this headline">¶</a></h2>
+<p>We use Eclipse as an example. After adding sikuli-script.jar or preferably sikuli-java.jar as a library reference into your project, the project hierarchy should look like this.</p>
+<img alt="../_images/test-sikuli-project.png" src="../_images/test-sikuli-project.png" />
+</div>
+<div class="section" id="import-the-sikuli-classes-you-need">
+<h2>2. Import the Sikuli classes you need<a class="headerlink" href="#import-the-sikuli-classes-you-need" title="Permalink to this headline">¶</a></h2>
+<p>You can simply “import org.sikuli.script.*” or import the classes you need. In most cases, you would need at least <a class="reference internal" href="../region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> or <a class="reference internal" href="../screen.html#Screen" title="Screen"><tt class="xref py py-class docutils literal"><span class="pre">Screen</span></tt></a>.</p>
+</div>
+<div class="section" id="write-code">
+<h2>3. Write code!<a class="headerlink" href="#write-code" title="Permalink to this headline">¶</a></h2>
+<p>Here is a hello world example on Mac.
+The program clicks on the spotlight icon on the screen, waits until spotlight’s input window appears, activates it by clicking and then writes “hello world” into the field and hits ENTER.</p>
+<div class="highlight-java"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">org.sikuli.script.*</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">TestSikuli</span> <span class="o">{</span>
+
+ <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">Screen</span> <span class="n">s</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Screen</span><span class="o">();</span>
+ <span class="k">try</span><span class="o">{</span>
+ <span class="n">s</span><span class="o">.</span><span class="na">click</span><span class="o">(</span><span class="s">"imgs/spotlight.png"</span><span class="o">);</span>
+ <span class="n">s</span><span class="o">.</span><span class="na">wait</span><span class="o">(</span><span class="s">"imgs/spotlight-input.png"</span><span class="o">);</span>
+ <span class="n">s</span><span class="o">.</span><span class="na">click</span><span class="o">();</span>
+ <span class="n">s</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="s">"hello world#ENTER."</span><span class="o">);</span>
+ <span class="o">}</span>
+ <span class="k">catch</span><span class="o">(</span><span class="n">FindFailed</span> <span class="n">e</span><span class="o">){</span>
+ <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+
+<span class="o">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="see-also">
+<h2>See also<a class="headerlink" href="#see-also" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Be aware, that some method signatures in the Java API differ from the scripting level.</dt>
+<dd><ul class="first last simple">
+<li><a class="reference external" href="http://sikuli.org/doc/java-x/">Javadoc of SikuliX</a>.</li>
+<li><a class="reference internal" href="../sikuli-script-index.html"><em>Everything about Sikuli Script</em></a>.</li>
+</ul>
+</dd>
+</dl>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="010-command-line.html" title="How to run Sikuli from Command Line"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/040-other-ide.html b/Docs/Python/build/html/faq/040-other-ide.html
new file mode 100644
index 0000000..f308e25
--- /dev/null
+++ b/Docs/Python/build/html/faq/040-other-ide.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>How to use Sikuli together with other IDE’s — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="Everything about Sikuli Script" href="../sikuli-script-index.html" />
+ <link rel="prev" title="How to use Sikuli Script in your JAVA programs" href="030-java-dev.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-script-index.html" title="Everything about Sikuli Script"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">How to use Sikuli together with other IDE’s</a><ul>
+<li><a class="reference internal" href="#general-requirements-and-comments">General Requirements and Comments</a></li>
+<li><a class="reference internal" href="#netbeans">Netbeans</a></li>
+<li><a class="reference internal" href="#eclipse">Eclipse</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="030-java-dev.html"
+ title="previous chapter">How to use Sikuli Script in your JAVA programs</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../sikuli-script-index.html"
+ title="next chapter">Everything about Sikuli Script</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/040-other-ide.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="how-to-use-sikuli-together-with-other-ide-s">
+<h1>How to use Sikuli together with other IDE’s<a class="headerlink" href="#how-to-use-sikuli-together-with-other-ide-s" title="Permalink to this headline">¶</a></h1>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<p>currently available for <a class="reference internal" href="#netbeanssikuli"><em>Netbeans</em></a> and <a class="reference internal" href="#eclipsesikuli"><em>Eclipse</em></a>.</p>
+<p>In this section we want to talk about requirements and todos, when you want to develop Sikuli scripts in other IDE’s than the one that comes with the distribution. You should read further, if you want to develop at least a part of your package using <strong>Python language</strong>. If you “only” want to develop in Java using the Java level API of Sikuli, then you should look here: <a class="reference internal" href="030-java-dev.html#howtojava"><em>How to use Sikuli [...]
+<p>Very detailed background information and helpful examples can be found in the <strong>Jython e-book</strong> <a class="reference external" href="http://jythonpodcast.hostjava.net/jythonbook/en/1.0/JythonIDE.html#chapter-11-using-jython-in-an-ide">Chapter 11: Using Jython in a IDE</a>. So we will concentrate on the key points here.</p>
+<p>The following approaches are evaluated and tested on Mac OS X 10.6 and Windows 7 32Bit. Linux users have to find the appropriate setups themselves - but they should be similar or even identical.</p>
+<p>These and more might be your reasons:</p>
+<ul class="simple">
+<li>you want to stick with your favorite IDE</li>
+<li>you want more features, than Sikuli-IDE currently has</li>
+<li>you want to develop packages/applications combining Sikuli script and Java or even other languages</li>
+<li>you want to develop a <a class="reference internal" href="../extensions/extensions_info.html#sikuliextensions"><em>Sikuli Extension</em></a></li>
+<li>you need a debugger for your script/package/application</li>
+<li>you want to integrate with a versioning system</li>
+<li>you want to do professional unittesting</li>
+</ul>
+<div class="section" id="general-requirements-and-comments">
+<h2>General Requirements and Comments<a class="headerlink" href="#general-requirements-and-comments" title="Permalink to this headline">¶</a></h2>
+<p><strong>Install Sikuli</strong></p>
+<ul>
+<li><dl class="first docutils">
+<dt><strong>Windows:</strong> install Sikuli X using the installer (the system %PATH% will be set as needed)</dt>
+<dd><p class="first">There is a new environment variable <strong>%SIKULI_HOME%</strong> that is expected to contain the directory, where Sikuli X is installed. You have to set it, if you have Sikuli X in a different place.</p>
+<p class="last"><strong>Be aware:</strong> using the zipped version, you have to take care for %PATH% and %SIKULI_HOME% yourself.</p>
+</dd>
+</dl>
+</li>
+<li><p class="first"><strong>Mac:</strong> have Sikuli-IDE.app in its standard place /Applications. There is generally no need to put it elsewhere.</p>
+</li>
+<li><p class="first"><strong>Linux:</strong> you generally have to take care for the environment yourself.</p>
+</li>
+</ul>
+<p><strong>Meanings of shortcuts used</strong>:</p>
+<ul class="simple">
+<li><strong>path-to/sikuli-script.jar</strong> if we use this, it should be replaced by the absolute path to the file sikuli-script.jar, where you installed Sikuli.</li>
+</ul>
+<p><strong>Images and importing other Sikuli scripts</strong></p>
+<p>It is recommended to carefully read through <a class="reference internal" href="../globals.html#importingsikuliscripts"><em>Importing other Sikuli Scripts (reuse code and images)</em></a>, since you need to have a concept how to capture, how to name and where to store your images. As a first start, just decide to use Sikuli IDE in parallel to capture and store your images and use the import feature or the image path to make them available in your script.</p>
+</div>
+<div class="section" id="netbeans">
+<h2>Netbeans<a class="headerlink" href="#netbeans" title="Permalink to this headline">¶</a></h2>
+<p id="netbeanssikuli">This is based on <strong>Netbeans 6.9</strong>. We suppose you have it running in a setup that allows to at least develop Java applications.</p>
+<p>Since this is not a tutorial how to use NetBeans in general, you should be familiar with the basic concepts.</p>
+<p><strong>Install Python plugin</strong></p>
+<p>Since the top level language used by Sikuli script is Python, you need the Python plugin that comes bundled with Jython 2.5.1.</p>
+<p>In the Python plugin NetBeans is not strict in naming: though they mainly talk about Python, Jython is meant as well. The Python interpreter to use is selected on the project level.</p>
+<p>Go to menu <strong>Tools</strong> -> <strong>Plugins</strong> -> <strong>Available Plugins</strong></p>
+<p>In the list select everything that is in the category Python and install. If suggested by the install process always restart Netbeans.</p>
+<p><strong>Configure for using Sikuli script features at runtime</strong></p>
+<p>The plugin itself has nothing to configure, that is of value for the Sikuli usage. Everything is done on the project level, though some basic preferences act like plugin globals - we just have to know and accept this ;-)</p>
+<p>These are the setup steps:</p>
+<ul class="simple">
+<li>Start a new project: <strong>File</strong> -> <strong>New Project</strong> -> <strong>Categories: Python</strong> -> <strong>Python Project</strong> -> click <strong>Next</strong></li>
+<li>In the second step <strong>Name and Location</strong> (last line), select as Python Platform: <strong>Jython 2.5.1</strong>.</li>
+<li>you might want to click <strong>Make Default</strong>, if you have real Python also available (Remember: Sikuli scripts cannot be run with real Python!)</li>
+<li>To integrate Sikuli: click the button <strong>Manage</strong> (only needed with the first project - it is remembered)</li>
+<li>on the tab <strong>Python Path</strong> we need an additional entry, that points to <strong>path-to/sikuli-script.jar/Lib</strong>.<ul>
+<li>Windows: click the button <strong>Add</strong> and click through to <em>path-to/sikuli-script.jar</em>. Before clicking <strong>Open</strong>, edit the filename so that it shows sikuli-script.jar\Lib.</li>
+<li>Mac: since the Netbeans file dialog does not allow to dive into a bundle like Sikuli-IDE.app, we have to edit the preference file directly. Since it is the same with the Java path, we have documented it seperatly below <a class="reference internal" href="#nbmacselectlibpath"><em>Mac/Netbeans: select library path</em></a>.</li>
+</ul>
+</li>
+<li>on the tab <strong>Java Path</strong> we need an additional entry, that points to <strong>path-to/sikuli-script.jar</strong>. If you have other Java libraries, that you need in your project, add them here too.<ul>
+<li>Windows: click the button <strong>Add</strong> and click through to <em>path-to/sikuli-script.jar</em>. Clicking <strong>Open</strong>.</li>
+<li>Mac: same again, see below <a class="reference internal" href="#nbmacselectlibpath"><em>Mac/Netbeans: Select library path</em></a>.</li>
+</ul>
+</li>
+</ul>
+<p>Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need <em>from sikuli.Sikuli import *</em>, to have access to the Sikuli features at runtime.</p>
+<p>Everytime later on you might come back to the project’s preferences with <strong>File</strong> -> <strong>Project Properties (your-project’s-name)</strong> . You will find the above information in the categorie Python.</p>
+<p><strong>Prepare to use Code Completion for the Sikuli methods</strong></p>
+<p>The NetBeans editor in the Python plugin editor is not able to recognize Python classes and methods, as long as the respective source code is embedded inside a jar-file as it is the fact with Sikuli. If you want <em>Code Completion</em> to work, you have to extract the folder <strong>Lib/sikuli</strong> from <em>sikuli-script.jar</em>, place it somewhere and add the reference to this folder to the Python Path in the project’s preferences (see above: Configure Python Path).</p>
+<p id="extractlibsikuli">To extract the folder <strong>Lib/sikuli</strong> from <em>sikuli-script.jar</em> you might use the jar utility, that comes with the Java JDK or any other utility, that allows to unjar a jar-file.</p>
+<p>This is a Mac example how to use the jar uility, supposing it can be found on the system path:</p>
+<ul class="simple">
+<li>in a Terminal window go to an appropriate folder, that should contain Lib/sikuli afterwards</li>
+<li>run: jar -xf /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar Lib/sikuli</li>
+</ul>
+<p>You might decide, to use a folder, that is already on the Python path. One folder that is designated by Jython to contain complementary sources, that needs to be imported, is the folder <em>Lib/site-packages</em> in the Jython installation directory. If you copy the folder <strong>sikuli</strong> here, you do not need an additional Python path entry.</p>
+<p id="nbmacselectlibpath"><strong>Mac/NetBeans: Select library path</strong></p>
+<p>To perpare the preference file modification we first add the path to <em>Sikuli-IDE.app</em> on both tabs: click the button <strong>Add</strong> and click through to <em>/Applications/Sikuli-IDE.app</em>. Depending on your selected language, the folder Applications is named like you see it in the Finder. Save the preferences by clicking close and/or ok.</p>
+<p>The preference file is located at /Users/your-name/.netbeans/6.9/build.properties. Since it is hidden, you might have to use the Finder option “Go to Folder” (Shift-Command-G), to open the folder /Users/your-name/.netbeans/.</p>
+<p>Open the file build.properties in your favorite editor and search for the text <em>/Applications/Sikuli-IDE.app</em>. It should be at the end of 2 lines beginning with <em>pythonplatform.</em>.</p>
+<p>On the line beginning <em>pythonplatform. ... .javalib=</em> extend <em>/Applications/Sikuli-IDE.app</em> so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar.</p>
+<p>On the line beginning <em>pythonplatform. ... .pythonlib=</em> extend <em>/Applications/Sikuli-IDE.app</em> so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar/Lib.</p>
+<p>Save the file and restart Netbeans. It is a good idea to check, that the correct entries are found on the 2 tabs now.</p>
+</div>
+<div class="section" id="eclipse">
+<h2>Eclipse<a class="headerlink" href="#eclipse" title="Permalink to this headline">¶</a></h2>
+<p id="eclipsesikuli">This is based on <strong>Eclipse Helios 3.6</strong>. We suppose you have it running in a setup that allows to at least develop Java applications.</p>
+<p>Since this is not a tutorial how to use Eclipse in general, you should be familiar with the basic concepts.</p>
+<p><strong>Install Python plugin (PyDev) and Jython</strong></p>
+<p>Since the top level language used by Sikuli script is Python, you need the Python plugin PyDev. Different from NetBeans, though PyDev is prepared to use Jython as interpreter, you have to install Jython on your own seperately.</p>
+<p>So <strong>first install Jython</strong>, by downloading the version you want to use from the <a class="reference external" href="http://www.jython.org/downloads.html">Jython download page</a>. Sikuli currently is based on Jython 2.5.1, but you may choose Jython 2.5.2 as well. Install it according to Jythons installation HowTo.</p>
+<p>After installation, make a test from a commandline by typing jython.bat (Windows) or jython (Mac/Linux) to open an interactive Jython session.</p>
+<p>You might type the following (<enter> means pressing the enter/return key)</p>
+<ul class="simple">
+<li>import os <enter></li>
+<li>import sys <enter></li>
+<li>for e in sys.path: print e <enter> <enter></li>
+<li>type exit() <enter> (to leave interactive Jython)</li>
+</ul>
+<p>This shows the current Jython configuration of the Python path. Remember the place where Jython is installed.</p>
+<p>Now we <strong>install the PyDev plugin</strong> from inside Eclipse: Menu <strong>Help</strong> -> <strong>Eclipse Marketplace</strong>. Either search it or find it on the Popular tab’s lower part. Simply click the Install button and do what you are asked to do ;-)</p>
+<p>The next step is to tell Eclipse PyDev, where it can find the Jython interpreter. Navigate to the <em>Eclipse Preferences</em> pane and open the category <em>PyDev</em> and inside the subcategory <em>Interpreter-Jython</em>. First try to <em>Auto Config</em> by clicking the appropriate button. If this does not work, click the button <em>New</em>, name the entry and navigate to the folder, where Jython was installed and select <em>jython.jar</em>. After clicking ok, a window <em>Select [...]
+<p>Other options with PyDev are available, but not relevant for our actual matter (<a class="reference external" href="http://pydev.org/manual_101_root.html">see documentation</a>).</p>
+<p><strong>Configure for using Sikuli script features at runtime</strong></p>
+<p>Again we have a difference to Netbeans: The PyDev plugin does not allow library references to folders inside of jar-files in the respective configuration dialog (it does not insert them to the Python path), though Jython itself accepts them, when specified on the Python path. So if you want to run and debug your script in Eclipse, you have to extract the folder <strong>Lib/sikuli</strong> from sikuli-script.jar (<a class="reference internal" href="#extractlibsikuli"><em>find one HowTo [...]
+<p>As with Netbeans, the library configuration is done in the project itself. So we open a new project:</p>
+<ul class="simple">
+<li>Menu <strong>File</strong> -> <strong>New</strong> -> <strong>Project</strong> -> <strong>PyDev</strong> -> (open sublist) -> <strong>PyDev Project</strong> -> click <strong>Next</strong> button.</li>
+</ul>
+<p>On the configuration pane name your project, select Jython as Project type, grammar version 2.5 (higher Python language versions are not supported by Jython 2.5.x) and click
+the <strong>Finish</strong> button. Your project is created. Add at least one <em>you-name-it.py</em> file to the source folder and put <em>from sikuli.Sikuli import *</em> as the first line.</p>
+<p>In the last step, we tell PyDev, where to find the Sikuli libraries.</p>
+<p>Goto Menu <strong>Project</strong> -> <strong>Properties</strong> -> select category <strong>PyDev - PYTHONPATH</strong> and go to the tab <strong>External Libraries</strong>. We need a reference to <em>path-to/sikuli-script.jar</em> and another one to the extracted folder <em>Lib</em> containing the folder <em>sikuli</em>.</p>
+<ul class="simple">
+<li>reference to <em>path-to/sikuli-script.jar</em><ul>
+<li>Windows: click button <strong>Add zip/jar/egg</strong> and select <em>sikuli-script.jar</em> from the Sikuli installation.</li>
+<li>Mac: As with NetBeans, the file dialog does not allow to step inside Sikuli-IDE.app. So we use the trick, to define a <em>String Substitution Variable</em>: on the respective tab click <strong>Add variable</strong>, name it e.g. <em>sikuli-script</em> and enter as value: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar. Go back to the tab <strong>External Libraries</strong> and click <strong>Add based on variable</strong>. In the entry field enter: ${sikuli-scri [...]
+</ul>
+</li>
+<li>reference to the extracted folder <em>Lib</em> containing the folder <em>sikuli</em><ul>
+<li>click <strong>Add source folder</strong> and select the folder <em>Lib</em> in the place you had it extracted.</li>
+<li>this is not needed, if you have moved the extracted folder <em>sikuli</em> to a folder, that is already on the Python path (e.g. jython-intallation/Lib/site-packages).</li>
+</ul>
+</li>
+</ul>
+<p>Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need <em>from sikuli.Sikuli import *</em>, to have access to the Sikuli features at runtime.</p>
+<p>Everytime later on you might come back to the project’s preferences with <strong>Project</strong> -> <strong>Properties</strong>.</p>
+<p><strong>Code Completion</strong> works from the start without any further configuration and even steps into the Java classes where appropriate.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-script-index.html" title="Everything about Sikuli Script"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="030-java-dev.html" title="How to use Sikuli Script in your JAVA programs"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/faq/050-tuning-sikuli.html b/Docs/Python/build/html/faq/050-tuning-sikuli.html
new file mode 100644
index 0000000..b6e2859
--- /dev/null
+++ b/Docs/Python/build/html/faq/050-tuning-sikuli.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli is too slow or not robust. What can I do? — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="Everything about Sikuli Script" href="../sikuli-script-index.html" />
+ <link rel="prev" title="How to use Sikuli together with other IDE’s" href="040-other-ide.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-script-index.html" title="Everything about Sikuli Script"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="040-other-ide.html"
+ title="previous chapter">How to use Sikuli together with other IDE’s</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../sikuli-script-index.html"
+ title="next chapter">Everything about Sikuli Script</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/faq/050-tuning-sikuli.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-is-too-slow-or-not-robust-what-can-i-do">
+<h1>Sikuli is too slow or not robust. What can I do?<a class="headerlink" href="#sikuli-is-too-slow-or-not-robust-what-can-i-do" title="Permalink to this headline">¶</a></h1>
+<p>You can tune a parameter of the vision algorithm, <a class="reference internal" href="../globals.html#min-target-size"><em>MinTargetSize</em></a>, to speed up the matching process or make it more robust.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> org.sikuli.script.natives <span class="kw">import</span> Vision
+<span class='lineno'>2</span>
+<span class='lineno'>3</span>Vision.setParameter(<span class="str">"MinTargetSize"</span>, <span class="dig">6</span>) <span class="cmt"># A small value such as 6 makes the matching algorithm be faster.</span>
+<span class='lineno'>4</span>Vision.setParameter(<span class="str">"MinTargetSize"</span>, <span class="dig">18</span>) <span class="cmt"># A large value such as 18 makes the matching algorithm be more robust.</span>
+</pre>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sikuli-script-index.html" title="Everything about Sikuli Script"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/finder.html b/Docs/Python/build/html/finder.html
new file mode 100644
index 0000000..2e01614
--- /dev/null
+++ b/Docs/Python/build/html/finder.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Finder — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Key Constants" href="keys.html" />
+ <link rel="prev" title="Pattern" href="pattern.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="keys.html" title="Key Constants"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="pattern.html" title="Pattern"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="pattern.html"
+ title="previous chapter">Pattern</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="keys.html"
+ title="next chapter">Key Constants</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/finder.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="finder">
+<h1>Finder<a class="headerlink" href="#finder" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Finder">
+<em class="property">class </em><tt class="descname">Finder</tt><a class="headerlink" href="#Finder" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>A Finder object implements an iterator of matches and allows to search for a visual
+object in an image file that you provide (e.g. a screenshot taken and saved in a
+file before). After setting up the finder object and doing a find operation, you can
+iterate through the found matches if any.</p>
+<p>Important to know:</p>
+<ul class="simple">
+<li>per definition, an iterator can be stepped through only once - it is empty
+afterwards</li>
+<li>it has to be destroyed using <tt class="docutils literal"><span class="pre">finder.destroy()</span></tt>, especially when
+used with <tt class="docutils literal"><span class="pre">for:</span></tt> or <tt class="docutils literal"><span class="pre">while:</span></tt></li>
+<li>when used in a <tt class="docutils literal"><span class="pre">with:</span></tt> construct, it is destroyed automatically</li>
+</ul>
+<p>Compared with the region based find operation, no exception FindFailed is
+raised in case nothing is found at all (use <tt class="docutils literal"><span class="pre">hasNext()</span></tt> to check). The finder object
+can be compared to what you get with <tt class="docutils literal"><span class="pre">region.getLastMatches()</span></tt> when using <a class="reference internal" href="region.html#Region.findAll" title="Region.findAll"><tt class="xref py py-meth docutils literal"><span class="pre">findAll()</span></tt></a>.</p>
+<p><strong>Note</strong>: With this version, there is no chance, to get the number of matches in
+advance. If you would iterate through to count, afterwards your finder would be
+empty. So in this case, you have to save your matches somehow (one possible solution
+see example below).</p>
+<p>The workflow always is, that you first do a find operation and afterwards go through the
+matches found. After a complete iteration, the finder object is empty. So you
+could start a new find operation again.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Finder</tt></dt>
+<dd><dl class="method">
+<dt id="Finder.Finder">
+<tt class="descname">Finder</tt><big>(</big><em>path-to-imagefile</em><big>)</big><a class="headerlink" href="#Finder.Finder" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a new finder object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>path-to-imagefile</strong> – filename to a source image to search within</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Finder.find">
+<tt class="descname">find</tt><big>(</big><em>path-to-imagefile</em><span class="optional">[</span>, <em>similarity</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Finder.find" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find a given image within a source image previously specified in the
+constructor of the finder object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>path-to-imagefile</strong> – the target image to search for</li>
+<li><strong>similarity</strong> – the minimum similarity a match should have. If omitted,
+the default is used.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Finder.hasNext">
+<tt class="descname">hasNext</tt><big>(</big><big>)</big><a class="headerlink" href="#Finder.hasNext" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check whether there are more matches available that satisfy the minimum
+similarity requirement.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><em>True</em> if more matches exist.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Finder.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="headerlink" href="#Finder.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the next match.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object.</td>
+</tr>
+</tbody>
+</table>
+<p>The returnd reference to a match object is no longer available in the finder
+object afterwards. So if it is needed later on, it has to be saved to
+another variable.</p>
+</dd></dl>
+
+</dd></dl>
+
+<p>Example 1: basic operations using a Finder</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="cmt"># create a Finder with your saved screenshot</span>
+<span class='lineno'>2</span>f = Finder(<img src="stars.png"/>)
+<span class='lineno'>3</span>img= <img src="star.png"/> <span class="cmt"># the image you are searching</span>
+<span class='lineno'>4</span>
+<span class='lineno'>5</span>f.<span class="skw">find</span>(img) <span class="cmt"># find all matches</span>
+<span class='lineno'>6</span>
+<span class='lineno'>7</span><span class="kw">while</span> f.hasNext(): <span class="cmt"># loop as long there is a first and more matches</span>
+<span class='lineno'>8</span> <span class="kw">print</span> <span class="str">"found: "</span>, f.next() <span class="cmt"># access the next match in the row</span>
+<span class='lineno'>9</span>
+<span class='lineno'>10</span><span class="kw">print</span> f.hasNext() <span class="cmt"># is False, because f is empty now</span>
+<span class='lineno'>11</span>f.destroy() <span class="cmt"># release the memory used by finder</span>
+</pre>
+<p>Example 2: we want to know how many matches (based on the previous example).</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="cmt"># create a Finder with your saved screenshot</span>
+<span class='lineno'>2</span>f = Finder(<img src="stars.png"/>)
+<span class='lineno'>3</span>img= <img src="star.png"/> <span class="cmt"># the image you are searching</span>
+<span class='lineno'>4</span>
+<span class='lineno'>5</span>f.<span class="skw">find</span>(img) <span class="cmt"># find all matches</span>
+<span class='lineno'>6</span>mm = [] <span class="cmt"># an empty list</span>
+<span class='lineno'>7</span>
+<span class='lineno'>8</span><span class="kw">while</span> f.hasNext(): <span class="cmt"># loop as long there is a first and more matches</span>
+<span class='lineno'>9</span> mm.append(f.next()) <span class="cmt"># access next match and add to mm</span>
+<span class='lineno'>10</span>
+<span class='lineno'>11</span><span class="kw">print</span> f.hasNext() <span class="cmt"># is False, because f is empty now</span>
+<span class='lineno'>12</span>f.destroy() <span class="cmt"># release the memory used by finder</span>
+<span class='lineno'>13</span>
+<span class='lineno'>14</span><span class="cmt"># now we have our matches saved in the list mm</span>
+<span class='lineno'>15</span><span class="kw">print</span> len(mm) <span class="cmt"># the number of matches</span>
+<span class='lineno'>16</span>
+<span class='lineno'>17</span><span class="cmt"># we want to use our matches</span>
+<span class='lineno'>18</span><span class="kw">for</span> m <span class="kw">in</span> mm:
+<span class='lineno'>19</span> <span class="kw">print</span> m
+</pre>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="keys.html" title="Key Constants"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="pattern.html" title="Pattern"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/genindex.html b/Docs/Python/build/html/genindex.html
new file mode 100644
index 0000000..ae2abe7
--- /dev/null
+++ b/Docs/Python/build/html/genindex.html
@@ -0,0 +1,1072 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Index — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="#" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+
+
+
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#Symbols"><strong>Symbols</strong></a>
+ | <a href="#A"><strong>A</strong></a>
+ | <a href="#B"><strong>B</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#E"><strong>E</strong></a>
+ | <a href="#F"><strong>F</strong></a>
+ | <a href="#G"><strong>G</strong></a>
+ | <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#K"><strong>K</strong></a>
+ | <a href="#L"><strong>L</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#O"><strong>O</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ | <a href="#W"><strong>W</strong></a>
+
+</div>
+<h2 id="Symbols">Symbols</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt>
+ -- <arguments>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption--">command line option</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt>
+ -c,--console
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption-c">command line option</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt>
+ -h,--help
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption-h">command line option</a>
+ </dt>
+
+ </dl></dd>
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt>
+ -i,--interactive
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption-i">command line option</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt>
+ -r,--run <sikuli-folder/file>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption-r">command line option</a>
+ </dt>
+
+ </dl></dd>
+ </dl></td>
+</tr></table>
+
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="location.html#Location.above">above() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.above">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#Settings.ActionLogs">ActionLogs (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.addHotkey">addHotkey() (Env method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#addImagePath">addImagePath() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="keys.html#ALT">ALT (built-in variable)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#App">App (built-in class)</a>, <a href="globals.html#App">[1]</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="location.html#Location.below">below() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.below">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#index-2">Bundle Path</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="screen.html#Screen.capture">capture() (Screen method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#SikuliEvent.changes">changes (SikuliEvent attribute)</a>
+ </dt>
+
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.circle">circle() (in module guide)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.click">click() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.clickable">clickable() (in module guide)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#App.close">close() (App class method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="globals.html#App.close">(App method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#closeApp">closeApp() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="keys.html#CMD">CMD (built-in variable)</a>
+ </dt>
+
+
+ <dt>
+ command line option
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="faq/010-command-line.html#cmdoption--">-- <arguments></a>
+ </dt>
+
+
+ <dt><a href="faq/010-command-line.html#cmdoption-c">-c,--console</a>
+ </dt>
+
+
+ <dt><a href="faq/010-command-line.html#cmdoption-h">-h,--help</a>
+ </dt>
+
+
+ <dt><a href="faq/010-command-line.html#cmdoption-i">-i,--interactive</a>
+ </dt>
+
+
+ <dt><a href="faq/010-command-line.html#cmdoption-r">-r,--run <sikuli-folder/file></a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="keys.html#CTRL">CTRL (built-in variable)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#Settings.DebugLogs">DebugLogs (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.DelayAfterDrag">DelayAfterDrag (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.DelayBeforeDrop">DelayBeforeDrop (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.dialog">dialog() (in module guide)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.doubleClick">doubleClick() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.drag">drag() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.dragDrop">dragDrop() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.dropAt">dropAt() (Region method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="pattern.html#Pattern.exact">exact() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.exists">exists() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#exit">exit() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="finder.html#Finder.find">find() (Finder method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.find">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="region.html#Region.findAll">findAll() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="finder.html#Finder">Finder (built-in class)</a>, <a href="finder.html#Finder">[1]</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="finder.html#Finder.Finder">Finder() (Finder method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#App.focus">focus() (App class method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="globals.html#App.focus">(App method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#App.focusedWindow">focusedWindow() (App class method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.getAutoWaitTimeout">getAutoWaitTimeout() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getBottomLeft">getBottomLeft() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getBottomRight">getBottomRight() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="screen.html#Screen.getBounds">getBounds() (Screen method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#getBundlePath">getBundlePath() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getCenter">getCenter() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.getClipboard">getClipboard() (Env method)</a>
+ </dt>
+
+
+ <dt><a href="pattern.html#Pattern.getFilename">getFilename() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getFindFailedResponse">getFindFailedResponse() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getH">getH() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#getImagePath">getImagePath() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getLastMatch">getLastMatch() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getLastMatches">getLastMatches() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getLocationFromPSRML">getLocationFromPSRML() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.getMouseLocation">getMouseLocation() (Env method)</a>
+ </dt>
+
+
+ <dt><a href="screen.html#Screen.getNumberScreens">getNumberScreens() (Screen method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#Env.getOS">getOS() (Env method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.getOSVersion">getOSVersion() (Env method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Vision.getParameter">getParameter() (Vision method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getRegionFromPSRM">getRegionFromPSRM() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="match.html#Match.getScore">getScore() (Match method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getScreen">getScreen() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.getSikuliVersion">getSikuliVersion() (Env method)</a>
+ </dt>
+
+
+ <dt><a href="match.html#Match.getTarget">getTarget() (Match method)</a>
+ </dt>
+
+
+ <dt><a href="pattern.html#Pattern.getTargetOffset">getTargetOffset() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getThrowException">getThrowException() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getTopLeft">getTopLeft() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getTopRight">getTopRight() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.getW">getW() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="location.html#Location.getX">getX() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.getX">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="location.html#Location.getY">getY() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.getY">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="extensions/sikuli-guide/index.html#module-guide">guide (module)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="H">H</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="finder.html#Finder.hasNext">hasNext() (Finder method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.highlight">highlight() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.hover">hover() (Region method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt>
+ Image Search Path
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="globals.html#index-1">SIKULI_IMAGE_PATH</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#index-0">import .sikuli</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.InfoLogs">InfoLogs (Settings attribute)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#input">input() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.inside">inside() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.isLockOn">isLockOn() (Env method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="K">K</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="keys.html#Key">Key (built-in class)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.keyDown">keyDown() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="keys.html#KeyModifier">KeyModifier (built-in class)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.keyUp">keyUp() (Region method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="location.html#Location.left">left() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.left">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#load">load() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="location.html#Location">Location (built-in class)</a>
+ </dt>
+
+
+ <dt><a href="location.html#Location.Location">Location() (Location method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="match.html#Match">Match (built-in class)</a>, <a href="match.html#Match">[1]</a>
+ </dt>
+
+
+ <dt><a href="region.html#SikuliEvent.match">match (SikuliEvent attribute)</a>
+ </dt>
+
+
+ <dt><a href="keys.html#META">META (built-in variable)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.MinSimilarity">MinSimilarity (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.morphTo">morphTo() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.mouseDown">mouseDown() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.mouseMove">mouseMove() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.mouseUp">mouseUp() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.MoveMouseDelay">MoveMouseDelay (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.moveTo">moveTo() (Region method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.nearby">nearby() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="finder.html#Finder.next">next() (Finder method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="O">O</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.observe">observe() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.ObserveMinChangedPixels">ObserveMinChangedPixels (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.ObserveScanRate">ObserveScanRate (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="location.html#Location.offset">offset() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.offset">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="region.html#Region.onAppear">onAppear() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.onChange">onChange() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.onVanish">onVanish() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#App.open">open() (App class method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="globals.html#App.open">(App method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="globals.html#openApp">openApp() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.paste">paste() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="pattern.html#Pattern">Pattern (built-in class)</a>, <a href="pattern.html#Pattern">[1]</a>
+ </dt>
+
+
+ <dt><a href="region.html#SikuliEvent.pattern">pattern (SikuliEvent attribute)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="pattern.html#Pattern.Pattern">Pattern() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#popup">popup() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.rectangle">rectangle() (in module guide)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region">Region (built-in class)</a>, <a href="region.html#Region">[1]</a>, <a href="region.html#Region">[2]</a>, <a href="region.html#Region">[3]</a>, <a href="region.html#Region">[4]</a>, <a href="region.html#Region">[5]</a>, <a href="region.html#Region">[6]</a>, <a href="region.html#Region">[7]</a>, <a href="region.html#Region">[8]</a>, <a href="region.html#Region">[9]</a>
+ </dt>
+
+
+ <dt><a href="region.html#SikuliEvent.region">region (SikuliEvent attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.Region">Region() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Env.removeHotkey">removeHotkey() (Env method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#removeImagePath">removeImagePath() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="location.html#Location.right">right() (Location method)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.right">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="region.html#Region.rightClick">rightClick() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#run">run() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="screen.html#Screen">Screen (built-in class)</a>, <a href="screen.html#Screen">[1]</a>, <a href="screen.html#Screen">[2]</a>
+ </dt>
+
+
+ <dt><a href="screen.html#Screen.Screen">Screen() (Screen method)</a>
+ </dt>
+
+
+ <dt><a href="screen.html#Screen.selectRegion">selectRegion() (Screen method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setAutoWaitTimeout">setAutoWaitTimeout() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#setBundlePath">setBundlePath() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setFindFailedResponse">setFindFailedResponse() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setH">setH() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="location.html#Location.setLocation">setLocation() (Location method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Vision.setParameter">setParameter() (Vision method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setRect">setRect() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setROI">setROI() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#setShowActions">setShowActions() (built-in function)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setThrowException">setThrowException() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="globals.html#Settings">Settings (built-in class)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setW">setW() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setX">setX() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.setY">setY() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="keys.html#SHIFT">SHIFT (built-in variable)</a>
+ </dt>
+
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.show">show() (in module guide)</a>
+ </dt>
+
+
+ <dt>
+ SIKULI_IMAGE_PATH
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="globals.html#index-1">Image Search Path</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="region.html#SikuliEvent">SikuliEvent (built-in class)</a>
+ </dt>
+
+
+ <dt><a href="pattern.html#Pattern.similar">similar() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.SlowMotionDelay">SlowMotionDelay (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.stopObserver">stopObserver() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#switchApp">switchApp() (built-in function)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="pattern.html#Pattern.targetOffset">targetOffset() (Pattern method)</a>
+ </dt>
+
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.text">text() (in module guide)</a>
+ </dt>
+
+ <dd><dl>
+
+ <dt><a href="region.html#Region.text">(Region method)</a>
+ </dt>
+
+ </dl></dd>
+
+ <dt><a href="extensions/sikuli-guide/index.html#guide.tooltip">tooltip() (in module guide)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#SikuliEvent.type">type (SikuliEvent attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.type">type() (Region method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+<h2 id="W">W</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.wait">wait() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#Settings.WaitScanRate">WaitScanRate (Settings attribute)</a>
+ </dt>
+
+
+ <dt><a href="region.html#Region.waitVanish">waitVanish() (Region method)</a>
+ </dt>
+
+ </dl></td>
+ <td style="width: 33%" valign="top"><dl>
+
+ <dt><a href="region.html#Region.wheel">wheel() (Region method)</a>
+ </dt>
+
+
+ <dt><a href="keys.html#WIN">WIN (built-in variable)</a>
+ </dt>
+
+
+ <dt><a href="globals.html#App.window">window() (App method)</a>
+ </dt>
+
+ </dl></td>
+</tr></table>
+
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="#" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/globals.html b/Docs/Python/build/html/globals.html
new file mode 100644
index 0000000..3bda4fe
--- /dev/null
+++ b/Docs/Python/build/html/globals.html
@@ -0,0 +1,1286 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Global Functions and Features — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Region" href="region.html" />
+ <link rel="prev" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="region.html" title="Region"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="sikuli-script-index.html" title="Everything about Sikuli Script"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Global Functions and Features</a><ul>
+<li><a class="reference internal" href="#importing-other-sikuli-scripts-reuse-code-and-images">Importing other Sikuli Scripts (reuse code and images)</a></li>
+<li><a class="reference internal" href="#controlling-sikuli-scripts-and-their-behavior">Controlling Sikuli Scripts and their Behavior</a></li>
+<li><a class="reference internal" href="#controlling-applications-and-their-windows">Controlling Applications and their Windows</a><ul>
+<li><a class="reference internal" href="#the-application-class">The Application Class</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#interacting-with-the-user">Interacting with the User</a></li>
+<li><a class="reference internal" href="#listening-to-global-hotkeys">Listening to Global Hotkeys</a></li>
+<li><a class="reference internal" href="#general-settings-and-access-to-environment-information">General Settings and Access to Environment Information</a></li>
+<li><a class="reference internal" href="#advanced-settings-for-speed-and-robustness">Advanced Settings for Speed and Robustness</a><ul>
+<li><a class="reference internal" href="#mintargetsize">MinTargetSize</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="sikuli-script-index.html"
+ title="previous chapter">Everything about Sikuli Script</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="region.html"
+ title="next chapter">Region</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/globals.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="global-functions-and-features">
+<h1>Global Functions and Features<a class="headerlink" href="#global-functions-and-features" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="importing-other-sikuli-scripts-reuse-code-and-images">
+<span id="importingsikuliscripts"></span><span id="index-0"></span><h2>Importing other Sikuli Scripts (reuse code and images)<a class="headerlink" href="#importing-other-sikuli-scripts-reuse-code-and-images" title="Permalink to this headline">¶</a></h2>
+<p>When getting more experienced with scripting or when you are used to structure
+your solutions into a modular system, you might want to have access to the
+related features of the programming environment - in this case the
+Python/Jython features of module support - for your scripts too.</p>
+<p>This is possible with Sikuli X:</p>
+<ul class="simple">
+<li>import other .sikuli in a way that is fully compatible with Python import</li>
+<li>import a python module structure including underlying Java classes from a
+jar-file, that is dynamically loaded using the function <a class="reference internal" href="#load" title="load"><tt class="xref py py-func docutils literal"><span class="pre">load(jar-file)</span></tt></a></li>
+<li>automatically access images contained in the imported .sikuli (no need to use
+<a class="reference internal" href="#setBundlePath" title="setBundlePath"><tt class="xref py py-func docutils literal"><span class="pre">setBundlePath()</span></tt></a>)</li>
+</ul>
+<p><strong>Note</strong>: Currently a .skl cannot be imported. As a circumvention it is up to you
+to unzip the .skl on the fly (e.g. with gzip on the command line) to a place of
+your choice as .sikuli (e.g. temp directory) and import it from there.</p>
+<p><strong>The prerequisites</strong>:</p>
+<ul>
+<li><p class="first">the directories/folders containing your .sikuli’s you want to import have to
+be in <tt class="docutils literal"><span class="pre">sys.path</span></tt> (see below: Usage)</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+</li>
+<li><p class="first">Sikuli automatically finds other Sikuli scripts in the same directory, when they are imported</p>
+</li>
+<li><p class="first">your imported script must contain (recommendation: as first line) the
+following statement: <tt class="docutils literal"><span class="pre">from</span> <span class="pre">sikuli</span> <span class="pre">import</span> <span class="pre">*</span></tt> (this is necessary for the
+Python environment to know the Sikuli classes, methods, functions and global
+names)</p>
+</li>
+</ul>
+<p><strong>Usage</strong>:</p>
+<ul>
+<li><p class="first">Add the path to the Sikuli module into <em>sys.path</em> (since X-1.0rc3: If the modules to import are in the same directory as the main script, skip this step.)</p>
+</li>
+<li><p class="first">Import your .sikuli using just its name. For example, to import a_module.sikuli, just write <em>import a_module</em>.</p>
+</li>
+<li><p class="first">the example contains a recommendation to avoid double entries:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># an example - choose your own naming</span>
+<span class="c"># on Windows</span>
+<span class="n">myScriptPath</span> <span class="o">=</span> <span class="s">"c:</span><span class="se">\\</span><span class="s">someDirectory</span><span class="se">\\</span><span class="s">myLibrary"</span>
+<span class="c"># on Mac/Linux</span>
+<span class="n">myScriptPath</span> <span class="o">=</span> <span class="s">"/someDirectory/myLibrary"</span>
+
+<span class="c"># all systems</span>
+<span class="k">if</span> <span class="ow">not</span> <span class="n">myScriptPath</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">:</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">myScriptPath</span><span class="p">)</span>
+
+<span class="c"># supposing there is a myLib.sikuli</span>
+<span class="kn">import</span> <span class="nn">myLib</span>
+
+<span class="c"># supposing myLib.sikuli contains a function "def myFunction():"</span>
+<span class="n">myLib</span><span class="o">.</span><span class="n">myFunction</span><span class="p">()</span> <span class="c"># makes the call</span>
+</pre></div>
+</div>
+</li>
+</ul>
+<p><strong>Note on contained images:</strong> Together with the import, Sikuli internally uses
+the new <a class="reference internal" href="#imagesearchpath"><em>SIKULI_IMAGE_PATH</em></a> to make sure that images contained in imported
+.sikuli’s are found automatically.</p>
+<p><strong>Some comments for readers not familiar with Python import</strong></p>
+<ul>
+<li><p class="first">An import is only processed once (the first time it is found in the program
+flow). So be aware:</p>
+<ul>
+<li><p class="first">If your imported script contains code outside of any function definitions ( <tt class="docutils literal"><span class="pre">def()</span></tt> ),
+this code is only processed once at the first time, when the import is evaluated</p>
+</li>
+<li><p class="first">Since the IDE does not reload the modules while running a script each time, if you are changing imported scripts while they are in use, you have to use the Jython’s reload() function:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># instead of: import module</span>
+<span class="kn">import</span> <span class="nn">module</span>
+<span class="nb">reload</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+
+<span class="c"># instead of: from module import *</span>
+<span class="kn">import</span> <span class="nn">module</span>
+<span class="nb">reload</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">module</span> <span class="kn">import</span> <span class="o">*</span>
+</pre></div>
+</div>
+</li>
+</ul>
+</li>
+<li><p class="first">Python has a so called namespace concept: names (variables, functions,
+classes) are only known in it’s namespace your main script has it’s own namespace</p>
+<ul class="simple">
+<li>Each imported script has its own namespace. So names contained in an
+imported script have to be qualified with the module name (e.g. <tt class="docutils literal"><span class="pre">myLib.myFunction()</span></tt> )</li>
+<li>You may use <tt class="docutils literal"><span class="pre">from</span> <span class="pre">myLib</span> <span class="pre">import</span> <span class="pre">*</span></tt>, which integrates all names from myLib
+into your current namespace. So you can use <tt class="docutils literal"><span class="pre">myFunction()</span></tt> directly. When you
+decide to use this version, be sure you have a naming convention that
+prevents naming conflicts.</li>
+</ul>
+</li>
+</ul>
+<p><strong>Another example: Importing from the same directory</strong></p>
+<p>This approach allows to develop a modularized script app that is contained in
+one directory. This directory can be moved around with no changes and even
+distributed as a zipped file:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># works on all platforms</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="c"># get the directory containing your running .sikuli</span>
+<span class="n">myPath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">getBundlePath</span><span class="p">())</span>
+<span class="k">if</span> <span class="ow">not</span> <span class="n">myPath</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">:</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">myPath</span><span class="p">)</span>
+
+<span class="c"># now you can import every .sikuli in the same directory</span>
+<span class="kn">import</span> <span class="nn">myLib</span>
+</pre></div>
+</div>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<p>Since scripts in same directory are found automatically:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># nothing else needed</span>
+<span class="c"># now you can import every .sikuli in the same directory</span>
+<span class="kn">import</span> <span class="nn">myLib</span>
+</pre></div>
+</div>
+<p><strong>Loading a jar-file containing Java/Python modules</strong></p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="function">
+<dt id="load">
+<tt class="descname">load</tt><big>(</big><em>jar-file</em><big>)</big><a class="headerlink" href="#load" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads a jar-file and puts the absolute path to it into sys.path, so
+the Java or Python code in that jar-file can be imported afterwards.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>jar-file</strong> – either a <tt class="docutils literal"><span class="pre">filename.jar</span></tt> without any path or the absolute
+path to <tt class="docutils literal"><span class="pre">filename.jar</span></tt></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><tt class="docutils literal"><span class="pre">True</span></tt> if the file was found, otherwise <tt class="docutils literal"><span class="pre">False</span></tt></td>
+</tr>
+</tbody>
+</table>
+<p><strong>Note:</strong> if no path is specified, Sikuli first looks into the bundle (the
+Sikuli folder of the running script) and then into the extensions folder.
+(more information: <a class="reference internal" href="extensions/extensions_info.html#sikuliextensions"><em>Sikuli Extensions</em></a>)</p>
+</dd></dl>
+
+</div>
+<div class="section" id="controlling-sikuli-scripts-and-their-behavior">
+<span id="controllingsikuliscriptsandtheirbehavior"></span><h2>Controlling Sikuli Scripts and their Behavior<a class="headerlink" href="#controlling-sikuli-scripts-and-their-behavior" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="setShowActions">
+<tt class="descname">setShowActions</tt><big>(</big><em>False | True</em><big>)</big><a class="headerlink" href="#setShowActions" title="Permalink to this definition">¶</a></dt>
+<dd><p>If set to <em>True</em>, when a script is run, Sikuli shows a visual effect (a blinking
+double lined red circle) on the spot where the action will take place before
+executing actions (e.g. <tt class="docutils literal"><span class="pre">click()</span></tt>, <tt class="docutils literal"><span class="pre">dragDrop()</span></tt>, <tt class="docutils literal"><span class="pre">type()</span></tt>, etc) for about 2 seconds in the
+standard (see <a class="reference internal" href="#Settings.SlowMotionDelay" title="Settings.SlowMotionDelay"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.SlowMotionDelay</span></tt></a> ). The default setting is False.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="exit">
+<tt class="descname">exit</tt><big>(</big><span class="optional">[</span><em>value</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#exit" title="Permalink to this definition">¶</a></dt>
+<dd><p>Stops the script gracefully at this point. The value is returned to the calling
+environment.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="Settings">
+<em class="property">class </em><tt class="descname">Settings</tt><a class="headerlink" href="#Settings" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="attribute">
+<dt id="Settings.ActionLogs">
+<tt class="descclassname">Settings.</tt><tt class="descname">ActionLogs</tt><a class="headerlink" href="#Settings.ActionLogs" title="Permalink to this definition">¶</a></dt>
+<dt id="Settings.InfoLogs">
+<tt class="descclassname">Settings.</tt><tt class="descname">InfoLogs</tt><a class="headerlink" href="#Settings.InfoLogs" title="Permalink to this definition">¶</a></dt>
+<dt id="Settings.DebugLogs">
+<tt class="descclassname">Settings.</tt><tt class="descname">DebugLogs</tt><a class="headerlink" href="#Settings.DebugLogs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Either option might be switched on (True) or off (False), to show or hide the respective message type in the IDE console or on command line ([log], [info], [debug]).</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="Settings.MinSimilarity">
+<tt class="descclassname">Settings.</tt><tt class="descname">MinSimilarity</tt><a class="headerlink" href="#Settings.MinSimilarity" title="Permalink to this definition">¶</a></dt>
+<dd><p>The default minimum similiarty of find operations.
+While using a <a class="reference internal" href="region.html#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> operation,
+if only an image file is provided, Sikuli searches
+the region using a default minimum similarity of 0.7.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="Settings.MoveMouseDelay">
+<tt class="descclassname">Settings.</tt><tt class="descname">MoveMouseDelay</tt><a class="headerlink" href="#Settings.MoveMouseDelay" title="Permalink to this definition">¶</a></dt>
+<dd><p>Control the time taken for mouse movement to a target location by setting this
+value to a decimal value (default 0.5). The unit is seconds. Setting it to
+0 will switch off any animation (the mouse will “jump” to the target location).</p>
+<p>As a standard behavior the time to move the mouse pointer from the current
+location to the target location given by mouse actions is 0.5 seconds. During
+this time, the mouse pointer is moved continuosly with decreasing speed to the
+target point. An additional benefit of this behavior is, that it gives the
+active application some time to react on the previous mouse action, since the
+e.g. click is simulated at the end of the mouse movement:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">mmd</span> <span class="o">=</span> <span class="n">Settings</span><span class="o">.</span><span class="n">MoveMouseDelay</span> <span class="c"># save default/actual value</span>
+<span class="n">click</span><span class="p">(</span><span class="n">image1</span><span class="p">)</span> <span class="c"># implicitly wait 0.5 seconds before click</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">MoveMouseDelay</span> <span class="o">=</span> <span class="mi">3</span>
+<span class="n">click</span><span class="p">(</span><span class="n">image2</span><span class="p">)</span> <span class="c"># give app 3 seconds time before clicking again</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">MoveMouseDelay</span> <span class="o">=</span> <span class="n">mmd</span> <span class="c"># reset to original value</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="Settings.DelayAfterDrag">
+<tt class="descclassname">Settings.</tt><tt class="descname">DelayAfterDrag</tt><a class="headerlink" href="#Settings.DelayAfterDrag" title="Permalink to this definition">¶</a></dt>
+<dt id="Settings.DelayBeforeDrop">
+<tt class="descclassname">Settings.</tt><tt class="descname">DelayBeforeDrop</tt><a class="headerlink" href="#Settings.DelayBeforeDrop" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>DelayAfterDrag</em> specifies the waiting time after mouse down at the source
+location as a decimal value (seconds).</p>
+<p><em>DelayBeforeDrop</em> specifies the
+waiting time before mouse up at the target location as a decimal value
+(seconds).</p>
+<p><strong>Usage</strong>: When using <a class="reference internal" href="region.html#Region.dragDrop" title="Region.dragDrop"><tt class="xref py py-meth docutils literal"><span class="pre">Region.dragDrop()</span></tt></a> you may have situations, where the
+operation is not processed as expected. This may be due to the fact, that the
+Sikuli actions are too fast for the target application to react properly. With
+these settings the waiting time after the mouse down at the source location and
+before the mouse up at the target location of a dragDrop operation are
+controlled. The standard settings are 0.3 seconds for each value. The time that
+is taken, to move the mouse from source to target is controlled by
+<a class="reference internal" href="#Settings.MoveMouseDelay" title="Settings.MoveMouseDelay"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.MoveMouseDelay</span></tt></a>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># you may wish to save the actual settings before</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">DelayAfterDrag</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">DelayBeforeDrop</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">MoveMouseDelay</span> <span class="o">=</span> <span class="mi">3</span>
+<span class="n">dragDrop</span><span class="p">(</span><span class="n">source_image</span><span class="p">,</span> <span class="n">target_image</span><span class="p">)</span>
+<span class="c"># time for complete dragDrop: about 5 seconds + search times</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="Settings.SlowMotionDelay">
+<tt class="descclassname">Settings.</tt><tt class="descname">SlowMotionDelay</tt><a class="headerlink" href="#Settings.SlowMotionDelay" title="Permalink to this definition">¶</a></dt>
+<dd><p>Control the duration of the visual effect (seconds).</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="Settings.WaitScanRate">
+<tt class="descclassname">Settings.</tt><tt class="descname">WaitScanRate</tt><a class="headerlink" href="#Settings.WaitScanRate" title="Permalink to this definition">¶</a></dt>
+<dt id="Settings.ObserveScanRate">
+<tt class="descclassname">Settings.</tt><tt class="descname">ObserveScanRate</tt><a class="headerlink" href="#Settings.ObserveScanRate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Specify the number of times actual search operations are performed per second
+while waiting for a pattern to appear or vanish.</p>
+<p>As a standard behavior Sikuli internally processes about 3 search operations per
+second, when processing a <a class="reference internal" href="region.html#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">Region.wait()</span></tt></a>, <a class="reference internal" href="region.html#Region.exists" title="Region.exists"><tt class="xref py py-meth docutils literal"><span class="pre">Region.exists()</span></tt></a>,
+<a class="reference internal" href="region.html#Region.waitVanish" title="Region.waitVanish"><tt class="xref py py-meth docutils literal"><span class="pre">Region.waitVanish()</span></tt></a>, <a class="reference internal" href="region.html#Region.observe" title="Region.observe"><tt class="xref py py-meth docutils literal"><span class="pre">Region.observe()</span></tt></a>). In cases where this
+leads to an excessive usage of system ressources or if you intentionally want to
+look for the visual object not so often, you may set the respective values to
+what you need. Since the value is used as a rate per second, specifying values
+between 1 and near zero, leads to scans every x seconds (e.g. specifying 0.5
+will lead to scans every 2 seconds):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">myHandler</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
+ <span class="k">print</span> <span class="s">"it happened"</span>
+
+<span class="c"># you may wish to save the actual settings before</span>
+<span class="n">Settings</span><span class="o">.</span><span class="n">ObserveScanRate</span> <span class="o">=</span> <span class="mf">0.2</span>
+<span class="n">onAppear</span><span class="p">(</span><span class="n">some_image</span><span class="p">,</span> <span class="n">myHandler</span><span class="p">)</span>
+<span class="n">observe</span><span class="p">(</span><span class="n">FOREVER</span><span class="p">,</span> <span class="n">background</span> <span class="o">=</span> <span class="bp">True</span><span class="p">)</span>
+<span class="c"># the observer will look every 5 seconds</span>
+<span class="c"># since your script does not wait here, you</span>
+<span class="c"># might want to stop the observing later on ;-)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="attribute">
+<dt id="Settings.ObserveMinChangedPixels">
+<tt class="descclassname">Settings.</tt><tt class="descname">ObserveMinChangedPixels</tt><a class="headerlink" href="#Settings.ObserveMinChangedPixels" title="Permalink to this definition">¶</a></dt>
+<dd><p>The minimum size in pixels of a change to trigger a change event when using <a class="reference internal" href="region.html#Region.onChange" title="Region.onChange"><tt class="xref py py-meth docutils literal"><span class="pre">Region.onChange()</span></tt></a> without specifying this value.
+The default value is 50.</p>
+</dd></dl>
+
+</div>
+<div class="section" id="controlling-applications-and-their-windows">
+<h2>Controlling Applications and their Windows<a class="headerlink" href="#controlling-applications-and-their-windows" title="Permalink to this headline">¶</a></h2>
+<p>Here we talk about opening or closing other applications, switching to them (bring
+their windows to front) or accessing an application’s windows.</p>
+<p>The three global functions <a class="reference internal" href="#openApp" title="openApp"><tt class="xref py py-func docutils literal"><span class="pre">openApp()</span></tt></a>, <a class="reference internal" href="#switchApp" title="switchApp"><tt class="xref py py-func docutils literal"><span class="pre">switchApp()</span></tt></a> and
+<a class="reference internal" href="#closeApp" title="closeApp"><tt class="xref py py-func docutils literal"><span class="pre">closeApp()</span></tt></a> introduced in Sikuli 0.9 and 0.10 are still valid in the moment,
+but they should be considered as deprecated. They are being replaced by a new
+<a class="reference internal" href="#App" title="App"><tt class="xref py py-class docutils literal"><span class="pre">App</span></tt></a> class introduced in Sikuli X. This class makes it possible to treat
+a specific application as an object with attributes and methods. We recommend to
+switch to the class App and its features, the next time you work with one of your
+existing scripts and in all cases, when developing new scripts.</p>
+<p><strong>General hint for Windows users</strong> on backslashes \ and double apostrophes “</p>
+<p>In a Sikuli script in normal strings enclosed in ” (double apostrophes),
+these special characters \ and ” have to be escaped using a backslash,
+when you have them inside the string. So for one backslash you need \\
+and for one ” you need \”. In a string enclosed in ‘ (single apostrophes), a ‘
+has to be \’ and a ” is taken as such.</p>
+<p>To avoid any problems, it is recommended to use the raw string <tt class="docutils literal"><span class="pre">r'some</span> <span class="pre">text</span> <span class="pre">with</span> <span class="pre">\\</span> <span class="pre">and</span> <span class="pre">"</span> <span class="pre">...'</span></tt>,
+since there is no need for escaping.
+This is especially useful, when you have to specify Windows path’s or want to
+setup command lines for use with App.open(), openApp(), os.popen or Jythons Subprocess module.</p>
+<p>a fictive command line example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">cmd</span> <span class="o">=</span> <span class="s">r'c:\Program Files\myapp.exe -x "c:\Some Place\some.txt" >..\log.txt'</span>
+<span class="n">openApp</span><span class="p">(</span><span class="n">cmd</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><strong>This is a comparism of old (xxxApp) and new (App.xxx) functions:</strong></p>
+<ul class="simple">
+<li>Open an application: <a class="reference internal" href="#openApp" title="openApp"><tt class="xref py py-func docutils literal"><span class="pre">openApp()</span></tt></a> –> <a class="reference internal" href="#App.open" title="App.open"><tt class="xref py py-meth docutils literal"><span class="pre">App.open()</span></tt></a></li>
+<li>Switch to an application or application window: <a class="reference internal" href="#switchApp" title="switchApp"><tt class="xref py py-func docutils literal"><span class="pre">switchApp()</span></tt></a> –>
+<a class="reference internal" href="#App.focus" title="App.focus"><tt class="xref py py-meth docutils literal"><span class="pre">App.focus()</span></tt></a></li>
+<li>Close an application: <a class="reference internal" href="#closeApp" title="closeApp"><tt class="xref py py-func docutils literal"><span class="pre">closeApp()</span></tt></a> –> <a class="reference internal" href="#App.close" title="App.close"><tt class="xref py py-meth docutils literal"><span class="pre">App.close()</span></tt></a></li>
+</ul>
+<dl class="function">
+<dt id="openApp">
+<tt class="descname">openApp</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#openApp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Open the specified application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – <p>a string containing the name of an application (case-insensitive), that can be
+found in the path used by the system to locate applications. Or it can be the
+full path to an application.</p>
+<p><strong>Note for Windows:</strong> (since X-1.0rc3) The string may contain commandline parameters
+for the specified program or batch file after the name or full path.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>This function opens the specified application and brings its windows to the
+front. This is equivalent to <a class="reference internal" href="#App.open" title="App.open"><tt class="xref py py-meth docutils literal"><span class="pre">App.open()</span></tt></a>. Depending on the system and/or
+the application, this function may switch to an already opened application or
+may open a new instance of the application.</p>
+<p>Examples:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Windows: opens command prompt (found through PATH)</span>
+<span class="n">openApp</span><span class="p">(</span><span class="s">"cmd.exe"</span><span class="p">)</span>
+
+<span class="c">#Windows (since X-1.0rc3): with parameters (no sense, only to show ;-)</span>
+<span class="n">openApp</span><span class="p">(</span><span class="s">r'cmd.exe /c start c:\Program Files\myapp.bat'</span><span class="p">)</span>
+
+<span class="c"># Windows: opens Firefox (full path specified)</span>
+<span class="n">openApp</span><span class="p">(</span><span class="s">"c:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Mozilla Firefox</span><span class="se">\\</span><span class="s">firefox.exe"</span><span class="p">)</span>
+
+<span class="c"># Mac: opens Safari</span>
+<span class="n">openApp</span><span class="p">(</span><span class="s">"Safari"</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="switchApp">
+<tt class="descname">switchApp</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#switchApp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Switch to the specified application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – the name of an application (case-insensitive) or (part of) a
+window title (Windows/Linux).</td>
+</tr>
+</tbody>
+</table>
+<p>This function switches the focus to the specified application and brings its
+windows to the front. This function is equivalent to <a class="reference internal" href="#App.focus" title="App.focus"><tt class="xref py py-meth docutils literal"><span class="pre">App.focus()</span></tt></a>.</p>
+<p>On Windows/Linux, the window is the one identified by the <em>application</em> string.
+This string is used to search the title text of all the opened windows for any
+part of the title matching the string. Thus, this string needs not be an
+application’s name. For example, it can be a filename of an opened document that
+is displayed in the title bar. It is useful for choosing a particular window out
+of the many windows with different titles.</p>
+<p>On Mac, the <em>application</em> string is used to identify the application. If the
+application has multiple windows opened, all these windows will be brought to
+the front. The relatively ordering among these windows remain the same.</p>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Windows: switches to an existing command prompt or starts a new one</span>
+<span class="n">switchApp</span><span class="p">(</span><span class="s">"cmd.exe"</span><span class="p">)</span>
+
+<span class="c"># Windows: opens a new browser window</span>
+<span class="n">switchApp</span><span class="p">(</span><span class="s">"c:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Mozilla Firefox</span><span class="se">\\</span><span class="s">firefox.exe"</span><span class="p">)</span>
+
+<span class="c"># Windows: switches to the frontmost opened browser window (or does nothing</span>
+<span class="c"># if no browser window is currently opened)</span>
+<span class="n">switchApp</span><span class="p">(</span><span class="s">"mozilla firefox"</span><span class="p">)</span>
+
+<span class="c"># Mac: switches to Safari or starts it</span>
+<span class="n">switchApp</span><span class="p">(</span><span class="s">"Safari"</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="closeApp">
+<tt class="descname">closeApp</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#closeApp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Close the specified application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – the name of an application (case-insensitive) or (part of) a
+window title (Windows/Linux)</td>
+</tr>
+</tbody>
+</table>
+<p>This function closes the application indicated by the string <em>application</em> (Mac) or
+the windows whose titles contain the string <em>application</em> (Windows/Linux). this
+function is equivalent to <a class="reference internal" href="#App.close" title="App.close"><tt class="xref py py-meth docutils literal"><span class="pre">App.close()</span></tt></a>. On Windows/Linux, the
+application itself may be closed if the main window is closed or if all the
+windows of the application are closed.</p>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Windows: closes an existing command prompt</span>
+<span class="n">closeApp</span><span class="p">(</span><span class="s">"cmd.exe"</span><span class="p">)</span>
+
+<span class="c"># Windows: does nothing, since text can not be found in the window title</span>
+<span class="n">closeApp</span><span class="p">(</span><span class="s">"c:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Mozilla Firefox</span><span class="se">\\</span><span class="s">firefox.exe"</span><span class="p">)</span>
+
+<span class="c"># Windows: stops firefox including all its windows</span>
+<span class="n">closeApp</span><span class="p">(</span><span class="s">"mozilla firefox"</span><span class="p">)</span>
+
+<span class="c"># Mac: closes Safari including all its windows</span>
+<span class="n">closeApp</span><span class="p">(</span><span class="s">"Safari"</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="run">
+<tt class="descname">run</tt><big>(</big><em>command</em><big>)</big><a class="headerlink" href="#run" title="Permalink to this definition">¶</a></dt>
+<dd><p>Run <em>command</em> in the command line</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>command</strong> – a command that can be run from the command line.</td>
+</tr>
+</tbody>
+</table>
+<p>This function executes the command and the script waits for its completion.</p>
+</dd></dl>
+
+<div class="section" id="the-application-class">
+<h3>The Application Class<a class="headerlink" href="#the-application-class" title="Permalink to this headline">¶</a></h3>
+<dl class="class">
+<dt id="App">
+<em class="property">class </em><tt class="descname">App</tt><a class="headerlink" href="#App" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Sikuli-X introduces the new class called <a class="reference internal" href="#App" title="App"><tt class="xref py py-class docutils literal"><span class="pre">App</span></tt></a> to provide a more
+convenient and flexible way to control the application and its windows.</p>
+<p><a class="reference internal" href="#classappmethods"><em>go directly to the methods</em></a></p>
+<p><strong>Using class methods or instance methods</strong></p>
+<p>Generally you have the choice between using the class methods (e.g.
+<tt class="docutils literal"><span class="pre">App.open("application-identifier")</span></tt>) or first create an App instance and use
+the instance methods afterwards (e.g. <tt class="docutils literal"><span class="pre">myApp</span> <span class="pre">=</span> <span class="pre">App("application-identifier")</span></tt>
+and then later on <tt class="docutils literal"><span class="pre">myApp.open()</span></tt>). In the current state of the feature
+developement of the class App, there is no recomendation for a preferred usage.
+The only real difference is, that you might save some ressources, when using the
+instance approach, since using the class methods produces more intermediate
+objects.</p>
+<p id="createappinstance"><strong>How to create an App instance</strong></p>
+<p>The basic choice is to just say <tt class="docutils literal"><span class="pre">someApp</span> <span class="pre">=</span> <span class="pre">App("some-app-identifier")</span></tt> and you
+have your app instance, that you can later on use together with its methods,
+without having to specify the string again.</p>
+<p>Additionally <tt class="docutils literal"><span class="pre">App.open("some-app-identifier")</span></tt> and <tt class="docutils literal"><span class="pre">App.focus("some-app-identifier")</span></tt>
+return an app instance, that you might save in a variable to use it later on in
+your script.</p>
+<p><strong>Differences between Windows/Linux and Mac</strong></p>
+<p>Windows/Linux: Sikuli’s strategy on these systems in the moment is to rely on
+implicit or explicit path specifications to find an application, that has to be
+started. Running “applications” can either be identified using their PID
+(process ID) or by using the window titles. So using a path specification will
+only switch to an open application, if the application internally handles the
+“more than one instance” situation”.</p>
+<p>You usually will use <tt class="docutils literal"><span class="pre">App.open("c:\\Program</span> <span class="pre">Files\\Mozilla</span> <span class="pre">Firefox\\Firefox.exe")</span></tt>
+to start Firefox. This might open an additional window. And you can use
+<tt class="docutils literal"><span class="pre">App.focus("Firefox")</span></tt> to switch to the frontmost Firefox window (which has no
+effect if no window is found). To clarify your situation you may use the new
+window() method, which allows to look for existing windows. The second possible
+approach is to store the App instance, that is returned by <tt class="docutils literal"><span class="pre">App.open()</span></tt>, in a
+variable and use it later on with the instance methods (see examples below).</p>
+<p>If you specify the exact window title of an open window, you will get exactly
+this one. But if you specify some text, that is found in more than one open
+window title, you will get all these windows in return. So this is good e.g.
+with Firefox, where every window title contains “Mozilla Firefox”, but it might
+be inconvenient when looking for “Untitled” which may be in use by different
+apps for new documents. So if you want exactly one specific window, you either
+need to know the exact window title or at least some part of the title text,
+that makes this window unique in the current context (e.g. save a document with
+a specific name, before accessing it’s window).</p>
+<p>On Mac OS X, on the system level the information is available, which windows
+belong to which applications. Sikuli uses this information. So by default using
+e.g. <tt class="docutils literal"><span class="pre">App.focus("Safari")</span></tt> starts Safari if not open already and switches to the
+application Safari if it is open, without doing anything with it’s windows (the
+z-order is not touched). Additionally, you can get all windows of an
+application, without knowing it’s titles.</p>
+<p>Note on Windows: when specifying a path in a string, you have to use \ (double
+backslash) for each (backslash)
+e.g. <tt class="docutils literal"><span class="pre">myPath</span> <span class="pre">=</span> <span class="pre">"c:\\Program</span> <span class="pre">Files\\Sikuli-IDE\\Lib\\"</span></tt> )</p>
+<span class="target" id="classappmethods"></span><dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">App</tt></dt>
+<dd><dl class="classmethod">
+<dt id="App.open">
+<em class="property">classmethod </em><tt class="descname">open</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#App.open" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">App.open(application)</span></tt></p>
+<p>Open the specified application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – <p>The name of an application (case-insensitive), that can
+be found in the path used by the system to locate applications, or the
+full path to an application (Windows: use double backslash \ in the
+path string to represent a backslash)</p>
+<p><strong>Note for Windows:</strong> (since X-1.0rc3) The string may contain commandline parameters
+for the specified program or batch file after the name or full path (see: <a class="reference internal" href="#openApp" title="openApp"><tt class="xref py py-func docutils literal"><span class="pre">openApp()</span></tt></a>)</p>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">an App object, that can be used with the instance methods.</td>
+</tr>
+</tbody>
+</table>
+<p>This method is functionally equivalent to <a class="reference internal" href="#openApp" title="openApp"><tt class="xref py py-func docutils literal"><span class="pre">openApp()</span></tt></a>. It opens the
+specified application and brings its window the front. Whether this
+operation switches to an already opened application or opens a new instance
+of the application depends on the system and application.</p>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<tt class="descname">open</tt><big>(</big><big>)</big></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">someApp.open()</span></tt> where App instance <tt class="docutils literal"><span class="pre">someApp</span></tt> was <a class="reference internal" href="#createappinstance"><em>created before</em></a>.</p>
+<p>Open this application.</p>
+</dd></dl>
+
+<dl class="classmethod">
+<dt id="App.focus">
+<em class="property">classmethod </em><tt class="descname">focus</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#App.focus" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">App.focus(application)</span></tt></p>
+<p>Switch the focus to an application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – The name of an application (case-insensitive) or (part
+of) a window title (Windows/Linux).</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">an App object, that can be used with the instance methods.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<tt class="descname">focus</tt><big>(</big><big>)</big></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">someApp.focus()</span></tt> where App instance <tt class="docutils literal"><span class="pre">someApp</span></tt> was <a class="reference internal" href="#createappinstance"><em>created before</em></a>.</p>
+<p>Switch the focus to this application.</p>
+</dd></dl>
+
+<dl class="classmethod">
+<dt id="App.close">
+<em class="property">classmethod </em><tt class="descname">close</tt><big>(</big><em>application</em><big>)</big><a class="headerlink" href="#App.close" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">App.close(application)</span></tt></p>
+<p>Close the specified application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>application</strong> – The name of an application (case-insensitive) or (part
+of) a window title (Windows/Linux).</td>
+</tr>
+</tbody>
+</table>
+<p>This method is functionally equivalent to <a class="reference internal" href="#closeApp" title="closeApp"><tt class="xref py py-func docutils literal"><span class="pre">closeApp()</span></tt></a>. It closes the
+given application or the matching windows (Windows/Linux). It does nothing
+if no opened window (Windows/Linux) or running application (Mac) can be
+found. On Windows/Linux, whether the application itself is closed depends on
+weather all open windows are closed or a main window of the application is
+closed, that in turn closes all other opened windows.</p>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<tt class="descname">close</tt><big>(</big><big>)</big></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">someApp.close()</span></tt> where App instance <tt class="docutils literal"><span class="pre">someApp</span></tt> was <a class="reference internal" href="#createappinstance"><em>created before</em></a>.</p>
+<p>Close this application.</p>
+</dd></dl>
+
+<dl class="classmethod">
+<dt id="App.focusedWindow">
+<em class="property">classmethod </em><tt class="descname">focusedWindow</tt><big>(</big><big>)</big><a class="headerlink" href="#App.focusedWindow" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>Usage:</em> <tt class="docutils literal"><span class="pre">App.focusedWindow()</span></tt></p>
+<p>Identify the currently focused or the frontmost window and switch to it.
+Sikuli does not tell you, to which application this window belongs.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object representing the window or <em>None</em> if
+there is no such window.</td>
+</tr>
+</tbody>
+</table>
+<p>On Mac, when starting a script, Sikuli hides its window and starts
+processing the script. In this moment, no window has focus. Thus, it is
+necessary to first click somewhere or use <tt class="docutils literal"><span class="pre">App.focus()</span></tt> to focus on a
+window. In this case, this method may return <em>None</em>.</p>
+<p>On Windows, this method always returns a region. When there is no window
+opened on the desktop, the region may refer to a special window such as the
+task bar or an icon in the system tray.</p>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># highlight the currently fontmost window for 2 seconds</span>
+<span class="n">App</span><span class="o">.</span><span class="n">focusedWindow</span><span class="p">()</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+
+<span class="c"># save the windows region before</span>
+<span class="n">firstWindow</span> <span class="o">=</span> <span class="n">App</span><span class="o">.</span><span class="n">focusedWindow</span><span class="p">()</span>
+<span class="n">firstWindow</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="App.window">
+<tt class="descname">window</tt><big>(</big><span class="optional">[</span><em>n</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#App.window" title="Permalink to this definition">¶</a></dt>
+<dd><p><em>Usage 1:</em> <tt class="docutils literal"><span class="pre">App(application).window([n])</span></tt> an App instance is created on the fly.</p>
+<p><em>Usage 2:</em> <tt class="docutils literal"><span class="pre">someApp.window([n])</span></tt> where App instance <tt class="docutils literal"><span class="pre">someApp</span></tt> was <a class="reference internal" href="#createappinstance"><em>created before</em></a>.</p>
+<p>Get the region corresponding to the n-th window of this application (Mac) or
+a series of windows with the matching title (Windows/Linux).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>n</strong> – 0 or a positive integer number. If ommitted, 0 is taken as
+default.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the region on the screen occupied by the window, if such window
+exists and <em>None</em> if otherwise.</td>
+</tr>
+</tbody>
+</table>
+<p>Below is an example that tries to open a Firefox browser window and switches
+to the address field (Windows):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># using an existing window if possible</span>
+<span class="n">myApp</span> <span class="o">=</span> <span class="n">App</span><span class="p">(</span><span class="s">"Firefox"</span><span class="p">)</span>
+<span class="k">if</span> <span class="ow">not</span> <span class="n">myApp</span><span class="o">.</span><span class="n">window</span><span class="p">():</span> <span class="c"># no window(0) - Firefox not open</span>
+ <span class="n">App</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s">"c:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Mozilla Firefox</span><span class="se">\\</span><span class="s">Firefox.exe"</span><span class="p">)</span>
+ <span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+<span class="n">myApp</span><span class="o">.</span><span class="n">focus</span><span class="p">()</span>
+<span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+<span class="nb">type</span><span class="p">(</span><span class="s">"l"</span><span class="p">,</span> <span class="n">KEY_CTRL</span><span class="p">)</span> <span class="c"># switch to address field</span>
+</pre></div>
+</div>
+<p>Afterwards, it focuses on the Firefox application, uses the <tt class="docutils literal"><span class="pre">window()</span></tt> method to
+obtain the region of the frontmost window, applies some operations
+within the region, and finally closes the window:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># using a new window</span>
+<span class="n">firefox</span> <span class="o">=</span> <span class="n">App</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s">"c:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Mozilla Firefox</span><span class="se">\\</span><span class="s">Firefox.exe"</span><span class="p">);</span>
+<span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+<span class="n">firefox</span><span class="o">.</span><span class="n">focus</span><span class="p">()</span>
+<span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+<span class="c"># now your just opened new window should be the frontmost</span>
+<span class="k">with</span> <span class="n">firefox</span><span class="o">.</span><span class="n">window</span><span class="p">():</span> <span class="c"># see the general notes below</span>
+ <span class="c"># some actions inside the window(0)'s region</span>
+ <span class="n">click</span><span class="p">(</span><span class="s">"somebutton.png"</span><span class="p">)</span>
+<span class="n">firefox</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="c"># close the window - stop the process</span>
+</pre></div>
+</div>
+<p>Below is another example that highlights all the windows of an
+application by looping through them (Mac):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># not more than 100 windows should be open ;-)</span>
+<span class="n">myApp</span> <span class="o">=</span> <span class="n">App</span><span class="p">(</span><span class="s">"Safari"</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
+ <span class="n">w</span> <span class="o">=</span> <span class="n">myApp</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">w</span><span class="p">:</span> <span class="k">break</span> <span class="c"># no more windows</span>
+ <span class="n">w</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="c"># window highlighted for 2 second</span>
+</pre></div>
+</div>
+<p>General notes:</p>
+<ul class="simple">
+<li>Be aware, that especially the window handling feature is experimental
+and under further development.</li>
+<li>Especially on Windows be aware, that there might be many matching
+windows and windows, that might not be visible at all. Currently the
+<tt class="docutils literal"><span class="pre">window()</span></tt> function has no feature to identify a special window besides
+returning the region. So you might need some additional checks to be
+sure you are acting on the right window.</li>
+<li>Windows/Linux: The <tt class="docutils literal"><span class="pre">close()</span></tt> function currently kills the application,
+without closing it’s windows before. This is an abnormal termination and
+might be recognized by your application at the next start (e.g. Firefox
+usually tries to reload the pages).</li>
+<li>Even if the windows are hidden/minimized, their region that they have in
+the visible state is returned. Currently there is no Sikuli feature, to
+decide wether the given window(n) is visible or not or if it is
+currently the frontmost window. The only guarentee: <tt class="docutils literal"><span class="pre">window()</span></tt>/<tt class="docutils literal"><span class="pre">window(0)</span></tt>
+is the topmost window of an application (Mac) or a series of matching
+windows (Windows/Linux).</li>
+<li>Currently there are no methods available to act on such a window
+(resize, bring to front, get the window title, ...).</li>
+</ul>
+<p>Some tips:</p>
+<ul class="simple">
+<li>Check the position of a window’s returned region: some apps hide there
+windows by giving them “outside” coordinates (e.g. negative)</li>
+<li>Check the size of a window’s returned region: normally your app windows
+will occupy major parts of the screen, so a window’s returned region of
+e.g. 150x30 might be some invisible stuff or an overlay on the real app
+window (e.g. the “search in history” input field on the Safari Top-Sites
+page, which is reported as <tt class="docutils literal"><span class="pre">windows(0)</span></tt>)</li>
+<li>If you have more than one application window, try to position them at
+different coordinates, so you can decide which one you act on in the
+moment.</li>
+<li>It is sometimes possible to use the OCR text extraction feature
+<a class="reference internal" href="region.html#Region.text" title="Region.text"><tt class="xref py py-meth docutils literal"><span class="pre">Region.text()</span></tt></a> to obtain the window title.</li>
+</ul>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="interacting-with-the-user">
+<h2>Interacting with the User<a class="headerlink" href="#interacting-with-the-user" title="Permalink to this headline">¶</a></h2>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<dl class="function">
+<dt id="popup">
+<tt class="descname">popup</tt><big>(</big><em>text</em><span class="optional">[</span>, <em>title</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#popup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display a dialog box with an <em>OK</em> button and <em>text</em> as the message. The script
+then waits for the user to click the <em>OK</em> button.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>text</strong> – text to be displayed as message</li>
+<li><strong>title</strong> – optional title for the messagebox</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">popup</span><span class="p">(</span><span class="s">"Hello World!</span><span class="se">\n</span><span class="s">Have fun with Sikuli!"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>A dialog box that looks like below will popup (Note: <cite>n</cite> can break a line).</p>
+<img alt="_images/popup.png" src="_images/popup.png" />
+</dd></dl>
+
+<dl class="function">
+<dt id="input">
+<tt class="descname">input</tt><big>(</big><span class="optional">[</span><em>text</em><span class="optional">]</span><span class="optional">[</span>, <em>default</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#input" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display a dialog box with an input field, a Cancel button, and an OK button. The
+optional <em>text</em> can be displayed as a caption. The script then waits for the
+user to click either the Cancel or the OK button.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>text</strong> – optional text to be displayed as message</li>
+<li><strong>default</strong> – optional preset text for the input field (<tt class="docutils literal"><span class="pre">new</span> <span class="pre">in</span> <span class="pre">later</span> <span class="pre">then</span> <span class="pre">X-1.0rc3</span></tt>)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><p>the text, contained in the input field, when the user clicked <strong>OK</strong></p>
+<p><strong>None</strong>, if the user pressed the <strong>Cancel</strong> button</p>
+</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">name</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">"Please enter your name to log in:"</span><span class="p">)</span>
+
+<span class="n">name</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">"Please enter your name to log in:"</span><span class="p">,</span> <span class="s">"anonymous"</span><span class="p">)</span> <span class="c"># a preset input text</span>
+</pre></div>
+</div>
+<img alt="_images/input.png" src="_images/input.png" />
+<p>A dialog box that looks like above will appear to allow the user to
+interactively enter some text. This text is then assigned to the variable
+<em>name</em>, which can be used in other parts of the script, such as <tt class="docutils literal"><span class="pre">paste(name)</span></tt>
+to paste the text to a login box.</p>
+<p>When using the parameter <tt class="docutils literal"><span class="pre">default</span></tt>, the text input field will be pre-populated with the
+given text, so the user might just click OK/Cancel or edit the content of the input field.</p>
+</dd></dl>
+
+</div>
+<div class="section" id="listening-to-global-hotkeys">
+<h2>Listening to Global Hotkeys<a class="headerlink" href="#listening-to-global-hotkeys" title="Permalink to this headline">¶</a></h2>
+<p>Sikuli can listen to global hotkeys that you register with <tt class="docutils literal"><span class="pre">Env.addHotkey</span></tt>
+and call the corresponding handler (sikuli functions) when the user presses
+the hotkeys.</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<dl class="method">
+<dt id="Env.addHotkey">
+<tt class="descclassname">Env.</tt><tt class="descname">addHotkey</tt><big>(</big><em>key</em>, <em>modifiers</em>, <em>handler</em><big>)</big><a class="headerlink" href="#Env.addHotkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Register the specified <em>key</em> + <em>modifiers</em> as a global hotkey.
+When the hotkey is pressed, the specified function <em>handler</em> will be called.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>key</strong> – a character or a constant value defined in <a class="reference internal" href="keys.html#Key" title="Key"><tt class="xref py py-class docutils literal"><span class="pre">Key</span></tt></a>.</li>
+<li><strong>modifiers</strong> – Key modifiers, which can be one or multiple constants defined in <a class="reference internal" href="keys.html#KeyModifier" title="KeyModifier"><tt class="xref py py-class docutils literal"><span class="pre">KeyModifier</span></tt></a>.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">True if success.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">def</span> openAppleMenu(event):
+<span class='lineno'>2</span> <span class="skw">click</span>(<img src="apple.png"/>)
+<span class='lineno'>3</span>
+<span class='lineno'>4</span><span class="cmt"># When the user pressed Ctrl+Alt+F1, click the top-left apple icon.</span>
+<span class='lineno'>5</span>Env.addHotkey(Key.F1, KeyModifier.ALT+KeyModifier.CTRL, openAppleMenu)
+</pre>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<dl class="method">
+<dt id="Env.removeHotkey">
+<tt class="descclassname">Env.</tt><tt class="descname">removeHotkey</tt><big>(</big><em>key</em>, <em>modifiers</em><big>)</big><a class="headerlink" href="#Env.removeHotkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Unregister the registered global hotkey <em>key</em> + <em>modifiers</em>.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>key</strong> – a character or a constant value defined in <a class="reference internal" href="keys.html#Key" title="Key"><tt class="xref py py-class docutils literal"><span class="pre">Key</span></tt></a>.</li>
+<li><strong>modifiers</strong> – Key modifiers, which can be one or multiple constants defined in <a class="reference internal" href="keys.html#KeyModifier" title="KeyModifier"><tt class="xref py py-class docutils literal"><span class="pre">KeyModifier</span></tt></a>.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">True if success.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="general-settings-and-access-to-environment-information">
+<h2>General Settings and Access to Environment Information<a class="headerlink" href="#general-settings-and-access-to-environment-information" title="Permalink to this headline">¶</a></h2>
+<p><strong>Sikuli Level</strong></p>
+<p>Sikuli internally uses the class <a class="reference internal" href="#Settings" title="Settings"><tt class="xref py py-class docutils literal"><span class="pre">Settings</span></tt></a> to store globally used
+settings. Publicly available attributes may be accessed by using
+<tt class="docutils literal"><span class="pre">Settings.[name-of-an-attribute]</span></tt> to get it’s value and <tt class="docutils literal"><span class="pre">Settings.attribute</span> <span class="pre">=</span> <span class="pre">value</span></tt>
+to set it. It is highly recommended to only modify attributes, that are described in
+this document or when you really know, what you are doing.</p>
+<p>Actually all attributes of some value for scripting are described in the
+topic <a class="reference internal" href="#controllingsikuliscriptsandtheirbehavior"><em>Controlling Sikuli Scripts and their Behavior</em></a>.</p>
+<p><strong>Jython/Python Level</strong></p>
+<p>You may use all settings, that are defined in standard Python/Jython and that are
+available in your system environment. The modules sys and time are already imported,
+so you can use their methods without the need for an import statement.</p>
+<p><tt class="docutils literal"><span class="pre">sys.path</span></tt> may be one of the most valuable settings, since it is used by
+Python/Jython to locate modules, that are referenced using <tt class="docutils literal"><span class="pre">import</span> <span class="pre">module</span></tt>. It is
+a list of path’s, that is e.g. maintained by Sikuli to implement <a class="reference internal" href="#importingsikuliscripts"><em>Importing
+other Sikuli Scripts</em></a> as a standard
+compliant feature.</p>
+<p>If you want to use <tt class="docutils literal"><span class="pre">sys.path</span></tt>, it is recommended to do it as shown in the following
+example, to avoid appending the same entry again:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">myPath</span> <span class="o">=</span> <span class="s">"some-absolute-path"</span>
+<span class="k">if</span> <span class="ow">not</span> <span class="n">myPath</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">:</span>
+ <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">myPath</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><strong>Java Level</strong></p>
+<p>Java maintains a global storage for settings (key/value pairs), that can be accessed
+by the program/script. Sikuli uses it too for some of it’s settings. Normally it is
+not necessary to access these settings at the Java level from a Sikuli script, since
+Sikuli provides getter and setter methods for accessing values, that make sense for
+scripting. One example is the list of paths, that Sikuli maintains to specify
+additional places to search for images (please refer to <a class="reference internal" href="#importingsikuliscripts"><em>Importing
+other Sikuli Scripts</em></a> for more information).</p>
+<p>If needed, you may access the java settings storage as shown in the following
+example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">java</span>
+
+<span class="c"># get a value</span>
+<span class="n">val</span> <span class="o">=</span> <span class="n">java</span><span class="o">.</span><span class="n">lang</span><span class="o">.</span><span class="n">System</span><span class="o">.</span><span class="n">getProperty</span><span class="p">(</span><span class="s">"key-of-property"</span><span class="p">)</span>
+
+<span class="c"># set a property's value</span>
+<span class="n">java</span><span class="o">.</span><span class="n">lang</span><span class="o">.</span><span class="n">System</span><span class="o">.</span><span class="n">getProperty</span><span class="p">(</span><span class="s">"key-of-property"</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</pre></div>
+</div>
+<p id="imagesearchpath"><span id="index-1"></span><strong>Image Search Path</strong></p>
+<p>Sikuli maintains a list of locations to search for images when they are not found in
+the current .sikuli folder (a.k.a. bundle path). This list is maintained internally
+but can be inspected and/or modified using the following functions:</p>
+<dl class="function">
+<dt id="getImagePath">
+<tt class="descname">getImagePath</tt><big>(</big><big>)</big><a class="headerlink" href="#getImagePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a list of paths where Sikuli will search for images.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># getImagePath() returns a Java array of unicode strings</span>
+<span class="n">imgPath</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">getImagePath</span><span class="p">())</span> <span class="c"># makes it a Python list</span>
+<span class="c"># to loop through</span>
+<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">imgPath</span><span class="p">:</span>
+ <span class="k">print</span> <span class="n">p</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="addImagePath">
+<tt class="descname">addImagePath</tt><big>(</big><em>a-new-path</em><big>)</big><a class="headerlink" href="#addImagePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a new path to the list of image search paths</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="removeImagePath">
+<tt class="descname">removeImagePath</tt><big>(</big><em>a-path-already-in-the-list</em><big>)</big><a class="headerlink" href="#removeImagePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Remove a path from the list of image search paths</p>
+</dd></dl>
+
+<p><em>Note</em>: paths must be specified using the correct path separators (slash on Mac
+and Unix and double blackslashes on Windows).</p>
+<p>This list is automatically extended by Sikuli with script folders, that are imported
+(see: <a class="reference internal" href="#importingsikuliscripts"><em>Importing other Sikuli Scripts</em></a>),
+so their contained images can be accessed. If you want to
+be sure of the results of your manipulations, you can use <tt class="docutils literal"><span class="pre">getImagePath</span></tt> and check
+the content of the returned list. When searching images, the path’s are scanned in
+the order of the list. The first image file with a matching image name is used.</p>
+<p><em>Note</em>: Behind the scenes this list is maintained in the java property store with the
+key SIKULI_IMAGE_PATH. This can be preset when starting the JVM using the
+environment variable SIKULI_IMAGE_PATH and can be accessed at runtime using the
+approach as mentioned under Accessing Settings - Java level. Be aware, that this is
+one string, where the different entries are separated with a colon ( : ).</p>
+<p id="index-2"><strong>The default bundle path</strong> can also be accessed and modified by the two functions
+below:</p>
+<dl class="function">
+<dt id="setBundlePath">
+<tt class="descname">setBundlePath</tt><big>(</big><em>path-to-a-folder</em><big>)</big><a class="headerlink" href="#setBundlePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the path for searching images in all Sikuli Script methods. Sikuli IDE sets
+this automatically to the path of the folder where it saves the script
+(.sikuli). Therefore, you should use this function only if you really know what
+you are doing. Using it generally means that you would like to take care of your
+captured images by yourself.</p>
+<p>Additionally images are searched for in the <a class="reference internal" href="#imagesearchpath"><em>SIKULI_IMAGE_PATH</em></a>, that is a global
+list of other places to look for images. It is implicitly extended by script
+folders, that are imported (see: <a class="reference internal" href="#importingsikuliscripts"><em>Reuse of Code and Images</em></a>).</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="getBundlePath">
+<tt class="descname">getBundlePath</tt><big>(</big><big>)</big><a class="headerlink" href="#getBundlePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a string containing a fully qualified path to a folder containing your images
+used for finding patterns. Note: Sikuli IDE sets this automatically to the path
+of the folder where it saves the script (.sikuli). You may use this function if,
+for example, to package your private files together with the script or to access
+the picture files in the .sikuli bundles for other purposes. Sikuli only gives
+you to access to the path name, so you may need other python modules for I/O or
+other purposes.</p>
+<p>Other places, where Sikuli looks for images, might be in the <a class="reference internal" href="#imagesearchpath"><em>SIKULI_IMAGE_PATH</em></a>.</p>
+</dd></dl>
+
+<p><strong>Other Environment Information</strong></p>
+<dl class="method">
+<dt id="Env.getOS">
+<tt class="descclassname">Env.</tt><tt class="descname">getOS</tt><big>(</big><big>)</big><a class="headerlink" href="#Env.getOS" title="Permalink to this definition">¶</a></dt>
+<dt id="Env.getOSVersion">
+<tt class="descclassname">Env.</tt><tt class="descname">getOSVersion</tt><big>(</big><big>)</big><a class="headerlink" href="#Env.getOSVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the type ( <tt class="docutils literal"><span class="pre">getOS()</span></tt> ) and version ( <tt class="docutils literal"><span class="pre">getOSVersion()</span></tt> ) of the operating system your
+script is running on.</p>
+<p>An example using these methods on a Mac is shown below:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># on a Mac</span>
+<span class="n">myOS</span> <span class="o">=</span> <span class="n">Env</span><span class="o">.</span><span class="n">getOS</span><span class="p">()</span>
+<span class="n">myVer</span> <span class="o">=</span> <span class="n">Env</span><span class="o">.</span><span class="n">getOSVersion</span><span class="p">()</span>
+
+<span class="k">if</span> <span class="n">myOS</span> <span class="o">==</span> <span class="n">OS</span><span class="o">.</span><span class="n">MAC</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"Mac "</span> <span class="o">+</span> <span class="n">myVer</span> <span class="c"># e.g., Mac 10.6.3</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"Sorry, not a Mac"</span>
+
+<span class="n">myOS</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">Env</span><span class="o">.</span><span class="n">getOS</span><span class="p">())</span>
+<span class="k">if</span> <span class="n">myOS</span> <span class="o">==</span> <span class="s">"MAC"</span> <span class="ow">or</span> <span class="n">myOS</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"M"</span><span class="p">):</span>
+ <span class="k">print</span> <span class="s">"Mac "</span> <span class="o">+</span> <span class="n">myVer</span> <span class="c"># e.g., Mac 10.6.3</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"Sorry, not a Mac"</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Env.getSikuliVersion">
+<tt class="descclassname">Env.</tt><tt class="descname">getSikuliVersion</tt><big>(</big><big>)</big><a class="headerlink" href="#Env.getSikuliVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the version of Sikuli.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a string containing the version text of the IDE window title without “Sikuli “</td>
+</tr>
+</tbody>
+</table>
+<p>An example for Sikuli X-1.0rc2:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">if</span> <span class="ow">not</span> <span class="n">Env</span><span class="o">.</span><span class="n">getSikuliVersion</span><span class="p">()</span> <span class="o">==</span> <span class="s">"X-1.0rc2"</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"This script needs Sikuli X-1.0rc2"</span>
+ <span class="nb">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="Env.getClipboard">
+<tt class="descclassname">Env.</tt><tt class="descname">getClipboard</tt><big>(</big><big>)</big><a class="headerlink" href="#Env.getClipboard" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the content of the clipboard if it is text, otherwise an empty string.</p>
+<p><em>Note</em>: Be careful, when using <tt class="docutils literal"><span class="pre">Env.getClipboard()</span></tt> together with <tt class="docutils literal"><span class="pre">paste()</span></tt>,
+since paste internally uses the clipboard to transfer text to other
+applications, the clipboard will contain what you just pasted. Therefore, if you
+need the content of the clipboard, you should call <tt class="docutils literal"><span class="pre">Env.getClipboard()</span></tt> before
+using <tt class="docutils literal"><span class="pre">paste()</span></tt>.</p>
+<p><em>Tip</em>: When the clipboard content was copied from a web page that mixes images and
+text, you should be aware, that there may be whitespace characters around and
+inside your text, that you did not expect. In this case, you can use
+<tt class="docutils literal"><span class="pre">Env.getClipboard().strip()</span></tt> to get rid of surrounding white spaces.</p>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Env.isLockOn">
+<tt class="descclassname">Env.</tt><tt class="descname">isLockOn</tt><big>(</big><em>key-constant</em><big>)</big><a class="headerlink" href="#Env.isLockOn" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the current status ( on / off ) off the respective key. Only one key can be specified.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key-constant</strong> – one of the key constants <tt class="docutils literal"><span class="pre">Key.CAPS_LOCK</span></tt>, <tt class="docutils literal"><span class="pre">Key.NUM_LOCK</span></tt>, <tt class="docutils literal"><span class="pre">Key.SCROLL_LOCK</span></tt></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the specified key is on, False otherwise</td>
+</tr>
+</tbody>
+</table>
+<p>Further information about key constants can be found in Class <a class="reference internal" href="keys.html#Key" title="Key"><tt class="xref py py-class docutils literal"><span class="pre">Key</span></tt></a>.</p>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Env.getMouseLocation">
+<tt class="descclassname">Env.</tt><tt class="descname">getMouseLocation</tt><big>(</big><big>)</big><a class="headerlink" href="#Env.getMouseLocation" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the current location of the mouse cursor.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">Location</span></tt></a> object of the position of the mouse cursor on the screen.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="advanced-settings-for-speed-and-robustness">
+<h2>Advanced Settings for Speed and Robustness<a class="headerlink" href="#advanced-settings-for-speed-and-robustness" title="Permalink to this headline">¶</a></h2>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<dl class="method">
+<dt id="Vision.setParameter">
+<tt class="descclassname">Vision.</tt><tt class="descname">setParameter</tt><big>(</big><em>param</em>, <em>value</em><big>)</big><a class="headerlink" href="#Vision.setParameter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the parameter <em>param</em> of the vision algorithm to <em>value</em>.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>param</strong> – a string that indicates the parameter to set.</li>
+<li><strong>value</strong> – a float value.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Vision.getParameter">
+<tt class="descclassname">Vision.</tt><tt class="descname">getParameter</tt><big>(</big><em>param</em><big>)</big><a class="headerlink" href="#Vision.getParameter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the parameter <em>param</em> of the vision algorithm.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>param</strong> – a string that indicates the parameter to get.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the float value of the specified parameter.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<p>The available parameters for tuning the vision algorithm of Sikuli is listed as
+follows.</p>
+<div class="versionadded" id="min-target-size">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<div class="section" id="mintargetsize">
+<h3>MinTargetSize<a class="headerlink" href="#mintargetsize" title="Permalink to this headline">¶</a></h3>
+<p><tt class="docutils literal"><span class="pre">MinTargetSize</span></tt> is the minimum image size to which Sikuli can resize.</p>
+<p>Sikuli resizes the screen images to a smaller scale for faster matching. This scaling process speeds up the matching process, but also increases the possibility
+of false matching.
+The default value of <tt class="docutils literal"><span class="pre">MinTargetSize</span></tt> in X-1.0rc3 is 12, which makes the matching algorithm be balanced between speed and robustness.
+If you feel that Sikuli is running too slow,
+try a smaller value than 12. On the other hand, if you see Sikuli returns a match that is not what you expect, i.e. a false match,
+try to increase <tt class="docutils literal"><span class="pre">MinTargetSize</span></tt> to make Sikuli be more robust to small details.</p>
+<p>You can tune this parameter using the following Jython code.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">from</span> org.sikuli.script.natives <span class="kw">import</span> Vision
+<span class='lineno'>2</span>
+<span class='lineno'>3</span>Vision.setParameter(<span class="str">"MinTargetSize"</span>, <span class="dig">6</span>) <span class="cmt"># the default is 12. Setting the size to a smaller value would make the matching algorithm be faster.</span>
+</pre>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="region.html" title="Region"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="sikuli-script-index.html" title="Everything about Sikuli Script"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/index.html b/Docs/Python/build/html/index.html
new file mode 100644
index 0000000..ba376a9
--- /dev/null
+++ b/Docs/Python/build/html/index.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Sikuli Documentation for version 1.1+ (01/2014 and later) — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="#" />
+ <link rel="next" title="Tutorials" href="tutorials/index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="tutorials/index.html" title="Tutorials"
+ accesskey="N">next</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="#">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="#">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="#">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Sikuli Documentation for version 1.1+ (01/2014 and later)</a><ul>
+<li><a class="reference internal" href="#how-to-use-this-document">How to use this document</a></li>
+<li><a class="reference internal" href="#getting-started">Getting Started</a><ul>
+<li><a class="reference internal" href="#tutorials">Tutorials</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#faq">FAQ</a><ul>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#complete-guide">Complete Guide</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#extensions">Extensions</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#for-developers">For Developers</a><ul>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ <h4>Next topic</h4>
+ <p class="topless"><a href="tutorials/index.html"
+ title="next chapter">Tutorials</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="sikuli-documentation-for-version-1-1-01-2014-and-later">
+<h1>Sikuli Documentation for version 1.1+ (01/2014 and later)<a class="headerlink" href="#sikuli-documentation-for-version-1-1-01-2014-and-later" title="Permalink to this headline">¶</a></h1>
+<div class="sidebar">
+<p class="first sidebar-title">Getting Help</p>
+<p>Looking for specific information?</p>
+<ul class="simple">
+<li>Try the <a class="reference internal" href="toc.html"><em>Table of Contents</em></a></li>
+<li>Look through the <a class="reference internal" href="genindex.html"><em>Index</em></a></li>
+<li>Use the <a class="reference internal" href="search.html"><em>Search Page</em></a></li>
+</ul>
+<p>See <a class="reference external" href="https://answers.launchpad.net/sikuli">other people’s questions</a>
+or <a class="reference external" href="https://answers.launchpad.net/sikuli/+addquestion">ask a question</a> yourself.</p>
+<p class="last">If you think you’ve found bugs, search or report bugs in
+our <a class="reference external" href="https://bugs.launchpad.net/sikuli">bug tracker</a>.</p>
+</div>
+<p>This document is being maintained by <a class="reference external" href="https://launchpad.net/~raimund-hocke">Raimund Hocke aka RaiMan</a>.</p>
+<p>If you have any questions or ideas about this document,
+you are welcome to contact him directly via this link and the email behind.</p>
+<p>For questions regarding the
+functions and features of Sikuli itself please use the <a class="reference external" href="https://answers.launchpad.net/sikuli">Sikuli Questions and
+Answers Board</a>.</p>
+<p>For hints and links of
+how to get more information and help, please see the sidebar.</p>
+<p><strong>Documentation for previous versions</strong></p>
+<p>The documentation for the versions up to SikuliX-1.0rc3 is still available <a class="reference external" href="http://doc.sikuli.org">here</a>.</p>
+<div class="section" id="how-to-use-this-document">
+<h2>How to use this document<a class="headerlink" href="#how-to-use-this-document" title="Permalink to this headline">¶</a></h2>
+<p>Sikuli at the top supports Jython (Python for the Java platform currently at language level 2.5 and later 2.7) as the first scripting language.
+If you are new to
+programming, you can still enjoy using Sikuli to automate simple repetitive
+tasks without learning Python using the Sikuli IDE. A good start might be to have a look at the <a class="reference internal" href="tutorials/index.html"><em>tutorials</em></a>.</p>
+<p>If you plan to write more powerful and
+complex scripts, which might even be structured in classes and modules, you have to dive into the <a class="reference external" href="http://www.jython.org/jythonbook/en/1.0/">Python Language</a>.</p>
+<p>The features in Sikuli finally are implemented using Java. So you might as well use Sikuli on this Java level API in your Java projects or other Java aware environments. Though this documentation is targeted at the scripting people it contains basic information about the Java level API as well at places, where there are major differences between the two API levels.</p>
+<p>The preface of each chapter in this documentaton briefly describes
+a class or a group of methods regarding its basic features. It
+provides general usage information and hints that apply to all methods in
+that chapter. We recommend to read carefully before using the related features.</p>
+<p><strong>If you are totally new with Sikuli</strong>, it might be a good idea to just read
+through this documentation sequentially. An alternative way might be to jump to the
+chapters that you are interested in by scanning the <a class="reference internal" href="toc.html"><em>table of contents</em></a>.
+A way in the middle would be reading the core classes:
+<a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a>, then <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a>, and finally <a class="reference internal" href="screen.html#Screen" title="Screen"><tt class="xref py py-class docutils literal"><span class="pre">Screen</span></tt></a>.</p>
+<p>After that, you can go to any
+places of interest using the <a class="reference internal" href="toc.html"><em>table of contents</em></a> or
+use the <a class="reference internal" href="genindex.html"><em>Index</em></a> to browse all classes,
+methods and functions in alphabetical order.</p>
+</div>
+<div class="section" id="getting-started">
+<h2>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="tutorials">
+<h3>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="tutorials/index.html">Tutorials</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/helloworld/helloworld-mac.html">Hello World (Mac)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/helloworld/helloworld-win.html">Hello World (Windows)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/goodbyetrash/goodbyetrash.html">Goodbye Trash (Mac)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/uncheckall/uncheckall.html">Uncheck All Checkboxes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/checkone/checkone.html">Check the Right Checkbox</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/sliders/sliders.html">Working with Sliders</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/surveillance/surveillance.html">Desktop Surveillance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/resize/resize.html">Resizing a Window</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="faq">
+<h3>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="faq/000-can-i-do-xxx.html">Can I do X or Y or Z in Sikuli?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/010-command-line.html">How to run Sikuli from Command Line</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/030-java-dev.html">How to use Sikuli Script in your JAVA programs</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/040-other-ide.html">How to use Sikuli together with other IDE’s</a></li>
+</ul>
+</div>
+<ul class="simple">
+<li><a class="reference external" href="https://answers.launchpad.net/sikuli/+faqs">Read more FAQs on Launchpad</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="complete-guide">
+<h2>Complete Guide<a class="headerlink" href="#complete-guide" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="sikuli-script-index.html">Everything about Sikuli Script</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="globals.html">Global Functions and Features</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#importing-other-sikuli-scripts-reuse-code-and-images">Importing other Sikuli Scripts (reuse code and images)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#controlling-sikuli-scripts-and-their-behavior">Controlling Sikuli Scripts and their Behavior</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#controlling-applications-and-their-windows">Controlling Applications and their Windows</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#interacting-with-the-user">Interacting with the User</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#listening-to-global-hotkeys">Listening to Global Hotkeys</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#general-settings-and-access-to-environment-information">General Settings and Access to Environment Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#advanced-settings-for-speed-and-robustness">Advanced Settings for Speed and Robustness</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="region.html">Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="region.html#creating-a-region-setting-and-getting-attributes">Creating a Region, Setting and Getting Attributes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#extending-a-region">Extending a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#finding-inside-a-region-and-waiting-for-a-visual-event">Finding inside a Region and Waiting for a Visual Event</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#observing-visual-events-in-a-region">Observing Visual Events in a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#acting-on-a-region">Acting on a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#extracting-text-from-a-region">Extracting Text from a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#low-level-mouse-and-keyboard-actions">Low-level Mouse and Keyboard Actions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#exception-findfailed">Exception FindFailed</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#grouping-method-calls-with-region">Grouping Method Calls ( with Region: )</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#special-methods-for-developers">Special Methods for Developers</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="screen.html">Screen</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#screen-setting-getting-attributes-and-information">Screen: Setting, Getting Attributes and Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#screen-as-default-region">Screen as (Default) Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#capturing">Capturing</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#multi-monitor-environments">Multi-Monitor Environments</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="location.html">Location</a></li>
+<li class="toctree-l2"><a class="reference internal" href="match.html">Match</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="match.html#creating-a-match-getting-attributes">Creating a Match, Getting Attributes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="match.html#iterating-over-matches-after-findall">Iterating over Matches after findAll()</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="pattern.html">Pattern</a></li>
+<li class="toctree-l2"><a class="reference internal" href="finder.html">Finder</a></li>
+<li class="toctree-l2"><a class="reference internal" href="keys.html">Key Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="keys.html#special-keys">Special Keys</a></li>
+<li class="toctree-l3"><a class="reference internal" href="keys.html#key-modifiers">Key Modifiers</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="extensions">
+<h2>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="extensions/index.html">Extensions</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="extensions/extensions_info.html">General Information About Sikuli Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="extensions/sikuli-guide/index.html">Sikuli Guide</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="for-developers">
+<h2>For Developers<a class="headerlink" href="#for-developers" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="devs/system-design.html">How Sikuli Works</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="devs/system-design.html#sikuli-script">Sikuli Script</a></li>
+<li class="toctree-l2"><a class="reference internal" href="devs/system-design.html#the-structure-of-a-sikuli-source-folder-or-zipped-file-sikuli-skl">The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="contributing.html">How to get involved</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="contributing.html#submit-patches">Submit Patches</a></li>
+<li class="toctree-l2"><a class="reference internal" href="contributing.html#internationalization-and-localization">Internationalization and localization</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="changes.html">Changes in Sikuli</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changes.html#x-1-1-0-2014-01-31">X 1.1.0 (2014-01-31)</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="tutorials/index.html" title="Tutorials"
+ >next</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="#">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/keys.html b/Docs/Python/build/html/keys.html
new file mode 100644
index 0000000..3338160
--- /dev/null
+++ b/Docs/Python/build/html/keys.html
@@ -0,0 +1,281 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Key Constants — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Extensions" href="extensions/index.html" />
+ <link rel="prev" title="Finder" href="finder.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="extensions/index.html" title="Extensions"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="finder.html" title="Finder"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Key Constants</a><ul>
+<li><a class="reference internal" href="#special-keys">Special Keys</a></li>
+<li><a class="reference internal" href="#key-modifiers">Key Modifiers</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="finder.html"
+ title="previous chapter">Finder</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="extensions/index.html"
+ title="next chapter">Extensions</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/keys.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="key-constants">
+<h1>Key Constants<a class="headerlink" href="#key-constants" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Key">
+<em class="property">class </em><tt class="descname">Key</tt><a class="headerlink" href="#Key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Applicable usage situations for these predefined constants of special keys and key
+modifiers can be found in <a class="reference internal" href="region.html#actingonaregion"><em>Acting on a Region</em></a> and <a class="reference internal" href="region.html#lowlevelmouseandkeyboardactions"><em>Low
+Level Mouse and Keyboard Actions</em></a>.</p>
+<div class="section" id="special-keys">
+<h2>Special Keys<a class="headerlink" href="#special-keys" title="Permalink to this headline">¶</a></h2>
+<p>The methods supporting the use of special keys are <a class="reference internal" href="region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type()</span></tt></a>,
+<a class="reference internal" href="region.html#Region.keyDown" title="Region.keyDown"><tt class="xref py py-meth docutils literal"><span class="pre">keyDown()</span></tt></a>, and <a class="reference internal" href="region.html#Region.keyUp" title="Region.keyUp"><tt class="xref py py-meth docutils literal"><span class="pre">keyUp()</span></tt></a>.</p>
+<p>Usage: <cite>Key.CONSTANT</cite> (where CONSTANT is one of the following key names).</p>
+<p>String concatenation with with other text or other key constants is possible using “+”.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nb">type</span><span class="p">(</span><span class="s">"some text"</span> <span class="o">+</span> <span class="n">Key</span><span class="o">.</span><span class="n">TAB</span> <span class="o">+</span> <span class="s">"more text"</span> <span class="o">+</span> <span class="n">Key</span><span class="o">.</span><span class="n">TAB</span> <span class="o">+</span> <span class="n">Key</span><span class= [...]
+<span class="c"># or eqivalent</span>
+<span class="nb">type</span><span class="p">(</span><span class="s">"some text</span><span class="se">\t</span><span class="s">more text</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><strong>miscellanous keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">ENTER</span><span class="p">,</span> <span class="n">TAB</span><span class="p">,</span> <span class="n">ESC</span><span class="p">,</span> <span class="n">BACKSPACE</span><span class="p">,</span> <span class="n">DELETE</span><span class="p">,</span> <span class="n">INSERT</span>
+</pre></div>
+</div>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<p><strong>miscellanous keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">SPACE</span>
+</pre></div>
+</div>
+<p><strong>function keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">F1</span><span class="p">,</span> <span class="n">F2</span><span class="p">,</span> <span class="n">F3</span><span class="p">,</span> <span class="n">F4</span><span class="p">,</span> <span class="n">F5</span><span class="p">,</span> <span class="n">F6</span><span class="p">,</span> <span class="n">F7</span><span class="p">,</span> <span class="n">F8</span><span class="p">,</span> <span class="n">F9</span><span cla [...]
+</pre></div>
+</div>
+<p><strong>navigation keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">HOME</span><span class="p">,</span> <span class="n">END</span><span class="p">,</span> <span class="n">LEFT</span><span class="p">,</span> <span class="n">RIGHT</span><span class="p">,</span> <span class="n">DOWN</span><span class="p">,</span> <span class="n">UP</span><span class="p">,</span> <span class="n">PAGE_DOWN</span><span class="p">,</span> <span class="n">PAGE_UP</span>
+</pre></div>
+</div>
+<p><strong>special keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">PRINTSCREEN</span><span class="p">,</span> <span class="n">PAUSE</span><span class="p">,</span> <span class="n">CAPS_LOCK</span><span class="p">,</span> <span class="n">SCROLL_LOCK</span><span class="p">,</span> <span class="n">NUM_LOCK</span>
+</pre></div>
+</div>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<p><strong>Note:</strong> The status ( on / off ) of the keys <tt class="docutils literal"><span class="pre">Key.CAPS_LOCK</span></tt>, <tt class="docutils literal"><span class="pre">Key.NUM_LOCK</span></tt> and <tt class="docutils literal"><span class="pre">Key.SCROLL_LOCK</span></tt> can
+be evaluated with the method <a class="reference internal" href="globals.html#Env.isLockOn" title="Env.isLockOn"><tt class="xref py py-meth docutils literal"><span class="pre">Env.isLockOn()</span></tt></a>.</p>
+<p><strong>numpad keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">NUM0</span><span class="p">,</span> <span class="n">NUM1</span><span class="p">,</span> <span class="n">NUM2</span><span class="p">,</span> <span class="n">NUM3</span><span class="p">,</span> <span class="n">NUM4</span><span class="p">,</span> <span class="n">NUM5</span><span class="p">,</span> <span class="n">NUM6</span><span class="p">,</span> <span class="n">NUM7</span><span class="p">,</span> <span class="n">NU [...]
+<span class="n">SEPARATOR</span><span class="p">,</span> <span class="n">ADD</span><span class="p">,</span> <span class="n">MINUS</span><span class="p">,</span> <span class="n">MULTIPLY</span><span class="p">,</span> <span class="n">DIVIDE</span>
+</pre></div>
+</div>
+<p><strong>modifier keys</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">ALT</span><span class="p">,</span> <span class="n">CMD</span><span class="p">,</span> <span class="n">CTRL</span><span class="p">,</span> <span class="n">META</span><span class="p">,</span> <span class="n">SHIFT</span><span class="p">,</span> <span class="n">WIN</span>
+</pre></div>
+</div>
+<p>These modifier keys <strong>cannot</strong> be used as a key modifier with functions
+like <a class="reference internal" href="region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type()</span></tt></a>, <a class="reference internal" href="region.html#Region.rightClick" title="Region.rightClick"><tt class="xref py py-meth docutils literal"><span class="pre">rightClick()</span></tt></a>, etc.
+They can <strong>only</strong> be used with <a class="reference internal" href="region.html#Region.keyDown" title="Region.keyDown"><tt class="xref py py-meth docutils literal"><span class="pre">keyDown()</span></tt></a> and <a class="reference internal" href="region.html#Region.keyUp" title="Region.keyUp"><tt class="xref py py-meth docutils literal"><span class="pre">keyUp()</span></tt></a>.
+If you need key modifiers, use <a class="reference internal" href="#KeyModifier" title="KeyModifier"><tt class="xref py py-class docutils literal"><span class="pre">KeyModifier</span></tt></a> instead.</p>
+</div>
+<div class="section" id="key-modifiers">
+<h2>Key Modifiers<a class="headerlink" href="#key-modifiers" title="Permalink to this headline">¶</a></h2>
+<p>Methods where key modifiers can be used include: <a class="reference internal" href="region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">click()</span></tt></a>,
+<a class="reference internal" href="region.html#Region.dragDrop" title="Region.dragDrop"><tt class="xref py py-meth docutils literal"><span class="pre">dragDrop()</span></tt></a> , <a class="reference internal" href="region.html#Region.doubleClick" title="Region.doubleClick"><tt class="xref py py-meth docutils literal"><span class="pre">doubleClick()</span></tt></a> , <a class="reference internal" href="region.html#Region.rightClick" title="Region.rightClick"><tt class="xref py py-meth d [...]
+<a class="reference internal" href="region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type()</span></tt></a>.</p>
+<div class="deprecated">
+<p><span>Deprecated since version X1.0-rc3.</span></p>
+</div>
+<p><strong>the oldies but goldies</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">KEY_ALT</span><span class="p">,</span> <span class="n">KEY_CTRL</span><span class="p">,</span> <span class="n">KEY_SHIFT</span>
+</pre></div>
+</div>
+<p><strong>system specific Win/Mac</strong></p>
+<div class="highlight-python"><pre>KEY_WIN, KEY_CMD
+KEY_META (a synonym for KEY_WIN or KEY_CMD on Windows and Mac respectively).</pre>
+</div>
+<p>The old modifiers with a <em>KEY_</em> prefix are deprecated. Use <tt class="docutils literal"><span class="pre">KeyModifier.CTRL</span></tt>, <tt class="docutils literal"><span class="pre">KeyModifier.ALT</span></tt>, <tt class="docutils literal"><span class="pre">KeyModifier.SHIFT</span></tt>, <tt class="docutils literal"><span class="pre">KeyModifier.META</span></tt> instead.</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc3.</span></p>
+</div>
+<dl class="class">
+<dt id="KeyModifier">
+<em class="property">class </em><tt class="descname">KeyModifier</tt><a class="headerlink" href="#KeyModifier" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Usage: <cite>KeyModifier.CONSTANT</cite> (where CONSTANT is one of the following key names).</p>
+<blockquote>
+<div><dl class="data">
+<dt id="CTRL">
+<tt class="descname">CTRL</tt><a class="headerlink" href="#CTRL" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_CTRL</tt></dt>
+<dd></dd></dl>
+
+<dl class="data">
+<dt id="SHIFT">
+<tt class="descname">SHIFT</tt><a class="headerlink" href="#SHIFT" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_SHIFT</tt></dt>
+<dd></dd></dl>
+
+<dl class="data">
+<dt id="ALT">
+<tt class="descname">ALT</tt><a class="headerlink" href="#ALT" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_ALT</tt></dt>
+<dd></dd></dl>
+
+<dl class="data">
+<dt id="META">
+<tt class="descname">META</tt><a class="headerlink" href="#META" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_META</tt></dt>
+<dd></dd></dl>
+
+<dl class="data">
+<dt id="CMD">
+<tt class="descname">CMD</tt><a class="headerlink" href="#CMD" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_CMD (and KEY_META)</tt></dt>
+<dd></dd></dl>
+
+<dl class="data">
+<dt id="WIN">
+<tt class="descname">WIN</tt><a class="headerlink" href="#WIN" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">equivalent to the old KEY_WIN (and KEY_META)</tt></dt>
+<dd></dd></dl>
+
+</div></blockquote>
+<p>The modifier constants can be combined to the modifier parameter by either using “+” or “|”, if more than one key modifier is needed.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nb">type</span><span class="p">(</span><span class="n">Key</span><span class="o">.</span><span class="n">ESC</span><span class="p">,</span> <span class="n">KeyModifier</span><span class="o">.</span><span class="n">CTRL</span> <span class="o">+</span> <span class="n">KeyModifier</span><span class="o">.</span><span class="n">ALT</span><span class="p">)</span>
+<span class="c"># or equivalent</span>
+<span class="nb">type</span><span class="p">(</span><span class="n">Key</span><span class="o">.</span><span class="n">ESC</span><span class="p">,</span> <span class="n">KeyModifier</span><span class="o">.</span><span class="n">CTRL</span> <span class="o">|</span> <span class="n">KeyModifier</span><span class="o">.</span><span class="n">ALT</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>They should <strong>only</strong> be used in the
+modifiers parameter with functions like <a class="reference internal" href="region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type()</span></tt></a>, <a class="reference internal" href="region.html#Region.rightClick" title="Region.rightClick"><tt class="xref py py-meth docutils literal"><span class="pre">rightClick()</span></tt></a>, etc.</p>
+<p>They should <strong>never</strong> be used with <a class="reference internal" href="region.html#Region.keyDown" title="Region.keyDown"><tt class="xref py py-meth docutils literal"><span class="pre">keyDown()</span></tt></a> or <a class="reference internal" href="region.html#Region.keyUp" title="Region.keyUp"><tt class="xref py py-meth docutils literal"><span class="pre">keyUp()</span></tt></a>.</p>
+<p><em>Note for Java programming</em>: These constants are mapped to the according constants of the Java environment
+in the class <tt class="docutils literal"><span class="pre">java.awt.event.InputEvent</span></tt>.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="extensions/index.html" title="Extensions"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="finder.html" title="Finder"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/location.html b/Docs/Python/build/html/location.html
new file mode 100644
index 0000000..280fe46
--- /dev/null
+++ b/Docs/Python/build/html/location.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Location — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Match" href="match.html" />
+ <link rel="prev" title="Screen" href="screen.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="match.html" title="Match"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="screen.html" title="Screen"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="screen.html"
+ title="previous chapter">Screen</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="match.html"
+ title="next chapter">Match</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/location.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="location">
+<h1>Location<a class="headerlink" href="#location" title="Permalink to this headline">¶</a></h1>
+<p>This class is there as a convenience, to handle single points on the screen directly
+by its position (x, y). It is mainly used in the actions on a region, to directly
+denote the click point. It contains methods, to <em>move</em> a point around on the screen.</p>
+<dl class="class">
+<dt id="Location">
+<em class="property">class </em><tt class="descname">Location</tt><a class="headerlink" href="#Location" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="Location.Location">
+<tt class="descname">Location</tt><big>(</big><em>x</em>, <em>y</em><big>)</big><a class="headerlink" href="#Location.Location" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>x</strong> – x position</li>
+<li><strong>y</strong> – y position</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a new location object representing the position (x,y) on the screen</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.getX">
+<tt class="descname">getX</tt><big>(</big><big>)</big><a class="headerlink" href="#Location.getX" title="Permalink to this definition">¶</a></dt>
+<dt id="Location.getY">
+<tt class="descname">getY</tt><big>(</big><big>)</big><a class="headerlink" href="#Location.getY" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the x or y value of a location object</p>
+<p>It is possible to get the values directly by <tt class="docutils literal"><span class="pre">location.x</span></tt> or <tt class="docutils literal"><span class="pre">location.y</span></tt>.
+It is also possible to set these values directly by <tt class="docutils literal"><span class="pre">location.x</span> <span class="pre">=</span> <span class="pre">value</span></tt>
+or <tt class="docutils literal"><span class="pre">location.y</span> <span class="pre">=</span> <span class="pre">value</span></tt>.</p>
+<p><strong>Note:</strong> <tt class="docutils literal"><span class="pre">getX()``and</span> <span class="pre">``getY()</span></tt> currently (versions 0.10.2 and X 1.0rc2) return float
+values (Java: double), whereas <tt class="docutils literal"><span class="pre">location.x</span></tt> and <tt class="docutils literal"><span class="pre">location.y</span></tt> return integer values.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.setLocation">
+<tt class="descname">setLocation</tt><big>(</big><em>x</em>, <em>y</em><big>)</big><a class="headerlink" href="#Location.setLocation" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the location of this object to the specified coordinates.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.offset">
+<tt class="descname">offset</tt><big>(</big><em>dx</em>, <em>dy</em><big>)</big><a class="headerlink" href="#Location.offset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a new location which is <em>dx</em> and <em>dy</em> pixels away horizontally and
+vertically from the current location.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.above">
+<tt class="descname">above</tt><big>(</big><em>dy</em><big>)</big><a class="headerlink" href="#Location.above" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a new location which is <em>dy</em> pixels vertically above the current
+location.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.below">
+<tt class="descname">below</tt><big>(</big><em>dy</em><big>)</big><a class="headerlink" href="#Location.below" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a new location which is <em>dy</em> pixels vertically below the current
+location.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.left">
+<tt class="descname">left</tt><big>(</big><em>dx</em><big>)</big><a class="headerlink" href="#Location.left" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a new location which is <em>dx</em> pixels horizontally to the left of the
+current location.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Location.right">
+<tt class="descname">right</tt><big>(</big><em>dx</em><big>)</big><a class="headerlink" href="#Location.right" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a new location which is <em>dx</em> pixels horizontally to the right of the
+current location.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="match.html" title="Match"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="screen.html" title="Screen"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/match.html b/Docs/Python/build/html/match.html
new file mode 100644
index 0000000..f4b79a0
--- /dev/null
+++ b/Docs/Python/build/html/match.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Match — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Pattern" href="pattern.html" />
+ <link rel="prev" title="Location" href="location.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="pattern.html" title="Pattern"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="location.html" title="Location"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Match</a><ul>
+<li><a class="reference internal" href="#creating-a-match-getting-attributes">Creating a Match, Getting Attributes</a></li>
+<li><a class="reference internal" href="#iterating-over-matches-after-findall">Iterating over Matches after findAll()</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="location.html"
+ title="previous chapter">Location</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="pattern.html"
+ title="next chapter">Pattern</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/match.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="match">
+<h1>Match<a class="headerlink" href="#match" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Match">
+<em class="property">class </em><tt class="descname">Match</tt><a class="headerlink" href="#Match" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>An object of class Match represents the result of a successful find operation. It
+has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found.</p>
+<p>Since class Match extends class Region, all methods of
+class <a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> can be used with a match object.</p>
+<div class="section" id="creating-a-match-getting-attributes">
+<h2>Creating a Match, Getting Attributes<a class="headerlink" href="#creating-a-match-getting-attributes" title="Permalink to this headline">¶</a></h2>
+<p>A match object is created as the result of an explicit <a class="reference internal" href="region.html#findinginsidearegionandwaitingforavisualevent"><em>find operation</em></a>. It can be
+saved in a variable for later use with actions like <a class="reference internal" href="region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">click()</span></tt></a>.</p>
+<p>It has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found. It knows
+the similarity it was found with and a click point to be used, if set by a pattern.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="cmt"># m is a reference to a match object, if found</span>
+<span class='lineno'>2</span>m = <span class="skw">find</span>(<img src="apple.png"/>)
+<span class='lineno'>3</span><span class="kw">print</span> m <span class="cmt"># message area: Match[10,0 30x22] score=1.00, target=center</span>
+<span class='lineno'>4</span>
+<span class='lineno'>5</span><span class="cmt"># m is a reference to a match object, if found</span>
+<span class='lineno'>6</span>m = <span class="skw">find</span>(Pattern(<img src="apple.png"/>).similar(<span class="dig">0.5</span>).targetOffset(<span class="dig">100</span>,<span class="dig">0</span>))
+<span class='lineno'>7</span><span class="kw">print</span> m <span class="cmt"># message area: Match[10,0 30x22] score=1.00, target=(105,11)</span>
+</pre>
+<p>For all other aspects, the features and attributes of class <a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a>
+apply.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Match</tt></dt>
+<dd><dl class="method">
+<dt id="Match.getScore">
+<tt class="descname">getScore</tt><big>(</big><big>)</big><a class="headerlink" href="#Match.getScore" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the similarity score the image or pattern was found. The value is
+between 0 and 1.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Match.getTarget">
+<tt class="descname">getTarget</tt><big>(</big><big>)</big><a class="headerlink" href="#Match.getTarget" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the <tt class="xref py py-class docutils literal"><span class="pre">location</span></tt> object that will be used as the click point.</p>
+<p>Typically, when no offset was specified by <a class="reference internal" href="pattern.html#Pattern.targetOffset" title="Pattern.targetOffset"><tt class="xref py py-meth docutils literal"><span class="pre">Pattern.targetOffset()</span></tt></a>,
+the click point is the center of the matched region. If an offset was given,
+the click point is the offset relative to the center.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="iterating-over-matches-after-findall">
+<span id="iteratingmatches"></span><h2>Iterating over Matches after findAll()<a class="headerlink" href="#iterating-over-matches-after-findall" title="Permalink to this headline">¶</a></h2>
+<p>A find operation <a class="reference internal" href="region.html#Region.findAll" title="Region.findAll"><tt class="xref py py-meth docutils literal"><span class="pre">Region.findAll()</span></tt></a> returns an iterator object that can be
+used to fetch all found matches as match objects one by one. A reference to the
+iterator is stored in the respective
+region and can be accessed using <a class="reference internal" href="region.html#Region.getLastMatches" title="Region.getLastMatches"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatches()</span></tt></a>.</p>
+<p>Important to know:</p>
+<ul class="simple">
+<li>per definition, an iterator can be stepped through only once - it is empty
+afterwards</li>
+</ul>
+<p>You can read more about the basics of operations with iterators from the description of
+<a class="reference internal" href="finder.html#Finder" title="Finder"><tt class="xref py py-class docutils literal"><span class="pre">Finder</span></tt></a> class. To save contained matches for later use, you can convert them
+to list.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>findAll(<img src="star.png"/>) <span class="cmt"># find all matches</span>
+<span class='lineno'>2</span>mm = list(getLastMatches())
+</pre>
+<p>Example: using <tt class="docutils literal"><span class="pre">while:</span></tt> with default screen</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>findAll(<img src="star.png"/>) <span class="cmt"># find all matches</span>
+<span class='lineno'>2</span>mm = SCREEN.getLastMatches()
+<span class='lineno'>3</span><span class="kw">while</span> mm.hasNext(): <span class="cmt"># loop as long there is a first and more matches</span>
+<span class='lineno'>4</span> <span class="kw">print</span> <span class="str">"found: "</span>, mm.next() <span class="cmt"># access the next match in the row</span>
+<span class='lineno'>5</span>
+<span class='lineno'>6</span><span class="kw">print</span> mm.hasNext() <span class="cmt"># is False, because mm is empty now</span>
+<span class='lineno'>7</span><span class="kw">print</span> mm.next() <span class="cmt"># is None, because mm is empty now</span>
+<span class='lineno'>8</span><span class="kw">print</span> SCREEN.getLastMatches().hasNext() <span class="cmt"># is False also ;-)</span>
+</pre>
+<p>Example: using <tt class="docutils literal"><span class="pre">with:</span></tt> with default screen</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">with</span> findAll(<img src="star.png"/>) <span class="kw">as</span> mm:
+<span class='lineno'>2</span> <span class="kw">while</span> mm.hasNext(): <span class="cmt"># loop as long there is a first and more matches</span>
+<span class='lineno'>3</span> <span class="kw">print</span> <span class="str">"found: "</span>, mm.next() <span class="cmt"># access the next match</span>
+<span class='lineno'>4</span><span class="cmt"># mm will be None afterwards (destroyed automatically)</span>
+<span class='lineno'>5</span>
+</pre>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="pattern.html" title="Pattern"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="location.html" title="Location"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/new-in-sikulix.html b/Docs/Python/build/html/new-in-sikulix.html
new file mode 100644
index 0000000..8348648
--- /dev/null
+++ b/Docs/Python/build/html/new-in-sikulix.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>What is new in Sikuli X — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/new-in-sikulix.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="what-is-new-in-sikuli-x">
+<h1>What is new in Sikuli X<a class="headerlink" href="#what-is-new-in-sikuli-x" title="Permalink to this headline">¶</a></h1>
+<p>Sikuli X is a new experimental branch of Sikuli. (X stands for eXperimental.)
+For all current users of Sikuli 0.9 or 0.10 we recommend to upgrade to X.</p>
+<p>However, please keep in mind some new features are still experimental, e.g. text
+recognition and the new API to get the bound of any windows, which means they may
+not work well or not support all platforms yet.</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<p>Features marked with RC2 in the following list are only available beginning with Sikuli X-1.0rc2.
+In the documentation sections you might look for the above marker to identify new features.</p>
+<ul>
+<li><p class="first">RC2: the IDE outfit is revised. Find and Undo/Redo is added. Console messages are colored now. The font is now monospaced and smaller.</p>
+</li>
+<li><dl class="first docutils">
+<dt>RC2: The message concept is completely revised. Verbosity can be adjusted now</dt>
+<dd><p class="first last">(see <a class="reference internal" href="globals.html#Settings.ActionLogs" title="Settings.ActionLogs"><tt class="xref py py-attr docutils literal"><span class="pre">Sikuli</span> <span class="pre">Messages</span></tt></a>).</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>RC2: Extensions (jar-files containing complementary Sikuli features) can be downloaded from a repository managed by the Sikuli developers. As the first extension <strong>Sikuli Guide</strong> (an annotation tool - Windows and Mac only) is available. You may contribute your own extensions.</dt>
+<dd><p class="first last">(see: <a class="reference internal" href="extensions/extensions_info.html#sikuliextensions"><em>Extensions</em></a>).</p>
+</dd>
+</dl>
+</li>
+<li><p class="first">RC2: sikuli-script.jar together with the native libraries can now be used really standalone (only a few standards have to be followed), so it is easier now to integrate Sikuli with other IDE’s, frameworks or applications and <em class="xref std std-ref">run scripts from commandline</em>.</p>
+</li>
+<li><p class="first">RC2: sikuli-script.jar on commandline now accepts a <em class="xref std std-ref">new option -i</em>, that starts up the interactive Jython with the Sikuli environment already initialized (for tests on the fly from commandline without the IDE).</p>
+</li>
+<li><p class="first">RC2: <a class="reference internal" href="globals.html#Env.getSikuliVersion" title="Env.getSikuliVersion"><tt class="xref py py-meth docutils literal"><span class="pre">Env.getSikuliVersion()</span></tt></a> returns the Sikuli version string.</p>
+</li>
+<li><p class="first">New computer vision engine - faster and more reliable</p>
+</li>
+<li><p class="first">Better capture mode on Mac (supports multi-screens, no flicker anymore)</p>
+</li>
+<li><p class="first">Text recognition and matching</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">find("OK")</span></tt> returns all regions with a “OK” label
+(see <a class="reference internal" href="region.html#findinginsidearegionandwaitingforavisualevent"><em>Finding a Pattern (Image or Text)</em></a>)</li>
+<li>new <a class="reference internal" href="region.html#Region.text" title="Region.text"><tt class="xref py py-meth docutils literal"><span class="pre">Region.text()</span></tt></a> returns the text in the region</li>
+<li></li>
+</ul>
+</li>
+<li><p class="first">Screenshot Naming in the IDE:</p>
+<ul class="simple">
+<li>screenshots can be automatically named<ul>
+<li>with timestamps</li>
+<li>with part of the text found in them</li>
+<li>manually at time of capture</li>
+</ul>
+</li>
+<li>and renamed every time using the preview pane</li>
+<li></li>
+</ul>
+</li>
+<li><dl class="first docutils">
+<dt>Remote Images are supported</dt>
+<dd><p class="first last">e.g. <tt class="docutils literal"><span class="pre">click("http://sikuli.org/example/ok_button.png")</span></tt></p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>There is an Image Search Path - images can be stored wherever you like, even in the web</dt>
+<dd><p class="first last">(see <a class="reference internal" href="globals.html#imagesearchpath"><em>Image Search Path</em></a>)</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Scripts can be imported from .sikuli sources as a module (Python style).</dt>
+<dd><dl class="first last docutils">
+<dt>RC2: jar-files containing java classes and/or Python modules can be loaded at runtime.</dt>
+<dd><p class="first last">(see <a class="reference internal" href="globals.html#importingsikuliscripts"><em>Importing Sikuli Scripts</em></a>)</p>
+</dd>
+</dl>
+</dd>
+</dl>
+</li>
+<li><p class="first">New App Class replaces the old openApp, switchApp, closeApp functions
+(see Class <a class="reference internal" href="globals.html#App" title="App"><tt class="xref py py-class docutils literal"><span class="pre">App</span></tt></a>)</p>
+<ul class="simple">
+<li><a class="reference internal" href="globals.html#App.open" title="App.open"><tt class="xref py py-meth docutils literal"><span class="pre">App.open()</span></tt></a>, <a class="reference internal" href="globals.html#App.close" title="App.close"><tt class="xref py py-meth docutils literal"><span class="pre">App.close()</span></tt></a>, <a class="reference internal" href="globals.html#App.focus" title="App.focus"><tt class="xref py py-meth docutils literal"><span class="pre">App.focus( [...]
+<li><a class="reference internal" href="globals.html#App.window" title="App.window"><tt class="xref py py-meth docutils literal"><span class="pre">App.window()</span></tt></a> returns the bound of the app window as a Region, so
+you can restrict following actions within that region. (Windows and Mac only)</li>
+<li></li>
+</ul>
+</li>
+<li><dl class="first docutils">
+<dt>Beautified Run in Slow Motion mode together with some additional options available now through class <a class="reference internal" href="globals.html#Settings" title="Settings"><tt class="xref py py-class docutils literal"><span class="pre">Settings</span></tt></a></dt>
+<dd><p class="first last">(see <a class="reference internal" href="globals.html#controllingsikuliscriptsandtheirbehavior"><em>Controlling Sikuli Scripts</em></a>).</p>
+</dd>
+</dl>
+</li>
+<li><p class="first">Smooth mouse movement
+(see <a class="reference internal" href="globals.html#controllingsikuliscriptsandtheirbehavior"><em>Controlling Sikuli Scripts</em></a>)</p>
+</li>
+<li><dl class="first docutils">
+<dt>More Special Keys are supported (PrintScreen, NumPad, CapsLock...) (see Class <a class="reference internal" href="keys.html#Key" title="Key"><tt class="xref py py-class docutils literal"><span class="pre">Key</span></tt></a>)</dt>
+<dd><dl class="first last docutils">
+<dt>RC2: The status of NumLock, CapsLock and ScrollLock can be requested</dt>
+<dd><p class="first last">(see <a class="reference internal" href="globals.html#Env.isLockOn" title="Env.isLockOn"><tt class="xref py py-meth docutils literal"><span class="pre">Env.isLockOn()</span></tt></a>).</p>
+</dd>
+</dl>
+</dd>
+</dl>
+</li>
+<li><p class="first">New Region Highlighting: <a class="reference internal" href="region.html#Region.highlight" title="Region.highlight"><tt class="xref py py-meth docutils literal"><span class="pre">Region.highlight()</span></tt></a> (Windows and Mac only)</p>
+</li>
+<li><p class="first">RC2: Additional helper methods to relocate or change region objects and to get their corners (e.g. <a class="reference internal" href="region.html#Region.moveTo" title="Region.moveTo"><tt class="xref py py-meth docutils literal"><span class="pre">reg.moveTo()</span></tt></a> or <a class="reference internal" href="region.html#Region.getTopLeft" title="Region.getTopLeft"><tt class="xref py py-meth docutils literal"><span class="pre">reg.getTopLeft()</span></tt></a>). O [...]
+</li>
+<li><p class="first">RC2: The <a class="reference internal" href="region.html#observingvisualeventsinaregion"><em>observer feature</em></a> is completely revised. A class <a class="reference internal" href="region.html#SikuliEvent" title="SikuliEvent"><tt class="xref py py-class docutils literal"><span class="pre">SikuliEvent</span></tt></a> is added, containing environmental information about the observed event.</p>
+</li>
+<li><dl class="first docutils">
+<dt>RC2: A new FindFailed handling option is added, that might come up with a prompt at runtime</dt>
+<dd><p class="first last">(see <a class="reference internal" href="region.html#exceptionfindfailed"><em>Exception FindFailed</em></a>)</p>
+</dd>
+</dl>
+</li>
+<li><p class="first">Mouse Wheel supported: <a class="reference internal" href="region.html#Region.wheel" title="Region.wheel"><tt class="xref py py-meth docutils literal"><span class="pre">wheel(target,</span> <span class="pre">WHEEL_UP</span> <span class="pre">|</span> <span class="pre">WHEEL_DOWN,</span> <span class="pre">steps)</span></tt></a> for scrolling the mouse wheel</p>
+</li>
+</ul>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/objects.inv b/Docs/Python/build/html/objects.inv
new file mode 100644
index 0000000..4ea070b
Binary files /dev/null and b/Docs/Python/build/html/objects.inv differ
diff --git a/Docs/Python/build/html/pattern.html b/Docs/Python/build/html/pattern.html
new file mode 100644
index 0000000..b2231f5
--- /dev/null
+++ b/Docs/Python/build/html/pattern.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Pattern — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Finder" href="finder.html" />
+ <link rel="prev" title="Match" href="match.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="finder.html" title="Finder"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="match.html" title="Match"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="match.html"
+ title="previous chapter">Match</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="finder.html"
+ title="next chapter">Finder</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/pattern.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="pattern">
+<h1>Pattern<a class="headerlink" href="#pattern" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Pattern">
+<em class="property">class </em><tt class="descname">Pattern</tt><a class="headerlink" href="#Pattern" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>A pattern is used, to associate an image file with additional attributes used in find
+operations and when acting on a match object.</p>
+<p><strong>Minimum Similarity:</strong></p>
+<p>While using a <a class="reference internal" href="region.html#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> operation,
+if only an image file is provided, Sikuli searches
+the region using a default minimum similarity of 0.7.
+This default value can be changed in <a class="reference internal" href="globals.html#Settings.MinSimilarity" title="Settings.MinSimilarity"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.MinSimilarity</span></tt></a>.</p>
+<p>Using <a class="reference internal" href="#Pattern.similar" title="Pattern.similar"><tt class="xref py py-meth docutils literal"><span class="pre">similar()</span></tt></a> you can associate a specific similarity
+value, that will be used as the minimum value, when this pattern object is searched.
+The IDE supports adjusting the minimum similarity of captured images using the Preview Pane
+(internally in the script, the images are turned into a pattern object automatically).</p>
+<p><strong>Click Point:</strong></p>
+<p>Normally when clicking on a match, the center pixel of the associated
+rectangle is used. With a pattern object, you can define a different click point
+relative to the center using <a class="reference internal" href="#Pattern.targetOffset" title="Pattern.targetOffset"><tt class="xref py py-meth docutils literal"><span class="pre">targetOffset()</span></tt></a>.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Pattern</tt></dt>
+<dd><dl class="method">
+<dt id="Pattern.Pattern">
+<tt class="descname">Pattern</tt><big>(</big><em>string</em><big>)</big><a class="headerlink" href="#Pattern.Pattern" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>string</strong> – a path to an image file</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new pattern object</td>
+</tr>
+</tbody>
+</table>
+<p>This will initialize a new pattern object without any additional attributes.
+As long as no pattern methods are used additionally, it is the same as just
+using the image file name itself in the find operation.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Pattern.similar">
+<tt class="descname">similar</tt><big>(</big><em>similarity</em><big>)</big><a class="headerlink" href="#Pattern.similar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a new Pattern object containing the same attributes (image, click
+point) with the minimum similarity set to the specified value.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>similarity</strong> – the minimum similarity to use in a find operation. The
+value should be between 0 and 1.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new pattern object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Pattern.exact">
+<tt class="descname">exact</tt><big>(</big><big>)</big><a class="headerlink" href="#Pattern.exact" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a new Pattern object containing the same attributes (image, click
+point) with the minimum similarity set to 1.0, which means exact match is
+required.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a new pattern object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Pattern.targetOffset">
+<tt class="descname">targetOffset</tt><big>(</big><em>dx</em>, <em>dy</em><big>)</big><a class="headerlink" href="#Pattern.targetOffset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a new Pattern object containing the same attributes (image,
+similarity), but a different definition for the click. By
+default, the click point is the center of the found match. By setting the
+target offset, it is possible to specify a click point other than the
+center. <em>dx</em> and <em>dy</em> will be used to calculate the position relative to the
+center.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>dx</strong> – x offset from the center</li>
+<li><strong>dy</strong> – y offset from the center</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a new pattern object</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Pattern.getFilename">
+<tt class="descname">getFilename</tt><big>(</big><big>)</big><a class="headerlink" href="#Pattern.getFilename" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the filename of the image contained in the Pattern object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a filename as a string</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Pattern.getTargetOffset">
+<tt class="descname">getTargetOffset</tt><big>(</big><big>)</big><a class="headerlink" href="#Pattern.getTargetOffset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the target offset of the Pattern object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">Location</span></tt></a> object as the target offset</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="finder.html" title="Finder"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="match.html" title="Match"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/png_icon.png b/Docs/Python/build/html/png_icon.png
new file mode 100644
index 0000000..b2135d7
Binary files /dev/null and b/Docs/Python/build/html/png_icon.png differ
diff --git a/Docs/Python/build/html/py-modindex.html b/Docs/Python/build/html/py-modindex.html
new file mode 100644
index 0000000..89485cb
--- /dev/null
+++ b/Docs/Python/build/html/py-modindex.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Python Module Index — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+
+
+ <script type="text/javascript">
+ DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
+ </script>
+
+
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="#" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+
+ <h1>Python Module Index</h1>
+
+ <div class="modindex-jumpbox">
+ <a href="#cap-g"><strong>g</strong></a>
+ </div>
+
+ <table class="indextable modindextable" cellspacing="0" cellpadding="2">
+ <tr class="pcap"><td></td><td> </td><td></td></tr>
+ <tr class="cap" id="cap-g"><td></td><td>
+ <strong>g</strong></td><td></td></tr>
+ <tr>
+ <td></td>
+ <td>
+ <a href="extensions/sikuli-guide/index.html#module-guide"><tt class="xref">guide</tt></a></td><td>
+ <em></em></td></tr>
+ </table>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="#" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/region.html b/Docs/Python/build/html/region.html
new file mode 100644
index 0000000..a0c761f
--- /dev/null
+++ b/Docs/Python/build/html/region.html
@@ -0,0 +1,1976 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Region — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Screen" href="screen.html" />
+ <link rel="prev" title="Global Functions and Features" href="globals.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="screen.html" title="Screen"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="globals.html" title="Global Functions and Features"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Region</a><ul>
+<li><a class="reference internal" href="#creating-a-region-setting-and-getting-attributes">Creating a Region, Setting and Getting Attributes</a></li>
+<li><a class="reference internal" href="#extending-a-region">Extending a Region</a></li>
+<li><a class="reference internal" href="#finding-inside-a-region-and-waiting-for-a-visual-event">Finding inside a Region and Waiting for a Visual Event</a></li>
+<li><a class="reference internal" href="#observing-visual-events-in-a-region">Observing Visual Events in a Region</a></li>
+<li><a class="reference internal" href="#acting-on-a-region">Acting on a Region</a></li>
+<li><a class="reference internal" href="#extracting-text-from-a-region">Extracting Text from a Region</a></li>
+<li><a class="reference internal" href="#low-level-mouse-and-keyboard-actions">Low-level Mouse and Keyboard Actions</a></li>
+<li><a class="reference internal" href="#exception-findfailed">Exception FindFailed</a></li>
+<li><a class="reference internal" href="#grouping-method-calls-with-region">Grouping Method Calls ( with Region: )</a></li>
+<li><a class="reference internal" href="#special-methods-for-developers">Special Methods for Developers</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="globals.html"
+ title="previous chapter">Global Functions and Features</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="screen.html"
+ title="next chapter">Screen</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/region.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="region">
+<h1>Region<a class="headerlink" href="#region" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Region">
+<em class="property">class </em><tt class="descname">Region</tt><a class="headerlink" href="#Region" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="docutils">
+<dt>Region is a rectangular area on a screen, which is defined by</dt>
+<dd><ol class="first last arabic simple">
+<li>its upper left corner (x, y) as a distance relative to the
+upper left corner of the screen (0, 0) and</li>
+<li>its dimension (w, h) as its width and height.</li>
+</ol>
+</dd>
+</dl>
+<p>x, y, w, h are integer numbers counting a distance in pixels.</p>
+<p>A region knows nothing about its visual content (windows, pictures, graphics,
+text, ...). It only knows <a class="reference internal" href="#creatingaregionsettingandgettingattributes"><em>the position on the screen and its dimension</em></a>.</p>
+<p>New regions can be created, based on an existing region: you can <a class="reference internal" href="#extendingaregion"><em>extend a
+region in all directions or get the adjacent rectangle</em></a> up
+to the bounds of the screen horizontally or vertically.</p>
+<p>The visual content of a region is evaluated by using methods like
+<a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a>, which looks for a given rectangular pixel pattern
+(defined by a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object) within the region. The matching
+content in the region has a similarity between 0 (not found) and 1 (found and
+it is per pixel exactly matches to the pattern). The find can be advised, to
+search with a minimum similarity, so that some minor variations in shape and
+color can be ignored. If nothing else is specified, Sikuli searches with a
+minimum similarity of 0.7, which does what is expected in general cases.
+(This default value can be changed in <a class="reference internal" href="globals.html#Settings.MinSimilarity" title="Settings.MinSimilarity"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.MinSimilarity</span></tt></a>.)</p>
+<p><a class="reference internal" href="#findinginsidearegionandwaitingforavisualevent"><em>Find operations</em></a> return a
+<a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object, which has all the attributes and methods of a region
+and can be used in exactly the same way (e.g. to find or click another
+target within it). A <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> has the dimension of the pattern used
+for searching and also knows the position where it was found and its similarity
+score. A region preserves the best match of the last successful find operation
+and all matches of the last successful <a class="reference internal" href="#Region.findAll" title="Region.findAll"><tt class="xref py py-meth docutils literal"><span class="pre">Region.findAll()</span></tt></a> (accessible
+with <a class="reference internal" href="#Region.getLastMatches" title="Region.getLastMatches"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatches()</span></tt></a>. You can wait for patterns to show up
+using <a class="reference internal" href="#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">Region.wait()</span></tt></a>, to vanish using <a class="reference internal" href="#Region.waitVanish" title="Region.waitVanish"><tt class="xref py py-meth docutils literal"><span class="pre">Region.waitVanish()</span></tt></a> or
+just check whether a pattern <a class="reference internal" href="#Region.exists" title="Region.exists"><tt class="xref py py-meth docutils literal"><span class="pre">exists</span></tt></a> without the need to handle
+<a class="reference internal" href="#exceptionfindfailed"><em>exceptions</em></a>.</p>
+<p>Sikuli supports visual event driven programming. You can tell a region
+<a class="reference internal" href="#observingvisualeventsinaregion"><em>to observe that something appears, vanishes or changes</em></a>.
+It is possible to wait for the completion of an
+observation or let it run in the background while your following script
+continues running.
+When one of the visual events happens, a handler in your script is called. Each
+region has one observer and each observer can handle multiple visual events.
+It’s your responsibility to stop an observation.</p>
+<div class="section" id="creating-a-region-setting-and-getting-attributes">
+<span id="creatingaregionsettingandgettingattributes"></span><h2>Creating a Region, Setting and Getting Attributes<a class="headerlink" href="#creating-a-region-setting-and-getting-attributes" title="Permalink to this headline">¶</a></h2>
+<p>In this chapter, you can find information on how to create a new region object.
+The attributes of a region object can be accessed directly or via
+method calls, e.g. to change their position and/or dimension. Here you will find the HowTo’s.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.Region">
+<tt class="descname">Region</tt><big>(</big><em>x</em>, <em>y</em>, <em>w</em>, <em>h</em><big>)</big><a class="headerlink" href="#Region.Region" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">Region</tt><big>(</big><em>region</em><big>)</big></dt>
+<dt>
+<tt class="descname">Region</tt><big>(</big><em>Rectangle</em><big>)</big></dt>
+<dd><p>Create a region object</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>x</strong> – x position of a rectangle.</li>
+<li><strong>y</strong> – y position of a rectangle.</li>
+<li><strong>w</strong> – height of a rectangle.</li>
+<li><strong>h</strong> – width of a rectangle.</li>
+<li><strong>region</strong> – an existing region object.</li>
+<li><strong>rectangle</strong> – an existing object of Java class Rectangle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a new region object.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In addition to creating a region by using the tool provided
+by the IDE, a region can be created by specifying a rectangle. This is how
+the visual representation in the IDE of such a region is internally set up in
+the script. A region can also be created by users in run-time using
+<tt class="xref py py-meth docutils literal"><span class="pre">Region.selectRegion()</span></tt>.</p>
+<p>You can create a region based on another region. This just
+duplicates the region (new object). This can be useful, if
+you need the same region with different attributes, such as another
+<a class="reference internal" href="#observingvisualeventsinaregion"><em>observation loop</em></a>
+or use <a class="reference internal" href="#Region.setThrowException" title="Region.setThrowException"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setThrowException()</span></tt></a> to control
+whether throwing an exception when finding fails. Another way to create a
+region is to specify a rectangle object or to
+<a class="reference internal" href="#extendingaregion"><em>extend an existing region</em></a>.</p>
+<p><em>Note:</em> The position and dimension attributes are named x, y
+(values representing the top left corner) and w, h (width and height).
+You might use these or the get/set methods.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">topLeft</span> <span class="o">=</span> <span class="n">Location</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">reg</span><span class="o">.</span><span class="n">y</span><span class="p">)</span> <span class="c"># equivalent to</span>
+<span class="n">topLeft</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">getTopLeft</span><span class="p">()</span>
+
+<span class="n">theWidth</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">w</span> <span class="c"># equivalent to</span>
+<span class="n">theWidth</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">getW</span><span class="p">()</span>
+
+<span class="n">reg</span><span class="o">.</span><span class="n">h</span> <span class="o">=</span> <span class="n">theWidth</span> <span class="c"># equivalent to</span>
+<span class="n">reg</span><span class="o">.</span><span class="n">setH</span><span class="p">(</span><span class="n">theWidth</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><strong>Note:</strong> Additionally you might use <a class="reference internal" href="screen.html#Screen.selectRegion" title="Screen.selectRegion"><tt class="xref py py-meth docutils literal"><span class="pre">selectRegion()</span></tt></a> to interactively create a new region.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.setX">
+<tt class="descname">setX</tt><big>(</big><em>number</em><big>)</big><a class="headerlink" href="#Region.setX" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.setY">
+<tt class="descname">setY</tt><big>(</big><em>number</em><big>)</big><a class="headerlink" href="#Region.setY" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.setW">
+<tt class="descname">setW</tt><big>(</big><em>number</em><big>)</big><a class="headerlink" href="#Region.setW" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.setH">
+<tt class="descname">setH</tt><big>(</big><em>number</em><big>)</big><a class="headerlink" href="#Region.setH" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the respective attribute of the region to the new value. This
+effectively moves the region around and/or changes its dimension.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>number</strong> – the new value</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.moveTo">
+<tt class="descname">moveTo</tt><big>(</big><em>location</em><big>)</big><a class="headerlink" href="#Region.moveTo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the position of this region regarding it’s top left corner
+to the given location (the x and y values are modified).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>location</strong> – location object becomes the new top left corner</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the modified region object</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">reg</span><span class="o">.</span><span class="n">moveTo</span><span class="p">(</span><span class="n">anotherLocation</span><span class="p">)</span> <span class="c"># equivalent to</span>
+<span class="n">reg</span><span class="o">.</span><span class="n">setX</span><span class="p">(</span><span class="n">anotherLocation</span><span class="o">.</span><span class="n">x</span><span class="p">);</span> <span class="n">reg</span><span class="o">.</span><span class="n">setY</span><span class="p">(</span><span class="n">anotherLocation</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.setROI">
+<tt class="descname">setROI</tt><big>(</big><em>x</em>, <em>y</em>, <em>w</em>, <em>h</em><big>)</big><a class="headerlink" href="#Region.setROI" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">setROI</tt><big>(</big><em>rectangle</em><big>)</big></dt>
+<dt id="Region.setRect">
+<tt class="descname">setRect</tt><big>(</big><em>x</em>, <em>y</em>, <em>w</em>, <em>h</em><big>)</big><a class="headerlink" href="#Region.setRect" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">setRect</tt><big>(</big><em>rectangle</em><big>)</big></dt>
+<dd><p>Both methods are doing exactly the same: setting position and dimension to
+new values. The motivation for two names is to make scripts more readable:
+<tt class="docutils literal"><span class="pre">setROI()</span></tt> is intended to restrict the search to a smaller area to speed up
+processing searches (region of interest), whereas <tt class="docutils literal"><span class="pre">setRect()</span></tt> should be
+used to redefine a region (which could be enlarging it).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>x, y, w, h</strong> (<em>all</em>) – the attributes of a rectangle</li>
+<li><strong>rectangle</strong> – a rectangle object</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">None</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.morphTo">
+<tt class="descname">morphTo</tt><big>(</big><em>region</em><big>)</big><a class="headerlink" href="#Region.morphTo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the position and dimension of this region to the corresponding values
+of the region given as parameter. (see: <a class="reference internal" href="#Region.setRect" title="Region.setRect"><tt class="xref py py-meth docutils literal"><span class="pre">setRect()</span></tt></a>)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>region</strong> – a region object</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the modified region object</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">reg</span><span class="o">.</span><span class="n">morphTo</span><span class="p">(</span><span class="n">anotherRegion</span><span class="p">)</span> <span class="c"># equivalent to</span>
+<span class="n">r</span> <span class="o">=</span> <span class="n">anotherRegion</span><span class="p">;</span> <span class="n">reg</span><span class="o">.</span><span class="n">setX</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">x</span><span class="p">);</span> <span class="n">reg</span><span class="o">.</span><span class="n">setY</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">y</span><span cla [...]
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getX">
+<tt class="descname">getX</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getX" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getY">
+<tt class="descname">getY</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getY" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getW">
+<tt class="descname">getW</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getW" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getH">
+<tt class="descname">getH</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getH" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the respective attribute of the region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">integer value</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getCenter">
+<tt class="descname">getCenter</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getCenter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the center of the region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">an object of <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">Location</span></tt></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.getTopLeft">
+<tt class="descname">getTopLeft</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getTopLeft" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getTopRight">
+<tt class="descname">getTopRight</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getTopRight" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getBottomLeft">
+<tt class="descname">getBottomLeft</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getBottomLeft" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getBottomRight">
+<tt class="descname">getBottomRight</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getBottomRight" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the location of the region’s respective corner</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Location object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getScreen">
+<tt class="descname">getScreen</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getScreen" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the screen object that contains this region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a new <a class="reference internal" href="screen.html#Screen" title="Screen"><tt class="xref py py-class docutils literal"><span class="pre">Screen</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+<p>This method only makes sense in
+<a class="reference internal" href="screen.html#multimonitorenvironments"><em>Multi Monitor Environments</em></a>,
+since it always returns the default screen in a single monitor environment.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getLastMatch">
+<tt class="descname">getLastMatch</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getLastMatch" title="Permalink to this definition">¶</a></dt>
+<dt id="Region.getLastMatches">
+<tt class="descname">getLastMatches</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getLastMatches" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">the best match as a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object or one or more
+match objects as an <tt class="xref py py-class docutils literal"><span class="pre">Iterator</span></tt> object respectively</td>
+</tr>
+</tbody>
+</table>
+<p>All successful find operations (explicit like <tt class="docutils literal"><span class="pre">find()</span></tt> or
+implicit like <tt class="docutils literal"><span class="pre">click()</span></tt>), store the best match in the <cite>lastMatch</cite> attribute
+of the region that was searched. <tt class="docutils literal"><span class="pre">findAll()</span></tt> stores all found matches into
+<cite>lastMatches</cite> atribute of the region that was searched as an iterator.</p>
+<p>To access these attributes use <tt class="docutils literal"><span class="pre">region.getLastMatch()</span></tt> or
+<tt class="docutils literal"><span class="pre">region.getLastMatches()</span></tt> respectively.</p>
+<p>How to use the iterator object returned by getLastMatches()
+<a class="reference internal" href="match.html#iteratingmatches"><em>is documented here</em></a>.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.setAutoWaitTimeout">
+<tt class="descname">setAutoWaitTimeout</tt><big>(</big><em>seconds</em><big>)</big><a class="headerlink" href="#Region.setAutoWaitTimeout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the maximum waiting time for all subsequent find operations.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seconds</strong> – a number, which can have a fraction. The internal
+granularity is milliseconds.</td>
+</tr>
+</tbody>
+</table>
+<p>This method enables all find operations to wait for the given
+pattern to appear until the specified amount of time has elapsed. The
+default is 3.0 seconds. This method is intended for users to override
+this default setting. As such it lets <a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> work like
+<a class="reference internal" href="#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">Region.wait()</span></tt></a>, without being able to set an individual timeout value
+for a specific find operation.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getAutoWaitTimeout">
+<tt class="descname">getAutoWaitTimeout</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getAutoWaitTimeout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the current value of the maximum waiting time for find operations.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">timeout in seconds</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="extending-a-region">
+<span id="extendingaregion"></span><h2>Extending a Region<a class="headerlink" href="#extending-a-region" title="Permalink to this headline">¶</a></h2>
+<p>These methods (exception <tt class="docutils literal"><span class="pre">inside()</span></tt>) return a new region object, that is
+based on the specified region (sometimes called spatial operators).
+The range parameter, if given as positive integer number, restricts the
+dimension of the new region (width and/or height respectively) to that
+value. If range is not specified, the new region extends to the respective
+boundary of the screen the given region belongs to. An exception is <tt class="docutils literal"><span class="pre">nearby()</span></tt>,
+which uses 50 as its default range.</p>
+<p><strong>Note</strong>: In all cases the current region remains unchanged.</p>
+<p><strong>Note</strong>: In all cases the new region does not extend beyond any boundary of the
+screen that contains the given region.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.offset">
+<tt class="descname">offset</tt><big>(</big><em>location</em><big>)</big><a class="headerlink" href="#Region.offset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new Region object, whose upper left corner is relocated
+adding the location’s x and y value to the respective values of the given region.
+Width and height are the same. So this clones a region at a different place.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>location</strong> – a <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">Location</span></tt></a> object</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">new_reg</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">offset</span><span class="p">(</span><span class="n">Location</span><span class="p">(</span><span class="n">xoff</span><span class="p">,</span> <span class="n">yoff</span><span class="p">))</span> <span class="c"># same as</span>
+<span class="n">new_reg</span> <span class="o">=</span> <span class="n">Region</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">x</span> <span class="o">+</span> <span class="n">xoff</span><span class="p">,</span> <span class="n">reg</span><span class="o">.</span><span class="n">y</span> <span class="o">+</span> <span class="n">yoff</span><span class="p">,</span> <span class="n">reg</span><span class="o">.</span><span class="n">w</span><span [...]
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.inside">
+<tt class="descname">inside</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.inside" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the same object. Retained for upward compatibility.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">the <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+<p>This method can be used to make scripts more readable.
+<tt class="docutils literal"><span class="pre">region.inside().find()</span></tt> is totally equivalent to <tt class="docutils literal"><span class="pre">region.find()</span></tt>.</p>
+</dd></dl>
+
+<img alt="_images/spatial.jpg" src="_images/spatial.jpg" />
+<dl class="method">
+<dt id="Region.nearby">
+<tt class="descname">nearby</tt><big>(</big><span class="optional">[</span><em>range</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.nearby" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> that includes the nearby neighbourhood
+of the the current region. The new region is defined by extending the
+current region’s dimensions in all directions by <em>range</em> number of pixels. The
+center of the new region remains the same.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>range</strong> – a positive integer indicating the number of pixels (default = 50).</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.above">
+<tt class="descname">above</tt><big>(</big><span class="optional">[</span><em>range</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.above" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> that is defined above the current region’s
+top border with a height of <em>range</em> number of pixels.
+So it does not include the current region.
+If <em>range</em> is omitted, it reaches to the top
+of the screen. The new region has the same width and x-position as the
+current region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>range</strong> – a positive integer defining the new height</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.below">
+<tt class="descname">below</tt><big>(</big><span class="optional">[</span><em>range</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.below" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> that is defined below the current region’s
+bottom border with a height of <em>range</em> number of pixels.
+So it does not include the current region.
+If <em>range</em> is omitted, it reaches to the bottom
+of the screen. The new region has the same width and x-position as the
+current region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>range</strong> – a positive integer defining the new height</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.left">
+<tt class="descname">left</tt><big>(</big><span class="optional">[</span><em>range</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.left" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> that is defined left of the current region’s
+left border with a width of <em>range</em> number of pixels.
+So it does not include the current region.
+If <em>range</em> is omitted, it reaches to the left border
+of the screen. The new region has the same height and y-position as the
+current region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>range</strong> – a positive integer defining the new width</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.right">
+<tt class="descname">right</tt><big>(</big><span class="optional">[</span><em>range</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.right" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> that is defined right of the current region’s
+right border with a width of <em>range</em> number of pixels.
+So it does not include the current region.
+If <em>range</em> is omitted, it reaches to the right border
+of the screen. The new region has the same height and y-position as the
+current region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>range</strong> – a positive integer defining the new width</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="finding-inside-a-region-and-waiting-for-a-visual-event">
+<span id="findinginsidearegionandwaitingforavisualevent"></span><h2>Finding inside a Region and Waiting for a Visual Event<a class="headerlink" href="#finding-inside-a-region-and-waiting-for-a-visual-event" title="Permalink to this headline">¶</a></h2>
+<p>Besides <a class="reference internal" href="#actingonaregion"><em>acting on visual objects</em></a>, finding them is one of the core
+functions of Sikuli.</p>
+<p><strong>PS</strong>: means, that either a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> or a string (path to an image
+file or just plain text) can be used as parameter. A find operation is
+successful, if the given image is found with the given minimum similarity or
+the given text is found exactly. Similarity is a value between 0 and 1 to
+specify how likely the given image looks like the target. By default, the
+similarity is 0.7 if an image rather than a pattern object with a specific
+similarity is given to <a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a>.</p>
+<p>Normally all these region methods are used as <tt class="docutils literal"><span class="pre">reg.find(PS)</span></tt>, where reg is a
+region object. If written as <tt class="docutils literal"><span class="pre">find(PS)</span></tt> it acts on the default screen, which is
+an implicit region in this case (see: <a class="reference internal" href="screen.html#defaultscreen"><em>SCREEN as Default Region</em></a>).
+But in most cases it is a good idea to use
+<tt class="docutils literal"><span class="pre">region.find()</span></tt> to restrict the search to a smaller region in order to speed up
+processing.</p>
+<p>If a find operation is successful, the returned match is additionally stored
+internally with the region that was used for the search. So instead of using a
+variable to store the match ( <tt class="docutils literal"><span class="pre">m</span> <span class="pre">=</span> <span class="pre">reg.find()</span></tt> ), you can use <tt class="docutils literal"><span class="pre">reg.getLastMatch()</span></tt> to access
+it afterwards. Unsuccessful find operations will leave these values unchanged.</p>
+<p id="patternnotfound">By default, if the <strong>visual object (image or text) cannot be found</strong>, Sikuli
+will stop the script by raising an <a class="reference internal" href="#exceptionfindfailed"><em>Exception FindFailed</em></a>.
+This follows the standards of the Python language, so that you could handle such exceptions using
+<tt class="docutils literal"><span class="pre">try:</span> <span class="pre">...</span> <span class="pre">except:</span> <span class="pre">...</span></tt>.</p>
+<p>If you are not used to programming using the Python language or because of other reasons, you might just want to bypass the
+exception handling, which means just ignoring it (None is returned in that case).
+Or you might interactively react on a FindFailed situation (e.g. optionally repeat the find).
+Read more about concepts and options at: <a class="reference internal" href="#exceptionfindfailed"><em>Exception FindFailed</em></a>.</p>
+<p>If you have <strong>multiple monitors</strong>, please read
+<a class="reference internal" href="screen.html#multimonitorenvironments"><em>Multi Monitor Environments</em></a>.</p>
+<p><strong>Note on IDE</strong>: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain, the images itself are specified simply by
+using a string containing the file name (path to an image file).</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.find">
+<tt class="descname">find</tt><big>(</big><em>PS</em><big>)</big><a class="headerlink" href="#Region.find" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image file or just plain text)</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object that contains the best match or fails if <a class="reference internal" href="#patternnotfound"><em>not found</em></a></td>
+</tr>
+</tbody>
+</table>
+<p>Find a particular GUI element, which is seen as the given image or
+just plain text. The given file name of an image specifies the element’s
+appearance. It searches within the region and returns the best match,
+which shows a similarity greater than the minimum similarity given by
+the pattern. If no similarity was set for the pattern by
+<a class="reference internal" href="pattern.html#Pattern.similar" title="Pattern.similar"><tt class="xref py py-meth docutils literal"><span class="pre">Pattern.similar()</span></tt></a> before, a default minimum similarity of 0.7
+is set automatically.</p>
+<p>If autoWaitTimeout is set to a non-zero value, find() just acts as a wait().</p>
+<p><strong>Side Effect</strong> <em>lastMatch</em>: the best match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.findAll">
+<tt class="descname">findAll</tt><big>(</big><em>PS</em><big>)</big><a class="headerlink" href="#Region.findAll" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text)</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">one or more <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> objects as an iterator object or fails if <a class="reference internal" href="#patternnotfound"><em>not found</em></a></td>
+</tr>
+</tbody>
+</table>
+<p>How to iterate through is <a class="reference internal" href="match.html#iteratingmatches"><em>documented here</em></a>.</p>
+<p>Repeatedly find ALL instances of a pattern, until no match can be
+found anymore, that meets the requirements for a single
+<a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> with the specified pattern.</p>
+<p>By default, the returned matches are sorted by the similiarty.
+If you need them ordered by their positions, say the Y coordinates,
+you have to use Python’s <a class="reference external" href="http://wiki.python.org/moin/HowTo/Sorting/">sorted</a> function. Here is a example of sorting the matches from top to bottom.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">def</span> by_y(match):
+<span class='lineno'>2</span> <span class="kw">return</span> match.y
+<span class='lineno'>3</span>
+<span class='lineno'>4</span>icons = findAll(<img src="png_icon.png"/>)
+<span class='lineno'>5</span><span class="cmt"># sort the icons by their y coordinates and put them into a new variable sorted_icons</span>
+<span class='lineno'>6</span>sorted_icons = sorted(icons, key=by_y)
+<span class='lineno'>7</span><span class="cmt"># another shorter version is using lambda.</span>
+<span class='lineno'>8</span>sorted_icons = sorted(icons, key=<span class="kw">lambda</span> m:m.y)
+<span class='lineno'>9</span><span class="kw">for</span> icon <span class="kw">in</span> sorted_icons:
+<span class='lineno'>10</span> <span class="kw">pass</span> <span class="cmt"># do whatever you want to do with the sorted icons</span>
+</pre>
+<p><strong>Side Effect</strong> <em>lastMatches</em>: a reference to the returned iterator object containing the
+found matches is stored with the region that was searched. It can be
+accessed using getLastMatches() afterwards. How to iterate through an
+iterator of matches is <a class="reference internal" href="match.html#iteratingmatches"><em>documented here</em></a>.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.wait">
+<tt class="descname">wait</tt><big>(</big><span class="optional">[</span><em>PS</em><span class="optional">]</span><span class="optional">[</span>, <em>seconds</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.wait" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text)</li>
+<li><strong>seconds</strong> – a number, which can have a fraction, as maximum waiting
+time in seconds. The internal granularity is milliseconds. If not
+specified, the auto wait timeout value set by
+<a class="reference internal" href="#Region.setAutoWaitTimeout" title="Region.setAutoWaitTimeout"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setAutoWaitTimeout()</span></tt></a> is used. Use the constant
+<em>FOREVER</em> to wait for an infinite time.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object that contains the best match or fails if <a class="reference internal" href="#patternnotfound"><em>not found</em></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If <em>PS</em> is not specified, the script just pauses for the specified
+amount of time. It is still possible to use <tt class="docutils literal"><span class="pre">sleep(seconds)</span></tt> instead,
+but this is deprecated.</p>
+<p>If <em>PS</em> is specified, it keeps searching the given pattern in the
+region until the image appears ( would have been found with
+<a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a>) or the specified amount of time has elapsed. At
+least one find operation is performed, even if 0 seconds is specified.)</p>
+<p><strong>Side Effect</strong> <em>lastMatch</em>: the best match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+<p>Note: You may adjust the scan rate (how often a search during the wait
+takes place) by setting <a class="reference internal" href="globals.html#Settings.WaitScanRate" title="Settings.WaitScanRate"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.WaitScanRate</span></tt></a> appropriately.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.waitVanish">
+<tt class="descname">waitVanish</tt><big>(</big><em>PS</em><span class="optional">[</span>, <em>seconds</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.waitVanish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Wait until the give pattern <em>PS</em> in the region vanishes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text)</li>
+<li><strong>seconds</strong> – a number, which can have a fraction, as maximum waiting
+time in seconds. The internal granularity is milliseconds. If not
+specified, the auto wait timeout value set by
+<a class="reference internal" href="#Region.setAutoWaitTimeout" title="Region.setAutoWaitTimeout"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setAutoWaitTimeout()</span></tt></a> is used. Use the constant
+<em>FOREVER</em> to wait for an infinite time.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><em>True</em> if the pattern vanishes within the specified waiting
+time, or <em>False</em> if the pattern stays visible after the waiting time
+has elapsed.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>This method keeps searching the given pattern in the region until the
+image vanishes (can not be found with <a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> any
+longer) or the specified amount of time has elapsed. At least one find
+operation is performed, even if 0 seconds is specified.</p>
+<p><strong>Note</strong>: You may adjust the scan rate (how often a search during the wait
+takes place) by setting <a class="reference internal" href="globals.html#Settings.WaitScanRate" title="Settings.WaitScanRate"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.WaitScanRate</span></tt></a> appropriately.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.exists">
+<tt class="descname">exists</tt><big>(</big><em>PS</em><span class="optional">[</span>, <em>seconds</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.exists" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check whether the give pattern is visible on the screen.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text)</li>
+<li><strong>seconds</strong> – a number, which can have a fraction, as maximum waiting
+time in seconds. The internal granularity is milliseconds. If not
+specified, the auto wait timeout value set by
+<a class="reference internal" href="#Region.setAutoWaitTimeout" title="Region.setAutoWaitTimeout"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setAutoWaitTimeout()</span></tt></a> is used. Use the constant
+<em>FOREVER</em> to wait for an infinite time.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object that contains the best match. None
+is returned, if nothing is found within the specified waiting time</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Does exactly the same as <a class="reference internal" href="#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">Region.wait()</span></tt></a>, but no exception is
+raised in case of FindFailed. So it can be used to symplify scripting
+in case that you only want to know wether something is there or not to
+decide how to proceed in your workflow. So it is typically used with an
+if statement. At least one find operation is performed, even if 0
+seconds is specified. So specifying 0 seconds saves some time, in case
+there is no need to wait, since its your intention to get the
+information “not found” directly.</p>
+<p><strong>Side Effect</strong> <em>lastMatch</em>: the best match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+<p><strong>Note</strong>: You may adjust the scan rate (how often a search during the wait
+takes place) by setting <a class="reference internal" href="globals.html#Settings.WaitScanRate" title="Settings.WaitScanRate"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.WaitScanRate</span></tt></a> appropriately.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="observing-visual-events-in-a-region">
+<span id="observingvisualeventsinaregion"></span><h2>Observing Visual Events in a Region<a class="headerlink" href="#observing-visual-events-in-a-region" title="Permalink to this headline">¶</a></h2>
+<p>You can tell a region to observe that something appears or vanishes,
+or something changes in that region. Using the methods
+<a class="reference internal" href="#Region.onAppear" title="Region.onAppear"><tt class="xref py py-meth docutils literal"><span class="pre">Region.onAppear()</span></tt></a>, <a class="reference internal" href="#Region.onVanish" title="Region.onVanish"><tt class="xref py py-meth docutils literal"><span class="pre">Region.onVanish()</span></tt></a> and <a class="reference internal" href="#Region.onChange" title="Region.onChange"><tt class="xref py py-meth docutils literal"><span class="p [...]
+you register an event observer that starts its observation when you
+call <a class="reference internal" href="#Region.observe" title="Region.observe"><tt class="xref py py-meth docutils literal"><span class="pre">Region.observe()</span></tt></a>. Each region object can have exactly one observation active and
+running. For each observation, you can register as many event observers as
+needed. So you can think of it as grouping some <tt class="docutils literal"><span class="pre">wait()</span></tt> and <tt class="docutils literal"><span class="pre">waitVanish()</span></tt>
+together and have them processed simultanouesly, while you are waiting for one
+of these events to happen.</p>
+<p>It is possible to let the script wait for the completion of an observation or
+let it run in the background, while your script is continuing. With a timing
+parameter you can tell <a class="reference internal" href="#Region.observe" title="Region.observe"><tt class="xref py py-meth docutils literal"><span class="pre">Region.observe()</span></tt></a>
+to stop observation anyway after the given time.</p>
+<p>When one of the visual events happens, an event handler written by you is
+called. An event handler is a function contained in your script and expects a
+<a class="reference internal" href="#SikuliEvent" title="SikuliEvent"><tt class="xref py py-class docutils literal"><span class="pre">SikuliEvent</span></tt></a> object as a parameter.
+During the processing in your handler, the
+observation is paused until your handler has ended. Information between the
+main script and your handlers can be given forward and backward using global
+variables.</p>
+<p>It’s your responsibility to stop an observation. This can either be done by
+calling <a class="reference internal" href="#Region.stopObserver" title="Region.stopObserver"><tt class="xref py py-meth docutils literal"><span class="pre">Region.stopObserver()</span></tt></a>
+or by starting the observation with a timing parameter.</p>
+<p>Since you can have as many region objects as needed and each region can have
+one observation active and running. So theoretically it’s possible to have as
+many visual events being observered at the same time as needed. But in reality,
+the number of observation is still limited by the system resources available to
+Sikuli at that time.</p>
+<p>Be aware, that every observation is a number of different find operations that
+are processed repeatedly. So to speed up processing and keep your script
+acting, you may want to define a region for observation as small as possible.
+You may adjust the scan rate (how often a search during the observation takes
+place) by setting
+<a class="reference internal" href="globals.html#Settings.ObserveScanRate" title="Settings.ObserveScanRate"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.ObserveScanRate</span></tt></a> appropriately.</p>
+<p><strong>PS</strong>: means, that either a Pattern or a String (path to an image file or just
+plain text) can be used as parameter.</p>
+<p id="observehandler"><strong>handler</strong>: as a parameter in the following methods, you have to specify the <em>name</em>
+of a function, which will be called by the observer, in case the observed event
+happens. The function itself has to be defined in your script before using the
+method that references the function. The existance of the function will be
+checked before starting the script. So to get your script running, you have to
+have at least the following statements in your script:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">myHandler</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> <span class="c"># you can choose any valid function name</span>
+ <span class="c"># event: can be any variable name, it references the SikuliEvent object</span>
+ <span class="k">pass</span> <span class="c"># add your statements here</span>
+
+<span class="n">onAppear</span><span class="p">(</span><span class="s">"path-to-an-image-file"</span><span class="p">,</span> <span class="n">myHandler</span><span class="p">)</span> <span class="c"># or any other onEvent()</span>
+<span class="n">observe</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="c"># observes for 10 seconds</span>
+</pre></div>
+</div>
+<p>Read <a class="reference internal" href="#SikuliEvent" title="SikuliEvent"><tt class="xref py py-class docutils literal"><span class="pre">SikuliEvent</span></tt></a> to know what is contained in a SikuliEvent object</p>
+<p><strong>Note on performance</strong>: Normally all the region methods are used as <tt class="docutils literal"><span class="pre">reg.onAppear(PS)</span></tt>, where <tt class="docutils literal"><span class="pre">reg</span></tt> is a
+region object. If written as <tt class="docutils literal"><span class="pre">onAppear(PS)</span></tt> it operates on the default screen being the implicit
+region in this case. Using <tt class="docutils literal"><span class="pre">region.onEvent()</span></tt> instead will restrict the search to the
+region’s rectangle and speed up processing, if region is significantly smaller
+than the whole screen.</p>
+<p><strong>Note</strong>: In case of having more than one Monitor active, read
+<a class="reference internal" href="screen.html#multimonitorenvironments"><em>Multi Monitor Environments</em></a> before.</p>
+<p><strong>Note on IDE</strong>: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain the images itself are specified by using a
+string containing the file name (path to an image file).</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.onAppear">
+<tt class="descname">onAppear</tt><big>(</big><em>PS</em>, <em>handler</em><big>)</big><a class="headerlink" href="#Region.onAppear" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text.</li>
+<li><strong>handler</strong> – the name of a handler function in the script</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>With the given region you register an observer, that should wait for
+the pattern to be there or to appaear and is activated with the next
+call of <tt class="docutils literal"><span class="pre">observe()</span></tt>. In the moment the internal find operation on the
+given pattern is successful during observation, your handler is called
+and the observation is paused until you return from your handler.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.onVanish">
+<tt class="descname">onVanish</tt><big>(</big><em>PS</em>, <em>handler</em><big>)</big><a class="headerlink" href="#Region.onVanish" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PS</strong> – a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image
+file or just plain text.</li>
+<li><strong>handler</strong> – the name of a handler function in the script</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>With the given region you register an observer, that should wait for
+the pattern to be not there or to vanish and is activated with the next
+call of <tt class="docutils literal"><span class="pre">observe()</span></tt>. In the moment the internal find operation on the
+given pattern fails during observation, your handler is called and the
+observation is paused until you return from your handler.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.onChange">
+<tt class="descname">onChange</tt><big>(</big><span class="optional">[</span><em>minChangedSize</em><span class="optional">]</span>, <em>handler</em><big>)</big><a class="headerlink" href="#Region.onChange" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>minChangedSize</strong> – the minimum size in pixels of a change to trigger a change event.
+If omitted: 50 is used (see <a class="reference internal" href="globals.html#Settings.ObserveMinChangedPixels" title="Settings.ObserveMinChangedPixels"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.ObserveMinChangedPixels</span></tt></a>).</li>
+<li><strong>handler</strong> – the name of a handler function in the script</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2: </span><strong>minChangedSize</strong></p>
+</div>
+<p>With the given region you register an observer, that should wait for
+the visual content of the given region to change and is activated with
+the next call of <tt class="docutils literal"><span class="pre">observe()</span></tt>. In the moment the visual content changes
+during observation, your handler is called and the observation is
+paused until you return from your handler.</p>
+<p>Here is a example that highlights all changes in an observed region.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">changed</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
+ <span class="k">print</span> <span class="s">"something changed in "</span><span class="p">,</span> <span class="n">event</span><span class="o">.</span><span class="n">region</span>
+ <span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">event</span><span class="o">.</span><span class="n">changes</span><span class="p">:</span>
+ <span class="n">ch</span><span class="o">.</span><span class="n">highlight</span><span class="p">()</span> <span class="c"># highlight all changes</span>
+ <span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+ <span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">event</span><span class="o">.</span><span class="n">changes</span><span class="p">:</span>
+ <span class="n">ch</span><span class="o">.</span><span class="n">highlight</span><span class="p">()</span> <span class="c"># turn off the highlights</span>
+<span class="k">with</span> <span class="n">selectRegion</span><span class="p">(</span><span class="s">"select a region to observe"</span><span class="p">)</span> <span class="k">as</span> <span class="n">r</span><span class="p">:</span>
+ <span class="c"># any change in r larger than 50 pixels would trigger the changed function</span>
+ <span class="n">onChange</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="n">changed</span><span class="p">)</span>
+ <span class="n">observe</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="n">wait</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span> <span class="c"># another way to observe for 30 seconds</span>
+<span class="n">r</span><span class="o">.</span><span class="n">stopObserver</span><span class="p">()</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.observe">
+<tt class="descname">observe</tt><big>(</big><span class="optional">[</span><em>seconds</em><span class="optional">]</span><span class="optional">[</span>, <em>background = False | True</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.observe" title="Permalink to this definition">¶</a></dt>
+<dd><p>Begin observation within the region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>seconds</strong> – a number, which can have a fraction, as maximum
+observation time in seconds. Omit it or use the constant FOREVER to
+tell the observation to run for an infinite time (or until stopped
+by a call of <tt class="docutils literal"><span class="pre">stopObserve()</span></tt>).</li>
+<li><strong>background</strong> – a flag indicating whether observation is run in the
+background. when set to <em>True</em>, the observation will be run in the
+background and processing of your script is continued immediately.
+Otherwise the script is paused until the completion of the
+observation.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>For each region object, only one observation can be running at a given time.</p>
+<p><strong>Note</strong>: You may adjust the scan rate (how often a search during the
+observation takes place) by setting <a class="reference internal" href="globals.html#Settings.ObserveScanRate" title="Settings.ObserveScanRate"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.ObserveScanRate</span></tt></a>
+appropriately.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.stopObserver">
+<tt class="descname">stopObserver</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.stopObserver" title="Permalink to this definition">¶</a></dt>
+<dd><p>Stop observation within the region.</p>
+<p>This must be called on a valid region object. The source region of an
+observed visual event is available as one of the attributes of the <em>event</em>
+parameter that is passed to the handler function when the function is
+invoked.</p>
+<p>For example, to stop observation within a handler function, simply
+call <tt class="docutils literal"><span class="pre">event.region.stopObserver()</span></tt> inside the handler function.:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">myHandler</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
+ <span class="n">event</span><span class="o">.</span><span class="n">region</span><span class="o">.</span><span class="n">stopObserver</span><span class="p">()</span> <span class="c"># stops the observation</span>
+
+<span class="n">onAppear</span><span class="p">(</span><span class="s">"path-to-an-image-file"</span><span class="p">,</span> <span class="n">myHandler</span><span class="p">)</span>
+<span class="n">observe</span><span class="p">(</span><span class="n">FOREVER</span><span class="p">)</span> <span class="c"># observes until stopped in handler</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="class">
+<dt id="SikuliEvent">
+<em class="property">class </em><tt class="descname">SikuliEvent</tt><a class="headerlink" href="#SikuliEvent" title="Permalink to this definition">¶</a></dt>
+<dd><p>When processing an <a class="reference internal" href="#observingvisualeventsinaregion"><em>observation in a region</em></a>,
+a <a class="reference internal" href="#observehandler"><em>handler function is called</em></a>, when one of your
+registered events <a class="reference internal" href="#Region.onAppear" title="Region.onAppear"><tt class="xref py py-meth docutils literal"><span class="pre">Region.onAppear()</span></tt></a>, <a class="reference internal" href="#Region.onVanish" title="Region.onVanish"><tt class="xref py py-meth docutils literal"><span class="pre">Region.onVanish()</span></tt></a> or <a class="reference internal" href="#Region.onChange" title="Region.onChange"><tt class="xref py py-meth docutils litera [...]
+<p>The one parameter, you have access to in your handler function is an instance
+of <em>Class SikuliEvent</em>. You have access to the following attributes of the event,
+that might help to identify the cause of the event and act on the resulting matches.</p>
+<dl class="docutils">
+<dt><em>Usage:</em> <tt class="docutils literal"><span class="pre">event.attribute</span></tt></dt>
+<dd>where <tt class="docutils literal"><span class="pre">event</span></tt> is the parameter from the definition of your handler function: <tt class="docutils literal"><span class="pre">def</span> <span class="pre">myHandler(event):</span></tt></dd>
+</dl>
+<dl class="attribute">
+<dt id="SikuliEvent.type">
+<tt class="descname">type</tt><a class="headerlink" href="#SikuliEvent.type" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>The <a class="reference internal" href="#SikuliEvent.type" title="SikuliEvent.type"><tt class="xref py py-attr docutils literal"><span class="pre">type</span></tt></a> of this event can be
+<tt class="xref py py-const docutils literal"><span class="pre">SikuliEvent.Type.APPEAR</span></tt>, <tt class="xref py py-const docutils literal"><span class="pre">SikuliEvent.Type.VANISH</span></tt>,
+or <tt class="xref py py-const docutils literal"><span class="pre">SikuliEvent.Type.CHANGE</span></tt>.</p>
+<dl class="attribute">
+<dt id="SikuliEvent.pattern">
+<tt class="descname">pattern</tt><a class="headerlink" href="#SikuliEvent.pattern" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>The source pattern that triggered this event. This is only valid
+in APPEAR and VANISH events.</p>
+<dl class="attribute">
+<dt id="SikuliEvent.region">
+<tt class="descname">region</tt><a class="headerlink" href="#SikuliEvent.region" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>The source region of this event.</p>
+<dl class="attribute">
+<dt id="SikuliEvent.match">
+<tt class="descname">match</tt><a class="headerlink" href="#SikuliEvent.match" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>In an APPEAR event, <em>match</em> saves the top <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object
+that appeared in the observed region.</p>
+<p>In a VANISH event, <em>match</em> saves the <em>last</em> <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> object
+that was in the observed region but vanished.</p>
+<p>This attribute is not valid in a CHANGE event.</p>
+<dl class="attribute">
+<dt id="SikuliEvent.changes">
+<tt class="descname">changes</tt><a class="headerlink" href="#SikuliEvent.changes" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>This attribute is valid only in a CHANGE event.</p>
+<p>This <em>changes</em> attribute is a list of <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> objects that
+changed and their sizes are at least <a class="reference internal" href="#Region.onChange" title="Region.onChange"><tt class="xref py py-meth docutils literal"><span class="pre">minChangedSize</span></tt></a> pixels.</p>
+</dd></dl>
+
+</div>
+<div class="section" id="acting-on-a-region">
+<span id="actingonaregion"></span><h2>Acting on a Region<a class="headerlink" href="#acting-on-a-region" title="Permalink to this headline">¶</a></h2>
+<p>Besides <a class="reference internal" href="#findinginsidearegionandwaitingforavisualevent"><em>finding visual objects</em></a>
+on the screen, acting on these elements is one of the
+kernel operations of Sikuli. Mouse actions can be simulated as well as pressing keys
+on a keyboard.</p>
+<p>The place on the screen, that should be acted on (in the end just one specific
+pixel, the click point), can be given either as a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">pattern</span></tt></a> like with the find
+operations or by directly referencing a pixel <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">location</span></tt></a>
+or as center of a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">region</span></tt></a> object (<a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">match</span></tt></a> or
+<a class="reference internal" href="screen.html#Screen" title="Screen"><tt class="xref py py-class docutils literal"><span class="pre">screen</span></tt></a> also) or the target offset location connected with a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">match</span></tt></a>. Since all
+these choices can be used with all action methods as needed, they are abbreviated
+and called like this:</p>
+<p><strong>PSMRL:</strong> which means, that either a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object or a string (path to an image file or just
+plain text) or a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">Match</span></tt></a> or a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> or a <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">Location</span></tt></a [...]
+detail:</p>
+<ul class="simple">
+<li><strong>P</strong>: <em>pattern</em>: a <a class="reference internal" href="pattern.html#Pattern" title="Pattern"><tt class="xref py py-class docutils literal"><span class="pre">Pattern</span></tt></a> object. An implicit find operation is
+processed first. If successful, the center of the resulting matches rectangle is
+the click point. If the pattern object has a target offset specified, this is
+used as click point instead.</li>
+<li><strong>S</strong>: <em>string</em>: a path to an image file or just plain text. An implicit find
+operation with the default minimum similarity 0.7 is processed first. If
+successful, the center of the resulting match object is the click point.</li>
+<li><strong>M</strong>: <em>match:</em> a <a class="reference internal" href="match.html#Match" title="Match"><tt class="xref py py-class docutils literal"><span class="pre">match</span></tt></a> object from a previous find operation. If the match has a target
+specified it is used as the click point, otherwise the center of the matches
+rectangle.</li>
+<li><strong>R</strong>: <em>region:</em> a <a class="reference internal" href="#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">region</span></tt></a> object whose center is used as click point.</li>
+<li><strong>L</strong>: <em>location:</em> a <a class="reference internal" href="location.html#Location" title="Location"><tt class="xref py py-class docutils literal"><span class="pre">location</span></tt></a> object which by definition represents a point on the
+screen that is used as click point.</li>
+</ul>
+<p>It is possible to simulate pressing the so called <a class="reference internal" href="keys.html"><em>key modifiers</em></a> together with the mouse
+operation or when simulating keyboard typing. The respective parameter is given by
+one or more predefined constants. If more than one modifier is necessary, they are
+combined by using “+” or “|”.</p>
+<p>Normally all these region methods are used as <tt class="docutils literal"><span class="pre">reg.click(PS)</span></tt>, where reg is a
+region object. If written as <tt class="docutils literal"><span class="pre">click(PS)</span></tt> the implicit find is done on the default
+screen being the implicit region in this case (see: <a class="reference internal" href="screen.html#defaultscreen"><em>SCREEN as Default Region</em></a>).
+But using <tt class="docutils literal"><span class="pre">reg.click(PS)</span></tt> will
+restrict the search to the region’s rectangle and speed up processing, if region is
+significantly smaller than the whole screen.</p>
+<p>Generally all aspects of <a class="reference internal" href="#findinginsidearegionandwaitingforavisualevent"><em>find operations</em></a> and of <a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a>
+apply.</p>
+<p>If the find operation was successful, the match that was acted on, can be
+recalled using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a>.</p>
+<p>As a default, if the <strong>visual object (image or text) cannot be found</strong>, Sikuli
+will stop the script by raising an <a class="reference internal" href="#exceptionfindfailed"><em>Exception FindFailed</em></a>
+(details see: <a class="reference internal" href="#patternnotfound"><em>not found</em></a>).</p>
+<p><strong>Note on IDE</strong>: Capturing is a tool in the IDE, to quickly set up images to search for.
+These images are named automatically by the IDE and stored together with the script,
+at the time it is saved (we call the location in the file system bundle-path).
+Behind the curtain the images itself are specified by using a string containing the
+file name (path to an image file).</p>
+<p><strong>Note</strong>: If you need to implement more sophisticated mouse and keyboard actions look at
+<a class="reference internal" href="#lowlevelmouseandkeyboardactions"><em>Low Level Mouse and Keyboard Actions</em></a>.</p>
+<p><strong>Note</strong>: In case of having more than one Monitor active, refer to <a class="reference internal" href="screen.html#multimonitorenvironments"><em>Multi Monitor
+Environments</em></a> for more details.</p>
+<p><strong>Note on Mac</strong>: it might be necessary, to use <a class="reference internal" href="globals.html#switchApp" title="switchApp"><tt class="xref py py-func docutils literal"><span class="pre">switchApp()</span></tt></a> before, to prepare the
+application for accepting the action.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.click">
+<tt class="descname">click</tt><big>(</big><em>PSMRL</em><span class="optional">[</span>, <em>modifiers</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.click" title="Permalink to this definition">¶</a></dt>
+<dd><p>Perform a mouse click on the click point using the left button.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number of performed clicks (actually 1). A 0 (integer null)
+means that because of some reason, no click could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+<p><strong>Example:</strong></p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="cmt"># Windows XP</span>
+<span class='lineno'>2</span><span class="skw">click</span>(<img src="xpstart.png"/>)
+<span class='lineno'>3</span>
+<span class='lineno'>4</span><span class="cmt"># Windows Vista</span>
+<span class='lineno'>5</span><span class="skw">click</span>(<img src="vistastart.png"/>)
+<span class='lineno'>6</span>
+<span class='lineno'>7</span><span class="cmt"># Windows 7</span>
+<span class='lineno'>8</span><span class="skw">click</span>(<img src="w7start.png"/>)
+<span class='lineno'>9</span>
+<span class='lineno'>10</span><span class="cmt"># Mac</span>
+<span class='lineno'>11</span><span class="skw">click</span>(<img src="apple.png"/>)
+</pre>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.doubleClick">
+<tt class="descname">doubleClick</tt><big>(</big><em>PSMRL</em><span class="optional">[</span>, <em>modifiers</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.doubleClick" title="Permalink to this definition">¶</a></dt>
+<dd><p>Perform a mouse double-click on the click point using the left button.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number of performed double-clicks (actually 1). A 0 (integer null)
+means that because of some reason, no click could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.rightClick">
+<tt class="descname">rightClick</tt><big>(</big><em>PSMRL</em><span class="optional">[</span>, <em>modifiers</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.rightClick" title="Permalink to this definition">¶</a></dt>
+<dd><p>Perform a mouse click on the click point using the right button.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number of performed right cilicks (actually 1). A 0 (integer null)
+means that because of some reason, no click could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.highlight">
+<tt class="descname">highlight</tt><big>(</big><span class="optional">[</span><em>seconds</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.highlight" title="Permalink to this definition">¶</a></dt>
+<dd><p>Highlight the region for some period of time.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seconds</strong> – a decimal number taken as duration in seconds</td>
+</tr>
+</tbody>
+</table>
+<p>The region is highlighted showing a red colored frame around it. If the
+parameter seconds is given, the script is suspended for the specified time.
+If no time is given, the highlighting is started and the script continues.
+When later on the same highlight call without a parameter is made, the
+highlighting is stopped (behaves like a toggling switch).</p>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">m</span> <span class="o">=</span> <span class="n">find</span><span class="p">(</span><span class="n">some_image</span><span class="p">)</span>
+
+<span class="c"># the red frame will blink for about 7 - 8 seconds</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">):</span>
+ <span class="n">m</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+ <span class="n">wait</span><span class="p">(</span><span class="mf">0.5</span><span class="p">)</span>
+
+<span class="c"># a second red frame will blink as an overlay to the first one</span>
+<span class="n">m</span><span class="o">.</span><span class="n">highlight</span><span class="p">()</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">):</span>
+ <span class="n">m</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+ <span class="n">wait</span><span class="p">(</span><span class="mf">0.5</span><span class="p">)</span>
+<span class="n">m</span><span class="o">.</span><span class="n">highlight</span><span class="p">()</span>
+
+<span class="c"># the red frame will grow 5 times</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">):</span>
+ <span class="n">m</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+ <span class="n">m</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">nearby</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><strong>Note</strong>: The red frame is just an overlay in front of all other screen content and
+stays in its place, independently from the behavior of this other content,
+which means it is not “connected” to the <em>content</em> of the defining region.
+But it will be adjusted automatically, if you change position and/or dimension
+of this region in your script, while it is highlighted.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.hover">
+<tt class="descname">hover</tt><big>(</big><em>PSMRL</em><big>)</big><a class="headerlink" href="#Region.hover" title="Permalink to this definition">¶</a></dt>
+<dd><p>Move the mouse cursor to hover above a click point.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number 1 if the mousepointer could be moved to the click point.
+A 0 (integer null) returned
+means that because of some reason, no move could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.dragDrop">
+<tt class="descname">dragDrop</tt><big>(</big><em>PSMRL</em>, <em>PSMRL</em><span class="optional">[</span>, <em>modifiers</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.dragDrop" title="Permalink to this definition">¶</a></dt>
+<dd><p>Perform a drag-and-drop operation from a starting click point to the target
+click point indicated by the two PSMRLs respectively.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If one of the parameters is <em>PS</em>, the operation might fail due to <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>.</p>
+<p><strong>Sideeffect</strong>: when using <em>PS</em>, the match of the target can be accessed using
+<a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards. If only the first parameter is
+given as <em>PS</em>, this match is returned by <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a>.</p>
+<p><strong>When the operation does not perform as expected</strong> (usually caused by timing
+problems due to delayed reactions of applications), you may adjust the
+internal timing parameters <a class="reference internal" href="globals.html#Settings.DelayAfterDrag" title="Settings.DelayAfterDrag"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.DelayAfterDrag</span></tt></a> and
+<a class="reference internal" href="globals.html#Settings.DelayBeforeDrop" title="Settings.DelayBeforeDrop"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.DelayBeforeDrop</span></tt></a> eventually combined with the internal
+timing parameter <a class="reference internal" href="globals.html#Settings.MoveMouseDelay" title="Settings.MoveMouseDelay"><tt class="xref py py-attr docutils literal"><span class="pre">Settings.MoveMouseDelay</span></tt></a>.</p>
+<p>Another solution might be, to use a combination of <a class="reference internal" href="#Region.drag" title="Region.drag"><tt class="xref py py-meth docutils literal"><span class="pre">Region.drag()</span></tt></a>
+and <a class="reference internal" href="#Region.dropAt" title="Region.dropAt"><tt class="xref py py-meth docutils literal"><span class="pre">Region.dropAt()</span></tt></a> combined with your own <tt class="docutils literal"><span class="pre">wait()</span></tt> usages. If the mouse
+movement from source to target is the problem, you might break up the move
+path into short steps using <a class="reference internal" href="#Region.mouseMove" title="Region.mouseMove"><tt class="xref py py-meth docutils literal"><span class="pre">Region.mouseMove()</span></tt></a>.</p>
+<p><strong>Note</strong>: If you need to implement more sophisticated mouse and keyboard actions
+look at <a class="reference internal" href="#lowlevelmouseandkeyboardactions"><em>Low Level Mouse and Keyboard Actions</em></a>.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.drag">
+<tt class="descname">drag</tt><big>(</big><em>PSMRL</em><big>)</big><a class="headerlink" href="#Region.drag" title="Permalink to this definition">¶</a></dt>
+<dd><p>Start a drag-and-drop operation by dragging at the given click point.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation could be performed. A 0 (integer null) returned
+means that because of some reason, no move could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</td>
+</tr>
+</tbody>
+</table>
+<p>The mousepointer is moved to the click point and the left mouse button is
+pressed and held, until another mouse action is performed (e.g. a
+<a class="reference internal" href="#Region.dropAt" title="Region.dropAt"><tt class="xref py py-meth docutils literal"><span class="pre">Region.dropAt()</span></tt></a> afterwards). This is nomally used to start a
+drag-and-drop operation.</p>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.dropAt">
+<tt class="descname">dropAt</tt><big>(</big><em>PSMRL</em><span class="optional">[</span>, <em>delay</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.dropAt" title="Permalink to this definition">¶</a></dt>
+<dd><p>Complete a drag-and-drop operation by dropping a previously dragged item at
+the given target click point.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>delay</strong> – time to wait after in seconds as decimal value</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number 1 if the operation could be performed. A 0 (integer null) returned
+means that because of some reason, no move could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The mousepointer is moved to the click point. After waiting for delay
+seconds the left mouse button is released. This is normally used to finalize
+a drag-and-drop operation. If it is necessary to visit one ore more click
+points after dragging and before dropping, you can use
+<a class="reference internal" href="#Region.mouseMove" title="Region.mouseMove"><tt class="xref py py-meth docutils literal"><span class="pre">Region.mouseMove()</span></tt></a> inbetween.</p>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.type">
+<tt class="descname">type</tt><big>(</big><span class="optional">[</span><em>PSMRL</em><span class="optional">]</span>, <em>text</em><span class="optional">[</span>, <em>modifiers</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.type" title="Permalink to this definition">¶</a></dt>
+<dd><p>Type the text at the current focused input field or at a click point
+specified by <em>PSMRL</em>.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number 1 if the operation could be
+performed, otherwise 0 (integer null), which means,
+that because of some reason, it was not possible or the click
+could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>This method simulates keyboard typing interpreting the characters of text
+based on the layout/keymap of the <strong>standard US keyboard (QWERTY)</strong>. Special
+keys (ENTER, TAB, BACKSPACE, ...) can be incorporated into text by using the
+constants defined in <a class="reference internal" href="keys.html"><em>Class Key</em></a> using the standard string concatenation (+).</p>
+<p>If <em>PSMRL</em> is given, a click on the clickpoint is performed before typing, to
+gain the focus. (Mac: it might be necessary, to use <a class="reference internal" href="globals.html#switchApp" title="switchApp"><tt class="xref py py-func docutils literal"><span class="pre">switchApp()</span></tt></a>
+to give focus to a target application before, to accept typed/pasted characters.)</p>
+<p>If <em>PSMRL</em> is omitted, it performs the typing on the current focused visual
+component (normally an input field or an menu entry that can be selected by
+typing something).</p>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+<p><strong>Note</strong>: If you need to type international characters or you are using
+layouts/keymaps other than US-QWERTY, you should use <a class="reference internal" href="#Region.paste" title="Region.paste"><tt class="xref py py-meth docutils literal"><span class="pre">Region.paste()</span></tt></a>
+instead. Since type() is rather slow because it simulates each key press,
+for longer text it is preferrable to use <a class="reference internal" href="#Region.paste" title="Region.paste"><tt class="xref py py-meth docutils literal"><span class="pre">Region.paste()</span></tt></a>.</p>
+<p><strong>Best Practice</strong>: As a general guideline, the best choice is to use <tt class="docutils literal"><span class="pre">paste()</span></tt>
+for readable text and <tt class="docutils literal"><span class="pre">type()</span></tt> for action keys like TAB, ENTER, ESC, ....
+Use one <tt class="docutils literal"><span class="pre">type()</span></tt> for each key or key combination and be aware, that in some cases
+a short <tt class="docutils literal"><span class="pre">wait()</span></tt> after a <tt class="docutils literal"><span class="pre">type()</span></tt> might be necessary
+to give the target application some time to react and be prepared
+for the next Sikuli action.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.paste">
+<tt class="descname">paste</tt><big>(</big><span class="optional">[</span><em>PSMRL</em><span class="optional">]</span>, <em>text</em><big>)</big><a class="headerlink" href="#Region.paste" title="Permalink to this definition">¶</a></dt>
+<dd><p>Paste the text at a click point.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>modifiers</strong> – one or more key modifiers</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the number 1 if the operation could be performed, otherwise 0
+(integer null), which means,
+that because of some reason, it was not possible or the click
+could be performed (in case of <em>PS</em> may be <a class="reference internal" href="#patternnotfound"><em>not Found</em></a>).</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Pastes <em>text</em> using the clipboard (OS-level shortcut (Ctrl-V or Cmd-V)). So
+afterwards your clipboard contains <em>text</em>. <tt class="docutils literal"><span class="pre">paste()</span></tt> is a temporary solution for
+typing international characters or typing on keyboard layouts other than
+US-QWERTY.</p>
+<p>If <em>PSMRL</em> is given, a click on the clickpoint is performed before typing, to
+gain the focus. (Mac: it might be necessary, to use <a class="reference internal" href="globals.html#switchApp" title="switchApp"><tt class="xref py py-func docutils literal"><span class="pre">switchApp()</span></tt></a>
+to give focus to a target application before, to accept typed/pasted characters.)</p>
+<p>If <em>PSMRL</em> is omitted, it performs the paste on the current focused component
+(normally an input field).</p>
+<p><strong>Side Effect</strong> if <em>PS</em> was used, the match can be accessed using <a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards.</p>
+<p><strong>Note</strong>: Special keys (ENTER, TAB, BACKSPACE, ...) cannot be used with <tt class="docutils literal"><span class="pre">paste()</span></tt>.
+If needed, you have to split your complete text into two or more <tt class="docutils literal"><span class="pre">paste()</span></tt>
+and use <tt class="docutils literal"><span class="pre">type()</span></tt> for typing the special keys inbetween.
+Characters like \n (enter/new line) and \t (tab) should work as expected with <tt class="docutils literal"><span class="pre">paste()</span></tt>,
+but be aware of timing problems, when using e.g. intervening \t to jump
+to the next input field of a form.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="extracting-text-from-a-region">
+<span id="regionextractingtext"></span><h2>Extracting Text from a Region<a class="headerlink" href="#extracting-text-from-a-region" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.text">
+<tt class="descname">text</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extract the text contained in the region using OCR.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">the text as a string. Multiple lines of text are separated by intervening ‘n’.</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Note</strong>: Since this feature is still in an <strong>experimental state</strong>, be aware,
+that in some cases it might not work as expected. If you face any problems
+look at the <a class="reference external" href="https://answers.launchpad.net/sikuli">Questions & Answers / FAQ’s</a>
+and the <a class="reference external" href="https://answers.launchpad.net/sikuli">Bugs</a>.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="low-level-mouse-and-keyboard-actions">
+<span id="lowlevelmouseandkeyboardactions"></span><h2>Low-level Mouse and Keyboard Actions<a class="headerlink" href="#low-level-mouse-and-keyboard-actions" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><dl class="method">
+<dt id="Region.mouseDown">
+<tt class="descname">mouseDown</tt><big>(</big><em>button</em><big>)</big><a class="headerlink" href="#Region.mouseDown" title="Permalink to this definition">¶</a></dt>
+<dd><p>Press the mouse <em>button</em> down.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>button</strong> – one or a combination of the button constants <tt class="docutils literal"><span class="pre">Button.LEFT</span></tt>,
+<tt class="docutils literal"><span class="pre">Button.MIDDLE</span></tt>, <tt class="docutils literal"><span class="pre">Button.RIGHT</span></tt>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation is performed successfully, and zero if
+otherwise.</td>
+</tr>
+</tbody>
+</table>
+<p>The mouse button or buttons specified by <em>button</em> are pressed until another
+mouse action is performed.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.mouseUp">
+<tt class="descname">mouseUp</tt><big>(</big><span class="optional">[</span><em>button</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.mouseUp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Release the mouse button previously pressed.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>button</strong> – one or a combination of the button constants <tt class="docutils literal"><span class="pre">Button.LEFT</span></tt>,
+<tt class="docutils literal"><span class="pre">Button.MIDDLE</span></tt>, <tt class="docutils literal"><span class="pre">Button.RIGHT</span></tt>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation is performed successfully, and zero if
+otherwise.</td>
+</tr>
+</tbody>
+</table>
+<p>The button specified by <em>button</em> is released. If <em>button</em> is omitted, all
+currently pressed buttons are released.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.mouseMove">
+<tt class="descname">mouseMove</tt><big>(</big><em>PSRML</em><big>)</big><a class="headerlink" href="#Region.mouseMove" title="Permalink to this definition">¶</a></dt>
+<dd><p>Move the mouse pointer to a location indicated by PSRML.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation could be performed. If using <em>PS</em>
+(which invokes an implicity find operation), find fails and you have
+switched off FindFailed exception, a 0 (integer null) is returned.
+Otherwise, the script is stopped with a FindFailed exception.</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Sideeffects</strong>: when using <em>PS</em>, the match can be accessed using
+<a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.wheel">
+<tt class="descname">wheel</tt><big>(</big><em>PSRML</em>, <em>WHEEL_DOWN | WHEEL_UP</em>, <em>steps</em><big>)</big><a class="headerlink" href="#Region.wheel" title="Permalink to this definition">¶</a></dt>
+<dd><p>Move the mouse pointer to a location indicated by PSRML and turn the mouse
+wheel in the specified direction by the specified number of steps.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>PSMRL</strong> – a pattern, a string, a match, a region or a location that
+evaluates to a click point.</li>
+<li><strong>WHEEL_DOWN|WHEEL_UP</strong> – one of the two constants denoting the wheeling
+direction.</li>
+<li><strong>steps</strong> – an integer indicating the amoung of wheeling.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Sideeffects</strong>: when using <em>PS</em>, the match can be accessed using
+<a class="reference internal" href="#Region.getLastMatch" title="Region.getLastMatch"><tt class="xref py py-meth docutils literal"><span class="pre">Region.getLastMatch()</span></tt></a> afterwards</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.keyDown">
+<tt class="descname">keyDown</tt><big>(</big><em>key | list-of-keys</em><big>)</big><a class="headerlink" href="#Region.keyDown" title="Permalink to this definition">¶</a></dt>
+<dd><p>Press and hold the specified key(s) until released by a later call to
+<a class="reference internal" href="#Region.keyUp" title="Region.keyUp"><tt class="xref py py-meth docutils literal"><span class="pre">Region.keyUp()</span></tt></a>.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key|list-of-keys</strong> – one or more keys (use the consts of class Key). A
+list of keys is a concatenation of several key constants using “+”.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation could be performed and 0 if
+otherwise.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.keyUp">
+<tt class="descname">keyUp</tt><big>(</big><span class="optional">[</span><em>key | list-of-keys</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Region.keyUp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Release given keys. If no key is given, all currently pressed keys are
+released.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key|list-of-keys</strong> – one or more keys (use the consts of class Key). A
+list of keys is a concatenation of several key constants using “+”.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the number 1 if the operation could be performed and 0 if
+otherwise.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="exception-findfailed">
+<span id="exceptionfindfailed"></span><h2>Exception FindFailed<a class="headerlink" href="#exception-findfailed" title="Permalink to this headline">¶</a></h2>
+<p>As a default, find operations (<a class="reference internal" href="#findinginsidearegionandwaitingforavisualevent"><em>explicit</em></a>
+and <a class="reference internal" href="#actingonaregion"><em>implicit</em></a>) when not successful
+raise an <tt class="docutils literal"><span class="pre">Exception</span> <span class="pre">FindFailed</span></tt>, that will
+stop the script immediately. This is of great help, when developing a script, to
+step by step adjust timing and similarity. When the script runs perfectly, then an
+exception FindFailed signals, that something is not as it should be.</p>
+<p>To implement some checkpoints, where you want to asure your workflow, use
+<a class="reference internal" href="#Region.exists" title="Region.exists"><tt class="xref py py-meth docutils literal"><span class="pre">Region.exists()</span></tt></a>, that reports a not found situation without raising
+FindFailed (returns False instead).</p>
+<p>To run all or only parts of your script without FindFailed exceptions to be raised,
+use <a class="reference internal" href="#Region.setThrowException" title="Region.setThrowException"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setThrowException()</span></tt></a> or <a class="reference internal" href="#Region.setFindFailedResponse" title="Region.setFindFailedResponse"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setFindFailedResponse()</span></tt></a>
+to switch it on and off as needed.</p>
+<p>For more sophisticated concepts, you can implement your own exception handling using
+the standard Python construct <tt class="docutils literal"><span class="pre">try:</span> <span class="pre">...</span> <span class="pre">except:</span> <span class="pre">...</span></tt> .</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="docutils">
+<dt>These are the possibilities to handle “not found” situations:</dt>
+<dd><ul class="first last">
+<li><dl class="first docutils">
+<dt>generally abort a script, if not handled with <tt class="docutils literal"><span class="pre">try:</span> <span class="pre">...</span> <span class="pre">except:</span> <span class="pre">...</span></tt></dt>
+<dd><p class="first last">(the default setting or using <a class="reference internal" href="#Region.setThrowException" title="Region.setThrowException"><tt class="xref py py-meth docutils literal"><span class="pre">setThrowException(True)</span></tt></a>
+or <a class="reference internal" href="#Region.setFindFailedResponse" title="Region.setFindFailedResponse"><tt class="xref py py-meth docutils literal"><span class="pre">setFindFailedResponse(ABORT)</span></tt></a>)</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>generally ignore all “not found” situations</dt>
+<dd><p class="first last">(using <a class="reference internal" href="#Region.setThrowException" title="Region.setThrowException"><tt class="xref py py-meth docutils literal"><span class="pre">setThrowException(False)</span></tt></a>
+or <a class="reference internal" href="#Region.setFindFailedResponse" title="Region.setFindFailedResponse"><tt class="xref py py-meth docutils literal"><span class="pre">setFindFailedResponse(SKIP)</span></tt></a>),</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>want to be prompted in such a case</dt>
+<dd><p class="first last">(using <a class="reference internal" href="#Region.setFindFailedResponse" title="Region.setFindFailedResponse"><tt class="xref py py-meth docutils literal"><span class="pre">setFindFailedResponse(PROMPT)</span></tt></a>)</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>advise Sikuli to wait forever (be careful with that!)</dt>
+<dd><p class="first last">(using <a class="reference internal" href="#Region.setFindFailedResponse" title="Region.setFindFailedResponse"><tt class="xref py py-meth docutils literal"><span class="pre">setFindFailedResponse(RETRY)</span></tt></a>)</p>
+</dd>
+</dl>
+</li>
+</ul>
+</dd>
+</dl>
+<p id="findfailedprompt"><strong>Comment on using PROMPT</strong>:</p>
+<p>This feature is helpful in following situations:</p>
+<ul class="simple">
+<li>you are developing something, that needs an application with it’s windows to be in place, but this workflow you want to script later. If it comes to that point, you get the prompt, arrange the app and click <em>Retry</em>. Your workflow should continue.</li>
+<li>you have a workflow, where the user might do some corrective actions, if you get a FindFailed</li>
+<li>guess you find more ;-)</li>
+</ul>
+<p>In case of a FindFailed, you get the following prompt:</p>
+<img alt="_images/findfailed-prompt.png" src="_images/findfailed-prompt.png" />
+<p>Clicking <em>Retry</em> would again try to find the image. <em>Skip</em> would continue the script and <em>Abort</em> would end the script.</p>
+<p><strong>Examples</strong>: 4 solutions for a case, where you want to decide how to proceed in a
+workflow based on the fact that a specific image can be found. (pass is the python
+statement, that does nothing, but maintains indentation to form the blocks):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># --- nice and easy</span>
+<span class="k">if</span> <span class="n">exists</span><span class="p">(</span><span class="s">"path-to-image"</span><span class="p">):</span> <span class="c"># no exception, returns None when not found</span>
+ <span class="k">pass</span> <span class="c"># it is there</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="k">pass</span> <span class="c"># we miss it</span>
+
+<span class="c"># --- using exception handling</span>
+<span class="c"># every not found in the try block will switch to the except block</span>
+<span class="k">try</span><span class="p">:</span>
+ <span class="n">find</span><span class="p">(</span><span class="s">"path-to-image"</span><span class="p">)</span>
+ <span class="k">pass</span> <span class="c"># it is there</span>
+<span class="k">except</span> <span class="n">FindFailed</span><span class="p">:</span>
+ <span class="k">pass</span> <span class="c"># we miss it</span>
+
+<span class="c"># --- using setFindFailedResponse</span>
+<span class="n">setFindFailedResponse</span><span class="p">(</span><span class="n">SKIP</span><span class="p">)</span> <span class="c"># no exception raised, not found returns None</span>
+<span class="k">if</span> <span class="n">find</span><span class="p">(</span><span class="s">"path-to-image"</span><span class="p">):</span>
+ <span class="n">setFindFailedResponse</span><span class="p">(</span><span class="n">ABORT</span><span class="p">)</span> <span class="c"># reset to default</span>
+ <span class="k">pass</span> <span class="c"># it is there</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="n">setFindFailedResponse</span><span class="p">(</span><span class="n">ABORT</span><span class="p">)</span> <span class="c"># reset to default</span>
+ <span class="k">pass</span> <span class="c"># we miss it</span>
+
+<span class="c"># --- using setThrowException</span>
+<span class="n">setThrowException</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span> <span class="c"># no exception raised, not found returns None</span>
+<span class="k">if</span> <span class="n">find</span><span class="p">(</span><span class="s">"path-to-image"</span><span class="p">):</span>
+ <span class="n">setThrowException</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> <span class="c"># reset to default</span>
+ <span class="k">pass</span> <span class="c"># it is there</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="n">setThrowException</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> <span class="c"># reset to default</span>
+ <span class="k">pass</span> <span class="c"># we miss it</span>
+</pre></div>
+</div>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><p><strong>Reminder</strong> If used without specifying a region, the default/primary screen
+(default region SCREEN) is used.</p>
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.setFindFailedResponse">
+<tt class="descname">setFindFailedResponse</tt><big>(</big><em>ABORT | SKIP | PROMPT | RETRY</em><big>)</big><a class="headerlink" href="#Region.setFindFailedResponse" title="Permalink to this definition">¶</a></dt>
+<dd><p>For the specified region set the option, how Sikuli should handle
+“not found” situations. The option stays in effect until changed
+by another <tt class="docutils literal"><span class="pre">setFindFailedResponse()</span></tt>.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>ABORT</strong> – all subsequent find failed operations (explicit or
+implicit) will raise exception FindFailed (which is the default when a
+script is started).</li>
+<li><strong>SKIP</strong> – all subsequent find operations will not raise
+exception FindFailed. Instead, explicit find operations such as
+<a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> will return <em>None</em>. Implicit find operations
+(action functions) such as <a class="reference internal" href="#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">Region.click()</span></tt></a> will do
+nothing and return 0.</li>
+<li><strong>PROMPT</strong> – all subsequent find operations will not raise
+exception FindFailed. Instead you will be prompted for the way
+to handle the situation (see <a class="reference internal" href="#findfailedprompt"><em>using PROMPT</em></a>). Only the current
+find operation is affected by your response to the prompt.</li>
+<li><strong>RETRY</strong> – all subsequent find operations will not raise
+exception FindFailed. Instead, Sikuli will try to find the target
+until it gets visible. This is equivalent to using <tt class="docutils literal"><span class="pre">wait(</span> <span class="pre">...</span> <span class="pre">,</span> <span class="pre">FOREVER)</span></tt>
+instead of <tt class="docutils literal"><span class="pre">find()</span></tt> or using setAutoWaitTimeout(FOREVER).</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getFindFailedResponse">
+<tt class="descname">getFindFailedResponse</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getFindFailedResponse" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the current setting in this region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">ABORT or SKIP or PROMPT or RETRY</td>
+</tr>
+</tbody>
+</table>
+<p>Usage:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">val</span> <span class="o">=</span> <span class="n">getFindFailedResponse</span><span class="p">()</span>
+<span class="k">if</span> <span class="n">val</span> <span class="o">==</span> <span class="n">ABORT</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"not found will stop script with Exception FindFailed"</span>
+<span class="k">elif</span> <span class="n">val</span> <span class="o">==</span> <span class="n">SKIP</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"not found will be ignored"</span>
+<span class="k">elif</span> <span class="n">val</span> <span class="o">==</span> <span class="n">PROMPT</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"when not found you will be prompted"</span>
+<span class="k">elif</span> <span class="n">val</span> <span class="o">==</span> <span class="n">RETRY</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">"we will always wait forever"</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="k">print</span> <span class="n">val</span><span class="p">,</span> <span class="s">": this is a bug :-("</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<p><strong>Note</strong>: It is recommended to use <tt class="docutils literal"><span class="pre">set/getFindFailedResponse()</span></tt> instead of
+<tt class="docutils literal"><span class="pre">set/getThrowException()</span></tt> since the latter ones might be deprecated in the future.</p>
+<dl class="method">
+<dt id="Region.setThrowException">
+<tt class="descname">setThrowException</tt><big>(</big><em>False | True</em><big>)</big><a class="headerlink" href="#Region.setThrowException" title="Permalink to this definition">¶</a></dt>
+<dd><p>By using this method you control, how Sikuli should handle not found
+situations in this region.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>True</strong> – all subsequent find operations (explicit or
+implicit) will raise exception FindFailed (which is the default when a
+script is started) in case of not found.</li>
+<li><strong>False</strong> – all subsequent find operations will not raise
+exception FindFailed. Instead, explicit find operations such as
+<a class="reference internal" href="#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a> will return <em>None</em>. Implicit find operations
+(action functions) such as <a class="reference internal" href="#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">Region.click()</span></tt></a> will do
+nothing and return 0.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="Region.getThrowException">
+<tt class="descname">getThrowException</tt><big>(</big><big>)</big><a class="headerlink" href="#Region.getThrowException" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><tt class="docutils literal"><span class="pre">True</span></tt> or <tt class="docutils literal"><span class="pre">False</span></tt></td>
+</tr>
+</tbody>
+</table>
+<p>Get the current setting as True or False (after start of script, this is True by
+default) in this region.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="grouping-method-calls-with-region">
+<span id="groupingmethodcallswithregion"></span><h2>Grouping Method Calls ( with Region: )<a class="headerlink" href="#grouping-method-calls-with-region" title="Permalink to this headline">¶</a></h2>
+<p>Instead of:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># reg is a region object</span>
+<span class="k">if</span> <span class="ow">not</span> <span class="n">reg</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">image1</span><span class="p">):</span>
+ <span class="n">reg</span><span class="o">.</span><span class="n">click</span><span class="p">(</span><span class="n">image2</span><span class="p">)</span>
+ <span class="n">reg</span><span class="o">.</span><span class="n">wait</span><span class="p">(</span><span class="n">image3</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
+ <span class="n">reg</span><span class="o">.</span><span class="n">doubleClick</span><span class="p">(</span><span class="n">image4</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>you can group methods applied to the same region using Python’s <tt class="docutils literal"><span class="pre">with</span></tt> syntax:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># reg is a region object</span>
+<span class="k">with</span> <span class="n">reg</span><span class="p">:</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">exists</span><span class="p">(</span><span class="n">image1</span><span class="p">):</span>
+ <span class="n">click</span><span class="p">(</span><span class="n">image2</span><span class="p">)</span>
+ <span class="n">wait</span><span class="p">(</span><span class="n">image3</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
+ <span class="n">doubleClick</span><span class="p">(</span><span class="n">image4</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>All methods inside the <tt class="docutils literal"><span class="pre">with</span></tt> block that have the region omitted are redirected to the
+region object specified at the <tt class="docutils literal"><span class="pre">with</span></tt> statement.</p>
+<p><strong>Note for Sikuli X versions up to rc3</strong></p>
+<p>This should work for Regions and Region-like objects (Region, Screen, App.window()).
+Match objects have to be made a Region explicitly using <tt class="docutils literal"><span class="pre">Region(some_match)</span></tt>.</p>
+<p>This is a general workaround when facing any problems using <tt class="docutils literal"><span class="pre">with</span> <span class="pre">some_region:</span></tt>.</p>
+</div>
+<div class="section" id="special-methods-for-developers">
+<h2>Special Methods for Developers<a class="headerlink" href="#special-methods-for-developers" title="Permalink to this headline">¶</a></h2>
+<p>Here we document Region methods, that might be helpful, when developing complex scripts
+with its own API, as it is the fact, when developing an <a class="reference internal" href="extensions/extensions_info.html#sikuliextensions"><em>Extension</em></a>.</p>
+<p>Be aware, that these might change without notice (should not be, but might be ;-).</p>
+<p>These two methods might help to implement more generic functions than just find() and click().</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Region</tt></dt>
+<dd><div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.getRegionFromPSRM">
+<tt class="descname">getRegionFromPSRM</tt><big>(</big><em>PSRM</em><big>)</big><a class="headerlink" href="#Region.getRegionFromPSRM" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new Region object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match is returned. In case RM, just a copy of the given region is returned.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Params PSRM:</th><td class="field-body">a Pattern, String, Region or Match object</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new Region object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<div class="versionadded">
+<p><span>New in version X1.0-rc2.</span></p>
+</div>
+<dl class="method">
+<dt id="Region.getLocationFromPSRML">
+<tt class="descname">getLocationFromPSRML</tt><big>(</big><em>PSRML</em><big>)</big><a class="headerlink" href="#Region.getLocationFromPSRML" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a new Location object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match’s target offset position is returned. In case RM, just a copy of the given region’s respective location (center or target offset) is returned.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Params PSRML:</th><td class="field-body">a Pattern, String, Region, Match or Location object</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new Location object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="screen.html" title="Screen"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="globals.html" title="Global Functions and Features"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/screen.html b/Docs/Python/build/html/screen.html
new file mode 100644
index 0000000..0d83b02
--- /dev/null
+++ b/Docs/Python/build/html/screen.html
@@ -0,0 +1,416 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Screen — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="up" title="Everything about Sikuli Script" href="sikuli-script-index.html" />
+ <link rel="next" title="Location" href="location.html" />
+ <link rel="prev" title="Region" href="region.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="location.html" title="Location"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="region.html" title="Region"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" accesskey="U">Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Screen</a><ul>
+<li><a class="reference internal" href="#screen-setting-getting-attributes-and-information">Screen: Setting, Getting Attributes and Information</a></li>
+<li><a class="reference internal" href="#screen-as-default-region">Screen as (Default) Region</a></li>
+<li><a class="reference internal" href="#capturing">Capturing</a></li>
+<li><a class="reference internal" href="#multi-monitor-environments">Multi-Monitor Environments</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="region.html"
+ title="previous chapter">Region</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="location.html"
+ title="next chapter">Location</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/screen.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="screen">
+<h1>Screen<a class="headerlink" href="#screen" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="Screen">
+<em class="property">class </em><tt class="descname">Screen</tt><a class="headerlink" href="#Screen" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Class Screen is there, to have a representation for a pysical monitor where the
+capturing process (grabbing a rectangle from a screenshot, to be used for further
+processing with find operations is implemented. For <a class="reference internal" href="#multimonitorenvironments"><em>Multi Monitor Environments</em></a> it contains features to map to the relevant monitor.</p>
+<p>Since Screen extends class <a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a>, all methods of
+class Region can be used with a screen object.</p>
+<p>Of special interest might be the grouping of region method calls using <tt class="docutils literal"><span class="pre">with:</span></tt> in Multi Monitor
+Environments: use it for other screens, than the default/primary screen, where
+you have this feature by default.</p>
+<p>Be aware, that using the whole screen for find
+operations may have an impact on performance. So if possible either use <tt class="docutils literal"><span class="pre">setROI()</span></tt> or
+restrict a find operation to a smaller region object (e.g. <tt class="docutils literal"><span class="pre">reg.find()</span></tt>) to speed up
+processing.</p>
+<div class="section" id="screen-setting-getting-attributes-and-information">
+<h2>Screen: Setting, Getting Attributes and Information<a class="headerlink" href="#screen-setting-getting-attributes-and-information" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Screen</tt></dt>
+<dd><dl class="method">
+<dt id="Screen.Screen">
+<tt class="descname">Screen</tt><big>(</big><span class="optional">[</span><em>id</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Screen.Screen" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a new Screen object</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>id</strong> – an integer number indicating which monitor in a multi-monitor
+environment.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new screen object.</td>
+</tr>
+</tbody>
+</table>
+<p>It creates a new screen object, that represents the default/primary monitor
+(whose id is 0), if id is omitted. Numbers 1 and higher represent additional
+monitors that are available at the time, the script is running (read for
+details).</p>
+<p>Using numbers, that do not represent an existing monitor, will stop the
+script with an error. So you may either use getNumberScreens() or exception
+handling, to avoid this.</p>
+<p>Note: If you want to access the default/primary monitor ( Screen(0) )
+without creating a new screen object, use the constant reference SCREEN,
+that is initiated when your script starts: SCREEN=Screen(0).</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Screen.getNumberScreens">
+<tt class="descname">getNumberScreens</tt><big>(</big><big>)</big><a class="headerlink" href="#Screen.getNumberScreens" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the number of screens in a multi-monitor environment at the time the
+script is running</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Screen.getBounds">
+<tt class="descname">getBounds</tt><big>(</big><big>)</big><a class="headerlink" href="#Screen.getBounds" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the dimensions of monitor represented by the screen object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">a rectangle object</td>
+</tr>
+</tbody>
+</table>
+<p>The width and height of the rectangle denote the dimensions of the monitor
+represented by the screen object. These attributes are obtained from the
+operating system. They can not be modified using Sikuli script.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="screen-as-default-region">
+<span id="defaultscreen"></span><h2>Screen as (Default) Region<a class="headerlink" href="#screen-as-default-region" title="Permalink to this headline">¶</a></h2>
+<p>Normally all region methods are used as reg.find(PS), where reg is a region object
+(or a screen or a match object). If written as find(PS) it acts on the default
+screen being the implicit region in this case (mapped to the constant reference
+SCREEN). In Multi Monitor Environments this is the primary monitor (use the
+constant reference SCREEN, to access it all the time), that normally is Screen(0),
+but might be another Screen() object depending on your platform.</p>
+<p>So its a convenience feature, that can be seen as an implicit use of the python
+construct ‘’‘with object:’‘’.</p>
+<p>On the other hand this may slow down processing speed, because of time consuming
+searches. So to speed up processing, saying region.find() will restrict the search
+to the specified rectangle. Another possibility is to say setROI() to restrict the
+search for all following find operations to a smaller region than the whole screen.
+This will speed up processing, if the region is significantly smaller than the whole
+screen.</p>
+</div>
+<div class="section" id="capturing">
+<h2>Capturing<a class="headerlink" href="#capturing" title="Permalink to this headline">¶</a></h2>
+<p>Capturing is the feature, that allows to grab a rectangle from a screenshot, to save
+it for later use. At each time, a capturing is initiated, a new screenshot is taken.</p>
+<p>There are two different versions: the first one <a class="reference internal" href="#Screen.capture" title="Screen.capture"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.capture()</span></tt></a> saves the
+content of the selected rectangle in a file and returns its file name, whereas the
+second one <a class="reference internal" href="#Screen.selectRegion" title="Screen.selectRegion"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.selectRegion()</span></tt></a> just returns the position and dimension of
+the selected rectangle.</p>
+<p>Both features are available in the IDE via the buttons in the toolbar.</p>
+<dl class="class">
+<dt>
+<em class="property">class </em><tt class="descname">Screen</tt></dt>
+<dd><dl class="method">
+<dt id="Screen.capture">
+<tt class="descname">capture</tt><big>(</big><span class="optional">[</span><em>region | rectangle | text</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Screen.capture" title="Permalink to this definition">¶</a></dt>
+<dt>
+<tt class="descname">capture</tt><big>(</big><em>x</em>, <em>y</em>, <em>w</em>, <em>h</em><big>)</big></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>region</strong> – an existing region object.</li>
+<li><strong>rectangle</strong> – an existing rectangle object (e.g., as a return value of
+another region method).</li>
+<li><strong>text</strong> – text to display in the middle of the screen in the interactive
+mode.</li>
+<li><strong>x</strong> – x position of the rectangle to capture</li>
+<li><strong>y</strong> – y position of the rectangle to capture</li>
+<li><strong>w</strong> – width of the rectangle to capture</li>
+<li><strong>h</strong> – height of the rectangle to capture</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the path to the file, where the captured image was saved. In
+interactive mode, the user may cancel the capturing, in which case
+<em>None</em> is returned.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Interactive Mode:</strong> The script enters the screen-capture mode like when
+clicking the button in the IDE, enabling the user to capture a rectangle on
+the screen. If no <em>text</em> is given, the default “Select a region on the screen”
+is displayed.</p>
+<p>If any arguments other than text are specified, capture() automatically
+captures the given rectangle of the screen. In any case, a new screenshot is
+taken, the content of the selected rectangle is saved in a temporary file.
+The file name is returned and can be used later in the script as a reference
+to this image. It can be used directly in cases, where a parameter PS is
+allowed (e.g. <a class="reference internal" href="region.html#Region.find" title="Region.find"><tt class="xref py py-meth docutils literal"><span class="pre">Region.find()</span></tt></a>, <a class="reference internal" href="region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">Region.click()</span></tt></a>, ...).</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="Screen.selectRegion">
+<tt class="descname">selectRegion</tt><big>(</big><span class="optional">[</span><em>text</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Screen.selectRegion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Select a region on the screen interactively</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> – Text to display in the middle of the screen.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a new <a class="reference internal" href="region.html#Region" title="Region"><tt class="xref py py-class docutils literal"><span class="pre">Region</span></tt></a> object or None, if the user cancels the capturing process.</td>
+</tr>
+</tbody>
+</table>
+<p><strong>text</strong> is displayed for about 2 seconds in the middle of the screen.
+If <strong>text</strong> is omitted, the default “Select a region on the screen” is
+displayed.</p>
+<p>The interactive capture mode is entered and allows the user to select a
+region the same way as using the selection tool in the IDE.</p>
+<p><strong>Note:</strong> You should check the result, since the user may cancel the capturing.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="multi-monitor-environments">
+<span id="multimonitorenvironments"></span><h2>Multi-Monitor Environments<a class="headerlink" href="#multi-monitor-environments" title="Permalink to this headline">¶</a></h2>
+<p>If more than one monitor is available, Sikuli is able to manage regions and click
+points on these monitors.</p>
+<img alt="_images/multi.jpg" src="_images/multi.jpg" />
+<p>The base is the coordinate system (picture above), that positions the primary
+monitor with its upper left corner at (0,0) extending the x-direction to the right
+and the y-direction towards the lower boundary of the screen. The position of
+additional monitors can be configured in the operating system to be on either side
+of the primary monitor, with different positions and sizes. So monitors left of the
+primary will have pixels with negative x-values and monitors above will have
+negative y-values (left and above both x and y are negative).</p>
+<p>At script start, Sikuli gets the relevant information from the operating system and
+creates respective screen objects, that have an ID (0 for the first or primary
+monitor, 1 and higher for additional monitors with a maximum of one less than the
+number of screens) and know the rectangle, they cover in the coordinate system.
+These informations are readonly for a script.</p>
+<p>These predefined screen objects can be accessed with Screen(0), Screen(1), ... and
+are normally used to create your own screen objects. The possibility to use the
+region methods on a default region mapped to the primary monitor is implemented with
+the constant reference SCREEN. This concept is only available for the primary
+monitor.</p>
+<p>How to get the relevant information:</p>
+<ul class="simple">
+<li><a class="reference internal" href="#Screen.getNumberScreens" title="Screen.getNumberScreens"><tt class="xref py py-func docutils literal"><span class="pre">getNumberScreens()</span></tt></a> returns the number of available screens.</li>
+<li><a class="reference internal" href="#Screen.getBounds" title="Screen.getBounds"><tt class="xref py py-func docutils literal"><span class="pre">getBounds()</span></tt></a> returns the rectangle covered by the default/primary
+monitor.</li>
+<li><a class="reference internal" href="#Screen.getBounds" title="Screen.getBounds"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.getBounds()</span></tt></a> returns the rectangle covered by a screen object
+created using <a class="reference internal" href="#Screen.Screen" title="Screen.Screen"><tt class="xref py py-meth docutils literal"><span class="pre">Screen(id)</span></tt></a>.</li>
+</ul>
+<p>Be aware: Changes in your system settings are only recognized by the IDE, when it is
+started.</p>
+<p><strong>Windows:</strong> The monitor, that is the first one based on hardware mapping (e.g. the
+laptop monitor), will always be Screen(0). In the Windows settings it is possible to
+place the taskbar on one of the secondary monitors, which makes it the primary
+monitor getting the base coordinates (0,0). The other available monitors are mapped
+around based on your settings. But the Sikuli internal mapping is not changed, so the primary
+monitor might be any of your Screen() objects. Sikuli takes care for that and maps
+SCREEN always to the primary monitor (the one with the (0,0) coordinates).
+So for example you have a laptop with an external monitor, that shows the taskbar
+(is primary monitor):</p>
+<ul class="simple">
+<li>SCREEN maps to Screen(1)</li>
+<li>Screen(0) is your laptop monitor</li>
+</ul>
+<p><strong>Mac:</strong> The monitor, that has the System Menu Bar, is always Screen(0) and mapped
+to the default SCREEN.</p>
+<p><strong>Linux</strong> (Under construction)</p>
+<p>With its rectangle, a screen object is always identical with the monitor
+it was created using <a class="reference internal" href="#Screen.Screen" title="Screen.Screen"><tt class="xref py py-meth docutils literal"><span class="pre">Screen(id)</span></tt></a>. Using <a class="reference internal" href="region.html#Region.setROI" title="Region.setROI"><tt class="xref py py-meth docutils literal"><span class="pre">Region.setROI()</span></tt></a> to restrict
+the region of interest for find operations has no effect on the base rectangle of
+the screen object.</p>
+<p>On the other hand region objects and location objects can be positioned anywhere in
+the coordinate system. Only when a find operation or a click action has to be
+performed, the objects rectangle or point has to be inside the rectangle of an
+existing monitor (basically repersented by Screen(0), Screen(1), ...). When
+this condition is met, everything works as expected and known from a single monitor
+system.</p>
+<p>With finding and acting there are the following exceptions:</p>
+<ul class="simple">
+<li><strong>Point Outside:</strong> a click point is outside any monitor rectangle. The
+clickpoint will be mapped to the edges or corners of the primary monitor
+according to the relative position:<ul>
+<li>to the edges if its x or y value is in the range of the respective edge
+(right, left, above, below)i</li>
+<li>to the corners, if x and y are outside any range of any edge (left/above ->
+upper left corner, ...)</li>
+</ul>
+</li>
+<li><strong>Region Outside:</strong> a region is completely outside any monitor<ul>
+<li>a click action is handled in thesame way as <strong>Point Outside</strong></li>
+<li>a find operation will always fail</li>
+</ul>
+</li>
+<li><strong>Region Partially Outside:</strong> a region is partially outside a monitor but
+not overlapping another monitor<ul>
+<li>a click action is handled in the same way as <strong>Point Outside</strong></li>
+<li>a find operation will be carried out only in the part of region within the
+bounds of the monitor, excluding the area outside the monitor.</li>
+</ul>
+</li>
+<li><strong>Region Across Monitors:</strong> a region lies across multiple monitors:<ul>
+<li>a click action is handled in the same way as <strong>Point Outside</strong></li>
+<li>a find operation will be restricted to the region within the bounds of the
+monitor that has a smaller <em>id</em>.</li>
+</ul>
+</li>
+</ul>
+<p>An interactive capture (the user is asked to select an image or a rectangle via
+<a class="reference internal" href="#Screen.capture" title="Screen.capture"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.capture()</span></tt></a> or <a class="reference internal" href="#Screen.selectRegion" title="Screen.selectRegion"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.selectRegion()</span></tt></a>) will automatically be
+restricted to the monitor, where it was started.</p>
+<p>A scripted capture using a rectangle or a region
+(i.e. <a class="reference internal" href="#Screen.capture" title="Screen.capture"><tt class="xref py py-meth docutils literal"><span class="pre">Screen.capture(</span> <span class="pre">region</span> <span class="pre">|</span> <span class="pre">rectangle</span> <span class="pre">)</span></tt></a>),
+will be handled accordingly:</p>
+<ul class="simple">
+<li><strong>Region Outside:</strong> no image is captured, <em>None</em> is returned</li>
+<li><strong>Region Partially Outside:</strong> the returned image will only cover the part
+inside the monitor</li>
+<li><strong>Region Across Monitors:</strong> the returned image will only cover the part
+inside the monitor with the smallest id.</li>
+</ul>
+<p>Based on the knowledge of your monitor configuration, you can now start some further
+evaluations using e.g. <a class="reference internal" href="region.html#Region.hover" title="Region.hover"><tt class="xref py py-meth docutils literal"><span class="pre">Region.hover()</span></tt></a> together with
+<a class="reference internal" href="globals.html#setShowActions" title="setShowActions"><tt class="xref py py-func docutils literal"><span class="pre">setShowActions(True)</span></tt></a> and highlighting using <a class="reference internal" href="region.html#Region.highlight" title="Region.highlight"><tt class="xref py py-meth docutils literal"><span class="pre">Region.highlight()</span></tt></a>.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="location.html" title="Location"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="region.html" title="Region"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="sikuli-script-index.html" >Everything about Sikuli Script</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/search.html b/Docs/Python/build/html/search.html
new file mode 100644
index 0000000..3250a67
--- /dev/null
+++ b/Docs/Python/build/html/search.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Search — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <script type="text/javascript" src="_static/searchtools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <script type="text/javascript">
+ jQuery(function() { Search.loadIndex("searchindex.js"); });
+ </script>
+
+ <script type="text/javascript" id="searchindexloader"></script>
+
+
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <h1 id="search-documentation">Search</h1>
+ <div id="fallback" class="admonition warning">
+ <script type="text/javascript">$('#fallback').hide();</script>
+ <p>
+ Please activate JavaScript to enable the search
+ functionality.
+ </p>
+ </div>
+ <p>
+ From here you can search these documents. Enter your search
+ words into the box below and click "search". Note that the search
+ function will automatically search for all of the words. Pages
+ containing fewer words won't appear in the result list.
+ </p>
+ <form action="" method="get">
+ <input type="text" name="q" value="" />
+ <input type="submit" value="search" />
+ <span id="search-progress" style="padding-left: 10px"></span>
+ </form>
+
+ <div id="search-results">
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/searchindex.js b/Docs/Python/build/html/searchindex.js
new file mode 100644
index 0000000..a0b966d
--- /dev/null
+++ b/Docs/Python/build/html/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({envversion:42,terms:{yellow:19,prefix:24,esc:[24,27],getproperti:2,dirnam:2,whose:[27,25,2,21,6],"const":27,tweet:11,under:[11,25,2,3],digit:[],everi:[1,2,28,27,22],risk:4,"void":12,safaribr:4,affect:27,some_match:27,cmd:[24,27,2,17],upload:29,reg:[25,28,27],sleep:[1,27],cmt:[4,1,2,18,27,30],seper:22,direct:[0,21,6,27,29,25],enjoi:23,second:[0,21,22,25,6,2,27,3,1,19],even:[23,22,1,28,2,27],somedirectori:2,neg:[25,2],asid:[],firstwindow:2,net:[],abov:[0,22,25,28,2,13,14,2 [...]
\ No newline at end of file
diff --git a/Docs/Python/build/html/sikuli-script-index.html b/Docs/Python/build/html/sikuli-script-index.html
new file mode 100644
index 0000000..26f377f
--- /dev/null
+++ b/Docs/Python/build/html/sikuli-script-index.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Everything about Sikuli Script — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ <link rel="next" title="Global Functions and Features" href="globals.html" />
+ <link rel="prev" title="How to use Sikuli together with other IDE’s" href="faq/040-other-ide.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="globals.html" title="Global Functions and Features"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="faq/040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="faq/040-other-ide.html"
+ title="previous chapter">How to use Sikuli together with other IDE’s</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="globals.html"
+ title="next chapter">Global Functions and Features</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/sikuli-script-index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="everything-about-sikuli-script">
+<h1>Everything about Sikuli Script<a class="headerlink" href="#everything-about-sikuli-script" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="globals.html">Global Functions and Features</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#importing-other-sikuli-scripts-reuse-code-and-images">Importing other Sikuli Scripts (reuse code and images)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#controlling-sikuli-scripts-and-their-behavior">Controlling Sikuli Scripts and their Behavior</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#controlling-applications-and-their-windows">Controlling Applications and their Windows</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#interacting-with-the-user">Interacting with the User</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#listening-to-global-hotkeys">Listening to Global Hotkeys</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#general-settings-and-access-to-environment-information">General Settings and Access to Environment Information</a></li>
+<li class="toctree-l2"><a class="reference internal" href="globals.html#advanced-settings-for-speed-and-robustness">Advanced Settings for Speed and Robustness</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="region.html">Region</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="region.html#creating-a-region-setting-and-getting-attributes">Creating a Region, Setting and Getting Attributes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#extending-a-region">Extending a Region</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#finding-inside-a-region-and-waiting-for-a-visual-event">Finding inside a Region and Waiting for a Visual Event</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#observing-visual-events-in-a-region">Observing Visual Events in a Region</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#acting-on-a-region">Acting on a Region</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#extracting-text-from-a-region">Extracting Text from a Region</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#low-level-mouse-and-keyboard-actions">Low-level Mouse and Keyboard Actions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#exception-findfailed">Exception FindFailed</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#grouping-method-calls-with-region">Grouping Method Calls ( with Region: )</a></li>
+<li class="toctree-l2"><a class="reference internal" href="region.html#special-methods-for-developers">Special Methods for Developers</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="screen.html">Screen</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="screen.html#screen-setting-getting-attributes-and-information">Screen: Setting, Getting Attributes and Information</a></li>
+<li class="toctree-l2"><a class="reference internal" href="screen.html#screen-as-default-region">Screen as (Default) Region</a></li>
+<li class="toctree-l2"><a class="reference internal" href="screen.html#capturing">Capturing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="screen.html#multi-monitor-environments">Multi-Monitor Environments</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="location.html">Location</a></li>
+<li class="toctree-l1"><a class="reference internal" href="match.html">Match</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="match.html#creating-a-match-getting-attributes">Creating a Match, Getting Attributes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="match.html#iterating-over-matches-after-findall">Iterating over Matches after findAll()</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="pattern.html">Pattern</a></li>
+<li class="toctree-l1"><a class="reference internal" href="finder.html">Finder</a></li>
+<li class="toctree-l1"><a class="reference internal" href="keys.html">Key Constants</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="keys.html#special-keys">Special Keys</a></li>
+<li class="toctree-l2"><a class="reference internal" href="keys.html#key-modifiers">Key Modifiers</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="globals.html" title="Global Functions and Features"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="faq/040-other-ide.html" title="How to use Sikuli together with other IDE’s"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/star.png b/Docs/Python/build/html/star.png
new file mode 100644
index 0000000..649c40b
Binary files /dev/null and b/Docs/Python/build/html/star.png differ
diff --git a/Docs/Python/build/html/stars.png b/Docs/Python/build/html/stars.png
new file mode 100644
index 0000000..e76f9ff
Binary files /dev/null and b/Docs/Python/build/html/stars.png differ
diff --git a/Docs/Python/build/html/toc.html b/Docs/Python/build/html/toc.html
new file mode 100644
index 0000000..b2d85f0
--- /dev/null
+++ b/Docs/Python/build/html/toc.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Table of Contents — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: './',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="index.html">
+ <img class="logo" src="_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Table of Contents</a><ul>
+<li><a class="reference internal" href="#getting-started">Getting Started</a><ul>
+<li><a class="reference internal" href="#tutorials">Tutorials</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#faq">FAQ</a><ul>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#complete-guide-to-sikuli-script">Complete Guide to Sikuli Script</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#for-hackers-and-developers">For Hackers and Developers</a><ul>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="_sources/toc.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="table-of-contents">
+<h1>Table of Contents<a class="headerlink" href="#table-of-contents" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="getting-started">
+<h2>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="tutorials">
+<h3>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="tutorials/index.html">Tutorials</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/helloworld/helloworld-mac.html">Hello World (Mac)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/helloworld/helloworld-win.html">Hello World (Windows)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/goodbyetrash/goodbyetrash.html">Goodbye Trash (Mac)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/uncheckall/uncheckall.html">Uncheck All Checkboxes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/checkone/checkone.html">Check the Right Checkbox</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/sliders/sliders.html">Working with Sliders</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/surveillance/surveillance.html">Desktop Surveillance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorials/resize/resize.html">Resizing a Window</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="faq">
+<h3>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="faq/000-can-i-do-xxx.html">Can I do X or Y or Z in Sikuli?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/010-command-line.html">How to run Sikuli from Command Line</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/030-java-dev.html">How to use Sikuli Script in your JAVA programs</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq/040-other-ide.html">How to use Sikuli together with other IDE’s</a></li>
+</ul>
+</div>
+</div>
+</div>
+<div class="section" id="complete-guide-to-sikuli-script">
+<h2>Complete Guide to Sikuli Script<a class="headerlink" href="#complete-guide-to-sikuli-script" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="new-in-sikulix.html">What is new in Sikuli X</a></li>
+<li class="toctree-l1"><a class="reference internal" href="sikuli-script-index.html">Everything about Sikuli Script</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="globals.html">Global Functions and Features</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#importing-other-sikuli-scripts-reuse-code-and-images">Importing other Sikuli Scripts (reuse code and images)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#controlling-sikuli-scripts-and-their-behavior">Controlling Sikuli Scripts and their Behavior</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#controlling-applications-and-their-windows">Controlling Applications and their Windows</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#interacting-with-the-user">Interacting with the User</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#listening-to-global-hotkeys">Listening to Global Hotkeys</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#general-settings-and-access-to-environment-information">General Settings and Access to Environment Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="globals.html#advanced-settings-for-speed-and-robustness">Advanced Settings for Speed and Robustness</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="region.html">Region</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="region.html#creating-a-region-setting-and-getting-attributes">Creating a Region, Setting and Getting Attributes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#extending-a-region">Extending a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#finding-inside-a-region-and-waiting-for-a-visual-event">Finding inside a Region and Waiting for a Visual Event</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#observing-visual-events-in-a-region">Observing Visual Events in a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#acting-on-a-region">Acting on a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#extracting-text-from-a-region">Extracting Text from a Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#low-level-mouse-and-keyboard-actions">Low-level Mouse and Keyboard Actions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#exception-findfailed">Exception FindFailed</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#grouping-method-calls-with-region">Grouping Method Calls ( with Region: )</a></li>
+<li class="toctree-l3"><a class="reference internal" href="region.html#special-methods-for-developers">Special Methods for Developers</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="screen.html">Screen</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#screen-setting-getting-attributes-and-information">Screen: Setting, Getting Attributes and Information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#screen-as-default-region">Screen as (Default) Region</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#capturing">Capturing</a></li>
+<li class="toctree-l3"><a class="reference internal" href="screen.html#multi-monitor-environments">Multi-Monitor Environments</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="location.html">Location</a></li>
+<li class="toctree-l2"><a class="reference internal" href="match.html">Match</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="match.html#creating-a-match-getting-attributes">Creating a Match, Getting Attributes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="match.html#iterating-over-matches-after-findall">Iterating over Matches after findAll()</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="pattern.html">Pattern</a></li>
+<li class="toctree-l2"><a class="reference internal" href="finder.html">Finder</a></li>
+<li class="toctree-l2"><a class="reference internal" href="keys.html">Key Constants</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="keys.html#special-keys">Special Keys</a></li>
+<li class="toctree-l3"><a class="reference internal" href="keys.html#key-modifiers">Key Modifiers</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="for-hackers-and-developers">
+<h2>For Hackers and Developers<a class="headerlink" href="#for-hackers-and-developers" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="devs/system-design.html">How Sikuli Works</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="devs/system-design.html#sikuli-script">Sikuli Script</a></li>
+<li class="toctree-l2"><a class="reference internal" href="devs/system-design.html#the-structure-of-a-sikuli-source-folder-or-zipped-file-sikuli-skl">The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="contributing.html">How to get involved</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="contributing.html#submit-patches">Submit Patches</a></li>
+<li class="toctree-l2"><a class="reference internal" href="contributing.html#internationalization-and-localization">Internationalization and localization</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="changes.html">Changes in Sikuli</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changes.html#x-1-1-0-2014-01-31">X 1.1.0 (2014-01-31)</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/checkone/checkbox.png b/Docs/Python/build/html/tutorials/checkone/checkbox.png
new file mode 100644
index 0000000..5d3d2e9
Binary files /dev/null and b/Docs/Python/build/html/tutorials/checkone/checkbox.png differ
diff --git a/Docs/Python/build/html/tutorials/checkone/checkone.html b/Docs/Python/build/html/tutorials/checkone/checkone.html
new file mode 100644
index 0000000..bebcf36
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/checkone/checkone.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Check the Right Checkbox — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Working with Sliders" href="../sliders/sliders.html" />
+ <link rel="prev" title="Uncheck All Checkboxes" href="../uncheckall/uncheckall.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sliders/sliders.html" title="Working with Sliders"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../uncheckall/uncheckall.html" title="Uncheck All Checkboxes"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../uncheckall/uncheckall.html"
+ title="previous chapter">Uncheck All Checkboxes</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../sliders/sliders.html"
+ title="next chapter">Working with Sliders</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/checkone/checkone.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="check-the-right-checkbox">
+<h1>Check the Right Checkbox<a class="headerlink" href="#check-the-right-checkbox" title="Permalink to this headline">¶</a></h1>
+<p>This tutorial demonstrates how to check a particular checkbox when there are
+multiple checkboxes in a window. Consider the following window, which is the window
+for setting the preferences for <em>Dock</em> on Mac, and we want to check the checkbox
+indicated by the circle that reads “Minimize Windows into Application Icons.”</p>
+<a class="reference internal image-reference" href="../../_images/scenario.png"><img alt="../../_images/scenario.png" src="../../_images/scenario.png" style="width: 550px;" /></a>
+<p>Simply looking for the image of the checkbox like below will not work.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">click</span>(<img src="checkbox.png"/>)
+</pre>
+<p>Sikuli does not know which checkbox we are referring to; it simply clicks on the
+first one it finds. Below is what we will do instead.</p>
+<p>First we want to obtain the region covering the content area of the <em>Dock</em> pane. One
+way to accomplish this is to use a spatial operator to obtain a region below the
+title bar of the <em>Dock</em> pane. The figure below illustrates this strategy.</p>
+<a class="reference internal image-reference" href="../../_images/find_title_and_below.png"><img alt="../../_images/find_title_and_below.png" src="../../_images/find_title_and_below.png" style="width: 550px;" /></a>
+<p>The Sikuli script to do this is:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>r = <span class="skw">find</span>(<img src="title.png"/>).below(<span class="dig">300</span>)
+</pre>
+<p>It finds the title bar and then extend the matched region 300 pixels below, using
+the spatial operator <a class="reference internal" href="../../region.html#Region.below" title="Region.below"><tt class="xref py py-meth docutils literal"><span class="pre">below</span></tt></a>. The resulting region is
+assigned to the variable <em>r</em>, which is the orange rectangle in the figure above.</p>
+<p>Next, we can search within the content region <em>r</em> for the label text of the checkbox
+we want to check and click on it.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>t = r.<span class="skw">find</span>(<img src="label.png"/>)
+<span class='lineno'>2</span><span class="skw">click</span>(t)
+</pre>
+<p>If we do <tt class="docutils literal"><span class="pre">click(t)</span></tt>, Sikuli will click on the center of the label. However, what
+we want is to click on the right of the label where the check box is.</p>
+<p>Sikuli IDE provides a convenient interface for specifying where to click relative to
+the center of a pattern. This is known as the <em>target offset</em>. The interface is
+shown below.</p>
+<a class="reference internal image-reference" href="../../_images/interface_offset.png"><img alt="../../_images/interface_offset.png" src="../../_images/interface_offset.png" style="width: 500px;" /></a>
+<p>In this interface, we can click on the checkbox to indicate the desired location of
+the click point. In this example, the offset is then determined to be -137 in x,
+which means 137 pixels to the left of the center of the text label. After selecting
+the offset, the thumbnail in the script editor will be updated with a small red
+cross to indicate the new click point.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>t = r.<span class="skw">find</span>(<img src="label_offset.png"/>)
+<span class='lineno'>2</span><span class="skw">click</span>(t)
+</pre>
+<p>Then, the call <tt class="docutils literal"><span class="pre">click(t)</span></tt> will do the right thing, clicking on the checkbox
+instead of the center of the text label.</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../sliders/sliders.html" title="Working with Sliders"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../uncheckall/uncheckall.html" title="Uncheck All Checkboxes"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/checkone/label.png b/Docs/Python/build/html/tutorials/checkone/label.png
new file mode 100644
index 0000000..817aac5
Binary files /dev/null and b/Docs/Python/build/html/tutorials/checkone/label.png differ
diff --git a/Docs/Python/build/html/tutorials/checkone/label_offset.png b/Docs/Python/build/html/tutorials/checkone/label_offset.png
new file mode 100644
index 0000000..ea8ce8e
Binary files /dev/null and b/Docs/Python/build/html/tutorials/checkone/label_offset.png differ
diff --git a/Docs/Python/build/html/tutorials/checkone/title.png b/Docs/Python/build/html/tutorials/checkone/title.png
new file mode 100644
index 0000000..a2d251f
Binary files /dev/null and b/Docs/Python/build/html/tutorials/checkone/title.png differ
diff --git a/Docs/Python/build/html/tutorials/goodbyetrash/goodbyetrash.html b/Docs/Python/build/html/tutorials/goodbyetrash/goodbyetrash.html
new file mode 100644
index 0000000..765842e
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/goodbyetrash/goodbyetrash.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Goodbye Trash (Mac) — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Uncheck All Checkboxes" href="../uncheckall/uncheckall.html" />
+ <link rel="prev" title="Hello World (Windows)" href="../helloworld/helloworld-win.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../uncheckall/uncheckall.html" title="Uncheck All Checkboxes"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../helloworld/helloworld-win.html" title="Hello World (Windows)"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../helloworld/helloworld-win.html"
+ title="previous chapter">Hello World (Windows)</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../uncheckall/uncheckall.html"
+ title="next chapter">Uncheck All Checkboxes</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/goodbyetrash/goodbyetrash.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="goodbye-trash-mac">
+<h1>Goodbye Trash (Mac)<a class="headerlink" href="#goodbye-trash-mac" title="Permalink to this headline">¶</a></h1>
+<p>In this tutorial, we will write a Sikuli Script to automate the operation of
+clearing the content of the trash bin. On Mac OS X, this operation takes three
+steps:</p>
+<ol class="arabic simple">
+<li>Click on the Trash icon in the dock</li>
+<li>Click on the Empty button in the container window</li>
+<li>Click on the Empty Trash button to confirm</li>
+</ol>
+<p>To automate this operation, first we need to capture the images of the GUI elements
+that need to be clicked.</p>
+<img alt="../../_images/trash_capture1.png" src="../../_images/trash_capture1.png" />
+<img alt="../../_images/trash_capture2.png" src="../../_images/trash_capture2.png" />
+<img alt="../../_images/trash_capture3.png" src="../../_images/trash_capture3.png" />
+<p>These captured images will be inserted into the Script editor.</p>
+<img alt="../../_images/trash_editor.png" src="../../_images/trash_editor.png" />
+<p>Then, we can write a sequence of three <a class="reference internal" href="../../region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">click()</span></tt></a> statements
+to click on the three elements that need to be clicked in order.</p>
+<img alt="../../_images/trash_code.png" src="../../_images/trash_code.png" />
+<p>Notice how closely these three lines of code are mapped to the text description of
+the three-step operation earlier. We simply replace the description of each GUI
+element (e.g., Trash bin) by its image directly. How intuitive it is!</p>
+<p>Before running the script, make sure the Trash icon is visible on the screen,
+otherwise Sikuli Script can not find it.</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../uncheckall/uncheckall.html" title="Uncheck All Checkboxes"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../helloworld/helloworld-win.html" title="Hello World (Windows)"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/helloworld/helloworld-mac.html b/Docs/Python/build/html/tutorials/helloworld/helloworld-mac.html
new file mode 100644
index 0000000..ae9b251
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/helloworld/helloworld-mac.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Hello World (Mac) — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Hello World (Windows)" href="helloworld-win.html" />
+ <link rel="prev" title="Tutorials" href="../index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="helloworld-win.html" title="Hello World (Windows)"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../index.html" title="Tutorials"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../index.html"
+ title="previous chapter">Tutorials</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="helloworld-win.html"
+ title="next chapter">Hello World (Windows)</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/helloworld/helloworld-mac.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="hello-world-mac">
+<h1>Hello World (Mac)<a class="headerlink" href="#hello-world-mac" title="Permalink to this headline">¶</a></h1>
+<p>Let us begin with a customary Hello World example!</p>
+<p>You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:</p>
+<ol class="arabic simple">
+<li>Click on that element</li>
+<li>Type a string in that element</li>
+</ol>
+<p>The goal of the Hello World script is to automatically type “Hello World” into the
+spotlight search box, like this:</p>
+<img alt="../../_images/spotlight-goal.png" src="../../_images/spotlight-goal.png" />
+<p>Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+Spotlight symbol in the upper-right corner, so that we can tell Sikuli Script what
+to look for and click on.</p>
+<p>To simulate a mouse click on the Spotlight symbol, we are going to use the
+<a class="reference internal" href="../../region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">click</span></tt></a> function. To tell Sikuli how the target looks like,
+we need to capture the target’s image on the screen.</p>
+<p>Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.</p>
+<img alt="../../_images/toolbar_camera.png" src="../../_images/toolbar_camera.png" />
+<p>The second method is to press a hot-key (Command + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE’s window. You can
+minimize the IDE’s window and use this hot-key to switch to the capturing mode.</p>
+<p>In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the spotlight
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.</p>
+<img alt="../../_images/spotlight-capture.png" src="../../_images/spotlight-capture.png" />
+<p>After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.</p>
+<img alt="../../_images/spotlight-inserted.png" src="../../_images/spotlight-inserted.png" />
+<p>Now, you can write the click function using this image as an argument to tell Sikuli
+to click on spotlight symbol.</p>
+<img alt="../../_images/spotlight-click.png" src="../../_images/spotlight-click.png" />
+<p>As a convenience, Sikuli IDE provides a <em>Command List</em> on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.</p>
+<img alt="../../_images/IDE-commandlist.png" src="../../_images/IDE-commandlist.png" />
+<p>Locate the click() function in the list and click on it. If <strong>Auto Capture</strong> is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.</p>
+<p>The next step is to tell Sikuli to enter the string “Hello World” into spotlight’s
+search box, which can be done with a simple <a class="reference internal" href="../../region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type</span></tt></a> function.</p>
+<img alt="../../_images/spotlight-type.png" src="../../_images/spotlight-type.png" />
+<p>This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the spotlight symbol, we can expect
+the spotlight search box will be the input that has the focus.</p>
+<p>Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="helloworld-win.html" title="Hello World (Windows)"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../index.html" title="Tutorials"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/helloworld/helloworld-win.html b/Docs/Python/build/html/tutorials/helloworld/helloworld-win.html
new file mode 100644
index 0000000..822d138
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/helloworld/helloworld-win.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Hello World (Windows) — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Goodbye Trash (Mac)" href="../goodbyetrash/goodbyetrash.html" />
+ <link rel="prev" title="Hello World (Mac)" href="helloworld-mac.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../goodbyetrash/goodbyetrash.html" title="Goodbye Trash (Mac)"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="helloworld-mac.html" title="Hello World (Mac)"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="helloworld-mac.html"
+ title="previous chapter">Hello World (Mac)</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../goodbyetrash/goodbyetrash.html"
+ title="next chapter">Goodbye Trash (Mac)</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/helloworld/helloworld-win.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="hello-world-windows">
+<h1>Hello World (Windows)<a class="headerlink" href="#hello-world-windows" title="Permalink to this headline">¶</a></h1>
+<p>Let us begin with a customary Hello World example!</p>
+<p>You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:</p>
+<ol class="arabic simple">
+<li>Click on that element</li>
+<li>Type a string in that element</li>
+</ol>
+<p>The goal of the Hello World script is to automatically type “Hello World” into the
+<em>Start</em> menu search box, like this:</p>
+<img alt="../../_images/start-goal.png" src="../../_images/start-goal.png" />
+<p>Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+<em>Start</em> menu symbol that is usually located in the lower-left corner of the desktop.
+Using this screenshot, we can tell Sikuli script what to click on.</p>
+<p>To simulate a mouse click on the <em>Start</em> symbol, we are going to use the
+<a class="reference internal" href="../../region.html#Region.click" title="Region.click"><tt class="xref py py-meth docutils literal"><span class="pre">click</span></tt></a> function. To tell Sikuli how the <em>Start</em> symbol look
+like, we need to capture its image on teh screen.</p>
+<p>Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.</p>
+<img alt="../../_images/toolbar_camera.png" src="../../_images/toolbar_camera.png" />
+<p>The second method is to press a hot-key (Ctrl + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE’s window. You can
+minimize the IDE’s window and use this hot-key to switch to the capturing mode.</p>
+<p>In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the <em>Start</em>
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.</p>
+<img alt="../../_images/start-capture.png" src="../../_images/start-capture.png" />
+<p>After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.</p>
+<img alt="../../_images/start-inserted.png" src="../../_images/start-inserted.png" />
+<p>Now, you can write the click function using this image as an argument to tell Sikuli
+to click on start symbol.</p>
+<img alt="../../_images/start-click.png" src="../../_images/start-click.png" />
+<p>As a convenience, Sikuli IDE provides a <em>Command List</em> on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.</p>
+<img alt="../../_images/IDE-commandlist.png" src="../../_images/IDE-commandlist.png" />
+<p>Locate the click() function in the list and click on it. If <strong>Auto Capture</strong> is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.</p>
+<p>The next step is to tell Sikuli to enter the string “Hello World” into search box,
+which can be done with a simple <a class="reference internal" href="../../region.html#Region.type" title="Region.type"><tt class="xref py py-meth docutils literal"><span class="pre">type</span></tt></a> function.</p>
+<img alt="../../_images/start-type.png" src="../../_images/start-type.png" />
+<p>This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the <em>Start</em> symbol, we can expect
+the search box will be the input that has the focus.</p>
+<p>Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../goodbyetrash/goodbyetrash.html" title="Goodbye Trash (Mac)"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="helloworld-mac.html" title="Hello World (Mac)"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/index.html b/Docs/Python/build/html/tutorials/index.html
new file mode 100644
index 0000000..44492b6
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Tutorials — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../index.html" />
+ <link rel="next" title="Hello World (Mac)" href="helloworld/helloworld-mac.html" />
+ <link rel="prev" title="Sikuli Documentation for version 1.1+ (01/2014 and later)" href="../index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="helloworld/helloworld-mac.html" title="Hello World (Mac)"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../index.html" title="Sikuli Documentation for version 1.1+ (01/2014 and later)"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../index.html">
+ <img class="logo" src="../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../index.html"
+ title="previous chapter">Sikuli Documentation for version 1.1+ (01/2014 and later)</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="helloworld/helloworld-mac.html"
+ title="next chapter">Hello World (Mac)</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../_sources/tutorials/index.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="tutorials">
+<h1>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="helloworld/helloworld-mac.html">Hello World (Mac)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="helloworld/helloworld-win.html">Hello World (Windows)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="goodbyetrash/goodbyetrash.html">Goodbye Trash (Mac)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="uncheckall/uncheckall.html">Uncheck All Checkboxes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="checkone/checkone.html">Check the Right Checkbox</a></li>
+<li class="toctree-l1"><a class="reference internal" href="sliders/sliders.html">Working with Sliders</a></li>
+<li class="toctree-l1"><a class="reference internal" href="surveillance/surveillance.html">Desktop Surveillance</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="surveillance/surveillance.html#facebook-app">Facebook App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="surveillance/surveillance.html#skype-app">Skype App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="surveillance/surveillance.html#bus-arrival-notifier">Bus Arrival Notifier</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="resize/resize.html">Resizing a Window</a></li>
+</ul>
+</div>
+<ul class="simple">
+<li>Slide: <a class="reference external" href="http://www.slideshare.net/vgod/practical-sikuli-using-screenshots-for-gui-automation-and-testing">Practical Sikuli: using screenshots for GUI automation and testing</a>.</li>
+</ul>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="helloworld/helloworld-mac.html" title="Hello World (Mac)"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../index.html" title="Sikuli Documentation for version 1.1+ (01/2014 and later)"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../index.html">SikuliX 1.1+</a> »</li>
+
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/resize/SafariBR.png b/Docs/Python/build/html/tutorials/resize/SafariBR.png
new file mode 100644
index 0000000..2ee9e5a
Binary files /dev/null and b/Docs/Python/build/html/tutorials/resize/SafariBR.png differ
diff --git a/Docs/Python/build/html/tutorials/resize/SafariTL.png b/Docs/Python/build/html/tutorials/resize/SafariTL.png
new file mode 100644
index 0000000..ab65bb4
Binary files /dev/null and b/Docs/Python/build/html/tutorials/resize/SafariTL.png differ
diff --git a/Docs/Python/build/html/tutorials/resize/SafariTR.png b/Docs/Python/build/html/tutorials/resize/SafariTR.png
new file mode 100644
index 0000000..a0ccdc1
Binary files /dev/null and b/Docs/Python/build/html/tutorials/resize/SafariTR.png differ
diff --git a/Docs/Python/build/html/tutorials/resize/resize.html b/Docs/Python/build/html/tutorials/resize/resize.html
new file mode 100644
index 0000000..7c17773
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/resize/resize.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Resizing a Window — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Can I do X or Y or Z in Sikuli?" href="../../faq/000-can-i-do-xxx.html" />
+ <link rel="prev" title="Desktop Surveillance" href="../surveillance/surveillance.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../faq/000-can-i-do-xxx.html" title="Can I do X or Y or Z in Sikuli?"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../surveillance/surveillance.html" title="Desktop Surveillance"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../surveillance/surveillance.html"
+ title="previous chapter">Desktop Surveillance</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../../faq/000-can-i-do-xxx.html"
+ title="next chapter">Can I do X or Y or Z in Sikuli?</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/resize/resize.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="resizing-a-window">
+<h1>Resizing a Window<a class="headerlink" href="#resizing-a-window" title="Permalink to this headline">¶</a></h1>
+<p>This tutorial demonstrates how to use Sikuli script to resize a window by dragging
+its bottom-right corner. In order to do so, you have to evaluate the current
+position of this corner on the screen, move the mouse pointer to the applicable
+click point and then perform one or more drag actions.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">def</span> resizeApp(app, dx, dy):
+<span class='lineno'>2</span> switchApp(app)
+<span class='lineno'>3</span> corner = <span class="skw">find</span>(Pattern(<img src="SafariBR.png"/>).targetOffset(<span class="dig">3</span>,<span class="dig">14</span>))
+<span class='lineno'>4</span>
+<span class='lineno'>5</span> drop_point = corner.getTarget().offset(dx, dy)
+<span class='lineno'>6</span> <span class="skw">dragDrop</span>(corner, drop_point)
+<span class='lineno'>7</span>
+<span class='lineno'>8</span>resizeApp(<span class="str">"Safari"</span>, <span class="dig">50</span>, <span class="dig">50</span>)
+</pre>
+<p>This example defines a function “resizeApp” to enlarge a window on a Mac, and then call
+the function to enlarge the size of Safari by 50x50 pixels. There are several approaches to do this task. The simplest one is directly looking
+for the corner and drag it to enlarge the window.</p>
+<p>In addition to this simplest approach, we also want to show you more possible ways
+to do the same thing. The following example demonstrates how to use the <a class="reference internal" href="../../region.html#extendingaregion"><em>spatial
+operators</em></a> to extend or restrict your searching regions.</p>
+<p>The approach to find this corner is to first identify the most characteristic corner
+of the window (mostly the one with the window buttons) and then try to find the
+other relevant corners, to be sure you get the click point you need. The strategy is
+illustrated below. We want to find the top-right corner, then go to the right to
+find the top-right corner, then go below to find the bottom-right corner.</p>
+<img alt="../../_images/Safari_spatial.png" src="../../_images/Safari_spatial.png" />
+<p>The script that implements this plan can be written as below:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="cmt">#setShowActions(True) # debug</span>
+<span class='lineno'>2</span>switchApp(<span class="str">"Safari"</span>) <span class="cmt"># get the frontmost Safari window active</span>
+<span class='lineno'>3</span>
+<span class='lineno'>4</span>(clickOffsetX, clickOffsetY) = (<span class="dig">3</span>, <span class="dig">18</span>) <span class="cmt"># evaluated using the preview in IDE</span>
+<span class='lineno'>5</span>mTL = <span class="skw">find</span>(<img src="SafariTL.png"/>) <span class="cmt"># find top left</span>
+<span class='lineno'>6</span><span class="cmt">#print mTL; hover(mTL) # debug</span>
+<span class='lineno'>7</span>
+<span class='lineno'>8</span>mTR = mTL.nearby(<span class="dig">200</span>).right().<span class="skw">find</span>(<img src="SafariTR.png"/>) <span class="cmt"># find top right</span>
+<span class='lineno'>9</span>
+<span class='lineno'>10</span><span class="cmt">#print mTR; hover(mTR) # debug</span>
+<span class='lineno'>11</span>mBR = mTR.below().<span class="skw">find</span>(<img src="SafariBR.png"/>) <span class="cmt"># find bottom right, the target corner</span>
+<span class='lineno'>12</span><span class="cmt">#print mBR # debug</span>
+<span class='lineno'>13</span>
+<span class='lineno'>14</span><span class="cmt"># move mouse to click point</span>
+<span class='lineno'>15</span>hover(mBR.getCenter().offset(clickOffsetX, clickOffsetY))
+<span class='lineno'>16</span><span class="cmt">#exit() # debug</span>
+<span class='lineno'>17</span>
+<span class='lineno'>18</span>mouseDown(Button.LEFT) <span class="cmt"># press and hold left button</span>
+<span class='lineno'>19</span><span class="cmt"># move mouse to a new location, may be repeated with other values</span>
+<span class='lineno'>20</span>mouseMove(Env.getMouseLocation().offset(<span class="dig">10</span>, <span class="dig">10</span>))
+<span class='lineno'>21</span>mouseUp() <span class="cmt"># release mouse button</span>
+</pre>
+<p>The workflow and the mouse-move to the click point can be compressed to a one-liner (no
+check on the title in this case).</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>hover(<span class="skw">find</span>(<img src="SafariTL.png"/>).nearby(<span class="dig">200</span>).right().<span class="skw">find</span>(<img src="SafariTR.png"/>).below().<span class="skw">find</span>(<img src="SafariBR.png"/>).getCenter().offset(<span class="dig">3</span>,<span class="dig">18</span>))
+</pre>
+<p>General comments:</p>
+<ul class="simple">
+<li>whenever possible the find operations are restricted to a region, that should
+contain the relevant match, to minimize the risk, that something else is
+found. On top this speeds it up.</li>
+<li>this example could easily be turned into a helper function, where all
+images and variables can be given as parameters.</li>
+<li>the click point was evaluated in the IDE using the preview window, but
+then put in the code for flexibility and readability.</li>
+<li>the low level mouse functions are used, so you would be more
+flexible with continuous movements.</li>
+<li>the development approach was, to first get everything running
+to evaluate the relevant corner. In this phase, the comments
+having a “# debug” were all uncommented to have some feedback.
+Especially setShowActions() and exit() are very helpful.</li>
+</ul>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../../faq/000-can-i-do-xxx.html" title="Can I do X or Y or Z in Sikuli?"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../surveillance/surveillance.html" title="Desktop Surveillance"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/sliders/alert.png b/Docs/Python/build/html/tutorials/sliders/alert.png
new file mode 100644
index 0000000..3c7cdce
Binary files /dev/null and b/Docs/Python/build/html/tutorials/sliders/alert.png differ
diff --git a/Docs/Python/build/html/tutorials/sliders/sliders.html b/Docs/Python/build/html/tutorials/sliders/sliders.html
new file mode 100644
index 0000000..b0dbd1f
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/sliders/sliders.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Working with Sliders — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Desktop Surveillance" href="../surveillance/surveillance.html" />
+ <link rel="prev" title="Check the Right Checkbox" href="../checkone/checkone.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../surveillance/surveillance.html" title="Desktop Surveillance"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../checkone/checkone.html" title="Check the Right Checkbox"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../checkone/checkone.html"
+ title="previous chapter">Check the Right Checkbox</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../surveillance/surveillance.html"
+ title="next chapter">Desktop Surveillance</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/sliders/sliders.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="working-with-sliders">
+<h1>Working with Sliders<a class="headerlink" href="#working-with-sliders" title="Permalink to this headline">¶</a></h1>
+<p>In this tutorial, we will learn how to use <a class="reference internal" href="../../region.html#Region.dragDrop" title="Region.dragDrop"><tt class="xref py py-meth docutils literal"><span class="pre">dragDrop()</span></tt></a>
+and <a class="reference internal" href="../../region.html#extendingaregion"><em>spatial operators</em></a> by writing a number of scripts to
+manipulate sliders.</p>
+<p>Suppose we wish to lower the speaking rate of the Text to Speech function. We want
+to drag the slider to the slow side in the Speech preferences window shown below.</p>
+<img alt="../../_images/speech.png" src="../../_images/speech.png" />
+<p>The function that can perform the dragging is <a class="reference internal" href="../../region.html#Region.dragDrop" title="Region.dragDrop"><tt class="xref py py-meth docutils literal"><span class="pre">dragDrop()</span></tt></a>. This function takes two images as arguments. The first image
+describes the source GUI object to drag and the second image describes the
+appearance of the destination location where the GUI object should be dragged to and
+dropped.</p>
+<p>Let us capture the source and destination images respectively.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">dragDrop</span>(<img src="thumb.png"/>, <img src="slow.png"/>)
+</pre>
+<p>What happen if there are more than two sliders. How can we make sure the right
+slider is dragged? The above example works because the particular window only has
+one slider. How can we deal with cases when there are several instances of similar
+looking GUI components? Let us consider the Sound preferences window shown below.</p>
+<img alt="../../_images/sound.png" src="../../_images/sound.png" />
+<p>Suppose we wish to lower the Alert volume. To make sure Sikuli Script drags the
+right slider, we need a way to tell Sikuli Script to look for the one that is to the
+right of the Alert volume label, not the one next to the Output volume label. Sikuli
+Script provides a set of spatial operators to do exactly this. Here we will apply
+the <a class="reference internal" href="../../region.html#Region.right" title="Region.right"><tt class="xref py py-meth docutils literal"><span class="pre">right()</span></tt></a> operator as follows.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>t = <span class="skw">find</span>(<img src="alert.png"/>).right().<span class="skw">find</span>(<img src="thumb.png"/>)
+</pre>
+<p>This statement tells Sikuli Script to first find the Alert volume label and then
+find the slider thumb only within the region strictly to the right of the result of
+the first find. The slider thumb found is then stored in the variable t. Now that we
+have identified the desired slider thumb, we can call <a class="reference internal" href="../../region.html#Region.dragDrop" title="Region.dragDrop"><tt class="xref py py-meth docutils literal"><span class="pre">dragDrop()</span></tt></a> to drag it to the left by giving the image of the Alter volume as
+the target.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">dragDrop</span>(t, <img src="alert.png"/>)
+</pre>
+<p>In the above example, we use the image of the Alert volume label to implicitly guide
+the direction of dragging to the left. It is also possible to use relative
+coordinates to explicitly drag to the left, as shown below.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">dragDrop</span>(t, [t.x - <span class="dig">200</span>, t.y])
+</pre>
+<p>Here, the (x,y) coordinates of the slider thumb are accessible as the attributes of
+t. We can thus calculate the position 200 pixels to the left of t and ask Sikuli
+Script to drag the thumb to that position.</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../surveillance/surveillance.html" title="Desktop Surveillance"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../checkone/checkone.html" title="Check the Right Checkbox"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/sliders/slow.png b/Docs/Python/build/html/tutorials/sliders/slow.png
new file mode 100644
index 0000000..55b9c70
Binary files /dev/null and b/Docs/Python/build/html/tutorials/sliders/slow.png differ
diff --git a/Docs/Python/build/html/tutorials/sliders/thumb.png b/Docs/Python/build/html/tutorials/sliders/thumb.png
new file mode 100644
index 0000000..caf420f
Binary files /dev/null and b/Docs/Python/build/html/tutorials/sliders/thumb.png differ
diff --git a/Docs/Python/build/html/tutorials/surveillance/bus.png b/Docs/Python/build/html/tutorials/surveillance/bus.png
new file mode 100644
index 0000000..09cec89
Binary files /dev/null and b/Docs/Python/build/html/tutorials/surveillance/bus.png differ
diff --git a/Docs/Python/build/html/tutorials/surveillance/obama.png b/Docs/Python/build/html/tutorials/surveillance/obama.png
new file mode 100644
index 0000000..73832f8
Binary files /dev/null and b/Docs/Python/build/html/tutorials/surveillance/obama.png differ
diff --git a/Docs/Python/build/html/tutorials/surveillance/region.png b/Docs/Python/build/html/tutorials/surveillance/region.png
new file mode 100644
index 0000000..5976e63
Binary files /dev/null and b/Docs/Python/build/html/tutorials/surveillance/region.png differ
diff --git a/Docs/Python/build/html/tutorials/surveillance/surveillance.html b/Docs/Python/build/html/tutorials/surveillance/surveillance.html
new file mode 100644
index 0000000..bdc1171
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/surveillance/surveillance.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Desktop Surveillance — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Resizing a Window" href="../resize/resize.html" />
+ <link rel="prev" title="Working with Sliders" href="../sliders/sliders.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../resize/resize.html" title="Resizing a Window"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../sliders/sliders.html" title="Working with Sliders"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h3><a href="../../index.html">Table Of Contents</a></h3>
+ <ul>
+<li><a class="reference internal" href="#">Desktop Surveillance</a><ul>
+<li><a class="reference internal" href="#facebook-app">Facebook App</a></li>
+<li><a class="reference internal" href="#skype-app">Skype App</a></li>
+<li><a class="reference internal" href="#bus-arrival-notifier">Bus Arrival Notifier</a></li>
+</ul>
+</li>
+</ul>
+
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../sliders/sliders.html"
+ title="previous chapter">Working with Sliders</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../resize/resize.html"
+ title="next chapter">Resizing a Window</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/surveillance/surveillance.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="desktop-surveillance">
+<h1>Desktop Surveillance<a class="headerlink" href="#desktop-surveillance" title="Permalink to this headline">¶</a></h1>
+<p>Sikuli Script can be used to perform <strong>desktop surveillance</strong>. In this tutorial, we will
+go through a number of exercises to create scripts that can monitor the screen and
+notify us when certain interesting visual event happens.</p>
+<div class="section" id="facebook-app">
+<h2>Facebook App<a class="headerlink" href="#facebook-app" title="Permalink to this headline">¶</a></h2>
+<p>The first exercise is to create a Facebook app to periodically check our Facebook
+homepage visually and see if a particular friend has recently updated the status
+message. One easy way to detect this event is to look for the friend’s face image on
+our Facebook homepage. If found, the friend must have posted a new status message.
+If not found, we should check back again in a few moments.</p>
+<p>Let’s implement this operation using a <tt class="docutils literal"><span class="pre">while:</span></tt> loop. First we need to capture a
+screenshot of the friend’s face image.</p>
+<img alt="../../_images/facebook_capture.png" src="../../_images/facebook_capture.png" />
+<p>To check if the friend’s face can be seen on the screen, we use <a class="reference internal" href="../../region.html#Region.exists" title="Region.exists"><tt class="xref py py-meth docutils literal"><span class="pre">exists()</span></tt></a>,
+which returns True when the face image is found. We set the looping condition to Not
+Found so that the while loop will terminate only when the face image is found. We
+add a <tt class="xref py py-func docutils literal"><span class="pre">sleep(n)</span></tt> statement in the body of the loop to introduce a 5
+second interval between attempts to look for the face image on the screen.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">while</span> <span class="kw">not</span> exists(<img src="obama.png"/>):
+<span class='lineno'>2</span> <span class="skw">sleep</span>(<span class="dig">5</span>)
+</pre>
+<p>Alternatively, Sikuli provides a convenient <a class="reference internal" href="../../region.html#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">wait()</span></tt></a> function
+that periodically checks the screen to wait for a given image pattern to appear.
+Using wait(), the above code can be rewritten as:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">wait</span>(<img src="obama.png"/>, FOREVER)
+</pre>
+<p>The constant <em>FOREVER</em> means we want Sikuli to wait indefinitely. If we do not want
+to wait forever, we can replace <em>FOREVER</em> with a number to indicate the number of
+seconds to wait until Sikuli should giveup.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">wait</span>(<img src="obama.png"/>, <span class="dig">3600</span>) <span class="cmt"># wait for an hour</span>
+</pre>
+<p>After the while loop exits or the wait function returns, we can call
+<a class="reference internal" href="../../globals.html#popup" title="popup"><tt class="xref py py-func docutils literal"><span class="pre">popup()</span></tt></a> to display a notification message.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="skw">popup</span>(<span class="str">"Obama has updated his message"</span>)
+</pre>
+<p>This will display a popup message that looks like below:</p>
+<img alt="../../_images/facebook_popupmsg.png" src="../../_images/facebook_popupmsg.png" />
+<p>Now we can run this Sikuli Facebook App, sit back and relax, and get notified when
+our friend updates his message.</p>
+</div>
+<div class="section" id="skype-app">
+<h2>Skype App<a class="headerlink" href="#skype-app" title="Permalink to this headline">¶</a></h2>
+<p>In the previous exercise, we wrote a script to detect an image’s appearance. In this
+exercise, we will do the opposite — <em>detecting the disappearance of a visual
+pattern</em>.</p>
+<p>Skype is a great tool that allows us to stay in close contact with our friends even
+if they are in remote parts of the world. However, there might be some unfortunate
+circumstances we may want to avoid being seen online by a certain individual.
+Perhaps the individual talks too much. Perhaps we owe the individual some money. It
+would be nice to know when the individual is offline so that it is safe to get
+online. While Skype does provide a feature to notify us when an individual is
+online, there is no notification feature when the opposite happens.</p>
+<p>An automatic logoff notifier would be desirable to deal with this situation. Let us
+build this tool using Sikuli Script. Notice that if an individual is no longer
+online, the combined visual pattern of the green status icon and the individual’s
+screen name will disappear. Thus, we can take a screenshot that includes both the
+green icon and the screen name as follows.</p>
+<img alt="../../_images/skype_capture.png" src="../../_images/skype_capture.png" />
+<p>Then, we can write a Sikuli Script to watch for the disappearance of the screenshot
+image we just captured.</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">while</span> exists(<img src="vgod.png"/>):
+<span class='lineno'>2</span> <span class="skw">sleep</span>(<span class="dig">5</span>)
+<span class='lineno'>3</span>
+<span class='lineno'>4</span><span class="skw">popup</span>(<span class="str">"vgod just logged off"</span>)
+</pre>
+<p>This script is very similar to the one in the previous exercise. The only difference
+is the removal of the NOT operator from the condition statement for the while loop,
+since we are trying to do the opposite.</p>
+<p>Another way to wait for the disappearance of an image is to use the
+<a class="reference internal" href="../../region.html#Region.waitVanish" title="Region.waitVanish"><tt class="xref py py-meth docutils literal"><span class="pre">waitVanish()</span></tt></a> function. The above script can be
+rewritten as follows:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span>waitVanish(<img src="vgod.png"/>, FOREVER)
+<span class='lineno'>2</span><span class="skw">popup</span>(<span class="str">"vgod just logged off"</span>)
+</pre>
+</div>
+<div class="section" id="bus-arrival-notifier">
+<h2>Bus Arrival Notifier<a class="headerlink" href="#bus-arrival-notifier" title="Permalink to this headline">¶</a></h2>
+<p>The third exercise is to build a bus arrival notification tool. For many bus riders,
+online GPS-based tracking services are very useful. Instead of patiently standing
+outside at a bust stop, braving the freezing wind in the winter or scorching sun in
+the summer, riders can sit comfortably inside in front of their computers, checking
+emails, updating Facebook status, or watching YouTube? videos, or what have you.
+They only need to look at the map every few moments to check the location of the bus
+symbol on the map. Only when the bus is close enough do they have to finally get out
+and walk to the bus top.</p>
+<p>Since we care about whether the bus is getting close to the stop, we only need to
+look at the neighborhood around the stop. Thus, we can resize the browser to show
+just that portion of the map, while leaving a lot of screen space to do something
+else, in this case, reading CNN news.</p>
+<img alt="../../_images/bus_fullscreen.png" src="../../_images/bus_fullscreen.png" />
+<p>Let us write a Sikuli Script to do the bus tracking for us. It is possible to define
+a region and ask Sikuli Script to focus only on that region to search for a
+particular visual pattern. This way, Sikuli don’t have to waste precious computing
+cycles scanning the whole screen. To do so, let us click on the “select a region”
+button in the toolbar as indicated below.</p>
+<img alt="../../_images/bus_toolbar_region.png" src="../../_images/bus_toolbar_region.png" />
+<p>The entire screen will freeze and turn darker, similar to what happen in the screen
+capture mode. Simply draw a rectangle to cover the entire neighborhood map. The
+region covered by this rectangle is visually represented as a thumbnail image of the
+entire desktop where the region is shaded in red.</p>
+<img alt="../../_images/bus_region_thumbnail.png" src="../../_images/bus_region_thumbnail.png" />
+<p>Next, we capture the screenshot image of the bus symbol so that we can tell Sikuli
+Script to watch for its appearance.</p>
+<img alt="../../_images/bus_capture_bus_symbol.png" src="../../_images/bus_capture_bus_symbol.png" />
+<p>Now. we can write the following script to check the map and watch for the appearance
+of a bus symbol:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><span class="kw">while</span> <span class="kw">not</span> <img src="region.png"/>.inside().exists(<img src="bus.png"/>):
+<span class='lineno'>2</span> <span class="skw">sleep</span>(<span class="dig">5</span>)
+<span class='lineno'>3</span><span class="skw">popup</span>(<span class="str">"bus has arrived"</span>)
+</pre>
+<p>Interpreting the meaning of the while loop is straightforward—while it is not the
+case that a bus symbol can be found inside the region, sleep for 5 seconds. In other
+words, the while loop will exit only when the bus symbol is found inside the region.
+Then, the popup statement will be executed to notify us the bus has arrived.</p>
+<p>Again, the same effect can be achived using <a class="reference internal" href="../../region.html#Region.wait" title="Region.wait"><tt class="xref py py-meth docutils literal"><span class="pre">wait()</span></tt></a>. The
+script can be rewritten as:</p>
+
+<pre class="sikuli-code">
+<span class='lineno'>1</span><img src="region.png"/>.inside().<span class="skw">wait</span>(<img src="bus.png"/>,FOREVER)
+<span class='lineno'>2</span><span class="skw">popup</span>(<span class="str">"bus has arrived"</span>)
+</pre>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../resize/resize.html" title="Resizing a Window"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../sliders/sliders.html" title="Working with Sliders"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/tutorials/surveillance/vgod.png b/Docs/Python/build/html/tutorials/surveillance/vgod.png
new file mode 100644
index 0000000..b64a77f
Binary files /dev/null and b/Docs/Python/build/html/tutorials/surveillance/vgod.png differ
diff --git a/Docs/Python/build/html/tutorials/uncheckall/uncheckall.html b/Docs/Python/build/html/tutorials/uncheckall/uncheckall.html
new file mode 100644
index 0000000..c276724
--- /dev/null
+++ b/Docs/Python/build/html/tutorials/uncheckall/uncheckall.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Uncheck All Checkboxes — SikuliX 1.1+ documentation</title>
+
+ <link rel="stylesheet" href="../../_static/sikulidoc.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="SikuliX 1.1+ documentation" href="../../index.html" />
+ <link rel="up" title="Tutorials" href="../index.html" />
+ <link rel="next" title="Check the Right Checkbox" href="../checkone/checkone.html" />
+ <link rel="prev" title="Goodbye Trash (Mac)" href="../goodbyetrash/goodbyetrash.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../checkone/checkone.html" title="Check the Right Checkbox"
+ accesskey="N">next</a> |</li>
+ <li class="right" >
+ <a href="../goodbyetrash/goodbyetrash.html" title="Goodbye Trash (Mac)"
+ accesskey="P">previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" accesskey="U">Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+ <p class="logo"><a href="../../index.html">
+ <img class="logo" src="../../_static/ide-icon-64.png" alt="Logo"/>
+ </a></p>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="../goodbyetrash/goodbyetrash.html"
+ title="previous chapter">Goodbye Trash (Mac)</a></p>
+ <h4>Next topic</h4>
+ <p class="topless"><a href="../checkone/checkone.html"
+ title="next chapter">Check the Right Checkbox</a></p>
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="../../_sources/tutorials/uncheckall/uncheckall.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <div class="section" id="uncheck-all-checkboxes">
+<h1>Uncheck All Checkboxes<a class="headerlink" href="#uncheck-all-checkboxes" title="Permalink to this headline">¶</a></h1>
+<p>In this tutorial, we will demonstrate how to use a <tt class="docutils literal"><span class="pre">for</span></tt> loop to interact with
+multiple instances of a GUI component. Suppose we want to uncheck all the check
+boxes in a window, such as the Sharing preferences window shown below:</p>
+<img alt="../../_images/uncheck_sharing.png" src="../../_images/uncheck_sharing.png" />
+<p>Unfortunately, there is no “uncheck all” function available. The solution? Write a
+Sikuli Script to look for ALL the checked items and uncheck them automatically. The
+function needed for this operation is <a class="reference internal" href="../../region.html#Region.findAll" title="Region.findAll"><tt class="xref py py-meth docutils literal"><span class="pre">findAll()</span></tt></a>.</p>
+<p>First, let’s capture the screenshot image of a checked item.</p>
+<img alt="../../_images/uncheck_capturing.png" src="../../_images/uncheck_capturing.png" />
+<p>Then, we can insert the image into the <tt class="docutils literal"><span class="pre">findAll()</span></tt> function.</p>
+<img alt="../../_images/uncheck_findall.png" src="../../_images/uncheck_findall.png" />
+<p><tt class="docutils literal"><span class="pre">findAll()</span></tt> searches the entire screen for all the matching visual patterns and
+returns a list of locations of those similar patterns. This capability allows us to
+obtain all the checked items are on the screen. Then, we can simply write a for loop
+in standard Python syntax and call <tt class="docutils literal"><span class="pre">click()</span></tt> on each element in the list.</p>
+<img alt="../../_images/uncheck_code.png" src="../../_images/uncheck_code.png" />
+<p>When this script is executed, Sikuli will find all the items that are currently
+checked and click on each item one by one in the loop.</p>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="right" >
+ <a href="../checkone/checkone.html" title="Check the Right Checkbox"
+ >next</a> |</li>
+ <li class="right" >
+ <a href="../goodbyetrash/goodbyetrash.html" title="Goodbye Trash (Mac)"
+ >previous</a> |</li>
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+
+ <li><a href="../../index.html">SikuliX 1.1+</a> »</li>
+
+ <li><a href="../index.html" >Tutorials</a> »</li>
+ </ul>
+ </div>
+ <div class="footer">
+ © Copyright 2010, Sikuli Doc Team.
+ Last updated on Nov 28, 2013.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b3.
+ </div>
+ </body>
+</html>
\ No newline at end of file
diff --git a/Docs/Python/build/html/vistastart.png b/Docs/Python/build/html/vistastart.png
new file mode 100644
index 0000000..e0f12df
Binary files /dev/null and b/Docs/Python/build/html/vistastart.png differ
diff --git a/Docs/Python/build/html/w7start.png b/Docs/Python/build/html/w7start.png
new file mode 100644
index 0000000..b94303e
Binary files /dev/null and b/Docs/Python/build/html/w7start.png differ
diff --git a/Docs/Python/build/html/xpstart.png b/Docs/Python/build/html/xpstart.png
new file mode 100644
index 0000000..54bcc04
Binary files /dev/null and b/Docs/Python/build/html/xpstart.png differ
diff --git a/Docs/Python/make.bat b/Docs/Python/make.bat
new file mode 100644
index 0000000..3e7fa66
--- /dev/null
+++ b/Docs/Python/make.bat
@@ -0,0 +1,170 @@
+ at ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
+if NOT "%PAPER%" == "" (
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+ :help
+ echo.Please use `make ^<target^>` where ^<target^> is one of
+ echo. html to make standalone HTML files
+ echo. dirhtml to make HTML files named index.html in directories
+ echo. singlehtml to make a single large HTML file
+ echo. pickle to make pickle files
+ echo. json to make JSON files
+ echo. htmlhelp to make HTML files and a HTML help project
+ echo. qthelp to make HTML files and a qthelp project
+ echo. devhelp to make HTML files and a Devhelp project
+ echo. epub to make an epub
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+ echo. text to make text files
+ echo. man to make manual pages
+ echo. changes to make an overview over all changed/added/deprecated items
+ echo. linkcheck to check all external links for integrity
+ echo. doctest to run all doctests embedded in the documentation if enabled
+ goto end
+)
+
+if "%1" == "clean" (
+ for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+ del /q /s %BUILDDIR%\*
+ goto end
+)
+
+if "%1" == "html" (
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+ goto end
+)
+
+if "%1" == "dirhtml" (
+ %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+ goto end
+)
+
+if "%1" == "singlehtml" (
+ %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+ goto end
+)
+
+if "%1" == "pickle" (
+ %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the pickle files.
+ goto end
+)
+
+if "%1" == "json" (
+ %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the JSON files.
+ goto end
+)
+
+if "%1" == "htmlhelp" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+ goto end
+)
+
+if "%1" == "qthelp" (
+ %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Sikuli.qhcp
+ echo.To view the help file:
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Sikuli.ghc
+ goto end
+)
+
+if "%1" == "devhelp" (
+ %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished.
+ goto end
+)
+
+if "%1" == "epub" (
+ %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The epub file is in %BUILDDIR%/epub.
+ goto end
+)
+
+if "%1" == "latex" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+ goto end
+)
+
+if "%1" == "text" (
+ %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The text files are in %BUILDDIR%/text.
+ goto end
+)
+
+if "%1" == "man" (
+ %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The manual pages are in %BUILDDIR%/man.
+ goto end
+)
+
+if "%1" == "changes" (
+ %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.The overview file is in %BUILDDIR%/changes.
+ goto end
+)
+
+if "%1" == "linkcheck" (
+ %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+ goto end
+)
+
+if "%1" == "doctest" (
+ %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+ goto end
+)
+
+:end
diff --git a/Docs/Python/source/_templates/layout.html b/Docs/Python/source/_templates/layout.html
new file mode 100644
index 0000000..105c0b4
--- /dev/null
+++ b/Docs/Python/source/_templates/layout.html
@@ -0,0 +1,5 @@
+{% extends "!layout.html" %}
+{% block rootrellink %}
+ <li><a href="http://sikuli.org/"><b>PROJECT SIKULIX</b></a> | </li>
+ {{ super() }}
+{% endblock %}
diff --git a/Docs/Python/source/apple.png b/Docs/Python/source/apple.png
new file mode 100644
index 0000000..92b3111
Binary files /dev/null and b/Docs/Python/source/apple.png differ
diff --git a/Docs/Python/source/best-practice.rst b/Docs/Python/source/best-practice.rst
new file mode 100644
index 0000000..2baf32b
--- /dev/null
+++ b/Docs/Python/source/best-practice.rst
@@ -0,0 +1,7 @@
+Sikuli Best Practice
+==============================
+
+.. toctree::
+ :maxdepth: 2
+
+
diff --git a/Docs/Python/source/bug-tracker.png b/Docs/Python/source/bug-tracker.png
new file mode 100644
index 0000000..d16db0f
Binary files /dev/null and b/Docs/Python/source/bug-tracker.png differ
diff --git a/Docs/Python/source/changes.rst b/Docs/Python/source/changes.rst
new file mode 100644
index 0000000..e409817
--- /dev/null
+++ b/Docs/Python/source/changes.rst
@@ -0,0 +1,5 @@
+Changes in Sikuli
+=================
+
+X 1.1.0 (2014-01-31)
+----------------------
diff --git a/Docs/Python/source/conf.py b/Docs/Python/source/conf.py
new file mode 100644
index 0000000..d2b153d
--- /dev/null
+++ b/Docs/Python/source/conf.py
@@ -0,0 +1,218 @@
+# -*- coding: utf-8 -*-
+#
+# sikuli documentation build configuration file, created by
+# sphinx-quickstart on Thu Dec 23 11:32:37 2010.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sikulidirectives', 'platformdirective','youtube']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'SikuliX'
+copyright = u'2010, Sikuli Doc Team'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '1.1'
+# The full version, including alpha/beta/rc tags.
+release = '1.1.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#html_theme = 'default'
+#html_theme = 'sphinxdoc'
+html_theme = 'sikulidoc'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+html_theme_path = ['.']
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+html_title = project + " " + version + "+ documentation"
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+html_short_title = project + " " + version + "+"
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+html_logo = 'ide-icon-64.png'
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'sikulidoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'sikuli.tex', u'SIKULI Documentation',
+ u'Sikuli Doc Team', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'sikuli', u'SIKULI Documentation',
+ [u'Sikuli Doc Team'], 1)
+]
diff --git a/Docs/Python/source/contributing.rst b/Docs/Python/source/contributing.rst
new file mode 100644
index 0000000..30b715e
--- /dev/null
+++ b/Docs/Python/source/contributing.rst
@@ -0,0 +1,141 @@
+How to get involved
+===================
+
+Have fun working with Sikuli? You can do more than just being a user!
+There are many ways you can help Sikuli's development:
+
+* Blog or tweet about Sikuli. Share your cool Sikuli scripts to the world and
+ let more people know how cool Sikuli is.
+* Report bugs or request new features in our `bug tracker <https://bugs.launchpad.net/sikuli>`_.
+* Visit `the question board <https://answers.launchpad.net/sikuli>`_ and
+ `the bug tracker <https://bugs.launchpad.net/sikuli>`_ regularly and
+ answer people's questions there.
+ (You may want to `subscribe to the bug tracker <https://bugs.launchpad.net/sikuli/+subscribe>`_ or `subscribe to all questions <https://answers.launchpad.net/sikuli/+answer-contact>`_.)
+ Many people have questions that you may know how to deal with. Help them
+ to get through the obstacles and they may help you in the future.
+* :ref:`Submit patches <submit-patches>` to fix bugs or add features.
+* Join the `sikuli-dev mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-dev>`_ and share your ideas to us.
+* Translate Sikuli into your language and help more people who speak
+ different languages to access Sikuli. You can help us to
+
+ * translate Sikuli IDE's interface and messages, or
+
+ * translate Sikuli documentation (this site you are reading).
+
+ Read :ref:`translate-sikuli` for more details.
+
+
+
+.. _submit-patches:
+
+Submit Patches
+--------------
+
+If you are interested in making Sikuli better, submitting patches is a
+good start. We welcome any patches to Sikuli's code. If you've found
+a bug, submitting a bug report with associated patches will get it
+fixed more quickly than those without patches.
+
+Claim a bug
+^^^^^^^^^^^
+
+Here is a typical bug report status.
+
+.. image:: bug-tracker.png
+
+If you see a bug that you think you could fix, feel free to claim the bug.
+Simply click the pencil icon under the "Assigned to" column, and then click
+"Assign Me". Claiming a bug let other people and developers know that this
+bug is being worked on, and prevents duplicate work.
+
+
+Bug claimers' responsibility
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Once you've claimed a bug, you are responsible to work on that bug in
+reasonable time, say one or two weeks.
+If you don't have time to work on it, please unclaim it.
+
+If you’ve claimed a bug and it’s taking a long time to code,
+please keep everybody updated by posting comments on the bug.
+If you don’t update regularly, and you don’t respond to a request
+for a progress report, your claim on the bug may be revoked.
+
+Generate and Submit Patches
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+#. Branch the Sikuli source tree using :command:`bzr branch lp:sikuli`.
+
+#. Fix bugs or add new features.
+
+#. Generate your patches using :command:`bzr diff`, so we can
+ incorporate your patches into our code base esaily.
+
+#. Name the patch file with a :file:`.diff` extension.
+
+#. Click "Add attachment or patch" below the comment area, and attach your
+ patch file.
+
+#. If the patch adds a new feature, or modifies existing behavior, please
+ leave documentation in the comment area.
+
+If you want to contribute changes that involve hundred lines of code,
+Please `register a branch <https://code.launchpad.net/sikuli/+addbranch>`_ on Sikuli and then propose for merging once you have done all changes.
+
+
+.. _translate-sikuli:
+
+Internationalization and localization
+-------------------------------------
+
+We hope Sikuli can be access by anyone from anywhere in the world.
+You can help us to translate the user interface of Sikuli IDE or
+this documentation.
+
+Sikuli IDE Translation
+^^^^^^^^^^^^^^^^^^^^^^
+
+If you find an incorrect translation, or if you would like to add a language
+that isn’t yet translated, here’s what to do:
+
+* Join the `Sikuli i18n mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n>`_ and introduce yourself.
+* Claim what language and what (in this case, the Sikuli IDE) you
+ are going to work on.
+* Visit `our translations
+ page on launchpad <https://translations.launchpad.net/sikuli>`_ and
+ use launchpad's tool to translate the interface items.
+* If there are items you are not sure how to translate, please mark them as
+ "need review".
+* Once you've done the translations, send a mail to the Sikuli i18n mailing list
+ so we can incorporate your work into the Sikuli IDE.
+
+Documentation Translation
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This documentation is created using `Sphinx <http://sphinx.pocoo.org/>`_,
+and written in the
+`reStructuredText format <http://sphinx.pocoo.org/rest.html>`_.
+You can view how the source code looks like using the link "Show Source"
+in the side bar.
+
+To translate the documentation, you need to check out the source of the
+document using :command:`bzr branch lp:sikuli`.
+The documentation source is in the folder :file:`docs/`.
+Once you have the source, you can generate this HTML document using :command:`make html` under the :file:`docs/` directory.
+
+The translation for each language is in :file:`docs/i18n/<language>/source`.
+The :file:`source` directory for your language should mirror
+the main source directory :file:`docs/source`.
+
+If you find an incorrect translation in the documentation,
+or if you would like to add a language that isn’t yet translated,
+here’s what to do:
+
+* Join the `Sikuli i18n mailing list <https://lists.csail.mit.edu/mailman/listinfo/sikuli-i18n>`_ and introduce yourself.
+* Claim what language and which part of the documentation you are going to work on.
+* Once you've done the translations, generate a patch using :command:`bzr diff` and name the patch with a :file:`diff` extension.
+* Send a mail to the Sikuli i18n mailing list and attach the patch, so we know
+ what you've done and we can put your translations online.
+
+If you contribute translations very actively, we can give you the commit
+permission to our bzr source tree so you can submit translations by yourself.
diff --git a/Docs/Python/source/devs/SystemDesign.png b/Docs/Python/source/devs/SystemDesign.png
new file mode 100644
index 0000000..8f04009
Binary files /dev/null and b/Docs/Python/source/devs/SystemDesign.png differ
diff --git a/Docs/Python/source/devs/system-design.rst b/Docs/Python/source/devs/system-design.rst
new file mode 100644
index 0000000..e6efaf8
--- /dev/null
+++ b/Docs/Python/source/devs/system-design.rst
@@ -0,0 +1,19 @@
+How Sikuli Works
+=================
+.. image:: SystemDesign.png
+
+Sikuli Script
+-------------
+Sikuli Script is a Jython and Java library that automates GUI interaction using image patterns to direct keyboard/mouse events.
+The core of Sikuli Script is a Java library that consists of two parts: java.awt.Robot, which delivers keyboard and mouse events to appropriate locations, and a C++ engine based on OpenCV, which searches given image patterns on the screen. The C++ engine is connected to Java via JNI and needs to be compiled for each platform.
+On top of the Java library, a thin Jython layer is provided for end-users as a set of simple and clear commands. Therefore, it should be easy to add more thin layers for other languages running on JVM, e.g. JRuby, Scala, Javascript, etc.
+
+
+The Structure of a Sikuli source folder or zipped file (.sikuli, .skl)
+----------------------------------------------------------------------
+A Sikuli script (.sikuli) is a directory that contains a Python source file (.py) representing the automation workflow or the test cases and all the image files (.png) used by the source file. All images used in a Sikuli script are simply a path to the .png file in the .sikuli bundle. Therefore, the Python source file can also be edited by any text editor.
+
+While saving a script using Sikuli IDE, an extra HTML file may optionally be created in the .sikuli directory so that users can share a visual copy of the scripts on the web easily.
+
+A Sikuli zipped script (.skl) is simply a zipped file of all files in the .sikuli folder. It is intended for distribution via mail or web upload, can also be run from command line and reopened in the Sikuli IDE. (The previous naming as "Sikuli executable" is deprecated, since this is misleading: people most often thought, it is something like a self-contained and self-running package comparable to a Windows EXE, but it is not).
+
diff --git a/Docs/Python/source/extensions/extension-installed.png b/Docs/Python/source/extensions/extension-installed.png
new file mode 100644
index 0000000..52ca867
Binary files /dev/null and b/Docs/Python/source/extensions/extension-installed.png differ
diff --git a/Docs/Python/source/extensions/extension-new.png b/Docs/Python/source/extensions/extension-new.png
new file mode 100644
index 0000000..e8cc71f
Binary files /dev/null and b/Docs/Python/source/extensions/extension-new.png differ
diff --git a/Docs/Python/source/extensions/extensions_info.rst b/Docs/Python/source/extensions/extensions_info.rst
new file mode 100644
index 0000000..109f6f0
--- /dev/null
+++ b/Docs/Python/source/extensions/extensions_info.rst
@@ -0,0 +1,133 @@
+General Information About Sikuli Extensions
+===========================================
+
+.. _sikuliextensions:
+
+**This feature is currently under developement and might only be available on request.**
+
+Extensions allow to implement new Sikuli features by adding packages to your current Sikuli installation.
+
+They are maintained by the developers (see **Technical Details** below).
+
+If you want to contribute a new extension or a modified exisiting one, please look at **How to contribute an extension** below.
+
+How to Download and use an Extension
+------------------------------------
+
+The download of an extension is supported by the IDE through the menu
+:menuselection:`Tools -> Extensions`.
+You get a popup, that lists the available and already installed extensions and allows to download new packages or updates for installed ones.
+
+This popup shows a new **package not yet installed**:
+
+.. image:: extension-new.png
+
+If you need more information about the features of the extension, just click :guilabel:`More Info` - this will open the related documentation from the web in a browser window.
+
+If you want to install the extension, just click the :guilabel:`Install...` button. The package will be downloaded and added to your extensions repository.
+
+This popup shows an **installed package**:
+
+.. image:: extension-installed.png
+
+If a new version would be available at that time, the :guilabel:`Install...` button would be active again, showing the new version number. Now you could click and download the new version.
+
+**How to Use an Extension**
+
+To use the features of an installed extension in one of your scripts, just say ``from extension-name import *``. For an usage example read :ref:`Sikuli Guide <sikuliguide>`.
+
+For information about features, usage and API use menu :menuselection:`Tools -> Extensions -> More Info` in the IDE.
+
+
+Technical Details
+-----------------
+
+Extensions are Java JAR files containing some Java classes (usually the core functions) and/or Python modules, which define the API to be used in a script.
+
+Sikuli maintains a local extensions directory, where downloaded extensions are stored together with a hidden list of the installed extensions (Windows: ``%APPDATA%\Sikuli\extensions``, Mac: ``~/Library/Application Support/Sikuli/extensions``, Linux: ``~/.sikuli/extensions``).
+
+Once an extension is imported using ``import extension-name``,
+Sikuli automatically searches and loads the JAR file of that extension
+into the current context with :py:func:`load(path-to-jar-file) <load>`.
+
+
+How to develop an extension
+---------------------------
+
+The **source structure** of an extension named ``extension-name`` looks like this: ::
+
+ Java
+ - org/com
+ -- your-organization-or-company
+ --- extension-name
+ ---- yourClass1.java
+ ---- yourClass2.java
+ ---- .... more classes
+ python
+ - extension-name
+ -- __init__.py
+ -- extension-name.py
+
+The **final structure of a JAR** (filename ``extension-name-X.Y`` where X.Y is the version string) looks like this: ::
+
+ org/com
+ - your-organization-or-company
+ -- extension-name
+ --- yourClass1.class
+ --- yourClass2.class
+ --- .... more classes
+ extension-name
+ - __init__.py
+ - extension-name.py
+ META-INF
+ - MANIFEST.MF
+
+The file ``__init__.py`` contains at least ``from extension-name import *`` to avoid one qualification level. So in a script you might either use::
+
+ import extension-name
+ extension-name.functionXYZ()
+
+or::
+
+ from extension-name import *
+ functionXYZ()
+
+The second case requires more investement in a naming convention, that avoids naming conflicts.
+
+The file ``extension-name.py`` contains the classes and methods, that represent the API, that one might use in a Sikuli script.
+
+As an example you may take the source of the extension Sikuli Guide.
+
+Name your extensions properly
+-----------------------------
+
+Sikuli extensions can be Python/Jython modules or Java classes.
+
+For Java classes, following the reverse URL convention of Java is a good idea (for example, org.foo.your-extension). However, **DO NOT use Java's convention for Python/Jython modules**. You need to come up with a unique extension name that does not conflict with existing Python modules and other Sikuli extensions.
+
+Please read `Naming Python Modules and Packages <http://jythonpodcast.hostjava.net/jythonbook/en/1.0/ModulesPackages.html#naming-python-modules-and-packages>`_ to learn the details for naming a Python module.
+
+
+How to test your extension
+--------------------------
+
+While developing your extensions, you can put the JAR file in Sikuli's
+extension directory or in the same .sikuli folder as your test script.
+The JAR file should not have a version number in its file name,
+e.g. ``extension-name.jar``.
+Because Sikuli starts to search extensions in the .sikuli folder of the running script and then
+in the Sikuli extensions folder, it is usually a good idea to put your
+developing extensions in the .sikuli folder of your test script.
+
+Another option is to use the :py:func:`load() <load>` function with
+an absolute path to your ``extension-name.jar``. If this fails, Sikuli
+goes on searching in the current .sikuli folder and then in the Sikuli extensions folder.
+If load() succeeds, it returns ``True`` and puts
+``absolute-path-to-your-extension-name.jar`` into ``sys.path``,
+so you can use ``import extension-name`` afterwards.
+
+How to contribute your extension
+--------------------------------
+
+Currently you have to contact the developers of Sikuli
+and agree on how to proceed.
diff --git a/Docs/Python/source/extensions/index.rst b/Docs/Python/source/extensions/index.rst
new file mode 100644
index 0000000..2b4ae83
--- /dev/null
+++ b/Docs/Python/source/extensions/index.rst
@@ -0,0 +1,9 @@
+Extensions
+==========
+
+.. toctree::
+ :maxdepth: 2
+
+ extensions_info
+ sikuli-guide/index
+
diff --git a/Docs/Python/source/extensions/sikuli-guide/animated-tooltips.gif b/Docs/Python/source/extensions/sikuli-guide/animated-tooltips.gif
new file mode 100644
index 0000000..a11eaca
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/animated-tooltips.gif differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/annotation-clickable.png b/Docs/Python/source/extensions/sikuli-guide/annotation-clickable.png
new file mode 100644
index 0000000..6f48d87
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/annotation-clickable.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/index.png b/Docs/Python/source/extensions/sikuli-guide/index.png
new file mode 100644
index 0000000..cf15dac
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/index.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/index.rst b/Docs/Python/source/extensions/sikuli-guide/index.rst
new file mode 100644
index 0000000..1a3072d
--- /dev/null
+++ b/Docs/Python/source/extensions/sikuli-guide/index.rst
@@ -0,0 +1,236 @@
+Sikuli Guide
+============
+
+.. _sikuliguide:
+
+.. versionadded:: X1.0-rc2
+
+Sikuli Guide is an extension to Sikuli that provides a revolutionary way to
+create guided tours or tutorials for GUI applications. The revolutionary aspect
+is that the content of the tours or tutorials can be displayed right on the
+**actual interface**, rather than in a video or a series of screenshots on a
+web page. All this can be combined with guided user activities directly in the
+respective GUI applications using all the other Sikuli features.
+
+
+Quick Start
+^^^^^^^^^^^
+
+First Example
+-------------
+
+In our first example, suppose we want to create a guided tour of this very documentation
+page you are currently reading. We want to bring your attention to the logo
+picture to the right. Using the functions provided by Sikuli Guide, we can
+write the following script to accomplish this:
+
+.. sikulicode::
+
+ from guide import *
+ text("sikuli-logo.png", "This is Sikuli's logo")
+ show(5)
+
+When you run this script, Sikuli Guide will search for the logo's image on the
+screen, highlight it, and display the text ''This is Sikuli's logo'' below the
+image, like the figure below:
+
+
+
+.. image:: sikuli-logo-highlight.png
+
+Again, this happens in the **actual interface**, rather than in a video or a
+screenshot. The logo image that is highlighted is the actual interface element
+users can click on.
+
+Let's explain the script line by line. The first line is an ``import``
+statement that tells Sikuli to load the Sikuli Guide extension. The secod line
+uses the :py:func:`text(pattern, text) <guide.text>` function to add ``text``
+next to a given ``pattern``, in this case, the logo image. Note that by default
+the text added is not displayed immediately, it is only internally added
+to the visual element. In the third line, we call
+:py:func:`show(secs) <guide.show>` to explicitly tell Sikuli Guide to now display
+all registerd annotation elements (in this case only the
+text) for the duration specified by ``secs``.
+
+Below is a YouTube video of this example.
+
+
+.. youtube:: ELNWxVjVb7Y?hd=1
+ width:: 640
+ height: 390
+
+
+
+
+Adding Multiple Annotations
+---------------------------
+
+It is possible to add text or other annotations to multiple visual elements before
+calling :py:func:`show(secs) <guide.show>` in order to show them on the screen at the same time.
+
+.. sikulicode::
+
+ from guide import *
+ text("sikuli-logo.png", "This is Sikuli's logo")
+ tooltip("previous.png","Previous")
+ tooltip("next.png","Next")
+ tooltip("index.png","Index")
+ show(5)
+
+The script above uses the function :py:func:`tooltip(text) <guide.tooltip>` to add tooltips to
+three links in addition to the text annotation. The result of running this
+script is shown below:
+
+.. image:: multiple-annotations.png
+
+Rather than showing the annotations all at once, we can also show them one by
+one using separate ``show()`` statements. Below is an example where we cycle
+through the three links and show the tooltip of each link one at a time.
+
+.. sikulicode::
+
+ from guide import *
+ while True:
+ tooltip("previous.png","Previous")
+ show(3)
+ tooltip("next.png","Next")
+ show(3)
+ tooltip("index.png","Index")
+ show(3)
+
+The result of running this script is shown below (3x speed-up):
+
+.. image:: animated-tooltips.gif
+
+Adding Interaction
+------------------
+
+Another way to control the flow of a guided tour is to display a dialog box
+and let users click on a button to continue to the next part of the tour.
+Sikuli Guide provides a function :py:func:`dialog(message) <guide.dialog>`
+to accomplish this easily. Below is an example using this function to create a
+two-part guided tour.
+
+.. sikulicode::
+
+ from guide import *
+ text("links.png","Use these to jump to other parts")
+ dialog("Part 1: Navigation Links")
+ show()
+ text("sikuli-logo.png","Use this to go back to Home")
+ dialog("Part 2: Logo")
+ show()
+
+The tour presented by the script above introduces the navigation links above
+and the Sikuli's logo as a shortcut to go back to the documentation's HOME
+page. The function call ``dialog("Part 1")`` indicates the tour will show
+a dialog that displays the message specified by the string argument
+(i.e., Part 1: Navigation Links). The following call to ``show()`` will
+actually display the dialog along with the text elements spcified earlier.
+
+The figure below shows what happens after Line 3:
+
+.. image:: step1.png
+
+After users click on the **Next** button, the tour moves to the next part. The
+screen will look like below:
+
+.. image:: step2.png
+
+Making a Region clickable
+-------------------------
+
+You might use the feature :py:func:`clickable(PSRM) <guide.clickable>`, to make a region sensitive for clicks.
+
+.. sikulicode::
+
+ from guide import *
+ logo = find("sikuli-logo.png")
+ text(logo, "To proceed click this red ...")
+ clickable(logo)
+ index = logo.above().right().find("index.png")
+ text(index, "... or click this red")
+ clickable(index)
+ show()
+
+The script waits until the user clicks one of the two highlighted areas.
+
+.. image:: annotation-clickable.png
+
+.. py:module:: guide
+
+Function References
+^^^^^^^^^^^^^^^^^^^
+
+**PSRM**: when used as a parameter, it can be either **P** a Pattern,
+**S** a string (image file name or just plain text), a **R** Region object
+or **M** a Match object. With **PS** an implicit find operation takes place.
+(More information: :ref:`Finding inside a Region ... <FindinginsideaRegionandWaitingforaVisualEvent>`)
+
+Static Annotations
+------------------
+
+
+.. py:function:: rectangle(PSRM)
+
+ Add a rectangular overlay in red on the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+.. py:function:: circle(PSRM)
+
+ Add a red circle around the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+
+.. py:function:: text(PSRM, text)
+
+ Add some text (white large letters on dark grey background) left justified below the specified target's region, which is additionally highlighted.
+
+ :param PSRM: a pattern, string, region or match
+ :param text: a string as text to display
+
+.. py:function:: tooltip(PSRM, text)
+
+ Add a tooltip (small text in a light yellow box) left justified below the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+ :param text: a string as text to display
+
+
+Interactive Elements
+--------------------
+
+.. py:function:: dialog(text)
+
+ Add a dialog box displaying the given text in the middle of the screen above all othe windows.
+
+ :param text: a string as text to display
+
+.. py:function:: clickable(PSRM)
+
+ Add a clickable element corresponding to the specified target's region.
+
+ :param PSRM: a pattern, string, region or match
+
+
+Control
+-------
+
+.. py:function:: show([seconds])
+
+ Show static and interactive components added so far for the specified amount of time.
+
+ :param seconds: a decimal number as display duration in seconds
+
+ The default duration is 10 seconds. If interactive elements (either one or more clickable elements or
+ a dialog box) were previously added, it waits until the user interacts with one of these elements.
+ At this time all elements vanish and are discarded.
+
+ **Note:** If a :py:func:`dialog` element is present, other interactive elements are visible, but not clickable. If the dialog element is clicked, all elements vanish and are discarded.
+
+
+
diff --git a/Docs/Python/source/extensions/sikuli-guide/links.png b/Docs/Python/source/extensions/sikuli-guide/links.png
new file mode 100644
index 0000000..d87a167
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/links.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/multiple-annotations.png b/Docs/Python/source/extensions/sikuli-guide/multiple-annotations.png
new file mode 100644
index 0000000..97d0037
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/multiple-annotations.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/next.png b/Docs/Python/source/extensions/sikuli-guide/next.png
new file mode 100644
index 0000000..bbe8a30
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/next.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/previous.png b/Docs/Python/source/extensions/sikuli-guide/previous.png
new file mode 100644
index 0000000..a030be5
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/previous.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/sikuli-logo-highlight.png b/Docs/Python/source/extensions/sikuli-guide/sikuli-logo-highlight.png
new file mode 100644
index 0000000..931f79f
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/sikuli-logo-highlight.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/sikuli-logo.png b/Docs/Python/source/extensions/sikuli-guide/sikuli-logo.png
new file mode 100644
index 0000000..9276cfc
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/sikuli-logo.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/step1.png b/Docs/Python/source/extensions/sikuli-guide/step1.png
new file mode 100644
index 0000000..05a6547
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/step1.png differ
diff --git a/Docs/Python/source/extensions/sikuli-guide/step2.png b/Docs/Python/source/extensions/sikuli-guide/step2.png
new file mode 100644
index 0000000..2f0f221
Binary files /dev/null and b/Docs/Python/source/extensions/sikuli-guide/step2.png differ
diff --git a/Docs/Python/source/faq/000-can-i-do-xxx.rst b/Docs/Python/source/faq/000-can-i-do-xxx.rst
new file mode 100644
index 0000000..a146c03
--- /dev/null
+++ b/Docs/Python/source/faq/000-can-i-do-xxx.rst
@@ -0,0 +1,36 @@
+Can I do X or Y or Z in Sikuli?
+===============================
+
+If you are wondering if Sikuli can do X or Y, these two rules apply:
+
+* If you can do X with Java, you can also do it in Sikuli by simply adding the respective Java resources to the classpath (the standard Java classes are already there). For example, you can create a GUI with Java Swing, so you can do it in the same way in Sikuli.
+
+* If you can do X with Python, you probably can do it in Sikuli as well. This actually depends on what Python modules you use. Sikuli is with the contained Jython on language level 2.5 and language level 2.7 will be useable soon. So everything available in the respective Python base package is available in Sikuli too. If modules are written in pure Python, you can use them in Sikuli as well. A typical example are the Excel access modules xlrd and xlwt. If they are written in C or depend [...]
+
+Can I write a loop in Sikuli?
+-----------------------------
+
+Yes. Sikuli uses Jython (Python).
+You can use all constructs that are available in standard Python. See Jython's `While loop <http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#while-loop>`_ and `For loop <http://www.jython.org/jythonbook/en/1.0/LangSyntax.html#for-loop>`_.
+
+
+Can I create a GUI in Sikuli?
+-----------------------------
+
+Yes, you can create GUIs with Java Swing or any other Java/Jython GUI toolkits.
+See `Jython's Swing examples <http://wiki.python.org/jython/SwingExamples>`_ for examples.
+
+
+
+Can I connect to MySQL/MS SQL/PostgreSQL or any database systems in Sikuli?
+---------------------------------------------------------------------------
+
+You can use `JDBC <http://www.oracle.com/technetwork/java/javase/jdbc/index.html>`_ or `zxJDBC <http://www.jython.org/jythonbook/en/1.0/DatabasesAndJython.html>`_.
+
+
+Can I read/write files in Sikuli?
+---------------------------------
+
+Yes. See Jython's `File I/O <http://www.jython.org/jythonbook/en/1.0/InputOutput.html#file-i-o>`_.
+
+
diff --git a/Docs/Python/source/faq/010-command-line.rst b/Docs/Python/source/faq/010-command-line.rst
new file mode 100644
index 0000000..bf68afb
--- /dev/null
+++ b/Docs/Python/source/faq/010-command-line.rst
@@ -0,0 +1,50 @@
+How to run Sikuli from Command Line
+===================================
+
+SikuliX IDE or Script can be used on command line to run a Sikuli script or open it in the IDE.
+
+The usage on each platform:
+
+.. windows::
+
+ :command:`PATH-TO-SIKULIX/runIDE.cmd [options]` or
+ :command:`PATH-TO-SIKULIX/runScript.cmd [options]`
+
+.. mac::
+
+ :command:`PATH-TO-SIKULIX/runIDE [options]` or
+ :command:`PATH-TO-SIKULIX/runScript [options]`
+
+.. linux::
+
+ :command:`PATH-TO-SIKULIX/runIDE [options]` or
+ :command:`PATH-TO-SIKULIX/runScript [options]`
+
+**runIDE(.cmd) without any options** simply starts SikuliX IDE.
+
+**PATH-TO-SIKULIX** is the folder containing the Sikuli stuff after having run setup.
+
+Command Line Options
+--------------------
+
+:program:`SikuliX IDE or Script`
+
+.. option:: -- <arguments>
+
+ the space delimeted and optionally quoted arguments are passed to Jython's sys.argv and hence are available to your script
+
+.. option:: -h,--help
+
+ print the help message showing the available options
+
+.. option:: -r,--run <sikuli-folder/file>
+
+ run .sikuli or .skl file
+
+.. option:: -c,--console
+
+ all output goes to stdout
+
+.. option:: -i,--interactive
+
+ open an interactive Jython session that is prepared for the usage of the Sikuli features
diff --git a/Docs/Python/source/faq/030-java-dev.rst b/Docs/Python/source/faq/030-java-dev.rst
new file mode 100644
index 0000000..bee7d91
--- /dev/null
+++ b/Docs/Python/source/faq/030-java-dev.rst
@@ -0,0 +1,55 @@
+
+How to use Sikuli Script in your JAVA programs
+==============================================
+
+.. _howtojava:
+
+The core of Sikuli Script is written in Java, which means you can use Sikuli Script as a standard JAVA library in your program. This document lets you know how to do that.
+
+After having setup Sikuli on your system, as recommended on the `download page <http://sikuli.org/download.shtml>`_, you have to do the following:
+
+1. Include sikuli-script.jar in the CLASSPATH of your Java project.
+-------------------------------------------------------------------
+
+We use Eclipse as an example. After adding sikuli-script.jar or preferably sikuli-java.jar as a library reference into your project, the project hierarchy should look like this.
+
+.. image:: test-sikuli-project.png
+
+2. Import the Sikuli classes you need
+-------------------------------------
+
+You can simply "import org.sikuli.script.*" or import the classes you need. In most cases, you would need at least :py:class:`Region` or :py:class:`Screen`.
+
+3. Write code!
+--------------
+
+Here is a hello world example on Mac.
+The program clicks on the spotlight icon on the screen, waits until spotlight's input window appears, activates it by clicking and then writes "hello world" into the field and hits ENTER.
+
+.. code-block:: java
+
+ import org.sikuli.script.*;
+
+ public class TestSikuli {
+
+ public static void main(String[] args) {
+ Screen s = new Screen();
+ try{
+ s.click("imgs/spotlight.png");
+ s.wait("imgs/spotlight-input.png");
+ s.click();
+ s.write("hello world#ENTER.");
+ }
+ catch(FindFailed e){
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+See also
+--------
+Be aware, that some method signatures in the Java API differ from the scripting level.
+ * `Javadoc of SikuliX <http://sikuli.org/doc/java-x/>`_.
+ * :doc:`/sikuli-script-index`.
+
diff --git a/Docs/Python/source/faq/040-other-ide.rst b/Docs/Python/source/faq/040-other-ide.rst
new file mode 100644
index 0000000..57a9a75
--- /dev/null
+++ b/Docs/Python/source/faq/040-other-ide.rst
@@ -0,0 +1,199 @@
+How to use Sikuli together with other IDE's
+===========================================
+
+.. versionadded:: X1.0-rc2
+
+currently available for :ref:`Netbeans <netbeanssikuli>` and :ref:`Eclipse <eclipsesikuli>`.
+
+In this section we want to talk about requirements and todos, when you want to develop Sikuli scripts in other IDE's than the one that comes with the distribution. You should read further, if you want to develop at least a part of your package using **Python language**. If you "only" want to develop in Java using the Java level API of Sikuli, then you should look here: :ref:`How to use Sikuli Script in your JAVA programs <howtojava>`.
+
+Very detailed background information and helpful examples can be found in the **Jython e-book** `Chapter 11: Using Jython in a IDE <http://jythonpodcast.hostjava.net/jythonbook/en/1.0/JythonIDE.html#chapter-11-using-jython-in-an-ide>`_. So we will concentrate on the key points here.
+
+The following approaches are evaluated and tested on Mac OS X 10.6 and Windows 7 32Bit. Linux users have to find the appropriate setups themselves - but they should be similar or even identical.
+
+These and more might be your reasons:
+
+* you want to stick with your favorite IDE
+
+* you want more features, than Sikuli-IDE currently has
+
+* you want to develop packages/applications combining Sikuli script and Java or even other languages
+
+* you want to develop a :ref:`Sikuli Extension <sikuliextensions>`
+
+* you need a debugger for your script/package/application
+
+* you want to integrate with a versioning system
+
+* you want to do professional unittesting
+
+General Requirements and Comments
+---------------------------------
+
+**Install Sikuli**
+
+* **Windows:** install Sikuli X using the installer (the system %PATH% will be set as needed)
+ There is a new environment variable **%SIKULI_HOME%** that is expected to contain the directory, where Sikuli X is installed. You have to set it, if you have Sikuli X in a different place.
+
+ **Be aware:** using the zipped version, you have to take care for %PATH% and %SIKULI_HOME% yourself.
+
+* **Mac:** have Sikuli-IDE.app in its standard place /Applications. There is generally no need to put it elsewhere.
+
+* **Linux:** you generally have to take care for the environment yourself.
+
+**Meanings of shortcuts used**:
+
+* **path-to/sikuli-script.jar** if we use this, it should be replaced by the absolute path to the file sikuli-script.jar, where you installed Sikuli.
+
+**Images and importing other Sikuli scripts**
+
+It is recommended to carefully read through :ref:`Importing other Sikuli Scripts (reuse code and images) <importingsikuliscripts>`, since you need to have a concept how to capture, how to name and where to store your images. As a first start, just decide to use Sikuli IDE in parallel to capture and store your images and use the import feature or the image path to make them available in your script.
+
+Netbeans
+--------
+
+.. _netbeanssikuli:
+
+This is based on **Netbeans 6.9**. We suppose you have it running in a setup that allows to at least develop Java applications.
+
+Since this is not a tutorial how to use NetBeans in general, you should be familiar with the basic concepts.
+
+**Install Python plugin**
+
+Since the top level language used by Sikuli script is Python, you need the Python plugin that comes bundled with Jython 2.5.1.
+
+In the Python plugin NetBeans is not strict in naming: though they mainly talk about Python, Jython is meant as well. The Python interpreter to use is selected on the project level.
+
+Go to menu **Tools** -> **Plugins** -> **Available Plugins**
+
+In the list select everything that is in the category Python and install. If suggested by the install process always restart Netbeans.
+
+**Configure for using Sikuli script features at runtime**
+
+The plugin itself has nothing to configure, that is of value for the Sikuli usage. Everything is done on the project level, though some basic preferences act like plugin globals - we just have to know and accept this ;-)
+
+These are the setup steps:
+
+* Start a new project: **File** -> **New Project** -> **Categories: Python** -> **Python Project** -> click **Next**
+
+* In the second step **Name and Location** (last line), select as Python Platform: **Jython 2.5.1**.
+
+* you might want to click **Make Default**, if you have real Python also available (Remember: Sikuli scripts cannot be run with real Python!)
+
+* To integrate Sikuli: click the button **Manage** (only needed with the first project - it is remembered)
+
+* on the tab **Python Path** we need an additional entry, that points to **path-to/sikuli-script.jar/Lib**.
+
+ * Windows: click the button **Add** and click through to *path-to/sikuli-script.jar*. Before clicking **Open**, edit the filename so that it shows sikuli-script.jar\\Lib.
+
+ * Mac: since the Netbeans file dialog does not allow to dive into a bundle like Sikuli-IDE.app, we have to edit the preference file directly. Since it is the same with the Java path, we have documented it seperatly below :ref:`Mac/Netbeans: select library path <nbmacselectlibpath>`.
+
+* on the tab **Java Path** we need an additional entry, that points to **path-to/sikuli-script.jar**. If you have other Java libraries, that you need in your project, add them here too.
+
+ * Windows: click the button **Add** and click through to *path-to/sikuli-script.jar*. Clicking **Open**.
+
+ * Mac: same again, see below :ref:`Mac/Netbeans: Select library path <nbmacselectlibpath>`.
+
+Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need *from sikuli.Sikuli import **, to have access to the Sikuli features at runtime.
+
+Everytime later on you might come back to the project's preferences with **File** -> **Project Properties (your-project's-name)** . You will find the above information in the categorie Python.
+
+**Prepare to use Code Completion for the Sikuli methods**
+
+The NetBeans editor in the Python plugin editor is not able to recognize Python classes and methods, as long as the respective source code is embedded inside a jar-file as it is the fact with Sikuli. If you want *Code Completion* to work, you have to extract the folder **Lib/sikuli** from *sikuli-script.jar*, place it somewhere and add the reference to this folder to the Python Path in the project's preferences (see above: Configure Python Path).
+
+.. _extractlibsikuli:
+
+To extract the folder **Lib/sikuli** from *sikuli-script.jar* you might use the jar utility, that comes with the Java JDK or any other utility, that allows to unjar a jar-file.
+
+This is a Mac example how to use the jar uility, supposing it can be found on the system path:
+
+* in a Terminal window go to an appropriate folder, that should contain Lib/sikuli afterwards
+
+* run: jar -xf /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar Lib/sikuli
+
+You might decide, to use a folder, that is already on the Python path. One folder that is designated by Jython to contain complementary sources, that needs to be imported, is the folder *Lib/site-packages* in the Jython installation directory. If you copy the folder **sikuli** here, you do not need an additional Python path entry.
+
+.. _nbmacselectlibpath:
+
+**Mac/NetBeans: Select library path**
+
+To perpare the preference file modification we first add the path to *Sikuli-IDE.app* on both tabs: click the button **Add** and click through to */Applications/Sikuli-IDE.app*. Depending on your selected language, the folder Applications is named like you see it in the Finder. Save the preferences by clicking close and/or ok.
+
+The preference file is located at /Users/your-name/.netbeans/6.9/build.properties. Since it is hidden, you might have to use the Finder option "Go to Folder" (Shift-Command-G), to open the folder /Users/your-name/.netbeans/.
+
+Open the file build.properties in your favorite editor and search for the text */Applications/Sikuli-IDE.app*. It should be at the end of 2 lines beginning with *pythonplatform.*.
+
+On the line beginning *pythonplatform. ... .javalib=* extend */Applications/Sikuli-IDE.app* so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar.
+
+On the line beginning *pythonplatform. ... .pythonlib=* extend */Applications/Sikuli-IDE.app* so that it reads: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar/Lib.
+
+Save the file and restart Netbeans. It is a good idea to check, that the correct entries are found on the 2 tabs now.
+
+Eclipse
+-------
+
+.. _eclipsesikuli:
+
+This is based on **Eclipse Helios 3.6**. We suppose you have it running in a setup that allows to at least develop Java applications.
+
+Since this is not a tutorial how to use Eclipse in general, you should be familiar with the basic concepts.
+
+**Install Python plugin (PyDev) and Jython**
+
+Since the top level language used by Sikuli script is Python, you need the Python plugin PyDev. Different from NetBeans, though PyDev is prepared to use Jython as interpreter, you have to install Jython on your own seperately.
+
+So **first install Jython**, by downloading the version you want to use from the `Jython download page <http://www.jython.org/downloads.html>`_. Sikuli currently is based on Jython 2.5.1, but you may choose Jython 2.5.2 as well. Install it according to Jythons installation HowTo.
+
+After installation, make a test from a commandline by typing jython.bat (Windows) or jython (Mac/Linux) to open an interactive Jython session.
+
+You might type the following (<enter> means pressing the enter/return key)
+
+* import os <enter>
+
+* import sys <enter>
+
+* for e in sys.path: print e <enter> <enter>
+
+* type exit() <enter> (to leave interactive Jython)
+
+This shows the current Jython configuration of the Python path. Remember the place where Jython is installed.
+
+Now we **install the PyDev plugin** from inside Eclipse: Menu **Help** -> **Eclipse Marketplace**. Either search it or find it on the Popular tab's lower part. Simply click the Install button and do what you are asked to do ;-)
+
+The next step is to tell Eclipse PyDev, where it can find the Jython interpreter. Navigate to the *Eclipse Preferences* pane and open the category *PyDev* and inside the subcategory *Interpreter-Jython*. First try to *Auto Config* by clicking the appropriate button. If this does not work, click the button *New*, name the entry and navigate to the folder, where Jython was installed and select *jython.jar*. After clicking ok, a window *Selection needed* might come up: click *Select all* an [...]
+
+Other options with PyDev are available, but not relevant for our actual matter (`see documentation <http://pydev.org/manual_101_root.html>`_).
+
+**Configure for using Sikuli script features at runtime**
+
+Again we have a difference to Netbeans: The PyDev plugin does not allow library references to folders inside of jar-files in the respective configuration dialog (it does not insert them to the Python path), though Jython itself accepts them, when specified on the Python path. So if you want to run and debug your script in Eclipse, you have to extract the folder **Lib/sikuli** from sikuli-script.jar (:ref:`find one HowTo here <extractlibsikuli>`).
+
+As with Netbeans, the library configuration is done in the project itself. So we open a new project:
+
+* Menu **File** -> **New** -> **Project** -> **PyDev** -> (open sublist) -> **PyDev Project** -> click **Next** button.
+
+On the configuration pane name your project, select Jython as Project type, grammar version 2.5 (higher Python language versions are not supported by Jython 2.5.x) and click
+the **Finish** button. Your project is created. Add at least one *you-name-it.py* file to the source folder and put *from sikuli.Sikuli import ** as the first line.
+
+In the last step, we tell PyDev, where to find the Sikuli libraries.
+
+Goto Menu **Project** -> **Properties** -> select category **PyDev - PYTHONPATH** and go to the tab **External Libraries**. We need a reference to *path-to/sikuli-script.jar* and another one to the extracted folder *Lib* containing the folder *sikuli*.
+
+* reference to *path-to/sikuli-script.jar*
+
+ * Windows: click button **Add zip/jar/egg** and select *sikuli-script.jar* from the Sikuli installation.
+
+ * Mac: As with NetBeans, the file dialog does not allow to step inside Sikuli-IDE.app. So we use the trick, to define a *String Substitution Variable*: on the respective tab click **Add variable**, name it e.g. *sikuli-script* and enter as value: /Applications/Sikuli-IDE.app/Contents/Resources/Java/sikuli-script.jar. Go back to the tab **External Libraries** and click **Add based on variable**. In the entry field enter: ${sikuli-script} and click **OK**.
+
+* reference to the extracted folder *Lib* containing the folder *sikuli*
+
+ * click **Add source folder** and select the folder *Lib* in the place you had it extracted.
+
+ * this is not needed, if you have moved the extracted folder *sikuli* to a folder, that is already on the Python path (e.g. jython-intallation/Lib/site-packages).
+
+Now you are able to run your first script. Remember, that in every script including the main script, that you are editing now, as the first line you need *from sikuli.Sikuli import **, to have access to the Sikuli features at runtime.
+
+Everytime later on you might come back to the project's preferences with **Project** -> **Properties**.
+
+**Code Completion** works from the start without any further configuration and even steps into the Java classes where appropriate.
diff --git a/Docs/Python/source/faq/test-sikuli-project.png b/Docs/Python/source/faq/test-sikuli-project.png
new file mode 100644
index 0000000..949e93f
Binary files /dev/null and b/Docs/Python/source/faq/test-sikuli-project.png differ
diff --git a/Docs/Python/source/finder.rst b/Docs/Python/source/finder.rst
new file mode 100644
index 0000000..d385751
--- /dev/null
+++ b/Docs/Python/source/finder.rst
@@ -0,0 +1,105 @@
+Finder
+======
+
+.. py:class:: Finder
+
+A Finder object implements an iterator of matches and allows to search for a visual
+object in an image file that you provide (e.g. a screenshot taken and saved in a
+file before). After setting up the finder object and doing a find operation, you can
+iterate through the found matches if any.
+
+Important to know:
+
+* per definition, an iterator can be stepped through only once - it is empty
+ afterwards
+* it has to be destroyed using ``finder.destroy()``, especially when
+ used with ``for:`` or ``while:``
+* when used in a ``with:`` construct, it is destroyed automatically
+
+Compared with the region based find operation, no exception FindFailed is
+raised in case nothing is found at all (use ``hasNext()`` to check). The finder object
+can be compared to what you get with ``region.getLastMatches()`` when using :py:meth:`findAll() <Region.findAll>`.
+
+**Note**: With this version, there is no chance, to get the number of matches in
+advance. If you would iterate through to count, afterwards your finder would be
+empty. So in this case, you have to save your matches somehow (one possible solution
+see example below).
+
+The workflow always is, that you first do a find operation and afterwards go through the
+matches found. After a complete iteration, the finder object is empty. So you
+could start a new find operation again.
+
+.. py:class:: Finder
+
+ .. py:method:: Finder(path-to-imagefile)
+
+ Create a new finder object.
+
+ :param path-to-imagefile: filename to a source image to search within
+
+ .. py:method:: find(path-to-imagefile, [similarity])
+
+ Find a given image within a source image previously specified in the
+ constructor of the finder object.
+
+ :param path-to-imagefile: the target image to search for
+ :param similarity: the minimum similarity a match should have. If omitted,
+ the default is used.
+
+ .. py:method:: hasNext()
+
+ Check whether there are more matches available that satisfy the minimum
+ similarity requirement.
+
+ :return: *True* if more matches exist.
+
+ .. py:method:: next()
+
+ Get the next match.
+
+ :return: a :py:class:`Match` object.
+
+ The returnd reference to a match object is no longer available in the finder
+ object afterwards. So if it is needed later on, it has to be saved to
+ another variable.
+
+
+Example 1: basic operations using a Finder
+
+.. sikulicode::
+
+ # create a Finder with your saved screenshot
+ f = Finder("stars.png")
+ img= "star.png" # the image you are searching
+
+ f.find(img) # find all matches
+
+ while f.hasNext(): # loop as long there is a first and more matches
+ print "found: ", f.next() # access the next match in the row
+
+ print f.hasNext() # is False, because f is empty now
+ f.destroy() # release the memory used by finder
+
+Example 2: we want to know how many matches (based on the previous example).
+
+.. sikulicode::
+
+ # create a Finder with your saved screenshot
+ f = Finder("stars.png")
+ img= "star.png" # the image you are searching
+
+ f.find(img) # find all matches
+ mm = [] # an empty list
+
+ while f.hasNext(): # loop as long there is a first and more matches
+ mm.append(f.next()) # access next match and add to mm
+
+ print f.hasNext() # is False, because f is empty now
+ f.destroy() # release the memory used by finder
+
+ # now we have our matches saved in the list mm
+ print len(mm) # the number of matches
+
+ # we want to use our matches
+ for m in mm:
+ print m
\ No newline at end of file
diff --git a/Docs/Python/source/findfailed-prompt.png b/Docs/Python/source/findfailed-prompt.png
new file mode 100644
index 0000000..6ec8c08
Binary files /dev/null and b/Docs/Python/source/findfailed-prompt.png differ
diff --git a/Docs/Python/source/globals.rst b/Docs/Python/source/globals.rst
new file mode 100644
index 0000000..7360746
--- /dev/null
+++ b/Docs/Python/source/globals.rst
@@ -0,0 +1,1016 @@
+Global Functions and Features
+=============================
+
+.. index:: import .sikuli
+
+.. _ImportingSikuliScripts:
+
+Importing other Sikuli Scripts (reuse code and images)
+------------------------------------------------------
+
+When getting more experienced with scripting or when you are used to structure
+your solutions into a modular system, you might want to have access to the
+related features of the programming environment - in this case the
+Python/Jython features of module support - for your scripts too.
+
+This is possible with Sikuli X:
+
+* import other .sikuli in a way that is fully compatible with Python import
+* import a python module structure including underlying Java classes from a
+ jar-file, that is dynamically loaded using the function :py:func:`load(jar-file) <load>`
+* automatically access images contained in the imported .sikuli (no need to use
+ :py:func:`setBundlePath`)
+
+**Note**: Currently a .skl cannot be imported. As a circumvention it is up to you
+to unzip the .skl on the fly (e.g. with gzip on the command line) to a place of
+your choice as .sikuli (e.g. temp directory) and import it from there.
+
+**The prerequisites**:
+
+* the directories/folders containing your .sikuli's you want to import have to
+ be in ``sys.path`` (see below: Usage)
+
+ .. versionadded:: X1.0-rc3
+
+* Sikuli automatically finds other Sikuli scripts in the same directory, when they are imported
+
+* your imported script must contain (recommendation: as first line) the
+ following statement: ``from sikuli import *`` (this is necessary for the
+ Python environment to know the Sikuli classes, methods, functions and global
+ names)
+
+**Usage**:
+
+* Add the path to the Sikuli module into *sys.path* (since X-1.0rc3: If the modules to import are in the same directory as the main script, skip this step.)
+
+* Import your .sikuli using just its name. For example, to import a_module.sikuli, just write *import a_module*.
+
+* the example contains a recommendation to avoid double entries::
+
+ # an example - choose your own naming
+ # on Windows
+ myScriptPath = "c:\\someDirectory\\myLibrary"
+ # on Mac/Linux
+ myScriptPath = "/someDirectory/myLibrary"
+
+ # all systems
+ if not myScriptPath in sys.path: sys.path.append(myScriptPath)
+
+ # supposing there is a myLib.sikuli
+ import myLib
+
+ # supposing myLib.sikuli contains a function "def myFunction():"
+ myLib.myFunction() # makes the call
+
+
+**Note on contained images:** Together with the import, Sikuli internally uses
+the new :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>` to make sure that images contained in imported
+.sikuli's are found automatically.
+
+**Some comments for readers not familiar with Python import**
+
+* An import is only processed once (the first time it is found in the program
+ flow). So be aware:
+
+ * If your imported script contains code outside of any function definitions ( ``def()`` ),
+ this code is only processed once at the first time, when the import is evaluated
+
+ * Since the IDE does not reload the modules while running a script each time, if you are changing imported scripts while they are in use, you have to use the Jython's reload() function::
+
+ # instead of: import module
+ import module
+ reload(module)
+
+ # instead of: from module import *
+ import module
+ reload(module)
+ from module import *
+
+* Python has a so called namespace concept: names (variables, functions,
+ classes) are only known in it's namespace your main script has it's own namespace
+
+ * Each imported script has its own namespace. So names contained in an
+ imported script have to be qualified with the module name (e.g. ``myLib.myFunction()`` )
+
+ * You may use ``from myLib import *``, which integrates all names from myLib
+ into your current namespace. So you can use ``myFunction()`` directly. When you
+ decide to use this version, be sure you have a naming convention that
+ prevents naming conflicts.
+
+
+**Another example: Importing from the same directory**
+
+This approach allows to develop a modularized script app that is contained in
+one directory. This directory can be moved around with no changes and even
+distributed as a zipped file::
+
+ # works on all platforms
+ import os
+ # get the directory containing your running .sikuli
+ myPath = os.path.dirname(getBundlePath())
+ if not myPath in sys.path: sys.path.append(myPath)
+
+ # now you can import every .sikuli in the same directory
+ import myLib
+
+.. versionadded:: X1.0-rc3
+
+Since scripts in same directory are found automatically::
+
+ # nothing else needed
+ # now you can import every .sikuli in the same directory
+ import myLib
+
+
+**Loading a jar-file containing Java/Python modules**
+
+.. versionadded:: X1.0-rc2
+.. py:function:: load(jar-file)
+
+ Loads a jar-file and puts the absolute path to it into sys.path, so
+ the Java or Python code in that jar-file can be imported afterwards.
+
+ :param jar-file: either a ``filename.jar`` without any path or the absolute
+ path to ``filename.jar``
+ :return: ``True`` if the file was found, otherwise ``False``
+
+ **Note:** if no path is specified, Sikuli first looks into the bundle (the
+ Sikuli folder of the running script) and then into the extensions folder.
+ (more information: :ref:`Sikuli Extensions <sikuliextensions>`)
+
+.. _ControllingSikuliScriptsandtheirBehavior:
+
+Controlling Sikuli Scripts and their Behavior
+---------------------------------------------
+
+.. py:function:: setShowActions(False | True)
+
+ If set to *True*, when a script is run, Sikuli shows a visual effect (a blinking
+ double lined red circle) on the spot where the action will take place before
+ executing actions (e.g. ``click()``, ``dragDrop()``, ``type()``, etc) for about 2 seconds in the
+ standard (see :py:attr:`Settings.SlowMotionDelay` ). The default setting is False.
+
+.. py:function:: exit([value])
+
+ Stops the script gracefully at this point. The value is returned to the calling
+ environment.
+
+.. py:class:: Settings
+
+.. versionadded:: X1.0-rc2
+.. py:attribute:: Settings.ActionLogs
+ Settings.InfoLogs
+ Settings.DebugLogs
+
+ Either option might be switched on (True) or off (False), to show or hide the respective message type in the IDE console or on command line ([log], [info], [debug]).
+
+.. py:attribute:: Settings.MinSimilarity
+
+ The default minimum similiarty of find operations.
+ While using a :py:meth:`Region.find` operation,
+ if only an image file is provided, Sikuli searches
+ the region using a default minimum similarity of 0.7.
+
+.. py:attribute:: Settings.MoveMouseDelay
+
+ Control the time taken for mouse movement to a target location by setting this
+ value to a decimal value (default 0.5). The unit is seconds. Setting it to
+ 0 will switch off any animation (the mouse will "jump" to the target location).
+
+ As a standard behavior the time to move the mouse pointer from the current
+ location to the target location given by mouse actions is 0.5 seconds. During
+ this time, the mouse pointer is moved continuosly with decreasing speed to the
+ target point. An additional benefit of this behavior is, that it gives the
+ active application some time to react on the previous mouse action, since the
+ e.g. click is simulated at the end of the mouse movement::
+
+ mmd = Settings.MoveMouseDelay # save default/actual value
+ click(image1) # implicitly wait 0.5 seconds before click
+ Settings.MoveMouseDelay = 3
+ click(image2) # give app 3 seconds time before clicking again
+ Settings.MoveMouseDelay = mmd # reset to original value
+
+.. py:attribute:: Settings.DelayAfterDrag
+ Settings.DelayBeforeDrop
+
+ *DelayAfterDrag* specifies the waiting time after mouse down at the source
+ location as a decimal value (seconds).
+
+ *DelayBeforeDrop* specifies the
+ waiting time before mouse up at the target location as a decimal value
+ (seconds).
+
+ **Usage**: When using :py:meth:`Region.dragDrop` you may have situations, where the
+ operation is not processed as expected. This may be due to the fact, that the
+ Sikuli actions are too fast for the target application to react properly. With
+ these settings the waiting time after the mouse down at the source location and
+ before the mouse up at the target location of a dragDrop operation are
+ controlled. The standard settings are 0.3 seconds for each value. The time that
+ is taken, to move the mouse from source to target is controlled by
+ :py:attr:`Settings.MoveMouseDelay`::
+
+
+ # you may wish to save the actual settings before
+ Settings.DelayAfterDrag = 1
+ Settings.DelayBeforeDrop = 1
+ Settings.MoveMouseDelay = 3
+ dragDrop(source_image, target_image)
+ # time for complete dragDrop: about 5 seconds + search times
+
+
+.. py:attribute:: Settings.SlowMotionDelay
+
+ Control the duration of the visual effect (seconds).
+
+
+.. py:attribute:: Settings.WaitScanRate
+ Settings.ObserveScanRate
+
+ Specify the number of times actual search operations are performed per second
+ while waiting for a pattern to appear or vanish.
+
+ As a standard behavior Sikuli internally processes about 3 search operations per
+ second, when processing a :py:meth:`Region.wait`, :py:meth:`Region.exists`,
+ :py:meth:`Region.waitVanish`, :py:meth:`Region.observe`). In cases where this
+ leads to an excessive usage of system ressources or if you intentionally want to
+ look for the visual object not so often, you may set the respective values to
+ what you need. Since the value is used as a rate per second, specifying values
+ between 1 and near zero, leads to scans every x seconds (e.g. specifying 0.5
+ will lead to scans every 2 seconds)::
+
+ def myHandler(e):
+ print "it happened"
+
+ # you may wish to save the actual settings before
+ Settings.ObserveScanRate = 0.2
+ onAppear(some_image, myHandler)
+ observe(FOREVER, background = True)
+ # the observer will look every 5 seconds
+ # since your script does not wait here, you
+ # might want to stop the observing later on ;-)
+
+.. versionadded:: X1.0-rc2
+.. py:attribute:: Settings.ObserveMinChangedPixels
+
+ The minimum size in pixels of a change to trigger a change event when using :py:meth:`Region.onChange` without specifying this value.
+ The default value is 50.
+
+
+Controlling Applications and their Windows
+------------------------------------------
+
+Here we talk about opening or closing other applications, switching to them (bring
+their windows to front) or accessing an application's windows.
+
+The three global functions :py:func:`openApp`, :py:func:`switchApp` and
+:py:func:`closeApp` introduced in Sikuli 0.9 and 0.10 are still valid in the moment,
+but they should be considered as deprecated. They are being replaced by a new
+:py:class:`App` class introduced in Sikuli X. This class makes it possible to treat
+a specific application as an object with attributes and methods. We recommend to
+switch to the class App and its features, the next time you work with one of your
+existing scripts and in all cases, when developing new scripts.
+
+**General hint for Windows users** on backslashes \\ and double apostrophes "
+
+In a Sikuli script in normal strings enclosed in " (double apostrophes),
+these special characters \\ and " have to be escaped using a backslash,
+when you have them inside the string. So for one backslash you need \\\\
+and for one " you need \\". In a string enclosed in ' (single apostrophes), a '
+has to be \\' and a " is taken as such.
+
+To avoid any problems, it is recommended to use the raw string ``r'some text with \\ and " ...'``,
+since there is no need for escaping.
+This is especially useful, when you have to specify Windows path's or want to
+setup command lines for use with App.open(), openApp(), os.popen or Jythons Subprocess module.
+
+a fictive command line example::
+
+ cmd = r'c:\Program Files\myapp.exe -x "c:\Some Place\some.txt" >..\log.txt'
+ openApp(cmd)
+
+**This is a comparism of old (xxxApp) and new (App.xxx) functions:**
+
+* Open an application: :py:func:`openApp` --> :py:meth:`App.open`
+* Switch to an application or application window: :py:func:`switchApp` -->
+ :py:meth:`App.focus`
+* Close an application: :py:func:`closeApp` --> :py:meth:`App.close`
+
+.. py:function:: openApp(application)
+
+ Open the specified application.
+
+ :param application: a string containing the name of an application (case-insensitive), that can be
+ found in the path used by the system to locate applications. Or it can be the
+ full path to an application.
+
+ **Note for Windows:** (since X-1.0rc3) The string may contain commandline parameters
+ for the specified program or batch file after the name or full path.
+
+ This function opens the specified application and brings its windows to the
+ front. This is equivalent to :py:meth:`App.open`. Depending on the system and/or
+ the application, this function may switch to an already opened application or
+ may open a new instance of the application.
+
+ Examples::
+
+ # Windows: opens command prompt (found through PATH)
+ openApp("cmd.exe")
+
+ #Windows (since X-1.0rc3): with parameters (no sense, only to show ;-)
+ openApp(r'cmd.exe /c start c:\Program Files\myapp.bat')
+
+ # Windows: opens Firefox (full path specified)
+ openApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Mac: opens Safari
+ openApp("Safari")
+
+.. py:function:: switchApp(application)
+
+ Switch to the specified application.
+
+ :param application: the name of an application (case-insensitive) or (part of) a
+ window title (Windows/Linux).
+
+ This function switches the focus to the specified application and brings its
+ windows to the front. This function is equivalent to :py:meth:`App.focus`.
+
+ On Windows/Linux, the window is the one identified by the *application* string.
+ This string is used to search the title text of all the opened windows for any
+ part of the title matching the string. Thus, this string needs not be an
+ application's name. For example, it can be a filename of an opened document that
+ is displayed in the title bar. It is useful for choosing a particular window out
+ of the many windows with different titles.
+
+ On Mac, the *application* string is used to identify the application. If the
+ application has multiple windows opened, all these windows will be brought to
+ the front. The relatively ordering among these windows remain the same.
+
+ Example::
+
+ # Windows: switches to an existing command prompt or starts a new one
+ switchApp("cmd.exe")
+
+ # Windows: opens a new browser window
+ switchApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Windows: switches to the frontmost opened browser window (or does nothing
+ # if no browser window is currently opened)
+ switchApp("mozilla firefox")
+
+ # Mac: switches to Safari or starts it
+ switchApp("Safari")
+
+.. py:function:: closeApp(application)
+
+ Close the specified application.
+
+ :param application: the name of an application (case-insensitive) or (part of) a
+ window title (Windows/Linux)
+
+ This function closes the application indicated by the string *application* (Mac) or
+ the windows whose titles contain the string *application* (Windows/Linux). this
+ function is equivalent to :py:meth:`App.close`. On Windows/Linux, the
+ application itself may be closed if the main window is closed or if all the
+ windows of the application are closed.
+
+ Example::
+
+ # Windows: closes an existing command prompt
+ closeApp("cmd.exe")
+
+ # Windows: does nothing, since text can not be found in the window title
+ closeApp("c:\\Program Files\\Mozilla Firefox\\firefox.exe")
+
+ # Windows: stops firefox including all its windows
+ closeApp("mozilla firefox")
+
+ # Mac: closes Safari including all its windows
+ closeApp("Safari")
+
+.. py:function:: run(command)
+
+ Run *command* in the command line
+
+ :param command: a command that can be run from the command line.
+
+ This function executes the command and the script waits for its completion.
+
+
+The Application Class
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. py:class:: App
+
+Sikuli-X introduces the new class called :py:class:`App` to provide a more
+convenient and flexible way to control the application and its windows.
+
+:ref:`go directly to the methods <ClassAppMethods>`
+
+**Using class methods or instance methods**
+
+Generally you have the choice between using the class methods (e.g.
+``App.open("application-identifier")``) or first create an App instance and use
+the instance methods afterwards (e.g. ``myApp = App("application-identifier")``
+and then later on ``myApp.open()``). In the current state of the feature
+developement of the class App, there is no recomendation for a preferred usage.
+The only real difference is, that you might save some ressources, when using the
+instance approach, since using the class methods produces more intermediate
+objects.
+
+.. _CreateAppInstance:
+
+**How to create an App instance**
+
+The basic choice is to just say ``someApp = App("some-app-identifier")`` and you
+have your app instance, that you can later on use together with its methods,
+without having to specify the string again.
+
+Additionally ``App.open("some-app-identifier")`` and ``App.focus("some-app-identifier")``
+return an app instance, that you might save in a variable to use it later on in
+your script.
+
+**Differences between Windows/Linux and Mac**
+
+Windows/Linux: Sikuli's strategy on these systems in the moment is to rely on
+implicit or explicit path specifications to find an application, that has to be
+started. Running "applications" can either be identified using their PID
+(process ID) or by using the window titles. So using a path specification will
+only switch to an open application, if the application internally handles the
+"more than one instance" situation".
+
+You usually will use ``App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe")``
+to start Firefox. This might open an additional window. And you can use
+``App.focus("Firefox")`` to switch to the frontmost Firefox window (which has no
+effect if no window is found). To clarify your situation you may use the new
+window() method, which allows to look for existing windows. The second possible
+approach is to store the App instance, that is returned by ``App.open()``, in a
+variable and use it later on with the instance methods (see examples below).
+
+If you specify the exact window title of an open window, you will get exactly
+this one. But if you specify some text, that is found in more than one open
+window title, you will get all these windows in return. So this is good e.g.
+with Firefox, where every window title contains "Mozilla Firefox", but it might
+be inconvenient when looking for "Untitled" which may be in use by different
+apps for new documents. So if you want exactly one specific window, you either
+need to know the exact window title or at least some part of the title text,
+that makes this window unique in the current context (e.g. save a document with
+a specific name, before accessing it's window).
+
+On Mac OS X, on the system level the information is available, which windows
+belong to which applications. Sikuli uses this information. So by default using
+e.g. ``App.focus("Safari")`` starts Safari if not open already and switches to the
+application Safari if it is open, without doing anything with it's windows (the
+z-order is not touched). Additionally, you can get all windows of an
+application, without knowing it's titles.
+
+Note on Windows: when specifying a path in a string, you have to use \\ (double
+backslash) for each \ (backslash)
+e.g. ``myPath = "c:\\Program Files\\Sikuli-IDE\\Lib\\"`` )
+
+.. _ClassAppMethods:
+
+.. py:class:: App
+
+ .. py:classmethod:: open(application)
+
+ *Usage:* ``App.open(application)``
+
+ Open the specified application.
+
+ :param application: The name of an application (case-insensitive), that can
+ be found in the path used by the system to locate applications, or the
+ full path to an application (Windows: use double backslash \\ in the
+ path string to represent a backslash)
+
+ **Note for Windows:** (since X-1.0rc3) The string may contain commandline parameters
+ for the specified program or batch file after the name or full path (see: :py:func:`openApp`)
+
+
+ :return: an App object, that can be used with the instance methods.
+
+ This method is functionally equivalent to :py:func:`openApp`. It opens the
+ specified application and brings its window the front. Whether this
+ operation switches to an already opened application or opens a new instance
+ of the application depends on the system and application.
+
+ .. py:method:: open()
+
+ *Usage:* ``someApp.open()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Open this application.
+
+
+ .. py:classmethod:: focus(application)
+
+ *Usage:* ``App.focus(application)``
+
+ Switch the focus to an application.
+
+ :param application: The name of an application (case-insensitive) or (part
+ of) a window title (Windows/Linux).
+
+ :return: an App object, that can be used with the instance methods.
+
+ .. py:method:: focus()
+
+ *Usage:* ``someApp.focus()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Switch the focus to this application.
+
+
+ .. py:classmethod:: close(application)
+
+ *Usage:* ``App.close(application)``
+
+ Close the specified application.
+
+ :param application: The name of an application (case-insensitive) or (part
+ of) a window title (Windows/Linux).
+
+ This method is functionally equivalent to :py:func:`closeApp`. It closes the
+ given application or the matching windows (Windows/Linux). It does nothing
+ if no opened window (Windows/Linux) or running application (Mac) can be
+ found. On Windows/Linux, whether the application itself is closed depends on
+ weather all open windows are closed or a main window of the application is
+ closed, that in turn closes all other opened windows.
+
+ .. py:method:: close()
+
+ *Usage:* ``someApp.close()`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Close this application.
+
+ .. py:classmethod:: focusedWindow()
+
+ *Usage:* ``App.focusedWindow()``
+
+ Identify the currently focused or the frontmost window and switch to it.
+ Sikuli does not tell you, to which application this window belongs.
+
+ :return: a :py:class:`Region` object representing the window or *None* if
+ there is no such window.
+
+ On Mac, when starting a script, Sikuli hides its window and starts
+ processing the script. In this moment, no window has focus. Thus, it is
+ necessary to first click somewhere or use ``App.focus()`` to focus on a
+ window. In this case, this method may return *None*.
+
+ On Windows, this method always returns a region. When there is no window
+ opened on the desktop, the region may refer to a special window such as the
+ task bar or an icon in the system tray.
+
+ Example::
+
+ # highlight the currently fontmost window for 2 seconds
+ App.focusedWindow().highlight(2)
+
+ # save the windows region before
+ firstWindow = App.focusedWindow()
+ firstWindow.highlight(2)
+
+ .. py:method:: window([n])
+
+ *Usage 1:* ``App(application).window([n])`` an App instance is created on the fly.
+
+ *Usage 2:* ``someApp.window([n])`` where App instance ``someApp`` was :ref:`created before <CreateAppInstance>`.
+
+ Get the region corresponding to the n-th window of this application (Mac) or
+ a series of windows with the matching title (Windows/Linux).
+
+ :param n: 0 or a positive integer number. If ommitted, 0 is taken as
+ default.
+
+ :return: the region on the screen occupied by the window, if such window
+ exists and *None* if otherwise.
+
+ Below is an example that tries to open a Firefox browser window and switches
+ to the address field (Windows)::
+
+ # using an existing window if possible
+ myApp = App("Firefox")
+ if not myApp.window(): # no window(0) - Firefox not open
+ App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe")
+ wait(2)
+ myApp.focus()
+ wait(1)
+ type("l", KEY_CTRL) # switch to address field
+
+ Afterwards, it focuses on the Firefox application, uses the ``window()`` method to
+ obtain the region of the frontmost window, applies some operations
+ within the region, and finally closes the window::
+
+ # using a new window
+ firefox = App.open("c:\\Program Files\\Mozilla Firefox\\Firefox.exe");
+ wait(2)
+ firefox.focus()
+ wait(1)
+ # now your just opened new window should be the frontmost
+ with firefox.window(): # see the general notes below
+ # some actions inside the window(0)'s region
+ click("somebutton.png")
+ firefox.close() # close the window - stop the process
+
+
+ Below is another example that highlights all the windows of an
+ application by looping through them (Mac)::
+
+ # not more than 100 windows should be open ;-)
+ myApp = App("Safari")
+ for n in range(100):
+ w = myApp.window(n)
+ if not w: break # no more windows
+ w.highlight(2) # window highlighted for 2 second
+
+
+ General notes:
+
+ * Be aware, that especially the window handling feature is experimental
+ and under further development.
+
+ * Especially on Windows be aware, that there might be many matching
+ windows and windows, that might not be visible at all. Currently the
+ ``window()`` function has no feature to identify a special window besides
+ returning the region. So you might need some additional checks to be
+ sure you are acting on the right window.
+
+ * Windows/Linux: The ``close()`` function currently kills the application,
+ without closing it's windows before. This is an abnormal termination and
+ might be recognized by your application at the next start (e.g. Firefox
+ usually tries to reload the pages).
+
+ * Even if the windows are hidden/minimized, their region that they have in
+ the visible state is returned. Currently there is no Sikuli feature, to
+ decide wether the given window(n) is visible or not or if it is
+ currently the frontmost window. The only guarentee: ``window()``/``window(0)``
+ is the topmost window of an application (Mac) or a series of matching
+ windows (Windows/Linux).
+
+ * Currently there are no methods available to act on such a window
+ (resize, bring to front, get the window title, ...).
+
+ Some tips:
+
+ * Check the position of a window's returned region: some apps hide there
+ windows by giving them "outside" coordinates (e.g. negative)
+
+ * Check the size of a window's returned region: normally your app windows
+ will occupy major parts of the screen, so a window's returned region of
+ e.g. 150x30 might be some invisible stuff or an overlay on the real app
+ window (e.g. the "search in history" input field on the Safari Top-Sites
+ page, which is reported as ``windows(0)``)
+
+ * If you have more than one application window, try to position them at
+ different coordinates, so you can decide which one you act on in the
+ moment.
+
+ * It is sometimes possible to use the OCR text extraction feature
+ :py:meth:`Region.text` to obtain the window title.
+
+
+
+Interacting with the User
+-------------------------
+
+.. versionadded:: X1.0-rc3
+.. py:function:: popup(text, [title])
+
+ Display a dialog box with an *OK* button and *text* as the message. The script
+ then waits for the user to click the *OK* button.
+
+ :param text: text to be displayed as message
+
+ :param title: optional title for the messagebox
+
+ Example::
+
+ popup("Hello World!\nHave fun with Sikuli!")
+
+ A dialog box that looks like below will popup (Note: `\n` can break a line).
+
+ .. image:: popup.png
+
+.. py:function:: input([text], [default])
+
+ Display a dialog box with an input field, a Cancel button, and an OK button. The
+ optional *text* can be displayed as a caption. The script then waits for the
+ user to click either the Cancel or the OK button.
+
+ :param text: optional text to be displayed as message
+
+ :param default: optional preset text for the input field (``new in later then X-1.0rc3``)
+
+ :return: the text, contained in the input field, when the user clicked **OK**
+
+ **None**, if the user pressed the **Cancel** button
+
+ Example::
+
+ name = input("Please enter your name to log in:")
+
+ name = input("Please enter your name to log in:", "anonymous") # a preset input text
+
+ .. image:: input.png
+
+ A dialog box that looks like above will appear to allow the user to
+ interactively enter some text. This text is then assigned to the variable
+ *name*, which can be used in other parts of the script, such as ``paste(name)``
+ to paste the text to a login box.
+
+ When using the parameter ``default``, the text input field will be pre-populated with the
+ given text, so the user might just click OK/Cancel or edit the content of the input field.
+
+
+Listening to Global Hotkeys
+---------------------------
+
+Sikuli can listen to global hotkeys that you register with ``Env.addHotkey``
+and call the corresponding handler (sikuli functions) when the user presses
+the hotkeys.
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Env.addHotkey(key, modifiers, handler)
+
+ Register the specified *key* + *modifiers* as a global hotkey.
+ When the hotkey is pressed, the specified function *handler* will be called.
+
+ :param key: a character or a constant value defined in :py:class:`Key`.
+
+ :param modifiers: Key modifiers, which can be one or multiple constants defined in :py:class:`KeyModifier`.
+
+ :return: True if success.
+
+ .. sikulicode::
+
+ def openAppleMenu(event):
+ click("apple.png")
+
+ # When the user pressed Ctrl+Alt+F1, click the top-left apple icon.
+ Env.addHotkey(Key.F1, KeyModifier.ALT+KeyModifier.CTRL, openAppleMenu)
+
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Env.removeHotkey(key, modifiers)
+
+ Unregister the registered global hotkey *key* + *modifiers*.
+
+ :param key: a character or a constant value defined in :py:class:`Key`.
+
+ :param modifiers: Key modifiers, which can be one or multiple constants defined in :py:class:`KeyModifier`.
+
+ :return: True if success.
+
+
+
+General Settings and Access to Environment Information
+------------------------------------------------------
+
+
+**Sikuli Level**
+
+Sikuli internally uses the class :py:class:`Settings` to store globally used
+settings. Publicly available attributes may be accessed by using
+``Settings.[name-of-an-attribute]`` to get it's value and ``Settings.attribute = value``
+to set it. It is highly recommended to only modify attributes, that are described in
+this document or when you really know, what you are doing.
+
+Actually all attributes of some value for scripting are described in the
+topic :ref:`Controlling Sikuli Scripts and their Behavior <ControllingSikuliScriptsandtheirBehavior>`.
+
+**Jython/Python Level**
+
+You may use all settings, that are defined in standard Python/Jython and that are
+available in your system environment. The modules sys and time are already imported,
+so you can use their methods without the need for an import statement.
+
+``sys.path`` may be one of the most valuable settings, since it is used by
+Python/Jython to locate modules, that are referenced using ``import module``. It is
+a list of path's, that is e.g. maintained by Sikuli to implement :ref:`Importing
+other Sikuli Scripts <ImportingSikuliScripts>` as a standard
+compliant feature.
+
+If you want to use ``sys.path``, it is recommended to do it as shown in the following
+example, to avoid appending the same entry again::
+
+ myPath = "some-absolute-path"
+ if not myPath in sys.path:
+ sys.path.append(myPath)
+
+**Java Level**
+
+Java maintains a global storage for settings (key/value pairs), that can be accessed
+by the program/script. Sikuli uses it too for some of it's settings. Normally it is
+not necessary to access these settings at the Java level from a Sikuli script, since
+Sikuli provides getter and setter methods for accessing values, that make sense for
+scripting. One example is the list of paths, that Sikuli maintains to specify
+additional places to search for images (please refer to :ref:`Importing
+other Sikuli Scripts <ImportingSikuliScripts>` for more information).
+
+If needed, you may access the java settings storage as shown in the following
+example::
+
+ import java
+
+ # get a value
+ val = java.lang.System.getProperty("key-of-property")
+
+ # set a property's value
+ java.lang.System.getProperty("key-of-property", value)
+
+.. index::
+ pair: Image Search Path; SIKULI_IMAGE_PATH
+
+.. _ImageSearchPath:
+
+**Image Search Path**
+
+Sikuli maintains a list of locations to search for images when they are not found in
+the current .sikuli folder (a.k.a. bundle path). This list is maintained internally
+but can be inspected and/or modified using the following functions:
+
+.. py:function:: getImagePath()
+
+ Get a list of paths where Sikuli will search for images. ::
+
+ # getImagePath() returns a Java array of unicode strings
+ imgPath = list(getImagePath()) # makes it a Python list
+ # to loop through
+ for p in imgPath:
+ print p
+
+.. py:function:: addImagePath(a-new-path)
+
+ Add a new path to the list of image search paths
+
+.. py:function:: removeImagePath(a-path-already-in-the-list)
+
+ Remove a path from the list of image search paths
+
+*Note*: paths must be specified using the correct path separators (slash on Mac
+and Unix and double blackslashes on Windows).
+
+This list is automatically extended by Sikuli with script folders, that are imported
+(see: :ref:`Importing other Sikuli Scripts <ImportingSikuliScripts>`),
+so their contained images can be accessed. If you want to
+be sure of the results of your manipulations, you can use ``getImagePath`` and check
+the content of the returned list. When searching images, the path's are scanned in
+the order of the list. The first image file with a matching image name is used.
+
+*Note*: Behind the scenes this list is maintained in the java property store with the
+key SIKULI_IMAGE_PATH. This can be preset when starting the JVM using the
+environment variable SIKULI_IMAGE_PATH and can be accessed at runtime using the
+approach as mentioned under Accessing Settings - Java level. Be aware, that this is
+one string, where the different entries are separated with a colon ( : ).
+
+.. index:: Bundle Path
+
+**The default bundle path** can also be accessed and modified by the two functions
+below:
+
+.. py:function:: setBundlePath(path-to-a-folder)
+
+ Set the path for searching images in all Sikuli Script methods. Sikuli IDE sets
+ this automatically to the path of the folder where it saves the script
+ (.sikuli). Therefore, you should use this function only if you really know what
+ you are doing. Using it generally means that you would like to take care of your
+ captured images by yourself.
+
+ Additionally images are searched for in the :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>`, that is a global
+ list of other places to look for images. It is implicitly extended by script
+ folders, that are imported (see: :ref:`Reuse of Code and Images <ImportingSikuliScripts>`).
+
+.. py:function:: getBundlePath()
+
+ Get a string containing a fully qualified path to a folder containing your images
+ used for finding patterns. Note: Sikuli IDE sets this automatically to the path
+ of the folder where it saves the script (.sikuli). You may use this function if,
+ for example, to package your private files together with the script or to access
+ the picture files in the .sikuli bundles for other purposes. Sikuli only gives
+ you to access to the path name, so you may need other python modules for I/O or
+ other purposes.
+
+ Other places, where Sikuli looks for images, might be in the :ref:`SIKULI_IMAGE_PATH <ImageSearchPath>`.
+
+**Other Environment Information**
+
+.. py:method:: Env.getOS()
+ Env.getOSVersion()
+
+ Get the type ( ``getOS()`` ) and version ( ``getOSVersion()`` ) of the operating system your
+ script is running on.
+
+ An example using these methods on a Mac is shown below::
+
+ # on a Mac
+ myOS = Env.getOS()
+ myVer = Env.getOSVersion()
+
+ if myOS == OS.MAC:
+ print "Mac " + myVer # e.g., Mac 10.6.3
+ else:
+ print "Sorry, not a Mac"
+
+ myOS = str(Env.getOS())
+ if myOS == "MAC" or myOS.startswith("M"):
+ print "Mac " + myVer # e.g., Mac 10.6.3
+ else:
+ print "Sorry, not a Mac"
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.getSikuliVersion()
+
+ Get the version of Sikuli.
+
+ :return: a string containing the version text of the IDE window title without "Sikuli "
+
+ An example for Sikuli X-1.0rc2::
+
+ if not Env.getSikuliVersion() == "X-1.0rc2":
+ print "This script needs Sikuli X-1.0rc2"
+ exit(1)
+
+.. py:method:: Env.getClipboard()
+
+ Get the content of the clipboard if it is text, otherwise an empty string.
+
+ *Note*: Be careful, when using ``Env.getClipboard()`` together with ``paste()``,
+ since paste internally uses the clipboard to transfer text to other
+ applications, the clipboard will contain what you just pasted. Therefore, if you
+ need the content of the clipboard, you should call ``Env.getClipboard()`` before
+ using ``paste()``.
+
+ *Tip*: When the clipboard content was copied from a web page that mixes images and
+ text, you should be aware, that there may be whitespace characters around and
+ inside your text, that you did not expect. In this case, you can use
+ ``Env.getClipboard().strip()`` to get rid of surrounding white spaces.
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.isLockOn(key-constant)
+
+ Get the current status ( on / off ) off the respective key. Only one key can be specified.
+
+ :parameter key-constant: one of the key constants ``Key.CAPS_LOCK``, ``Key.NUM_LOCK``, ``Key.SCROLL_LOCK``
+ :return: True if the specified key is on, False otherwise
+
+ Further information about key constants can be found in Class :py:class:`Key`.
+
+
+.. versionadded:: X1.0-rc2
+.. py:method:: Env.getMouseLocation()
+
+ Get the current location of the mouse cursor.
+
+ :return: a :py:class:`Location` object of the position of the mouse cursor on the screen.
+
+
+
+Advanced Settings for Speed and Robustness
+------------------------------------------
+
+
+.. versionadded:: X1.0-rc3
+.. py:method:: Vision.setParameter(param, value)
+
+ Set the parameter *param* of the vision algorithm to *value*.
+
+ :parameter param: a string that indicates the parameter to set.
+ :parameter value: a float value.
+
+
+.. py:method:: Vision.getParameter(param)
+
+ Get the parameter *param* of the vision algorithm.
+
+ :parameter param: a string that indicates the parameter to get.
+ :return: the float value of the specified parameter.
+
+
+
+The available parameters for tuning the vision algorithm of Sikuli is listed as
+follows.
+
+.. _min-target-size:
+
+.. versionadded:: X1.0-rc3
+
+MinTargetSize
+^^^^^^^^^^^^^
+
+``MinTargetSize`` is the minimum image size to which Sikuli can resize.
+
+Sikuli resizes the screen images to a smaller scale for faster matching. This scaling process speeds up the matching process, but also increases the possibility
+of false matching.
+The default value of ``MinTargetSize`` in X-1.0rc3 is 12, which makes the matching algorithm be balanced between speed and robustness.
+If you feel that Sikuli is running too slow,
+try a smaller value than 12. On the other hand, if you see Sikuli returns a match that is not what you expect, i.e. a false match,
+try to increase ``MinTargetSize`` to make Sikuli be more robust to small details.
+
+You can tune this parameter using the following Jython code.
+
+.. sikulicode::
+
+ from org.sikuli.script.natives import Vision
+
+ Vision.setParameter("MinTargetSize", 6) # the default is 12. Setting the size to a smaller value would make the matching algorithm be faster.
+
+
diff --git a/Docs/Python/source/ide-icon-64.png b/Docs/Python/source/ide-icon-64.png
new file mode 100644
index 0000000..d3ffa43
Binary files /dev/null and b/Docs/Python/source/ide-icon-64.png differ
diff --git a/Docs/Python/source/index.rst b/Docs/Python/source/index.rst
new file mode 100644
index 0000000..861d704
--- /dev/null
+++ b/Docs/Python/source/index.rst
@@ -0,0 +1,109 @@
+Sikuli Documentation for version 1.1+ (01/2014 and later)
+=========================================================
+
+.. sidebar:: Getting Help
+
+ Looking for specific information?
+
+ * Try the :doc:`Table of Contents <toc>`
+ * Look through the :ref:`genindex`
+ * Use the :ref:`search`
+
+ See `other people's questions <https://answers.launchpad.net/sikuli>`_
+ or `ask a question <https://answers.launchpad.net/sikuli/+addquestion>`_ yourself.
+
+ If you think you've found bugs, search or report bugs in
+ our `bug tracker <https://bugs.launchpad.net/sikuli>`_.
+
+This document is being maintained by `Raimund Hocke aka RaiMan
+<https://launchpad.net/~raimund-hocke>`_.
+
+If you have any questions or ideas about this document,
+you are welcome to contact him directly via this link and the email behind.
+
+For questions regarding the
+functions and features of Sikuli itself please use the `Sikuli Questions and
+Answers Board <https://answers.launchpad.net/sikuli>`_.
+
+For hints and links of
+how to get more information and help, please see the sidebar.
+
+**Documentation for previous versions**
+
+The documentation for the versions up to SikuliX-1.0rc3 is still available `here <http://doc.sikuli.org>`_.
+
+How to use this document
+------------------------
+
+Sikuli at the top supports Jython (Python for the Java platform currently at language level 2.5 and later 2.7) as the first scripting language.
+If you are new to
+programming, you can still enjoy using Sikuli to automate simple repetitive
+tasks without learning Python using the Sikuli IDE. A good start might be to have a look at the :doc:`tutorials <tutorials/index>`.
+
+If you plan to write more powerful and
+complex scripts, which might even be structured in classes and modules, you have to dive into the `Python Language
+<http://www.jython.org/jythonbook/en/1.0/>`_.
+
+The features in Sikuli finally are implemented using Java. So you might as well use Sikuli on this Java level API in your Java projects or other Java aware environments. Though this documentation is targeted at the scripting people it contains basic information about the Java level API as well at places, where there are major differences between the two API levels.
+
+The preface of each chapter in this documentaton briefly describes
+a class or a group of methods regarding its basic features. It
+provides general usage information and hints that apply to all methods in
+that chapter. We recommend to read carefully before using the related features.
+
+**If you are totally new with Sikuli**, it might be a good idea to just read
+through this documentation sequentially. An alternative way might be to jump to the
+chapters that you are interested in by scanning the :doc:`table of contents <toc>`.
+A way in the middle would be reading the core classes:
+:py:class:`Region`, then :py:class:`Match`, and finally :py:class:`Screen`.
+
+After that, you can go to any
+places of interest using the :doc:`table of contents<toc>` or
+use the :ref:`genindex` to browse all classes,
+methods and functions in alphabetical order.
+
+Getting Started
+---------------
+
+Tutorials
+^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 2
+
+ tutorials/index
+
+FAQ
+^^^
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ faq/*
+
+* `Read more FAQs on Launchpad <https://answers.launchpad.net/sikuli/+faqs>`_
+
+Complete Guide
+--------------
+.. toctree::
+ :maxdepth: 3
+
+ sikuli-script-index
+
+Extensions
+----------
+.. toctree::
+ :maxdepth: 2
+
+ extensions/index
+
+For Developers
+--------------
+
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ devs/*
+ contributing
+ changes
diff --git a/Docs/Python/source/input.png b/Docs/Python/source/input.png
new file mode 100644
index 0000000..d14a6fb
Binary files /dev/null and b/Docs/Python/source/input.png differ
diff --git a/Docs/Python/source/keys.rst b/Docs/Python/source/keys.rst
new file mode 100644
index 0000000..876de69
--- /dev/null
+++ b/Docs/Python/source/keys.rst
@@ -0,0 +1,120 @@
+Key Constants
+=============
+
+.. py:class:: Key
+
+Applicable usage situations for these predefined constants of special keys and key
+modifiers can be found in :ref:`Acting on a Region <ActingonaRegion>` and :ref:`Low
+Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+
+Special Keys
+------------
+
+The methods supporting the use of special keys are :py:meth:`type() <Region.type>`,
+:py:meth:`keyDown() <Region.keyDown>`, and :py:meth:`keyUp() <Region.keyUp>`.
+
+Usage: `Key.CONSTANT` (where CONSTANT is one of the following key names).
+
+String concatenation with with other text or other key constants is possible using "+". ::
+
+ type("some text" + Key.TAB + "more text" + Key.TAB + Key.ENTER)
+ # or eqivalent
+ type("some text\tmore text\n")
+
+**miscellanous keys** ::
+
+ ENTER, TAB, ESC, BACKSPACE, DELETE, INSERT
+
+.. versionadded:: X1.0-rc3
+
+**miscellanous keys** ::
+
+ SPACE
+
+**function keys** ::
+
+ F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15
+
+**navigation keys** ::
+
+ HOME, END, LEFT, RIGHT, DOWN, UP, PAGE_DOWN, PAGE_UP
+
+**special keys** ::
+
+ PRINTSCREEN, PAUSE, CAPS_LOCK, SCROLL_LOCK, NUM_LOCK
+
+.. versionadded:: X1.0-rc2
+
+**Note:** The status ( on / off ) of the keys ``Key.CAPS_LOCK``, ``Key.NUM_LOCK`` and ``Key.SCROLL_LOCK`` can
+be evaluated with the method :py:meth:`Env.isLockOn() <Env.isLockOn>`.
+
+**numpad keys** ::
+
+ NUM0, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9
+ SEPARATOR, ADD, MINUS, MULTIPLY, DIVIDE
+
+**modifier keys** ::
+
+ ALT, CMD, CTRL, META, SHIFT, WIN
+
+These modifier keys **cannot** be used as a key modifier with functions
+like :py:meth:`type() <Region.type>`, :py:meth:`rightClick() <Region.rightClick>`, etc.
+They can **only** be used with :py:meth:`keyDown() <Region.keyDown>` and :py:meth:`keyUp() <Region.keyUp>`.
+If you need key modifiers, use :py:class:`KeyModifier` instead.
+
+Key Modifiers
+-------------
+
+Methods where key modifiers can be used include: :py:meth:`click() <Region.click>`,
+:py:meth:`dragDrop() <Region.dragDrop>` , :py:meth:`doubleClick()
+<Region.doubleClick>` , :py:meth:`rightClick() <Region.rightClick>`,
+:py:meth:`type() <Region.type>`.
+
+.. deprecated:: X1.0-rc3
+
+**the oldies but goldies** ::
+
+ KEY_ALT, KEY_CTRL, KEY_SHIFT
+
+**system specific Win/Mac** ::
+
+ KEY_WIN, KEY_CMD
+ KEY_META (a synonym for KEY_WIN or KEY_CMD on Windows and Mac respectively).
+
+The old modifiers with a *KEY_* prefix are deprecated. Use ``KeyModifier.CTRL``, ``KeyModifier.ALT``, ``KeyModifier.SHIFT``, ``KeyModifier.META`` instead.
+
+
+.. versionadded:: X1.0-rc3
+.. py:class:: KeyModifier
+
+Usage: `KeyModifier.CONSTANT` (where CONSTANT is one of the following key names).
+
+ .. py:data:: CTRL
+ equivalent to the old KEY_CTRL
+ .. py:data:: SHIFT
+ equivalent to the old KEY_SHIFT
+ .. py:data:: ALT
+ equivalent to the old KEY_ALT
+ .. py:data:: META
+ equivalent to the old KEY_META
+ .. py:data:: CMD
+ equivalent to the old KEY_CMD (and KEY_META)
+ .. py:data:: WIN
+ equivalent to the old KEY_WIN (and KEY_META)
+
+
+The modifier constants can be combined to the modifier parameter by either using "+" or "|", if more than one key modifier is needed. ::
+
+ type(Key.ESC, KeyModifier.CTRL + KeyModifier.ALT)
+ # or equivalent
+ type(Key.ESC, KeyModifier.CTRL | KeyModifier.ALT)
+
+They should **only** be used in the
+modifiers parameter with functions like :py:meth:`type() <Region.type>`, :py:meth:`rightClick() <Region.rightClick>`, etc.
+
+They should **never** be used with :py:meth:`keyDown() <Region.keyDown>` or :py:meth:`keyUp() <Region.keyUp>`.
+
+*Note for Java programming*: These constants are mapped to the according constants of the Java environment
+in the class ``java.awt.event.InputEvent``.
+
diff --git a/Docs/Python/source/location.rst b/Docs/Python/source/location.rst
new file mode 100644
index 0000000..4c74329
--- /dev/null
+++ b/Docs/Python/source/location.rst
@@ -0,0 +1,61 @@
+Location
+========
+
+This class is there as a convenience, to handle single points on the screen directly
+by its position (x, y). It is mainly used in the actions on a region, to directly
+denote the click point. It contains methods, to *move* a point around on the screen.
+
+.. py:class:: Location
+
+ .. py:method:: Location(x,y)
+
+ :param x: x position
+ :param y: y position
+
+ :return: a new location object representing the position (x,y) on the screen
+
+
+ .. py:method:: getX()
+ getY()
+
+ Get the x or y value of a location object
+
+ It is possible to get the values directly by ``location.x`` or ``location.y``.
+ It is also possible to set these values directly by ``location.x = value``
+ or ``location.y = value``.
+
+ **Note:** ``getX()``and ``getY()`` currently (versions 0.10.2 and X 1.0rc2) return float
+ values (Java: double), whereas ``location.x`` and ``location.y`` return integer values.
+
+ .. py:method:: setLocation(x, y)
+
+ Set the location of this object to the specified coordinates.
+
+ .. py:method:: offset(dx, dy)
+
+ Get a new location which is *dx* and *dy* pixels away horizontally and
+ vertically from the current location.
+
+ .. py:method:: above(dy)
+
+ Get a new location which is *dy* pixels vertically above the current
+ location.
+
+ .. py:method:: below(dy)
+
+ Get a new location which is *dy* pixels vertically below the current
+ location.
+
+ .. py:method:: left(dx)
+
+ Get a new location which is *dx* pixels horizontally to the left of the
+ current location.
+
+ .. py:method:: right(dx)
+
+ Get a new location which is *dx* pixels horizontally to the right of the
+ current location.
+
+
+
+
diff --git a/Docs/Python/source/match.rst b/Docs/Python/source/match.rst
new file mode 100644
index 0000000..d51ba12
--- /dev/null
+++ b/Docs/Python/source/match.rst
@@ -0,0 +1,96 @@
+Match
+=====
+
+.. py:class:: Match
+
+An object of class Match represents the result of a successful find operation. It
+has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found.
+
+Since class Match extends class Region, all methods of
+class :py:class:`Region` can be used with a match object.
+
+Creating a Match, Getting Attributes
+------------------------------------
+
+A match object is created as the result of an explicit :ref:`find operation
+<FindinginsideaRegionandWaitingforaVisualEvent>`. It can be
+saved in a variable for later use with actions like :py:meth:`click() <Region.click>`.
+
+It has the rectangle dimension of the image, that was used to search. It knows the
+point of its upper left corner on an existing monitor, where it was found. It knows
+the similarity it was found with and a click point to be used, if set by a pattern.
+
+.. sikulicode::
+
+ # m is a reference to a match object, if found
+ m = find("apple.png")
+ print m # message area: Match[10,0 30x22] score=1.00, target=center
+
+ # m is a reference to a match object, if found
+ m = find(Pattern("apple.png").similar(0.5).targetOffset(100,0))
+ print m # message area: Match[10,0 30x22] score=1.00, target=(105,11)
+
+For all other aspects, the features and attributes of class :py:class:`Region`
+apply.
+
+.. py:class:: Match
+
+ .. py:method:: getScore()
+
+ Get the similarity score the image or pattern was found. The value is
+ between 0 and 1.
+
+ .. py:method:: getTarget()
+
+ Get the :py:class:`location` object that will be used as the click point.
+
+ Typically, when no offset was specified by :py:meth:`Pattern.targetOffset`,
+ the click point is the center of the matched region. If an offset was given,
+ the click point is the offset relative to the center.
+
+.. _IteratingMatches:
+
+Iterating over Matches after findAll()
+--------------------------------------
+
+A find operation :py:meth:`Region.findAll` returns an iterator object that can be
+used to fetch all found matches as match objects one by one. A reference to the
+iterator is stored in the respective
+region and can be accessed using :py:meth:`Region.getLastMatches`.
+
+Important to know:
+
+* per definition, an iterator can be stepped through only once - it is empty
+ afterwards
+
+You can read more about the basics of operations with iterators from the description of
+:py:class:`Finder` class. To save contained matches for later use, you can convert them
+to list.
+
+.. sikulicode::
+
+ findAll("star.png") # find all matches
+ mm = list(getLastMatches())
+
+Example: using ``while:`` with default screen
+
+.. sikulicode::
+
+ findAll("star.png") # find all matches
+ mm = SCREEN.getLastMatches()
+ while mm.hasNext(): # loop as long there is a first and more matches
+ print "found: ", mm.next() # access the next match in the row
+
+ print mm.hasNext() # is False, because mm is empty now
+ print mm.next() # is None, because mm is empty now
+ print SCREEN.getLastMatches().hasNext() # is False also ;-)
+
+Example: using ``with:`` with default screen
+
+.. sikulicode::
+
+ with findAll("star.png") as mm:
+ while mm.hasNext(): # loop as long there is a first and more matches
+ print "found: ", mm.next() # access the next match
+ # mm will be None afterwards (destroyed automatically)
\ No newline at end of file
diff --git a/Docs/Python/source/multi.jpg b/Docs/Python/source/multi.jpg
new file mode 100644
index 0000000..0c97c16
Binary files /dev/null and b/Docs/Python/source/multi.jpg differ
diff --git a/Docs/Python/source/new-in-sikulix.rst b/Docs/Python/source/new-in-sikulix.rst
new file mode 100644
index 0000000..2c33a6b
--- /dev/null
+++ b/Docs/Python/source/new-in-sikulix.rst
@@ -0,0 +1,12 @@
+What is new in SikuliX
+======================
+
+SikuliX is the active branch of developement. (X stands for eXtended)
+For all current users of previous Sikuli versions (0.9, 0.10 or X-1.0rc1...3) it is recommended to upgrade to SikuliX.
+
+Really new or vitally changed features, that came with version SikuliX-1.0.1 (mid 2013) or later are marked
+.. versionadded:: X-1.1
+
+Features not marked are available in Sikuli X-1.0rc3 already. Be aware, that support for versions prior to X-1.0.1 will end with the availability of X-1.1 in early 2014.
+In the documentation sections you might look for the above marker to identify new features.
+
diff --git a/Docs/Python/source/pattern.rst b/Docs/Python/source/pattern.rst
new file mode 100644
index 0000000..c66d522
--- /dev/null
+++ b/Docs/Python/source/pattern.rst
@@ -0,0 +1,78 @@
+Pattern
+=======
+
+.. py:class:: Pattern
+
+A pattern is used, to associate an image file with additional attributes used in find
+operations and when acting on a match object.
+
+**Minimum Similarity:**
+
+While using a :py:meth:`Region.find` operation,
+if only an image file is provided, Sikuli searches
+the region using a default minimum similarity of 0.7.
+This default value can be changed in :py:attr:`Settings.MinSimilarity`.
+
+Using :py:meth:`similar() <Pattern.similar>` you can associate a specific similarity
+value, that will be used as the minimum value, when this pattern object is searched.
+The IDE supports adjusting the minimum similarity of captured images using the Preview Pane
+(internally in the script, the images are turned into a pattern object automatically).
+
+**Click Point:**
+
+Normally when clicking on a match, the center pixel of the associated
+rectangle is used. With a pattern object, you can define a different click point
+relative to the center using :py:meth:`targetOffset() <Pattern.targetOffset>`.
+
+.. py:class:: Pattern
+
+ .. py:method:: Pattern(string)
+
+ :param string: a path to an image file
+ :return: a new pattern object
+
+ This will initialize a new pattern object without any additional attributes.
+ As long as no pattern methods are used additionally, it is the same as just
+ using the image file name itself in the find operation.
+
+ .. py:method:: similar(similarity)
+
+ Return a new Pattern object containing the same attributes (image, click
+ point) with the minimum similarity set to the specified value.
+
+ :param similarity: the minimum similarity to use in a find operation. The
+ value should be between 0 and 1.
+ :return: a new pattern object
+
+ .. py:method:: exact()
+
+ Return a new Pattern object containing the same attributes (image, click
+ point) with the minimum similarity set to 1.0, which means exact match is
+ required.
+
+ :return: a new pattern object
+
+ .. py:method:: targetOffset(dx, dy)
+
+ Return a new Pattern object containing the same attributes (image,
+ similarity), but a different definition for the click. By
+ default, the click point is the center of the found match. By setting the
+ target offset, it is possible to specify a click point other than the
+ center. *dx* and *dy* will be used to calculate the position relative to the
+ center.
+
+ :param dx: x offset from the center
+ :param dy: y offset from the center
+ :return: a new pattern object
+
+ .. py:method:: getFilename()
+
+ Get the filename of the image contained in the Pattern object.
+
+ :return: a filename as a string
+
+ .. py:method:: getTargetOffset()
+
+ Get the target offset of the Pattern object.
+
+ :return: a :py:class:`Location` object as the target offset
diff --git a/Docs/Python/source/platformdirective.py b/Docs/Python/source/platformdirective.py
new file mode 100644
index 0000000..c667a28
--- /dev/null
+++ b/Docs/Python/source/platformdirective.py
@@ -0,0 +1,56 @@
+from sphinx import addnodes
+from sphinx.util.compat import Directive
+from sphinx.util.compat import make_admonition
+from docutils import nodes
+
+class platform_node(nodes.Admonition, nodes.Element): pass
+
+class PlatformDirective(Directive):
+ has_content = True
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec = {}
+
+ def run(self):
+ ret = make_admonition(
+ platform_node, self.name, [self.arguments[0]], self.options,
+ self.content, self.lineno, self.content_offset, self.block_text,
+ self.state, self.state_machine)
+ return ret
+
+
+def MakePlatformDirective(platform):
+ class CustomPlatformDirective(Directive):
+ has_content = True
+ required_arguments = 0
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec = {}
+
+ def run(self):
+ ret = make_admonition(
+ platform_node, self.name, [platform], self.options,
+ self.content, self.lineno, self.content_offset, self.block_text,
+ self.state, self.state_machine)
+ return ret
+ return CustomPlatformDirective
+
+
+def visit_platform_node(self, node):
+ self.visit_admonition(node)
+
+def depart_platform_node(self, node):
+ self.depart_admonition(node)
+
+def setup(app):
+ app.add_node(platform_node,
+ html=(visit_platform_node, depart_platform_node),
+ latex=(visit_platform_node, depart_platform_node),
+ text=(visit_platform_node, depart_platform_node),
+ man=(visit_platform_node, depart_platform_node))
+
+ app.add_directive('platform', PlatformDirective)
+ app.add_directive('windows', MakePlatformDirective('Windows'))
+ app.add_directive('mac', MakePlatformDirective('Mac OS X'))
+ app.add_directive('linux', MakePlatformDirective('Linux'))
diff --git a/Docs/Python/source/platformdirective.pyc b/Docs/Python/source/platformdirective.pyc
new file mode 100644
index 0000000..d2a0ea6
Binary files /dev/null and b/Docs/Python/source/platformdirective.pyc differ
diff --git a/Docs/Python/source/png_icon.png b/Docs/Python/source/png_icon.png
new file mode 100644
index 0000000..b2135d7
Binary files /dev/null and b/Docs/Python/source/png_icon.png differ
diff --git a/Docs/Python/source/popup.png b/Docs/Python/source/popup.png
new file mode 100644
index 0000000..46253ce
Binary files /dev/null and b/Docs/Python/source/popup.png differ
diff --git a/Docs/Python/source/region.rst b/Docs/Python/source/region.rst
new file mode 100644
index 0000000..3f341f7
--- /dev/null
+++ b/Docs/Python/source/region.rst
@@ -0,0 +1,1417 @@
+Region
+======
+
+.. py:class:: Region
+
+Region is a rectangular area on a screen, which is defined by
+ 1. its upper left corner (x, y) as a distance relative to the
+ upper left corner of the screen (0, 0) and
+ 2. its dimension (w, h) as its width and height.
+
+x, y, w, h are integer numbers counting a distance in pixels.
+
+A region knows nothing about its visual content (windows, pictures, graphics,
+text, ...). It only knows :ref:`the position on the screen and its dimension
+<CreatingaRegionSettingandGettingAttributes>`.
+
+New regions can be created, based on an existing region: you can :ref:`extend a
+region in all directions or get the adjacent rectangle <ExtendingaRegion>` up
+to the bounds of the screen horizontally or vertically.
+
+The visual content of a region is evaluated by using methods like
+:py:meth:`Region.find`, which looks for a given rectangular pixel pattern
+(defined by a :py:class:`Pattern` object) within the region. The matching
+content in the region has a similarity between 0 (not found) and 1 (found and
+it is per pixel exactly matches to the pattern). The find can be advised, to
+search with a minimum similarity, so that some minor variations in shape and
+color can be ignored. If nothing else is specified, Sikuli searches with a
+minimum similarity of 0.7, which does what is expected in general cases.
+(This default value can be changed in :py:attr:`Settings.MinSimilarity`.)
+
+:ref:`Find operations <FindinginsideaRegionandWaitingforaVisualEvent>` return a
+:py:class:`Match` object, which has all the attributes and methods of a region
+and can be used in exactly the same way (e.g. to find or click another
+target within it). A :py:class:`Match` has the dimension of the pattern used
+for searching and also knows the position where it was found and its similarity
+score. A region preserves the best match of the last successful find operation
+and all matches of the last successful :py:meth:`Region.findAll` (accessible
+with :py:meth:`Region.getLastMatches`. You can wait for patterns to show up
+using :py:meth:`Region.wait`, to vanish using :py:meth:`Region.waitVanish` or
+just check whether a pattern :py:meth:`exists <Region.exists>` without the need to handle
+:ref:`exceptions <ExceptionFindFailed>`.
+
+Sikuli supports visual event driven programming. You can tell a region
+:ref:`to observe that something appears, vanishes or changes <ObservingVisualEventsinaRegion>`.
+It is possible to wait for the completion of an
+observation or let it run in the background while your following script
+continues running.
+When one of the visual events happens, a handler in your script is called. Each
+region has one observer and each observer can handle multiple visual events.
+It's your responsibility to stop an observation.
+
+.. _CreatingaRegionSettingandGettingAttributes:
+
+Creating a Region, Setting and Getting Attributes
+-------------------------------------------------
+
+In this chapter, you can find information on how to create a new region object.
+The attributes of a region object can be accessed directly or via
+method calls, e.g. to change their position and/or dimension. Here you will find the HowTo's.
+
+.. py:class:: Region
+
+ .. py:method:: Region(x,y,w,h)
+ Region(region)
+ Region(Rectangle)
+
+ Create a region object
+
+ :param x: x position of a rectangle.
+ :param y: y position of a rectangle.
+ :param w: height of a rectangle.
+ :param h: width of a rectangle.
+ :param region: an existing region object.
+ :param rectangle: an existing object of Java class Rectangle
+ :return: a new region object.
+
+ In addition to creating a region by using the tool provided
+ by the IDE, a region can be created by specifying a rectangle. This is how
+ the visual representation in the IDE of such a region is internally set up in
+ the script. A region can also be created by users in run-time using
+ :py:meth:`Region.selectRegion`.
+
+ You can create a region based on another region. This just
+ duplicates the region (new object). This can be useful, if
+ you need the same region with different attributes, such as another
+ :ref:`observation loop <ObservingVisualEventsinaRegion>`
+ or use :py:meth:`Region.setThrowException` to control
+ whether throwing an exception when finding fails. Another way to create a
+ region is to specify a rectangle object or to
+ :ref:`extend an existing region <ExtendingaRegion>`.
+
+ *Note:* The position and dimension attributes are named x, y
+ (values representing the top left corner) and w, h (width and height).
+ You might use these or the get/set methods.
+ ::
+
+ topLeft = Location(reg.x, reg.y) # equivalent to
+ topLeft = reg.getTopLeft()
+
+ theWidth = reg.w # equivalent to
+ theWidth = reg.getW()
+
+ reg.h = theWidth # equivalent to
+ reg.setH(theWidth)
+
+ **Note:** Additionally you might use :py:meth:`selectRegion() <Screen.selectRegion>` to interactively create a new region.
+
+ .. py:method:: setX(number)
+ setY(number)
+ setW(number)
+ setH(number)
+
+ Set the respective attribute of the region to the new value. This
+ effectively moves the region around and/or changes its dimension.
+
+ :param number: the new value
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: moveTo(location)
+
+ Set the position of this region regarding it's top left corner
+ to the given location (the x and y values are modified).
+
+ :param location: location object becomes the new top left corner
+ :return: the modified region object
+
+ ::
+
+ reg.moveTo(anotherLocation) # equivalent to
+ reg.setX(anotherLocation.x); reg.setY(anotherLocation.y)
+
+ .. py:method:: setROI(x,y,w,h)
+ setROI(rectangle)
+ setRect(x,y,w,h)
+ setRect(rectangle)
+
+ Both methods are doing exactly the same: setting position and dimension to
+ new values. The motivation for two names is to make scripts more readable:
+ ``setROI()`` is intended to restrict the search to a smaller area to speed up
+ processing searches (region of interest), whereas ``setRect()`` should be
+ used to redefine a region (which could be enlarging it).
+
+ :param all x, y, w, h: the attributes of a rectangle
+ :param rectangle: a rectangle object
+ :return: None
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: morphTo(region)
+
+ Set the position and dimension of this region to the corresponding values
+ of the region given as parameter. (see: :py:meth:`setRect() <Region.setRect>`)
+
+ :param region: a region object
+ :return: the modified region object
+
+ ::
+
+ reg.morphTo(anotherRegion) # equivalent to
+ r = anotherRegion; reg.setX(r.x); reg.setY(r.y); reg.setW(r.w); reg.setH(r.h)
+
+ .. py:method:: getX()
+ getY()
+ getW()
+ getH()
+
+ Get the respective attribute of the region.
+
+ :return: integer value
+
+ .. py:method:: getCenter()
+
+ Get the center of the region.
+
+ :return: an object of :py:class:`Location`
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getTopLeft()
+ getTopRight()
+ getBottomLeft()
+ getBottomRight()
+
+ Get the location of the region's respective corner
+
+ :return: Location object
+
+ .. py:method:: getScreen()
+
+ Returns the screen object that contains this region.
+
+ :return: a new :py:class:`Screen` object
+
+ This method only makes sense in
+ :ref:`Multi Monitor Environments <MultiMonitorEnvironments>`,
+ since it always returns the default screen in a single monitor environment.
+
+ .. py:method:: getLastMatch()
+ getLastMatches()
+
+ :return: the best match as a :py:class:`Match` object or one or more
+ match objects as an :py:class:`Iterator` object respectively
+
+ All successful find operations (explicit like ``find()`` or
+ implicit like ``click()``), store the best match in the `lastMatch` attribute
+ of the region that was searched. ``findAll()`` stores all found matches into
+ `lastMatches` atribute of the region that was searched as an iterator.
+
+ To access these attributes use ``region.getLastMatch()`` or
+ ``region.getLastMatches()`` respectively.
+
+ How to use the iterator object returned by getLastMatches()
+ :ref:`is documented here <IteratingMatches>`.
+
+ .. py:method:: setAutoWaitTimeout(seconds)
+
+ Set the maximum waiting time for all subsequent find operations.
+
+ :param seconds: a number, which can have a fraction. The internal
+ granularity is milliseconds.
+
+ This method enables all find operations to wait for the given
+ pattern to appear until the specified amount of time has elapsed. The
+ default is 3.0 seconds. This method is intended for users to override
+ this default setting. As such it lets :py:meth:`Region.find` work like
+ :py:meth:`Region.wait`, without being able to set an individual timeout value
+ for a specific find operation.
+
+ .. py:method:: getAutoWaitTimeout()
+
+ Get the current value of the maximum waiting time for find operations.
+
+ :return: timeout in seconds
+
+.. _ExtendingaRegion:
+
+Extending a Region
+------------------
+
+These methods (exception ``inside()``) return a new region object, that is
+based on the specified region (sometimes called spatial operators).
+The range parameter, if given as positive integer number, restricts the
+dimension of the new region (width and/or height respectively) to that
+value. If range is not specified, the new region extends to the respective
+boundary of the screen the given region belongs to. An exception is ``nearby()``,
+which uses 50 as its default range.
+
+**Note**: In all cases the current region remains unchanged.
+
+**Note**: In all cases the new region does not extend beyond any boundary of the
+screen that contains the given region.
+
+.. py:class:: Region
+
+ .. py:method:: offset(location)
+
+ Returns a new Region object, whose upper left corner is relocated
+ adding the location's x and y value to the respective values of the given region.
+ Width and height are the same. So this clones a region at a different place.
+
+ :param location: a :py:class:`Location` object
+ :return: a new :py:class:`Region` object
+
+ ::
+
+ new_reg = reg.offset(Location(xoff, yoff)) # same as
+ new_reg = Region(reg.x + xoff, reg.y + yoff, reg.w, reg.h)
+
+ .. py:method:: inside()
+
+ Returns the same object. Retained for upward compatibility.
+
+ :return: the :py:class:`Region` object
+
+ This method can be used to make scripts more readable.
+ ``region.inside().find()`` is totally equivalent to ``region.find()``.
+
+ .. image:: spatial.jpg
+
+ .. py:method:: nearby([range])
+
+ Returns a new :py:class:`Region` that includes the nearby neighbourhood
+ of the the current region. The new region is defined by extending the
+ current region's dimensions in all directions by *range* number of pixels. The
+ center of the new region remains the same.
+
+ :param range: a positive integer indicating the number of pixels (default = 50).
+ :return: a :py:class:`Region` object
+
+ .. py:method:: above([range])
+
+ Returns a new :py:class:`Region` that is defined above the current region's
+ top border with a height of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the top
+ of the screen. The new region has the same width and x-position as the
+ current region.
+
+ :param range: a positive integer defining the new height
+ :return: a :py:class:`Region` object
+
+ .. py:method:: below([range])
+
+ Returns a new :py:class:`Region` that is defined below the current region's
+ bottom border with a height of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the bottom
+ of the screen. The new region has the same width and x-position as the
+ current region.
+
+ :param range: a positive integer defining the new height
+ :return: a :py:class:`Region` object
+
+ .. py:method:: left([range])
+
+ Returns a new :py:class:`Region` that is defined left of the current region's
+ left border with a width of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the left border
+ of the screen. The new region has the same height and y-position as the
+ current region.
+
+ :param range: a positive integer defining the new width
+ :return: a :py:class:`Region` object
+
+ .. py:method:: right([range])
+
+ Returns a new :py:class:`Region` that is defined right of the current region's
+ right border with a width of *range* number of pixels.
+ So it does not include the current region.
+ If *range* is omitted, it reaches to the right border
+ of the screen. The new region has the same height and y-position as the
+ current region.
+
+ :param range: a positive integer defining the new width
+ :return: a :py:class:`Region` object
+
+.. _FindinginsideaRegionandWaitingforaVisualEvent:
+
+Finding inside a Region and Waiting for a Visual Event
+------------------------------------------------------
+
+Besides :ref:`acting on visual objects <ActingonaRegion>`, finding them is one of the core
+functions of Sikuli.
+
+**PS**: means, that either a :py:class:`Pattern` or a string (path to an image
+file or just plain text) can be used as parameter. A find operation is
+successful, if the given image is found with the given minimum similarity or
+the given text is found exactly. Similarity is a value between 0 and 1 to
+specify how likely the given image looks like the target. By default, the
+similarity is 0.7 if an image rather than a pattern object with a specific
+similarity is given to :py:meth:`Region.find()`.
+
+Normally all these region methods are used as ``reg.find(PS)``, where reg is a
+region object. If written as ``find(PS)`` it acts on the default screen, which is
+an implicit region in this case (see: :ref:`SCREEN as Default Region <DefaultScreen>`).
+But in most cases it is a good idea to use
+``region.find()`` to restrict the search to a smaller region in order to speed up
+processing.
+
+If a find operation is successful, the returned match is additionally stored
+internally with the region that was used for the search. So instead of using a
+variable to store the match ( ``m = reg.find()`` ), you can use ``reg.getLastMatch()`` to access
+it afterwards. Unsuccessful find operations will leave these values unchanged.
+
+.. _PatternNotFound:
+
+By default, if the **visual object (image or text) cannot be found**, Sikuli
+will stop the script by raising an :ref:`Exception FindFailed <ExceptionFindFailed>`.
+This follows the standards of the Python language, so that you could handle such exceptions using
+``try: ... except: ...``.
+
+If you are not used to programming using the Python language or because of other reasons, you might just want to bypass the
+exception handling, which means just ignoring it (None is returned in that case).
+Or you might interactively react on a FindFailed situation (e.g. optionally repeat the find).
+Read more about concepts and options at: :ref:`Exception FindFailed <ExceptionFindFailed>`.
+
+If you have **multiple monitors**, please read
+:ref:`Multi Monitor Environments <MultiMonitorEnvironments>`.
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain, the images itself are specified simply by
+using a string containing the file name (path to an image file).
+
+.. py:class:: Region
+
+ .. py:method:: find(PS)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image file or just plain text)
+ :return: a :py:class:`Match` object that contains the best match or fails if :ref:`not found <PatternNotFound>`
+
+ Find a particular GUI element, which is seen as the given image or
+ just plain text. The given file name of an image specifies the element's
+ appearance. It searches within the region and returns the best match,
+ which shows a similarity greater than the minimum similarity given by
+ the pattern. If no similarity was set for the pattern by
+ :py:meth:`Pattern.similar` before, a default minimum similarity of 0.7
+ is set automatically.
+
+ If autoWaitTimeout is set to a non-zero value, find() just acts as a wait().
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: findAll(PS)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :return: one or more :py:class:`Match` objects as an iterator object or fails if :ref:`not found <PatternNotFound>`
+
+ How to iterate through is :ref:`documented here <IteratingMatches>`.
+
+ Repeatedly find ALL instances of a pattern, until no match can be
+ found anymore, that meets the requirements for a single
+ :py:meth:`Region.find()` with the specified pattern.
+
+ By default, the returned matches are sorted by the similiarty.
+ If you need them ordered by their positions, say the Y coordinates,
+ you have to use Python's `sorted <http://wiki.python.org/moin/HowTo/Sorting/>`_ function. Here is a example of sorting the matches from top to bottom.
+
+ .. sikulicode::
+
+ def by_y(match):
+ return match.y
+
+ icons = findAll("png_icon.png")
+ # sort the icons by their y coordinates and put them into a new variable sorted_icons
+ sorted_icons = sorted(icons, key=by_y)
+ # another shorter version is using lambda.
+ sorted_icons = sorted(icons, key=lambda m:m.y)
+ for icon in sorted_icons:
+ pass # do whatever you want to do with the sorted icons
+
+
+
+ **Side Effect** *lastMatches*: a reference to the returned iterator object containing the
+ found matches is stored with the region that was searched. It can be
+ accessed using getLastMatches() afterwards. How to iterate through an
+ iterator of matches is :ref:`documented here <IteratingMatches>`.
+
+ .. py:method:: wait([PS],[seconds])
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: a :py:class:`Match` object that contains the best match or fails if :ref:`not found <PatternNotFound>`
+
+ If *PS* is not specified, the script just pauses for the specified
+ amount of time. It is still possible to use ``sleep(seconds)`` instead,
+ but this is deprecated.
+
+ If *PS* is specified, it keeps searching the given pattern in the
+ region until the image appears ( would have been found with
+ :py:meth:`Region.find`) or the specified amount of time has elapsed. At
+ least one find operation is performed, even if 0 seconds is specified.)
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ Note: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+ .. py:method:: waitVanish(PS, [seconds])
+
+ Wait until the give pattern *PS* in the region vanishes.
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: *True* if the pattern vanishes within the specified waiting
+ time, or *False* if the pattern stays visible after the waiting time
+ has elapsed.
+
+ This method keeps searching the given pattern in the region until the
+ image vanishes (can not be found with :py:meth:`Region.find` any
+ longer) or the specified amount of time has elapsed. At least one find
+ operation is performed, even if 0 seconds is specified.
+
+ **Note**: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+ .. py:method:: exists(PS, [seconds])
+
+ Check whether the give pattern is visible on the screen.
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text)
+ :param seconds: a number, which can have a fraction, as maximum waiting
+ time in seconds. The internal granularity is milliseconds. If not
+ specified, the auto wait timeout value set by
+ :py:meth:`Region.setAutoWaitTimeout` is used. Use the constant
+ *FOREVER* to wait for an infinite time.
+ :return: a :py:class:`Match` object that contains the best match. None
+ is returned, if nothing is found within the specified waiting time
+
+ Does exactly the same as :py:meth:`Region.wait()`, but no exception is
+ raised in case of FindFailed. So it can be used to symplify scripting
+ in case that you only want to know wether something is there or not to
+ decide how to proceed in your workflow. So it is typically used with an
+ if statement. At least one find operation is performed, even if 0
+ seconds is specified. So specifying 0 seconds saves some time, in case
+ there is no need to wait, since its your intention to get the
+ information "not found" directly.
+
+ **Side Effect** *lastMatch*: the best match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: You may adjust the scan rate (how often a search during the wait
+ takes place) by setting :py:attr:`Settings.WaitScanRate` appropriately.
+
+.. _ObservingVisualEventsinaRegion:
+
+Observing Visual Events in a Region
+-----------------------------------
+
+You can tell a region to observe that something appears or vanishes,
+or something changes in that region. Using the methods
+:py:meth:`Region.onAppear`, :py:meth:`Region.onVanish` and :py:meth:`Region.onChange`,
+you register an event observer that starts its observation when you
+call :py:meth:`Region.observe`. Each region object can have exactly one observation active and
+running. For each observation, you can register as many event observers as
+needed. So you can think of it as grouping some ``wait()`` and ``waitVanish()``
+together and have them processed simultanouesly, while you are waiting for one
+of these events to happen.
+
+It is possible to let the script wait for the completion of an observation or
+let it run in the background, while your script is continuing. With a timing
+parameter you can tell :py:meth:`Region.observe`
+to stop observation anyway after the given time.
+
+When one of the visual events happens, an event handler written by you is
+called. An event handler is a function contained in your script and expects a
+:py:class:`SikuliEvent` object as a parameter.
+During the processing in your handler, the
+observation is paused until your handler has ended. Information between the
+main script and your handlers can be given forward and backward using global
+variables.
+
+It's your responsibility to stop an observation. This can either be done by
+calling :py:meth:`Region.stopObserver`
+or by starting the observation with a timing parameter.
+
+Since you can have as many region objects as needed and each region can have
+one observation active and running. So theoretically it's possible to have as
+many visual events being observered at the same time as needed. But in reality,
+the number of observation is still limited by the system resources available to
+Sikuli at that time.
+
+Be aware, that every observation is a number of different find operations that
+are processed repeatedly. So to speed up processing and keep your script
+acting, you may want to define a region for observation as small as possible.
+You may adjust the scan rate (how often a search during the observation takes
+place) by setting
+:py:attr:`Settings.ObserveScanRate` appropriately.
+
+**PS**: means, that either a Pattern or a String (path to an image file or just
+plain text) can be used as parameter.
+
+.. _ObserveHandler:
+
+**handler**: as a parameter in the following methods, you have to specify the *name*
+of a function, which will be called by the observer, in case the observed event
+happens. The function itself has to be defined in your script before using the
+method that references the function. The existance of the function will be
+checked before starting the script. So to get your script running, you have to
+have at least the following statements in your script::
+
+ def myHandler(event): # you can choose any valid function name
+ # event: can be any variable name, it references the SikuliEvent object
+ pass # add your statements here
+
+ onAppear("path-to-an-image-file", myHandler) # or any other onEvent()
+ observe(10) # observes for 10 seconds
+
+Read :py:class:`SikuliEvent` to know what is contained in a SikuliEvent object
+
+**Note on performance**: Normally all the region methods are used as ``reg.onAppear(PS)``, where ``reg`` is a
+region object. If written as ``onAppear(PS)`` it operates on the default screen being the implicit
+region in this case. Using ``region.onEvent()`` instead will restrict the search to the
+region's rectangle and speed up processing, if region is significantly smaller
+than the whole screen.
+
+**Note**: In case of having more than one Monitor active, read
+:ref:`Multi Monitor Environments <MultiMonitorEnvironments>` before.
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search
+for. These images are named automatically by the IDE and stored together with
+the script, at the time it is saved (we call the location in the file system
+bundle-path). Behind the curtain the images itself are specified by using a
+string containing the file name (path to an image file).
+
+.. py:class:: Region
+
+ .. py:method:: onAppear(PS, handler)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text.
+
+ :param handler: the name of a handler function in the script
+
+ With the given region you register an observer, that should wait for
+ the pattern to be there or to appaear and is activated with the next
+ call of ``observe()``. In the moment the internal find operation on the
+ given pattern is successful during observation, your handler is called
+ and the observation is paused until you return from your handler.
+
+ .. py:method:: onVanish(PS, handler)
+
+ :param PS: a :py:class:`Pattern` object or a string (path to an image
+ file or just plain text.
+
+ :param handler: the name of a handler function in the script
+
+ With the given region you register an observer, that should wait for
+ the pattern to be not there or to vanish and is activated with the next
+ call of ``observe()``. In the moment the internal find operation on the
+ given pattern fails during observation, your handler is called and the
+ observation is paused until you return from your handler.
+
+ .. py:method:: onChange([minChangedSize], handler)
+
+ :param minChangedSize: the minimum size in pixels of a change to trigger a change event.
+ If omitted: 50 is used (see :py:attr:`Settings.ObserveMinChangedPixels`).
+ :param handler: the name of a handler function in the script
+
+ .. versionadded:: X1.0-rc2
+ **minChangedSize**
+
+ With the given region you register an observer, that should wait for
+ the visual content of the given region to change and is activated with
+ the next call of ``observe()``. In the moment the visual content changes
+ during observation, your handler is called and the observation is
+ paused until you return from your handler.
+
+ Here is a example that highlights all changes in an observed region.
+ ::
+
+ def changed(event):
+ print "something changed in ", event.region
+ for ch in event.changes:
+ ch.highlight() # highlight all changes
+ sleep(1)
+ for ch in event.changes:
+ ch.highlight() # turn off the highlights
+ with selectRegion("select a region to observe") as r:
+ # any change in r larger than 50 pixels would trigger the changed function
+ onChange(50, changed)
+ observe(background=True)
+
+ wait(30) # another way to observe for 30 seconds
+ r.stopObserver()
+
+
+ .. py:method:: observe([seconds], [background = False | True])
+
+ Begin observation within the region.
+
+ :param seconds: a number, which can have a fraction, as maximum
+ observation time in seconds. Omit it or use the constant FOREVER to
+ tell the observation to run for an infinite time (or until stopped
+ by a call of ``stopObserve()``).
+
+ :param background: a flag indicating whether observation is run in the
+ background. when set to *True*, the observation will be run in the
+ background and processing of your script is continued immediately.
+ Otherwise the script is paused until the completion of the
+ observation.
+
+ For each region object, only one observation can be running at a given time.
+
+ **Note**: You may adjust the scan rate (how often a search during the
+ observation takes place) by setting :py:attr:`Settings.ObserveScanRate`
+ appropriately.
+
+ .. py:method:: stopObserver()
+
+ Stop observation within the region.
+
+ This must be called on a valid region object. The source region of an
+ observed visual event is available as one of the attributes of the *event*
+ parameter that is passed to the handler function when the function is
+ invoked.
+
+ For example, to stop observation within a handler function, simply
+ call ``event.region.stopObserver()`` inside the handler function.::
+
+ def myHandler(event):
+ event.region.stopObserver() # stops the observation
+
+ onAppear("path-to-an-image-file", myHandler)
+ observe(FOREVER) # observes until stopped in handler
+
+
+.. versionadded:: X1.0-rc2
+.. py:class:: SikuliEvent
+
+ When processing an :ref:`observation in a region <ObservingVisualEventsinaRegion>`,
+ a :ref:`handler function is called <ObserveHandler>`, when one of your
+ registered events :py:meth:`Region.onAppear`, :py:meth:`Region.onVanish` or :py:meth:`Region.onChange` happen.
+
+ The one parameter, you have access to in your handler function is an instance
+ of *Class SikuliEvent*. You have access to the following attributes of the event,
+ that might help to identify the cause of the event and act on the resulting matches.
+
+ *Usage:* ``event.attribute``
+ where ``event`` is the parameter from the definition of your handler function: ``def myHandler(event):``
+
+ .. py:attribute:: type
+
+ The :py:attr:`type` of this event can be
+ :py:const:`SikuliEvent.Type.APPEAR`, :py:const:`SikuliEvent.Type.VANISH`,
+ or :py:const:`SikuliEvent.Type.CHANGE`.
+
+ .. py:attribute:: pattern
+
+ The source pattern that triggered this event. This is only valid
+ in APPEAR and VANISH events.
+
+ .. py:attribute:: region
+
+ The source region of this event.
+
+ .. py:attribute:: match
+
+ In an APPEAR event, *match* saves the top :py:class:`Match` object
+ that appeared in the observed region.
+
+ In a VANISH event, *match* saves the *last* :py:class:`Match` object
+ that was in the observed region but vanished.
+
+ This attribute is not valid in a CHANGE event.
+
+ .. py:attribute:: changes
+
+ This attribute is valid only in a CHANGE event.
+
+ This *changes* attribute is a list of :py:class:`Match` objects that
+ changed and their sizes are at least :py:meth:`minChangedSize <Region.onChange>` pixels.
+
+
+.. _ActingonaRegion:
+
+Acting on a Region
+------------------
+
+Besides :ref:`finding visual objects <FindinginsideaRegionandWaitingforaVisualEvent>`
+on the screen, acting on these elements is one of the
+kernel operations of Sikuli. Mouse actions can be simulated as well as pressing keys
+on a keyboard.
+
+The place on the screen, that should be acted on (in the end just one specific
+pixel, the click point), can be given either as a :py:class:`pattern <Pattern>` like with the find
+operations or by directly referencing a pixel :py:class:`location <Location>`
+or as center of a :py:class:`region <Region>` object (:py:class:`match <Match>` or
+:py:class:`screen <Screen>` also) or the target offset location connected with a :py:class:`match <Match>`. Since all
+these choices can be used with all action methods as needed, they are abbreviated
+and called like this:
+
+**PSMRL:** which means, that either a :py:class:`Pattern` object or a string (path to an image file or just
+plain text) or a :py:class:`Match` or a :py:class:`Region` or a :py:class:`Location` can be used as parameter, in
+detail:
+
+* **P**: *pattern*: a :py:class:`Pattern` object. An implicit find operation is
+ processed first. If successful, the center of the resulting matches rectangle is
+ the click point. If the pattern object has a target offset specified, this is
+ used as click point instead.
+
+* **S**: *string*: a path to an image file or just plain text. An implicit find
+ operation with the default minimum similarity 0.7 is processed first. If
+ successful, the center of the resulting match object is the click point.
+
+* **M**: *match:* a :py:class:`match <Match>` object from a previous find operation. If the match has a target
+ specified it is used as the click point, otherwise the center of the matches
+ rectangle.
+
+* **R**: *region:* a :py:class:`region <Region>` object whose center is used as click point.
+
+* **L**: *location:* a :py:class:`location <Location>` object which by definition represents a point on the
+ screen that is used as click point.
+
+It is possible to simulate pressing the so called :doc:`key modifiers <keys>` together with the mouse
+operation or when simulating keyboard typing. The respective parameter is given by
+one or more predefined constants. If more than one modifier is necessary, they are
+combined by using "+" or "|".
+
+Normally all these region methods are used as ``reg.click(PS)``, where reg is a
+region object. If written as ``click(PS)`` the implicit find is done on the default
+screen being the implicit region in this case (see: :ref:`SCREEN as Default Region <DefaultScreen>`).
+But using ``reg.click(PS)`` will
+restrict the search to the region's rectangle and speed up processing, if region is
+significantly smaller than the whole screen.
+
+Generally all aspects of :ref:`find operations
+<FindinginsideaRegionandWaitingforaVisualEvent>` and of :py:meth:`Region.find`
+apply.
+
+If the find operation was successful, the match that was acted on, can be
+recalled using :py:meth:`Region.getLastMatch`.
+
+As a default, if the **visual object (image or text) cannot be found**, Sikuli
+will stop the script by raising an :ref:`Exception FindFailed <ExceptionFindFailed>`
+(details see: :ref:`not found <PatternNotFound>`).
+
+**Note on IDE**: Capturing is a tool in the IDE, to quickly set up images to search for.
+These images are named automatically by the IDE and stored together with the script,
+at the time it is saved (we call the location in the file system bundle-path).
+Behind the curtain the images itself are specified by using a string containing the
+file name (path to an image file).
+
+**Note**: If you need to implement more sophisticated mouse and keyboard actions look at
+:ref:`Low Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+**Note**: In case of having more than one Monitor active, refer to :ref:`Multi Monitor
+Environments <MultimonitorEnvironments>` for more details.
+
+**Note on Mac**: it might be necessary, to use :py:func:`switchApp` before, to prepare the
+application for accepting the action.
+
+.. py:class:: Region
+
+ .. py:method:: click(PSMRL, [modifiers])
+
+ Perform a mouse click on the click point using the left button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed clicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Example:**
+
+ .. sikulicode::
+
+ # Windows XP
+ click("xpstart.png")
+
+ # Windows Vista
+ click("vistastart.png")
+
+ # Windows 7
+ click("w7start.png")
+
+ # Mac
+ click("apple.png")
+
+
+ .. py:method:: doubleClick(PSMRL, [modifiers])
+
+ Perform a mouse double-click on the click point using the left button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed double-clicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+
+ .. py:method:: rightClick(PSMRL, [modifiers])
+
+ Perform a mouse click on the click point using the right button.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number of performed right cilicks (actually 1). A 0 (integer null)
+ means that because of some reason, no click could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: highlight([seconds])
+
+ Highlight the region for some period of time.
+
+ :param seconds: a decimal number taken as duration in seconds
+
+ The region is highlighted showing a red colored frame around it. If the
+ parameter seconds is given, the script is suspended for the specified time.
+ If no time is given, the highlighting is started and the script continues.
+ When later on the same highlight call without a parameter is made, the
+ highlighting is stopped (behaves like a toggling switch).
+
+ Example::
+
+ m = find(some_image)
+
+ # the red frame will blink for about 7 - 8 seconds
+ for i in range(5):
+ m.highlight(1)
+ wait(0.5)
+
+ # a second red frame will blink as an overlay to the first one
+ m.highlight()
+ for i in range(5):
+ m.highlight(1)
+ wait(0.5)
+ m.highlight()
+
+ # the red frame will grow 5 times
+ for i in range(5):
+ m.highlight(1)
+ m = m.nearby(20)
+
+ **Note**: The red frame is just an overlay in front of all other screen content and
+ stays in its place, independently from the behavior of this other content,
+ which means it is not "connected" to the *content* of the defining region.
+ But it will be adjusted automatically, if you change position and/or dimension
+ of this region in your script, while it is highlighted.
+
+ .. py:method:: hover(PSMRL)
+
+ Move the mouse cursor to hover above a click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :return: the number 1 if the mousepointer could be moved to the click point.
+ A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+
+ .. py:method:: dragDrop(PSMRL, PSMRL, [modifiers])
+
+ Perform a drag-and-drop operation from a starting click point to the target
+ click point indicated by the two PSMRLs respectively.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ If one of the parameters is *PS*, the operation might fail due to :ref:`not Found <PatternNotFound>`.
+
+ **Sideeffect**: when using *PS*, the match of the target can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards. If only the first parameter is
+ given as *PS*, this match is returned by :py:meth:`Region.getLastMatch`.
+
+ **When the operation does not perform as expected** (usually caused by timing
+ problems due to delayed reactions of applications), you may adjust the
+ internal timing parameters :py:attr:`Settings.DelayAfterDrag` and
+ :py:attr:`Settings.DelayBeforeDrop` eventually combined with the internal
+ timing parameter :py:attr:`Settings.MoveMouseDelay`.
+
+ Another solution might be, to use a combination of :py:meth:`Region.drag`
+ and :py:meth:`Region.dropAt` combined with your own ``wait()`` usages. If the mouse
+ movement from source to target is the problem, you might break up the move
+ path into short steps using :py:meth:`Region.mouseMove`.
+
+ **Note**: If you need to implement more sophisticated mouse and keyboard actions
+ look at :ref:`Low Level Mouse and Keyboard Actions <LowLevelMouseAndKeyboardActions>`.
+
+
+ .. py:method:: drag(PSMRL)
+
+ Start a drag-and-drop operation by dragging at the given click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :return: the number 1 if the operation could be performed. A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ The mousepointer is moved to the click point and the left mouse button is
+ pressed and held, until another mouse action is performed (e.g. a
+ :py:meth:`Region.dropAt()` afterwards). This is nomally used to start a
+ drag-and-drop operation.
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: dropAt(PSMRL, [delay])
+
+ Complete a drag-and-drop operation by dropping a previously dragged item at
+ the given target click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param delay: time to wait after in seconds as decimal value
+
+ :return: the number 1 if the operation could be performed. A 0 (integer null) returned
+ means that because of some reason, no move could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ The mousepointer is moved to the click point. After waiting for delay
+ seconds the left mouse button is released. This is normally used to finalize
+ a drag-and-drop operation. If it is necessary to visit one ore more click
+ points after dragging and before dropping, you can use
+ :py:meth:`Region.mouseMove` inbetween.
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ .. py:method:: type([PSMRL], text, [modifiers])
+
+ Type the text at the current focused input field or at a click point
+ specified by *PSMRL*.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :returns: the number 1 if the operation could be
+ performed, otherwise 0 (integer null), which means,
+ that because of some reason, it was not possible or the click
+ could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ This method simulates keyboard typing interpreting the characters of text
+ based on the layout/keymap of the **standard US keyboard (QWERTY)**. Special
+ keys (ENTER, TAB, BACKSPACE, ...) can be incorporated into text by using the
+ constants defined in :doc:`Class Key <keys>` using the standard string concatenation (+).
+
+ If *PSMRL* is given, a click on the clickpoint is performed before typing, to
+ gain the focus. (Mac: it might be necessary, to use :py:func:`switchApp`
+ to give focus to a target application before, to accept typed/pasted characters.)
+
+ If *PSMRL* is omitted, it performs the typing on the current focused visual
+ component (normally an input field or an menu entry that can be selected by
+ typing something).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: If you need to type international characters or you are using
+ layouts/keymaps other than US-QWERTY, you should use :py:meth:`Region.paste`
+ instead. Since type() is rather slow because it simulates each key press,
+ for longer text it is preferrable to use :py:meth:`Region.paste`.
+
+ **Best Practice**: As a general guideline, the best choice is to use ``paste()``
+ for readable text and ``type()`` for action keys like TAB, ENTER, ESC, ....
+ Use one ``type()`` for each key or key combination and be aware, that in some cases
+ a short ``wait()`` after a ``type()`` might be necessary
+ to give the target application some time to react and be prepared
+ for the next Sikuli action.
+
+ .. py:method:: paste([PSMRL], text)
+
+ Paste the text at a click point.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param modifiers: one or more key modifiers
+
+ :returns: the number 1 if the operation could be performed, otherwise 0
+ (integer null), which means,
+ that because of some reason, it was not possible or the click
+ could be performed (in case of *PS* may be :ref:`not Found <PatternNotFound>`).
+
+ Pastes *text* using the clipboard (OS-level shortcut (Ctrl-V or Cmd-V)). So
+ afterwards your clipboard contains *text*. ``paste()`` is a temporary solution for
+ typing international characters or typing on keyboard layouts other than
+ US-QWERTY.
+
+ If *PSMRL* is given, a click on the clickpoint is performed before typing, to
+ gain the focus. (Mac: it might be necessary, to use :py:func:`switchApp`
+ to give focus to a target application before, to accept typed/pasted characters.)
+
+ If *PSMRL* is omitted, it performs the paste on the current focused component
+ (normally an input field).
+
+ **Side Effect** if *PS* was used, the match can be accessed using :py:meth:`Region.getLastMatch` afterwards.
+
+ **Note**: Special keys (ENTER, TAB, BACKSPACE, ...) cannot be used with ``paste()``.
+ If needed, you have to split your complete text into two or more ``paste()``
+ and use ``type()`` for typing the special keys inbetween.
+ Characters like \\n (enter/new line) and \\t (tab) should work as expected with ``paste()``,
+ but be aware of timing problems, when using e.g. intervening \\t to jump
+ to the next input field of a form.
+
+.. _RegionExtractingText:
+
+Extracting Text from a Region
+-----------------------------
+
+.. py:class:: Region
+
+ .. py:method:: text()
+
+ Extract the text contained in the region using OCR.
+
+ :return: the text as a string. Multiple lines of text are separated by intervening '\n'.
+
+ **Note**: Since this feature is still in an **experimental state**, be aware,
+ that in some cases it might not work as expected. If you face any problems
+ look at the `Questions & Answers / FAQ's <https://answers.launchpad.net/sikuli>`_
+ and the `Bugs <https://answers.launchpad.net/sikuli>`_.
+
+.. _LowLevelMouseAndKeyboardActions:
+
+Low-level Mouse and Keyboard Actions
+------------------------------------
+
+.. py:class:: Region
+
+ .. py:method:: mouseDown(button)
+
+ Press the mouse *button* down.
+
+ :param button: one or a combination of the button constants ``Button.LEFT``,
+ ``Button.MIDDLE``, ``Button.RIGHT``.
+
+ :return: the number 1 if the operation is performed successfully, and zero if
+ otherwise.
+
+ The mouse button or buttons specified by *button* are pressed until another
+ mouse action is performed.
+
+ .. py:method:: mouseUp([button])
+
+ Release the mouse button previously pressed.
+
+ :param button: one or a combination of the button constants ``Button.LEFT``,
+ ``Button.MIDDLE``, ``Button.RIGHT``.
+
+ :return: the number 1 if the operation is performed successfully, and zero if
+ otherwise.
+
+ The button specified by *button* is released. If *button* is omitted, all
+ currently pressed buttons are released.
+
+ .. py:method:: mouseMove(PSRML)
+
+ Move the mouse pointer to a location indicated by PSRML.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :return: the number 1 if the operation could be performed. If using *PS*
+ (which invokes an implicity find operation), find fails and you have
+ switched off FindFailed exception, a 0 (integer null) is returned.
+ Otherwise, the script is stopped with a FindFailed exception.
+
+ **Sideeffects**: when using *PS*, the match can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards
+
+ .. py:method:: wheel(PSRML, WHEEL_DOWN | WHEEL_UP, steps)
+
+ Move the mouse pointer to a location indicated by PSRML and turn the mouse
+ wheel in the specified direction by the specified number of steps.
+
+ :param PSMRL: a pattern, a string, a match, a region or a location that
+ evaluates to a click point.
+
+ :param WHEEL_DOWN|WHEEL_UP: one of the two constants denoting the wheeling
+ direction.
+
+ :param steps: an integer indicating the amoung of wheeling.
+
+ **Sideeffects**: when using *PS*, the match can be accessed using
+ :py:meth:`Region.getLastMatch` afterwards
+
+ .. py:method:: keyDown(key | list-of-keys)
+
+ Press and hold the specified key(s) until released by a later call to
+ :py:meth:`Region.keyUp`.
+
+ :param key|list-of-keys: one or more keys (use the consts of class Key). A
+ list of keys is a concatenation of several key constants using "+".
+
+ :return: the number 1 if the operation could be performed and 0 if
+ otherwise.
+
+ .. py:method:: keyUp([key | list-of-keys])
+
+ Release given keys. If no key is given, all currently pressed keys are
+ released.
+
+ :param key|list-of-keys: one or more keys (use the consts of class Key). A
+ list of keys is a concatenation of several key constants using "+".
+
+ :return: the number 1 if the operation could be performed and 0 if
+ otherwise.
+
+.. _ExceptionFindFailed:
+
+Exception FindFailed
+--------------------
+
+As a default, find operations (:ref:`explicit <FindinginsideaRegionandWaitingforaVisualEvent>`
+and :ref:`implicit <ActingonaRegion>`) when not successful
+raise an ``Exception FindFailed``, that will
+stop the script immediately. This is of great help, when developing a script, to
+step by step adjust timing and similarity. When the script runs perfectly, then an
+exception FindFailed signals, that something is not as it should be.
+
+To implement some checkpoints, where you want to asure your workflow, use
+:py:meth:`Region.exists`, that reports a not found situation without raising
+FindFailed (returns False instead).
+
+To run all or only parts of your script without FindFailed exceptions to be raised,
+use :py:meth:`Region.setThrowException` or :py:meth:`Region.setFindFailedResponse`
+to switch it on and off as needed.
+
+For more sophisticated concepts, you can implement your own exception handling using
+the standard Python construct ``try: ... except: ...`` .
+
+.. versionadded:: X1.0-rc2
+
+These are the possibilities to handle "not found" situations:
+ * generally abort a script, if not handled with ``try: ... except: ...``
+ (the default setting or using :py:meth:`setThrowException(True) <Region.setThrowException>`
+ or :py:meth:`setFindFailedResponse(ABORT) <Region.setFindFailedResponse>`)
+ * generally ignore all "not found" situations
+ (using :py:meth:`setThrowException(False) <Region.setThrowException>`
+ or :py:meth:`setFindFailedResponse(SKIP) <Region.setFindFailedResponse>`),
+ * want to be prompted in such a case
+ (using :py:meth:`setFindFailedResponse(PROMPT) <Region.setFindFailedResponse>`)
+ * advise Sikuli to wait forever (be careful with that!)
+ (using :py:meth:`setFindFailedResponse(RETRY) <Region.setFindFailedResponse>`)
+
+.. _FindFailedPrompt:
+
+**Comment on using PROMPT**:
+
+This feature is helpful in following situations:
+
+* you are developing something, that needs an application with it's windows to be in place, but this workflow you want to script later. If it comes to that point, you get the prompt, arrange the app and click *Retry*. Your workflow should continue.
+* you have a workflow, where the user might do some corrective actions, if you get a FindFailed
+* guess you find more ;-)
+
+In case of a FindFailed, you get the following prompt:
+
+.. image:: findfailed-prompt.png
+
+Clicking *Retry* would again try to find the image. *Skip* would continue the script and *Abort* would end the script.
+
+**Examples**: 4 solutions for a case, where you want to decide how to proceed in a
+workflow based on the fact that a specific image can be found. (pass is the python
+statement, that does nothing, but maintains indentation to form the blocks)::
+
+ # --- nice and easy
+ if exists("path-to-image"): # no exception, returns None when not found
+ pass # it is there
+ else:
+ pass # we miss it
+
+ # --- using exception handling
+ # every not found in the try block will switch to the except block
+ try:
+ find("path-to-image")
+ pass # it is there
+ except FindFailed:
+ pass # we miss it
+
+ # --- using setFindFailedResponse
+ setFindFailedResponse(SKIP) # no exception raised, not found returns None
+ if find("path-to-image"):
+ setFindFailedResponse(ABORT) # reset to default
+ pass # it is there
+ else:
+ setFindFailedResponse(ABORT) # reset to default
+ pass # we miss it
+
+ # --- using setThrowException
+ setThrowException(False) # no exception raised, not found returns None
+ if find("path-to-image"):
+ setThrowException(True) # reset to default
+ pass # it is there
+ else:
+ setThrowException(True) # reset to default
+ pass # we miss it
+
+.. py:class:: Region
+
+ **Reminder** If used without specifying a region, the default/primary screen
+ (default region SCREEN) is used.
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: setFindFailedResponse(ABORT | SKIP | PROMPT | RETRY)
+
+ For the specified region set the option, how Sikuli should handle
+ "not found" situations. The option stays in effect until changed
+ by another ``setFindFailedResponse()``.
+
+ :param ABORT: all subsequent find failed operations (explicit or
+ implicit) will raise exception FindFailed (which is the default when a
+ script is started).
+
+ :param SKIP: all subsequent find operations will not raise
+ exception FindFailed. Instead, explicit find operations such as
+ :py:meth:`Region.find` will return *None*. Implicit find operations
+ (action functions) such as :py:meth:`Region.click` will do
+ nothing and return 0.
+
+ :param PROMPT: all subsequent find operations will not raise
+ exception FindFailed. Instead you will be prompted for the way
+ to handle the situation (see :ref:`using PROMPT <FindFailedPrompt>`). Only the current
+ find operation is affected by your response to the prompt.
+
+ :param RETRY: all subsequent find operations will not raise
+ exception FindFailed. Instead, Sikuli will try to find the target
+ until it gets visible. This is equivalent to using ``wait( ... , FOREVER)``
+ instead of ``find()`` or using setAutoWaitTimeout(FOREVER).
+
+ .. py:method:: getFindFailedResponse()
+
+ Get the current setting in this region.
+
+ :return: ABORT or SKIP or PROMPT or RETRY
+
+ Usage::
+
+ val = getFindFailedResponse()
+ if val == ABORT:
+ print "not found will stop script with Exception FindFailed"
+ elif val == SKIP:
+ print "not found will be ignored"
+ elif val == PROMPT:
+ print "when not found you will be prompted"
+ elif val == RETRY:
+ print "we will always wait forever"
+ else:
+ print val, ": this is a bug :-("
+
+ **Note**: It is recommended to use ``set/getFindFailedResponse()`` instead of
+ ``set/getThrowException()`` since the latter ones might be deprecated in the future.
+
+ .. py:method:: setThrowException(False | True)
+
+ By using this method you control, how Sikuli should handle not found
+ situations in this region.
+
+ :param True: all subsequent find operations (explicit or
+ implicit) will raise exception FindFailed (which is the default when a
+ script is started) in case of not found.
+
+ :param False: all subsequent find operations will not raise
+ exception FindFailed. Instead, explicit find operations such as
+ :py:meth:`Region.find` will return *None*. Implicit find operations
+ (action functions) such as :py:meth:`Region.click` will do
+ nothing and return 0.
+
+ .. py:method:: getThrowException()
+
+ :return: ``True`` or ``False``
+
+ Get the current setting as True or False (after start of script, this is True by
+ default) in this region.
+
+.. _GroupingMethodCallsWithRegion:
+
+Grouping Method Calls ( with Region: )
+--------------------------------------
+
+Instead of::
+
+ # reg is a region object
+ if not reg.exists(image1):
+ reg.click(image2)
+ reg.wait(image3, 10)
+ reg.doubleClick(image4)
+
+you can group methods applied to the same region using Python's ``with`` syntax::
+
+
+ # reg is a region object
+ with reg:
+ if not exists(image1):
+ click(image2)
+ wait(image3, 10)
+ doubleClick(image4)
+
+All methods inside the ``with`` block that have the region omitted are redirected to the
+region object specified at the ``with`` statement.
+
+**Note for Sikuli X versions up to rc3**
+
+This should work for Regions and Region-like objects (Region, Screen, App.window()).
+Match objects have to be made a Region explicitly using ``Region(some_match)``.
+
+This is a general workaround when facing any problems using ``with some_region:``.
+
+Special Methods for Developers
+------------------------------
+
+Here we document Region methods, that might be helpful, when developing complex scripts
+with its own API, as it is the fact, when developing an :ref:`Extension <sikuliextensions>`.
+
+Be aware, that these might change without notice (should not be, but might be ;-).
+
+These two methods might help to implement more generic functions than just find() and click().
+
+.. py:class:: Region
+
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getRegionFromPSRM( PSRM )
+
+ Returns a new Region object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match is returned. In case RM, just a copy of the given region is returned.
+
+ :params PSRM: a Pattern, String, Region or Match object
+ :return: a new Region object
+
+ .. versionadded:: X1.0-rc2
+ .. py:method:: getLocationFromPSRML( PSRML )
+
+ Returns a new Location object derived from the given parameter. In case of PS, internally a find() is done inside this region. If found, the match's target offset position is returned. In case RM, just a copy of the given region's respective location (center or target offset) is returned.
+
+ :params PSRML: a Pattern, String, Region, Match or Location object
+ :return: a new Location object
diff --git a/Docs/Python/source/screen.rst b/Docs/Python/source/screen.rst
new file mode 100644
index 0000000..1eb0829
--- /dev/null
+++ b/Docs/Python/source/screen.rst
@@ -0,0 +1,268 @@
+Screen
+======
+
+.. py:class:: Screen
+
+Class Screen is there, to have a representation for a pysical monitor where the
+capturing process (grabbing a rectangle from a screenshot, to be used for further
+processing with find operations is implemented. For :ref:`Multi Monitor Environments
+<MultimonitorEnvironments>` it contains features to map to the relevant monitor.
+
+Since Screen extends class :py:class:`Region`, all methods of
+class Region can be used with a screen object.
+
+Of special interest might be the grouping of region method calls using ``with:`` in Multi Monitor
+Environments: use it for other screens, than the default/primary screen, where
+you have this feature by default.
+
+Be aware, that using the whole screen for find
+operations may have an impact on performance. So if possible either use ``setROI()`` or
+restrict a find operation to a smaller region object (e.g. ``reg.find()``) to speed up
+processing.
+
+
+Screen: Setting, Getting Attributes and Information
+---------------------------------------------------
+
+.. py:class:: Screen
+
+ .. py:method:: Screen([id])
+
+ Create a new Screen object
+
+ :param id: an integer number indicating which monitor in a multi-monitor
+ environment.
+
+ :return: a new screen object.
+
+ It creates a new screen object, that represents the default/primary monitor
+ (whose id is 0), if id is omitted. Numbers 1 and higher represent additional
+ monitors that are available at the time, the script is running (read for
+ details).
+
+ Using numbers, that do not represent an existing monitor, will stop the
+ script with an error. So you may either use getNumberScreens() or exception
+ handling, to avoid this.
+
+ Note: If you want to access the default/primary monitor ( Screen(0) )
+ without creating a new screen object, use the constant reference SCREEN,
+ that is initiated when your script starts: SCREEN=Screen(0).
+
+
+ .. py:method:: getNumberScreens()
+
+ Get the number of screens in a multi-monitor environment at the time the
+ script is running
+
+ .. py:method:: getBounds()
+
+ Get the dimensions of monitor represented by the screen object.
+
+ :return: a rectangle object
+
+ The width and height of the rectangle denote the dimensions of the monitor
+ represented by the screen object. These attributes are obtained from the
+ operating system. They can not be modified using Sikuli script.
+
+.. _DefaultScreen:
+
+Screen as (Default) Region
+--------------------------
+
+Normally all region methods are used as reg.find(PS), where reg is a region object
+(or a screen or a match object). If written as find(PS) it acts on the default
+screen being the implicit region in this case (mapped to the constant reference
+SCREEN). In Multi Monitor Environments this is the primary monitor (use the
+constant reference SCREEN, to access it all the time), that normally is Screen(0),
+but might be another Screen() object depending on your platform.
+
+So its a convenience feature, that can be seen as an implicit use of the python
+construct '''with object:'''.
+
+On the other hand this may slow down processing speed, because of time consuming
+searches. So to speed up processing, saying region.find() will restrict the search
+to the specified rectangle. Another possibility is to say setROI() to restrict the
+search for all following find operations to a smaller region than the whole screen.
+This will speed up processing, if the region is significantly smaller than the whole
+screen.
+
+Capturing
+---------
+
+Capturing is the feature, that allows to grab a rectangle from a screenshot, to save
+it for later use. At each time, a capturing is initiated, a new screenshot is taken.
+
+There are two different versions: the first one :py:meth:`Screen.capture` saves the
+content of the selected rectangle in a file and returns its file name, whereas the
+second one :py:meth:`Screen.selectRegion` just returns the position and dimension of
+the selected rectangle.
+
+Both features are available in the IDE via the buttons in the toolbar.
+
+.. py:class:: Screen
+
+ .. py:method:: capture([region | rectangle | text])
+ capture(x,y,w,h)
+
+ :param region: an existing region object.
+ :param rectangle: an existing rectangle object (e.g., as a return value of
+ another region method).
+ :param text: text to display in the middle of the screen in the interactive
+ mode.
+ :param x: x position of the rectangle to capture
+ :param y: y position of the rectangle to capture
+ :param w: width of the rectangle to capture
+ :param h: height of the rectangle to capture
+
+ :return: the path to the file, where the captured image was saved. In
+ interactive mode, the user may cancel the capturing, in which case
+ *None* is returned.
+
+ **Interactive Mode:** The script enters the screen-capture mode like when
+ clicking the button in the IDE, enabling the user to capture a rectangle on
+ the screen. If no *text* is given, the default "Select a region on the screen"
+ is displayed.
+
+ If any arguments other than text are specified, capture() automatically
+ captures the given rectangle of the screen. In any case, a new screenshot is
+ taken, the content of the selected rectangle is saved in a temporary file.
+ The file name is returned and can be used later in the script as a reference
+ to this image. It can be used directly in cases, where a parameter PS is
+ allowed (e.g. :py:meth:`Region.find`, :py:meth:`Region.click`, ...).
+
+ .. py:method:: selectRegion([text])
+
+ Select a region on the screen interactively
+
+ :param text: Text to display in the middle of the screen.
+ :return: a new :py:class:`Region` object or None, if the user cancels the capturing process.
+
+ **text** is displayed for about 2 seconds in the middle of the screen.
+ If **text** is omitted, the default "Select a region on the screen" is
+ displayed.
+
+ The interactive capture mode is entered and allows the user to select a
+ region the same way as using the selection tool in the IDE.
+
+ **Note:** You should check the result, since the user may cancel the capturing.
+
+.. _MultimonitorEnvironments:
+
+Multi-Monitor Environments
+--------------------------
+
+If more than one monitor is available, Sikuli is able to manage regions and click
+points on these monitors.
+
+.. image:: multi.jpg
+
+The base is the coordinate system (picture above), that positions the primary
+monitor with its upper left corner at (0,0) extending the x-direction to the right
+and the y-direction towards the lower boundary of the screen. The position of
+additional monitors can be configured in the operating system to be on either side
+of the primary monitor, with different positions and sizes. So monitors left of the
+primary will have pixels with negative x-values and monitors above will have
+negative y-values (left and above both x and y are negative).
+
+At script start, Sikuli gets the relevant information from the operating system and
+creates respective screen objects, that have an ID (0 for the first or primary
+monitor, 1 and higher for additional monitors with a maximum of one less than the
+number of screens) and know the rectangle, they cover in the coordinate system.
+These informations are readonly for a script.
+
+These predefined screen objects can be accessed with Screen(0), Screen(1), ... and
+are normally used to create your own screen objects. The possibility to use the
+region methods on a default region mapped to the primary monitor is implemented with
+the constant reference SCREEN. This concept is only available for the primary
+monitor.
+
+How to get the relevant information:
+
+* :py:func:`getNumberScreens() <Screen.getNumberScreens>` returns the number of available screens.
+* :py:func:`getBounds() <Screen.getBounds>` returns the rectangle covered by the default/primary
+ monitor.
+* :py:meth:`Screen.getBounds` returns the rectangle covered by a screen object
+ created using :py:meth:`Screen(id) <Screen.Screen>`.
+
+Be aware: Changes in your system settings are only recognized by the IDE, when it is
+started.
+
+**Windows:** The monitor, that is the first one based on hardware mapping (e.g. the
+laptop monitor), will always be Screen(0). In the Windows settings it is possible to
+place the taskbar on one of the secondary monitors, which makes it the primary
+monitor getting the base coordinates (0,0). The other available monitors are mapped
+around based on your settings. But the Sikuli internal mapping is not changed, so the primary
+monitor might be any of your Screen() objects. Sikuli takes care for that and maps
+SCREEN always to the primary monitor (the one with the (0,0) coordinates).
+So for example you have a laptop with an external monitor, that shows the taskbar
+(is primary monitor):
+
+* SCREEN maps to Screen(1)
+* Screen(0) is your laptop monitor
+
+**Mac:** The monitor, that has the System Menu Bar, is always Screen(0) and mapped
+to the default SCREEN.
+
+**Linux** (Under construction)
+
+With its rectangle, a screen object is always identical with the monitor
+it was created using :py:meth:`Screen(id) <Screen.Screen>`. Using :py:meth:`Region.setROI` to restrict
+the region of interest for find operations has no effect on the base rectangle of
+the screen object.
+
+On the other hand region objects and location objects can be positioned anywhere in
+the coordinate system. Only when a find operation or a click action has to be
+performed, the objects rectangle or point has to be inside the rectangle of an
+existing monitor (basically repersented by Screen(0), Screen(1), ...). When
+this condition is met, everything works as expected and known from a single monitor
+system.
+
+With finding and acting there are the following exceptions:
+
+* **Point Outside:** a click point is outside any monitor rectangle. The
+ clickpoint will be mapped to the edges or corners of the primary monitor
+ according to the relative position:
+
+ * to the edges if its x or y value is in the range of the respective edge
+ (right, left, above, below)i
+ * to the corners, if x and y are outside any range of any edge (left/above ->
+ upper left corner, ...)
+
+* **Region Outside:** a region is completely outside any monitor
+
+ * a click action is handled in thesame way as **Point Outside**
+ * a find operation will always fail
+
+* **Region Partially Outside:** a region is partially outside a monitor but
+ not overlapping another monitor
+
+ * a click action is handled in the same way as **Point Outside**
+ * a find operation will be carried out only in the part of region within the
+ bounds of the monitor, excluding the area outside the monitor.
+
+* **Region Across Monitors:** a region lies across multiple monitors:
+
+ * a click action is handled in the same way as **Point Outside**
+ * a find operation will be restricted to the region within the bounds of the
+ monitor that has a smaller *id*.
+
+
+An interactive capture (the user is asked to select an image or a rectangle via
+:py:meth:`Screen.capture` or :py:meth:`Screen.selectRegion`) will automatically be
+restricted to the monitor, where it was started.
+
+A scripted capture using a rectangle or a region
+(i.e. :py:meth:`Screen.capture( region | rectangle ) <Screen.capture>`),
+will be handled accordingly:
+
+* **Region Outside:** no image is captured, *None* is returned
+* **Region Partially Outside:** the returned image will only cover the part
+ inside the monitor
+* **Region Across Monitors:** the returned image will only cover the part
+ inside the monitor with the smallest id.
+
+Based on the knowledge of your monitor configuration, you can now start some further
+evaluations using e.g. :py:meth:`Region.hover` together with
+:py:func:`setShowActions(True) <setShowActions>` and highlighting using :py:meth:`Region.highlight`.
+
+
diff --git a/Docs/Python/source/sikuli-script-index.rst b/Docs/Python/source/sikuli-script-index.rst
new file mode 100644
index 0000000..2b53abf
--- /dev/null
+++ b/Docs/Python/source/sikuli-script-index.rst
@@ -0,0 +1,14 @@
+Everything about Sikuli Script
+==============================
+
+.. toctree::
+ :maxdepth: 2
+
+ globals
+ region
+ screen
+ location
+ match
+ pattern
+ finder
+ keys
diff --git a/Docs/Python/source/sikulidirectives.py b/Docs/Python/source/sikulidirectives.py
new file mode 100644
index 0000000..93388d4
--- /dev/null
+++ b/Docs/Python/source/sikulidirectives.py
@@ -0,0 +1,202 @@
+import sys, cgi
+import glob
+import re
+import keyword, token, tokenize
+import string, cStringIO, StringIO
+
+SIKULI_KEYWORDS = [
+ "find", "wait",
+ "click", "clickAll", "repeatClickAll", "doubleClick",
+ "doubleClickAll", "repeatDoubleClickAll", "rightClick",
+ "dragDrop", "type", "sleep", "popup", "capture", "input",
+ "assertExist", "assertNotExist" ]
+
+HEADER = """
+<pre class="sikuli-code">
+"""
+
+
+FOOTER = """
+</pre>
+"""
+
+_KEYWORD = token.NT_OFFSET + 1
+_SIKULI_KEYWORD = token.NT_OFFSET + 3
+
+_colors = {
+ token.NUMBER: 'dig',
+ token.STRING: 'str',
+ tokenize.COMMENT: 'cmt',
+ _KEYWORD: 'kw',
+ _SIKULI_KEYWORD: 'skw',
+}
+
+if locals().has_key('local_convert'):
+ LOCAL_CONVERT = True
+else:
+ LOCAL_CONVERT = False
+
+class Parser:
+
+ def __init__(self, raw, out = sys.stdout):
+ self.raw = string.strip(raw.expandtabs(4))
+ self.out = out
+
+ def printLineNo(self, lineno):
+ self.out.write("<span class='lineno'>%d</span>" % lineno)
+
+ def format(self, srcdir, destdir):
+ global HEADER
+
+ self.srcdir = srcdir
+ self.destdir = destdir
+
+ # store line offsets in self.lines
+ self.lines = [0, 0]
+ pos = 0
+ while 1:
+ pos = string.find(self.raw, '\n', pos) + 1
+ if not pos: break
+ self.lines.append(pos)
+ self.lines.append(len(self.raw))
+
+ # parse the source and write it
+ self.pos = 0
+ text = StringIO.StringIO(self.raw)
+ #HEADER = HEADER.replace("$FILE", filename)
+ #if LOCAL_CONVERT:
+ # HEADER = HEADER.replace("$HIDE_INFO", "display: none;")
+ self.out.write(HEADER)
+ self.printLineNo(1)
+
+ try:
+ tokenize.tokenize(text.readline, self)
+ except tokenize.TokenError, ex:
+ msg = ex[0]
+ line = ex[1][0]
+ self.out.write("<h3>ERROR: %s</h3>%s\n" % (
+ msg, self.raw[self.lines[line]:]))
+ self.out.write('</font></pre>')
+
+ self.out.write(FOOTER)
+
+ def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line):
+ if 0:
+ print "type", toktype, token.tok_name[toktype], "text", toktext,
+ print "start", srow,scol, "end", erow,ecol, "<br>"
+
+ # calculate new positions
+ oldpos = self.pos
+ newpos = self.lines[srow] + scol
+ self.pos = newpos + len(toktext)
+
+ #print "%d-%d" % (oldpos, newpos)
+ # handle newlines
+ if toktype in [token.NEWLINE, tokenize.NL]:
+ self.out.write('\n')
+ lineno = srow + 1
+ self.printLineNo(lineno)
+ return
+
+
+ # send the original whitespace, if needed
+ if newpos > oldpos:
+ self.out.write(self.raw[oldpos:newpos])
+
+ # skip indenting tokens
+ # hack to force tabspace = 4
+ if toktype in [token.INDENT, token.DEDENT]:
+ #self.pos =
+ #newpos = newpos/2
+ #newpos = self.pos - len(toktext)/2
+ newpos = self.pos
+ self.out.write(self.raw[oldpos:newpos])
+ #print "[I]%d-%d" % (oldpos, newpos)
+ return
+
+
+ # map token type to a color group
+ if token.LPAR <= toktype and toktype <= token.OP:
+ toktype = token.OP
+ elif toktype == token.NAME and keyword.iskeyword(toktext):
+ toktype = _KEYWORD
+ elif toktype == token.NAME and toktext in SIKULI_KEYWORDS:
+ toktype = _SIKULI_KEYWORD
+ color = ''
+ if toktype in _colors:
+ color = _colors.get(toktype)
+
+ if toktype == token.STRING and toktext.endswith(".png\""):
+ m = re.search('[\'\"](.*)[\'\"]',toktext)
+ filename = m.group(1)
+
+ src = "%s/%s" % (self.srcdir, filename)
+ print "copy image %s to %s" % (src, self.destdir)
+ import shutil
+ shutil.copy(src,self.destdir)
+
+ self.out.write('<img src="' + filename + '"/>')
+ return
+
+ if color:
+ self.out.write('<span class="%s">' % (color))
+ self.out.write(cgi.escape(toktext))
+ self.out.write('</span>')
+ else:
+ self.out.write(cgi.escape(toktext))
+
+
+from sphinx.util.compat import Directive
+from docutils import nodes
+from docutils.utils import relative_path
+import os.path
+import os
+
+class SikuliCodeDirective(Directive):
+ required_arguments = 0
+ optional_arguments = 0
+ final_argument_whitespace = True
+ #option_spec = dict([(key, directives.flag) for key in VARIANTS])
+ has_content = True
+
+ def run(self):
+ self.assert_has_content()
+ #txt = "<b>%s</b>" % self.content
+ #print ' '.join(self.content)
+ #x = self.content[0]
+ #x = x.encode('ascii'
+ #print self.state.document.__dict__
+ #print self.state.document.settings.env.__dict__
+ env = self.state.document.settings.env
+ root = env.srcdir
+
+ src = self.state.document.settings._source
+ srcdir = os.path.dirname(src)
+
+ #print env.__dict__
+ relpath = relative_path(root, src)
+ #print relpath
+
+ dest = os.path.join(root, "../build/html", relpath)
+ destdir = os.path.dirname(dest)
+ #print destdir
+
+ if not os.path.exists(destdir):
+ os.makedirs(destdir)
+
+ dir = os.path.dirname(src)
+ #print os.path.basename(src)
+ #print os.path.join(dir, "../build/html")
+ txtout = StringIO.StringIO()
+ txtin = '\n'.join(self.content)
+ p = Parser(txtin,txtout)
+ p.format(srcdir, destdir)
+ #print txti
+ #print txtout.getvalue()
+ txt = txtout.getvalue()
+ return [nodes.raw('', txt, format='html')]
+
+
+
+def setup(app):
+ app.add_directive('sikulicode', SikuliCodeDirective)
diff --git a/Docs/Python/source/sikulidirectives.pyc b/Docs/Python/source/sikulidirectives.pyc
new file mode 100644
index 0000000..8b5b2ac
Binary files /dev/null and b/Docs/Python/source/sikulidirectives.pyc differ
diff --git a/Docs/Python/source/sikulidoc/static/sikulidoc.css b/Docs/Python/source/sikulidoc/static/sikulidoc.css
new file mode 100644
index 0000000..6e094c0
--- /dev/null
+++ b/Docs/Python/source/sikulidoc/static/sikulidoc.css
@@ -0,0 +1,123 @@
+ at import url("sphinxdoc.css");
+
+.sikuli-code {
+ font-size: 1.2em;
+ font-family: "Osaka-mono", Monospace;
+ line-height: 1.5em;
+ display:table-cell;
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ width: 99%; /* remove horizontal scroll-bar when viewing in IE7 */
+ overflow: visible;
+ margin-left: 2em;
+}
+
+.lineno {
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ color: #ccc;
+ position: relative;
+ left: -2.4em;
+ width: 1.5em;
+ margin-right: -1.5em;
+ display:inline-block;
+ text-align:right;
+ font-size: small;
+}
+
+.kw {
+ color: blue;
+}
+.skw {
+ color: rgb(63, 127, 127);
+}
+
+.str {
+ color: rgb(128, 0, 0);
+}
+
+.dig {
+ color: rgb(128, 64, 0);
+}
+
+.cmt {
+ color: #408090;
+}
+
+.info {
+ border-bottom: 1px solid #ddd;
+ padding-bottom: 5px;
+ margin-bottom: 20px;
+ $HIDE_INFO
+}
+
+div.related ul li a, a {
+ color: #9D2900;
+}
+
+a tt {
+ font-size: 1em;
+ color: #9D2900;
+}
+
+div.sphinxsidebar {
+ width: 216px;
+ padding-right: 12px;
+ padding-left: 12px;
+}
+
+.sidebar li {
+ margin-bottom: 5px;
+}
+
+.document img {
+ margin: 10px;
+ border: 1px solid #999;
+ padding: 2px;
+
+ -webkit-box-shadow: 1px 1px 1px #ccc;
+ -moz-box-shadow: 1px 1px 1px #ccc;
+ box-shadow: 1px 1px 1px #ccc;
+
+}
+
+.sikuli-code img {
+ vertical-align: middle;
+ margin: 2px;
+ border: 1px solid #ccc;
+ padding: 2px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-box-shadow: 1px 1px 1px gray;
+ -webkit-box-shadow: 1px 1px 2px gray;
+}
+
+
+.versionmodified {
+ float: right;
+ position:relative;
+ padding:0;
+ padding-right: 5px;
+ margin:0;
+ color:#000;
+ background: #F7F6A6;
+ height: 20px;
+}
+
+/* creates triangle */
+.versionmodified:before {
+ content:"";
+ display:block; /* reduce the damage in FF3.0 */
+ position:absolute;
+ left: -10px;
+ top: 0;
+ width: 0;
+ height: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ border-right:10px solid #F7F6A6;
+}
diff --git a/Docs/Python/source/sikulidoc/theme.conf b/Docs/Python/source/sikulidoc/theme.conf
new file mode 100644
index 0000000..b237fa9
--- /dev/null
+++ b/Docs/Python/source/sikulidoc/theme.conf
@@ -0,0 +1,6 @@
+[theme]
+inherit = sphinxdoc
+stylesheet = sikulidoc.css
+pygments_style = sphinxdoc
+
+[options]
diff --git a/Docs/Python/source/spatial.jpg b/Docs/Python/source/spatial.jpg
new file mode 100644
index 0000000..3c39fd6
Binary files /dev/null and b/Docs/Python/source/spatial.jpg differ
diff --git a/Docs/Python/source/star.png b/Docs/Python/source/star.png
new file mode 100644
index 0000000..649c40b
Binary files /dev/null and b/Docs/Python/source/star.png differ
diff --git a/Docs/Python/source/stars.png b/Docs/Python/source/stars.png
new file mode 100644
index 0000000..e76f9ff
Binary files /dev/null and b/Docs/Python/source/stars.png differ
diff --git a/Docs/Python/source/toc.rst b/Docs/Python/source/toc.rst
new file mode 100644
index 0000000..93307e2
--- /dev/null
+++ b/Docs/Python/source/toc.rst
@@ -0,0 +1,40 @@
+Table of Contents
+=================
+
+Getting Started
+---------------
+
+Tutorials
+^^^^^^^^^
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ tutorials/index
+
+FAQ
+^^^
+.. toctree::
+ :maxdepth: 1
+ :glob:
+
+ faq/*
+
+Complete Guide to Sikuli Script
+-------------------------------
+.. toctree::
+ :maxdepth: 3
+ :glob:
+
+ new-in-sikulix
+ sikuli-script-index
+
+For Hackers and Developers
+--------------------------
+.. toctree::
+ :maxdepth: 2
+ :glob:
+
+ devs/*
+ contributing
+ changes
diff --git a/Docs/Python/source/tutorials/checkone/checkbox.png b/Docs/Python/source/tutorials/checkone/checkbox.png
new file mode 100644
index 0000000..5d3d2e9
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/checkbox.png differ
diff --git a/Docs/Python/source/tutorials/checkone/checkone.rst b/Docs/Python/source/tutorials/checkone/checkone.rst
new file mode 100644
index 0000000..179bad5
--- /dev/null
+++ b/Docs/Python/source/tutorials/checkone/checkone.rst
@@ -0,0 +1,72 @@
+Check the Right Checkbox
+========================
+
+This tutorial demonstrates how to check a particular checkbox when there are
+multiple checkboxes in a window. Consider the following window, which is the window
+for setting the preferences for *Dock* on Mac, and we want to check the checkbox
+indicated by the circle that reads "Minimize Windows into Application Icons."
+
+.. image:: scenario.png
+ :width: 550
+
+Simply looking for the image of the checkbox like below will not work.
+
+.. sikulicode::
+
+ click("checkbox.png")
+
+Sikuli does not know which checkbox we are referring to; it simply clicks on the
+first one it finds. Below is what we will do instead.
+
+First we want to obtain the region covering the content area of the *Dock* pane. One
+way to accomplish this is to use a spatial operator to obtain a region below the
+title bar of the *Dock* pane. The figure below illustrates this strategy.
+
+.. image:: find_title_and_below.png
+ :width: 550
+
+The Sikuli script to do this is:
+
+.. sikulicode::
+
+ r = find("title.png").below(300)
+
+It finds the title bar and then extend the matched region 300 pixels below, using
+the spatial operator :py:meth:`below <Region.below>`. The resulting region is
+assigned to the variable *r*, which is the orange rectangle in the figure above.
+
+Next, we can search within the content region *r* for the label text of the checkbox
+we want to check and click on it.
+
+.. sikulicode::
+
+ t = r.find("label.png")
+ click(t)
+
+If we do ``click(t)``, Sikuli will click on the center of the label. However, what
+we want is to click on the right of the label where the check box is.
+
+Sikuli IDE provides a convenient interface for specifying where to click relative to
+the center of a pattern. This is known as the *target offset*. The interface is
+shown below.
+
+.. image:: interface_offset.png
+ :width: 500
+
+In this interface, we can click on the checkbox to indicate the desired location of
+the click point. In this example, the offset is then determined to be -137 in x,
+which means 137 pixels to the left of the center of the text label. After selecting
+the offset, the thumbnail in the script editor will be updated with a small red
+cross to indicate the new click point.
+
+.. sikulicode::
+
+ t = r.find("label_offset.png")
+ click(t)
+
+Then, the call ``click(t)`` will do the right thing, clicking on the checkbox
+instead of the center of the text label.
+
+
+
+
diff --git a/Docs/Python/source/tutorials/checkone/find_title_and_below.png b/Docs/Python/source/tutorials/checkone/find_title_and_below.png
new file mode 100644
index 0000000..64b2892
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/find_title_and_below.png differ
diff --git a/Docs/Python/source/tutorials/checkone/interface_offset.png b/Docs/Python/source/tutorials/checkone/interface_offset.png
new file mode 100644
index 0000000..e5ef3ba
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/interface_offset.png differ
diff --git a/Docs/Python/source/tutorials/checkone/label.png b/Docs/Python/source/tutorials/checkone/label.png
new file mode 100644
index 0000000..817aac5
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/label.png differ
diff --git a/Docs/Python/source/tutorials/checkone/label_offset.png b/Docs/Python/source/tutorials/checkone/label_offset.png
new file mode 100644
index 0000000..ea8ce8e
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/label_offset.png differ
diff --git a/Docs/Python/source/tutorials/checkone/scenario.png b/Docs/Python/source/tutorials/checkone/scenario.png
new file mode 100644
index 0000000..bc989b6
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/scenario.png differ
diff --git a/Docs/Python/source/tutorials/checkone/title.png b/Docs/Python/source/tutorials/checkone/title.png
new file mode 100644
index 0000000..a2d251f
Binary files /dev/null and b/Docs/Python/source/tutorials/checkone/title.png differ
diff --git a/Docs/Python/source/tutorials/goodbyetrash/goodbyetrash.rst b/Docs/Python/source/tutorials/goodbyetrash/goodbyetrash.rst
new file mode 100644
index 0000000..069e888
--- /dev/null
+++ b/Docs/Python/source/tutorials/goodbyetrash/goodbyetrash.rst
@@ -0,0 +1,33 @@
+Goodbye Trash (Mac)
+===================
+
+In this tutorial, we will write a Sikuli Script to automate the operation of
+clearing the content of the trash bin. On Mac OS X, this operation takes three
+steps:
+
+1. Click on the Trash icon in the dock
+2. Click on the Empty button in the container window
+3. Click on the Empty Trash button to confirm
+
+To automate this operation, first we need to capture the images of the GUI elements
+that need to be clicked.
+
+.. image:: trash_capture1.png
+.. image:: trash_capture2.png
+.. image:: trash_capture3.png
+
+These captured images will be inserted into the Script editor.
+
+.. image:: trash_editor.png
+
+Then, we can write a sequence of three :py:meth:`click() <Region.click>` statements
+to click on the three elements that need to be clicked in order.
+
+.. image:: trash_code.png
+
+Notice how closely these three lines of code are mapped to the text description of
+the three-step operation earlier. We simply replace the description of each GUI
+element (e.g., Trash bin) by its image directly. How intuitive it is!
+
+Before running the script, make sure the Trash icon is visible on the screen,
+otherwise Sikuli Script can not find it.
diff --git a/Docs/Python/source/tutorials/goodbyetrash/trash_capture1.png b/Docs/Python/source/tutorials/goodbyetrash/trash_capture1.png
new file mode 100644
index 0000000..d283005
Binary files /dev/null and b/Docs/Python/source/tutorials/goodbyetrash/trash_capture1.png differ
diff --git a/Docs/Python/source/tutorials/goodbyetrash/trash_capture2.png b/Docs/Python/source/tutorials/goodbyetrash/trash_capture2.png
new file mode 100644
index 0000000..5ae01cd
Binary files /dev/null and b/Docs/Python/source/tutorials/goodbyetrash/trash_capture2.png differ
diff --git a/Docs/Python/source/tutorials/goodbyetrash/trash_capture3.png b/Docs/Python/source/tutorials/goodbyetrash/trash_capture3.png
new file mode 100644
index 0000000..4d9b582
Binary files /dev/null and b/Docs/Python/source/tutorials/goodbyetrash/trash_capture3.png differ
diff --git a/Docs/Python/source/tutorials/goodbyetrash/trash_code.png b/Docs/Python/source/tutorials/goodbyetrash/trash_code.png
new file mode 100644
index 0000000..983fa54
Binary files /dev/null and b/Docs/Python/source/tutorials/goodbyetrash/trash_code.png differ
diff --git a/Docs/Python/source/tutorials/goodbyetrash/trash_editor.png b/Docs/Python/source/tutorials/goodbyetrash/trash_editor.png
new file mode 100644
index 0000000..79db638
Binary files /dev/null and b/Docs/Python/source/tutorials/goodbyetrash/trash_editor.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/IDE-commandlist.png b/Docs/Python/source/tutorials/helloworld/IDE-commandlist.png
new file mode 100644
index 0000000..88e0365
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/IDE-commandlist.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/helloworld-mac.rst b/Docs/Python/source/tutorials/helloworld/helloworld-mac.rst
new file mode 100644
index 0000000..95cc065
--- /dev/null
+++ b/Docs/Python/source/tutorials/helloworld/helloworld-mac.rst
@@ -0,0 +1,75 @@
+Hello World (Mac)
+=================
+
+Let us begin with a customary Hello World example!
+
+You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:
+
+1. Click on that element
+2. Type a string in that element
+
+The goal of the Hello World script is to automatically type "Hello World" into the
+spotlight search box, like this:
+
+.. image:: ./spotlight-goal.png
+
+Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+Spotlight symbol in the upper-right corner, so that we can tell Sikuli Script what
+to look for and click on.
+
+To simulate a mouse click on the Spotlight symbol, we are going to use the
+:py:meth:`click <Region.click>` function. To tell Sikuli how the target looks like,
+we need to capture the target's image on the screen.
+
+Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.
+
+.. image:: ./toolbar_camera.png
+
+The second method is to press a hot-key (Command + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE's window. You can
+minimize the IDE's window and use this hot-key to switch to the capturing mode.
+
+In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the spotlight
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.
+
+.. image:: ./spotlight-capture.png
+
+After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.
+
+.. image:: ./spotlight-inserted.png
+
+Now, you can write the click function using this image as an argument to tell Sikuli
+to click on spotlight symbol.
+
+.. image:: ./spotlight-click.png
+
+As a convenience, Sikuli IDE provides a *Command List* on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.
+
+.. image:: ./IDE-commandlist.png
+
+Locate the click() function in the list and click on it. If **Auto Capture** is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.
+
+The next step is to tell Sikuli to enter the string "Hello World" into spotlight's
+search box, which can be done with a simple :py:meth:`type <Region.type>` function.
+
+.. image:: ./spotlight-type.png
+
+This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the spotlight symbol, we can expect
+the spotlight search box will be the input that has the focus.
+
+Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!
+
diff --git a/Docs/Python/source/tutorials/helloworld/helloworld-win.rst b/Docs/Python/source/tutorials/helloworld/helloworld-win.rst
new file mode 100644
index 0000000..031b27f
--- /dev/null
+++ b/Docs/Python/source/tutorials/helloworld/helloworld-win.rst
@@ -0,0 +1,75 @@
+Hello World (Windows)
+=====================
+
+Let us begin with a customary Hello World example!
+
+You will learn how to capture a screenshot of a GUI element and write a Sikuli
+Script to do two things:
+
+1. Click on that element
+2. Type a string in that element
+
+The goal of the Hello World script is to automatically type "Hello World" into the
+*Start* menu search box, like this:
+
+.. image:: ./start-goal.png
+
+Now, open the Sikuli IDE. We begin by taking the screenshot of our target, the
+*Start* menu symbol that is usually located in the lower-left corner of the desktop.
+Using this screenshot, we can tell Sikuli script what to click on.
+
+To simulate a mouse click on the *Start* symbol, we are going to use the
+:py:meth:`click <Region.click>` function. To tell Sikuli how the *Start* symbol look
+like, we need to capture its image on teh screen.
+
+Sikuli IDE provides two methods to capture screen images. The first method is to
+click on the camera button in the toolbar. This will bring you to the screen
+capturing mode.
+
+.. image:: ./toolbar_camera.png
+
+The second method is to press a hot-key (Ctrl + Shift + 2). Often the target
+whose image you wish to capture may be covered by the Sikuli IDE's window. You can
+minimize the IDE's window and use this hot-key to switch to the capturing mode.
+
+In the screen capturing mode, the screen will look darker and freeze momentarily.
+The entire desktop becomes like a canvas where you can draw a rectangle around the
+target you want to capture an image of. In this case, the target is the *Start*
+symbol. The cross of red dotted lines shows the center of the rectangle you just
+drew.
+
+.. image:: ./start-capture.png
+
+After you have drawn (or selected) a rectangle, the image within the rectangle will
+be captured and inserted into the script editor at the current cursor position.
+
+.. image:: ./start-inserted.png
+
+Now, you can write the click function using this image as an argument to tell Sikuli
+to click on start symbol.
+
+.. image:: ./start-click.png
+
+As a convenience, Sikuli IDE provides a *Command List* on the left panel. It
+shows a list of the most often used functions. Camera icons in the functions
+indicate these functions expect a captured image as an argument.
+
+.. image:: ./IDE-commandlist.png
+
+Locate the click() function in the list and click on it. If **Auto Capture** is on
+(default), you will be directed to the screen capturing mode in which you can
+capture an image of an interface target to be inserted into the click() function as
+an argument.
+
+The next step is to tell Sikuli to enter the string "Hello World" into search box,
+which can be done with a simple :py:meth:`type <Region.type>` function.
+
+.. image:: ./start-type.png
+
+This function will type the string given in the argument into whichever input
+control that has the focus. After clicking on the *Start* symbol, we can expect
+the search box will be the input that has the focus.
+
+Congratulations! You have just completed your first Sikuli Script. Press the run
+button to see this script in action!
+
diff --git a/Docs/Python/source/tutorials/helloworld/spotlight-capture.png b/Docs/Python/source/tutorials/helloworld/spotlight-capture.png
new file mode 100644
index 0000000..cb4c3b3
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/spotlight-capture.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/spotlight-click.png b/Docs/Python/source/tutorials/helloworld/spotlight-click.png
new file mode 100644
index 0000000..1e70cae
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/spotlight-click.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/spotlight-goal.png b/Docs/Python/source/tutorials/helloworld/spotlight-goal.png
new file mode 100644
index 0000000..3210e91
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/spotlight-goal.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/spotlight-inserted.png b/Docs/Python/source/tutorials/helloworld/spotlight-inserted.png
new file mode 100644
index 0000000..7dbaa72
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/spotlight-inserted.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/spotlight-type.png b/Docs/Python/source/tutorials/helloworld/spotlight-type.png
new file mode 100644
index 0000000..5305e6a
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/spotlight-type.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/start-capture.png b/Docs/Python/source/tutorials/helloworld/start-capture.png
new file mode 100644
index 0000000..a7893d8
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/start-capture.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/start-click.png b/Docs/Python/source/tutorials/helloworld/start-click.png
new file mode 100644
index 0000000..837a37f
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/start-click.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/start-goal.png b/Docs/Python/source/tutorials/helloworld/start-goal.png
new file mode 100644
index 0000000..f09d6a8
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/start-goal.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/start-inserted.png b/Docs/Python/source/tutorials/helloworld/start-inserted.png
new file mode 100644
index 0000000..c497ff5
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/start-inserted.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/start-type.png b/Docs/Python/source/tutorials/helloworld/start-type.png
new file mode 100644
index 0000000..c044630
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/start-type.png differ
diff --git a/Docs/Python/source/tutorials/helloworld/toolbar_camera.png b/Docs/Python/source/tutorials/helloworld/toolbar_camera.png
new file mode 100644
index 0000000..3fa15bd
Binary files /dev/null and b/Docs/Python/source/tutorials/helloworld/toolbar_camera.png differ
diff --git a/Docs/Python/source/tutorials/index.rst b/Docs/Python/source/tutorials/index.rst
new file mode 100644
index 0000000..0ba17b2
--- /dev/null
+++ b/Docs/Python/source/tutorials/index.rst
@@ -0,0 +1,16 @@
+Tutorials
+=========
+
+.. toctree::
+ :maxdepth: 2
+
+ helloworld/helloworld-mac
+ helloworld/helloworld-win
+ goodbyetrash/goodbyetrash
+ uncheckall/uncheckall
+ checkone/checkone
+ sliders/sliders
+ surveillance/surveillance
+ resize/resize
+
+* Slide: `Practical Sikuli: using screenshots for GUI automation and testing <http://www.slideshare.net/vgod/practical-sikuli-using-screenshots-for-gui-automation-and-testing>`_.
diff --git a/Docs/Python/source/tutorials/resize/SafariBR.png b/Docs/Python/source/tutorials/resize/SafariBR.png
new file mode 100644
index 0000000..2ee9e5a
Binary files /dev/null and b/Docs/Python/source/tutorials/resize/SafariBR.png differ
diff --git a/Docs/Python/source/tutorials/resize/SafariTL.png b/Docs/Python/source/tutorials/resize/SafariTL.png
new file mode 100644
index 0000000..ab65bb4
Binary files /dev/null and b/Docs/Python/source/tutorials/resize/SafariTL.png differ
diff --git a/Docs/Python/source/tutorials/resize/SafariTR.png b/Docs/Python/source/tutorials/resize/SafariTR.png
new file mode 100644
index 0000000..a0ccdc1
Binary files /dev/null and b/Docs/Python/source/tutorials/resize/SafariTR.png differ
diff --git a/Docs/Python/source/tutorials/resize/Safari_spatial.png b/Docs/Python/source/tutorials/resize/Safari_spatial.png
new file mode 100644
index 0000000..3f91197
Binary files /dev/null and b/Docs/Python/source/tutorials/resize/Safari_spatial.png differ
diff --git a/Docs/Python/source/tutorials/resize/WindowTitle.png b/Docs/Python/source/tutorials/resize/WindowTitle.png
new file mode 100644
index 0000000..c0c6288
Binary files /dev/null and b/Docs/Python/source/tutorials/resize/WindowTitle.png differ
diff --git a/Docs/Python/source/tutorials/resize/resize.rst b/Docs/Python/source/tutorials/resize/resize.rst
new file mode 100644
index 0000000..225d9a4
--- /dev/null
+++ b/Docs/Python/source/tutorials/resize/resize.rst
@@ -0,0 +1,88 @@
+Resizing a Window
+=================
+
+This tutorial demonstrates how to use Sikuli script to resize a window by dragging
+its bottom-right corner. In order to do so, you have to evaluate the current
+position of this corner on the screen, move the mouse pointer to the applicable
+click point and then perform one or more drag actions.
+
+.. sikulicode::
+
+ def resizeApp(app, dx, dy):
+ switchApp(app)
+ corner = find(Pattern("SafariBR.png").targetOffset(3,14))
+
+ drop_point = corner.getTarget().offset(dx, dy)
+ dragDrop(corner, drop_point)
+
+ resizeApp("Safari", 50, 50)
+
+
+This example defines a function "resizeApp" to enlarge a window on a Mac, and then call
+the function to enlarge the size of Safari by 50x50 pixels. There are several approaches to do this task. The simplest one is directly looking
+for the corner and drag it to enlarge the window.
+
+
+In addition to this simplest approach, we also want to show you more possible ways
+to do the same thing. The following example demonstrates how to use the :ref:`spatial
+operators <ExtendingaRegion>` to extend or restrict your searching regions.
+
+The approach to find this corner is to first identify the most characteristic corner
+of the window (mostly the one with the window buttons) and then try to find the
+other relevant corners, to be sure you get the click point you need. The strategy is
+illustrated below. We want to find the top-right corner, then go to the right to
+find the top-right corner, then go below to find the bottom-right corner.
+
+.. image:: Safari_spatial.png
+
+The script that implements this plan can be written as below:
+
+.. sikulicode::
+
+ #setShowActions(True) # debug
+ switchApp("Safari") # get the frontmost Safari window active
+
+ (clickOffsetX, clickOffsetY) = (3, 18) # evaluated using the preview in IDE
+ mTL = find("SafariTL.png") # find top left
+ #print mTL; hover(mTL) # debug
+
+ mTR = mTL.nearby(200).right().find("SafariTR.png") # find top right
+
+ #print mTR; hover(mTR) # debug
+ mBR = mTR.below().find("SafariBR.png") # find bottom right, the target corner
+ #print mBR # debug
+
+ # move mouse to click point
+ hover(mBR.getCenter().offset(clickOffsetX, clickOffsetY))
+ #exit() # debug
+
+ mouseDown(Button.LEFT) # press and hold left button
+ # move mouse to a new location, may be repeated with other values
+ mouseMove(Env.getMouseLocation().offset(10, 10))
+ mouseUp() # release mouse button
+
+
+The workflow and the mouse-move to the click point can be compressed to a one-liner (no
+check on the title in this case).
+
+.. sikulicode::
+
+ hover(find("SafariTL.png").nearby(200).right().find("SafariTR.png").below().find("SafariBR.png").getCenter().offset(3,18))
+
+General comments:
+
+* whenever possible the find operations are restricted to a region, that should
+ contain the relevant match, to minimize the risk, that something else is
+ found. On top this speeds it up.
+* this example could easily be turned into a helper function, where all
+ images and variables can be given as parameters.
+* the click point was evaluated in the IDE using the preview window, but
+ then put in the code for flexibility and readability.
+* the low level mouse functions are used, so you would be more
+ flexible with continuous movements.
+* the development approach was, to first get everything running
+ to evaluate the relevant corner. In this phase, the comments
+ having a "# debug" were all uncommented to have some feedback.
+ Especially setShowActions() and exit() are very helpful.
+
+
diff --git a/Docs/Python/source/tutorials/sliders/alert.png b/Docs/Python/source/tutorials/sliders/alert.png
new file mode 100644
index 0000000..3c7cdce
Binary files /dev/null and b/Docs/Python/source/tutorials/sliders/alert.png differ
diff --git a/Docs/Python/source/tutorials/sliders/sliders.rst b/Docs/Python/source/tutorials/sliders/sliders.rst
new file mode 100644
index 0000000..a024159
--- /dev/null
+++ b/Docs/Python/source/tutorials/sliders/sliders.rst
@@ -0,0 +1,65 @@
+Working with Sliders
+====================
+
+In this tutorial, we will learn how to use :py:meth:`dragDrop() <Region.dragDrop>`
+and :ref:`spatial operators <ExtendingaRegion>` by writing a number of scripts to
+manipulate sliders.
+
+Suppose we wish to lower the speaking rate of the Text to Speech function. We want
+to drag the slider to the slow side in the Speech preferences window shown below.
+
+.. image:: speech.png
+
+The function that can perform the dragging is :py:meth:`dragDrop()
+<Region.dragDrop>`. This function takes two images as arguments. The first image
+describes the source GUI object to drag and the second image describes the
+appearance of the destination location where the GUI object should be dragged to and
+dropped.
+
+Let us capture the source and destination images respectively.
+
+.. sikulicode::
+
+ dragDrop("thumb.png", "slow.png")
+
+What happen if there are more than two sliders. How can we make sure the right
+slider is dragged? The above example works because the particular window only has
+one slider. How can we deal with cases when there are several instances of similar
+looking GUI components? Let us consider the Sound preferences window shown below.
+
+.. image:: sound.png
+
+Suppose we wish to lower the Alert volume. To make sure Sikuli Script drags the
+right slider, we need a way to tell Sikuli Script to look for the one that is to the
+right of the Alert volume label, not the one next to the Output volume label. Sikuli
+Script provides a set of spatial operators to do exactly this. Here we will apply
+the :py:meth:`right() <Region.right>` operator as follows.
+
+.. sikulicode::
+
+ t = find("alert.png").right().find("thumb.png")
+
+This statement tells Sikuli Script to first find the Alert volume label and then
+find the slider thumb only within the region strictly to the right of the result of
+the first find. The slider thumb found is then stored in the variable t. Now that we
+have identified the desired slider thumb, we can call :py:meth:`dragDrop()
+<Region.dragDrop>` to drag it to the left by giving the image of the Alter volume as
+the target.
+
+.. sikulicode::
+
+ dragDrop(t, "alert.png")
+
+In the above example, we use the image of the Alert volume label to implicitly guide
+the direction of dragging to the left. It is also possible to use relative
+coordinates to explicitly drag to the left, as shown below.
+
+.. sikulicode::
+
+ dragDrop(t, [t.x - 200, t.y])
+
+Here, the (x,y) coordinates of the slider thumb are accessible as the attributes of
+t. We can thus calculate the position 200 pixels to the left of t and ask Sikuli
+Script to drag the thumb to that position.
+
+
diff --git a/Docs/Python/source/tutorials/sliders/slow.png b/Docs/Python/source/tutorials/sliders/slow.png
new file mode 100644
index 0000000..55b9c70
Binary files /dev/null and b/Docs/Python/source/tutorials/sliders/slow.png differ
diff --git a/Docs/Python/source/tutorials/sliders/sound.png b/Docs/Python/source/tutorials/sliders/sound.png
new file mode 100644
index 0000000..8e0e77d
Binary files /dev/null and b/Docs/Python/source/tutorials/sliders/sound.png differ
diff --git a/Docs/Python/source/tutorials/sliders/speech.png b/Docs/Python/source/tutorials/sliders/speech.png
new file mode 100644
index 0000000..fc1eccf
Binary files /dev/null and b/Docs/Python/source/tutorials/sliders/speech.png differ
diff --git a/Docs/Python/source/tutorials/sliders/thumb.png b/Docs/Python/source/tutorials/sliders/thumb.png
new file mode 100644
index 0000000..caf420f
Binary files /dev/null and b/Docs/Python/source/tutorials/sliders/thumb.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/bus.png b/Docs/Python/source/tutorials/surveillance/bus.png
new file mode 100644
index 0000000..09cec89
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/bus.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/bus_capture_bus_symbol.png b/Docs/Python/source/tutorials/surveillance/bus_capture_bus_symbol.png
new file mode 100644
index 0000000..614fb83
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/bus_capture_bus_symbol.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/bus_fullscreen.png b/Docs/Python/source/tutorials/surveillance/bus_fullscreen.png
new file mode 100644
index 0000000..88a4839
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/bus_fullscreen.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/bus_region_thumbnail.png b/Docs/Python/source/tutorials/surveillance/bus_region_thumbnail.png
new file mode 100644
index 0000000..9a8b0e0
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/bus_region_thumbnail.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/bus_toolbar_region.png b/Docs/Python/source/tutorials/surveillance/bus_toolbar_region.png
new file mode 100644
index 0000000..af98231
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/bus_toolbar_region.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/facebook_capture.png b/Docs/Python/source/tutorials/surveillance/facebook_capture.png
new file mode 100644
index 0000000..3b2a2dc
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/facebook_capture.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/facebook_popupmsg.png b/Docs/Python/source/tutorials/surveillance/facebook_popupmsg.png
new file mode 100644
index 0000000..d9cc8de
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/facebook_popupmsg.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/obama.png b/Docs/Python/source/tutorials/surveillance/obama.png
new file mode 100644
index 0000000..73832f8
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/obama.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/region.png b/Docs/Python/source/tutorials/surveillance/region.png
new file mode 100644
index 0000000..5976e63
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/region.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/skype_capture.png b/Docs/Python/source/tutorials/surveillance/skype_capture.png
new file mode 100644
index 0000000..a51eb65
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/skype_capture.png differ
diff --git a/Docs/Python/source/tutorials/surveillance/surveillance.rst b/Docs/Python/source/tutorials/surveillance/surveillance.rst
new file mode 100644
index 0000000..4b850aa
--- /dev/null
+++ b/Docs/Python/source/tutorials/surveillance/surveillance.rst
@@ -0,0 +1,175 @@
+Desktop Surveillance
+====================
+
+Sikuli Script can be used to perform **desktop surveillance**. In this tutorial, we will
+go through a number of exercises to create scripts that can monitor the screen and
+notify us when certain interesting visual event happens.
+
+
+Facebook App
+------------
+
+The first exercise is to create a Facebook app to periodically check our Facebook
+homepage visually and see if a particular friend has recently updated the status
+message. One easy way to detect this event is to look for the friend's face image on
+our Facebook homepage. If found, the friend must have posted a new status message.
+If not found, we should check back again in a few moments.
+
+Let's implement this operation using a ``while:`` loop. First we need to capture a
+screenshot of the friend's face image.
+
+.. image:: facebook_capture.png
+
+To check if the friend's face can be seen on the screen, we use :py:meth:`exists()
+<Region.exists>`,
+which returns True when the face image is found. We set the looping condition to Not
+Found so that the while loop will terminate only when the face image is found. We
+add a :py:func:`sleep(n) <sleep>` statement in the body of the loop to introduce a 5
+second interval between attempts to look for the face image on the screen.
+
+.. sikulicode::
+
+ while not exists("obama.png"):
+ sleep(5)
+
+Alternatively, Sikuli provides a convenient :py:meth:`wait() <Region.wait>` function
+that periodically checks the screen to wait for a given image pattern to appear.
+Using wait(), the above code can be rewritten as:
+
+.. sikulicode::
+
+ wait("obama.png", FOREVER)
+
+The constant *FOREVER* means we want Sikuli to wait indefinitely. If we do not want
+to wait forever, we can replace *FOREVER* with a number to indicate the number of
+seconds to wait until Sikuli should giveup.
+
+.. sikulicode::
+
+ wait("obama.png", 3600) # wait for an hour
+
+After the while loop exits or the wait function returns, we can call
+:py:func:`popup` to display a notification message.
+
+.. sikulicode::
+
+ popup("Obama has updated his message")
+
+This will display a popup message that looks like below:
+
+.. image:: facebook_popupmsg.png
+
+Now we can run this Sikuli Facebook App, sit back and relax, and get notified when
+our friend updates his message.
+
+Skype App
+---------
+
+In the previous exercise, we wrote a script to detect an image's appearance. In this
+exercise, we will do the opposite --- *detecting the disappearance of a visual
+pattern*.
+
+Skype is a great tool that allows us to stay in close contact with our friends even
+if they are in remote parts of the world. However, there might be some unfortunate
+circumstances we may want to avoid being seen online by a certain individual.
+Perhaps the individual talks too much. Perhaps we owe the individual some money. It
+would be nice to know when the individual is offline so that it is safe to get
+online. While Skype does provide a feature to notify us when an individual is
+online, there is no notification feature when the opposite happens.
+
+An automatic logoff notifier would be desirable to deal with this situation. Let us
+build this tool using Sikuli Script. Notice that if an individual is no longer
+online, the combined visual pattern of the green status icon and the individual's
+screen name will disappear. Thus, we can take a screenshot that includes both the
+green icon and the screen name as follows.
+
+.. image:: skype_capture.png
+
+Then, we can write a Sikuli Script to watch for the disappearance of the screenshot
+image we just captured.
+
+.. sikulicode::
+
+ while exists("vgod.png"):
+ sleep(5)
+
+ popup("vgod just logged off")
+
+This script is very similar to the one in the previous exercise. The only difference
+is the removal of the NOT operator from the condition statement for the while loop,
+since we are trying to do the opposite.
+
+Another way to wait for the disappearance of an image is to use the
+:py:meth:`waitVanish() <Region.waitVanish>` function. The above script can be
+rewritten as follows:
+
+.. sikulicode::
+
+ waitVanish("vgod.png", FOREVER)
+ popup("vgod just logged off")
+
+
+Bus Arrival Notifier
+--------------------
+
+The third exercise is to build a bus arrival notification tool. For many bus riders,
+online GPS-based tracking services are very useful. Instead of patiently standing
+outside at a bust stop, braving the freezing wind in the winter or scorching sun in
+the summer, riders can sit comfortably inside in front of their computers, checking
+emails, updating Facebook status, or watching YouTube? videos, or what have you.
+They only need to look at the map every few moments to check the location of the bus
+symbol on the map. Only when the bus is close enough do they have to finally get out
+and walk to the bus top.
+
+Since we care about whether the bus is getting close to the stop, we only need to
+look at the neighborhood around the stop. Thus, we can resize the browser to show
+just that portion of the map, while leaving a lot of screen space to do something
+else, in this case, reading CNN news.
+
+.. image:: bus_fullscreen.png
+
+Let us write a Sikuli Script to do the bus tracking for us. It is possible to define
+a region and ask Sikuli Script to focus only on that region to search for a
+particular visual pattern. This way, Sikuli don't have to waste precious computing
+cycles scanning the whole screen. To do so, let us click on the "select a region"
+button in the toolbar as indicated below.
+
+.. image:: bus_toolbar_region.png
+
+The entire screen will freeze and turn darker, similar to what happen in the screen
+capture mode. Simply draw a rectangle to cover the entire neighborhood map. The
+region covered by this rectangle is visually represented as a thumbnail image of the
+entire desktop where the region is shaded in red.
+
+.. image:: bus_region_thumbnail.png
+
+Next, we capture the screenshot image of the bus symbol so that we can tell Sikuli
+Script to watch for its appearance.
+
+.. image:: bus_capture_bus_symbol.png
+
+
+Now. we can write the following script to check the map and watch for the appearance
+of a bus symbol:
+
+.. sikulicode::
+
+ while not "region.png".inside().exists("bus.png"):
+ sleep(5)
+ popup("bus has arrived")
+
+Interpreting the meaning of the while loop is straightforward---while it is not the
+case that a bus symbol can be found inside the region, sleep for 5 seconds. In other
+words, the while loop will exit only when the bus symbol is found inside the region.
+Then, the popup statement will be executed to notify us the bus has arrived.
+
+Again, the same effect can be achived using :py:meth:`wait() <Region.wait>`. The
+script can be rewritten as:
+
+.. sikulicode::
+
+ "region.png".inside().wait("bus.png",FOREVER)
+ popup("bus has arrived")
+
+
+
diff --git a/Docs/Python/source/tutorials/surveillance/vgod.png b/Docs/Python/source/tutorials/surveillance/vgod.png
new file mode 100644
index 0000000..b64a77f
Binary files /dev/null and b/Docs/Python/source/tutorials/surveillance/vgod.png differ
diff --git a/Docs/Python/source/tutorials/uncheckall/uncheck_capturing.png b/Docs/Python/source/tutorials/uncheckall/uncheck_capturing.png
new file mode 100644
index 0000000..6275c1b
Binary files /dev/null and b/Docs/Python/source/tutorials/uncheckall/uncheck_capturing.png differ
diff --git a/Docs/Python/source/tutorials/uncheckall/uncheck_code.png b/Docs/Python/source/tutorials/uncheckall/uncheck_code.png
new file mode 100644
index 0000000..3a7dda5
Binary files /dev/null and b/Docs/Python/source/tutorials/uncheckall/uncheck_code.png differ
diff --git a/Docs/Python/source/tutorials/uncheckall/uncheck_findall.png b/Docs/Python/source/tutorials/uncheckall/uncheck_findall.png
new file mode 100644
index 0000000..b9a540e
Binary files /dev/null and b/Docs/Python/source/tutorials/uncheckall/uncheck_findall.png differ
diff --git a/Docs/Python/source/tutorials/uncheckall/uncheck_sharing.png b/Docs/Python/source/tutorials/uncheckall/uncheck_sharing.png
new file mode 100644
index 0000000..8d0be35
Binary files /dev/null and b/Docs/Python/source/tutorials/uncheckall/uncheck_sharing.png differ
diff --git a/Docs/Python/source/tutorials/uncheckall/uncheckall.rst b/Docs/Python/source/tutorials/uncheckall/uncheckall.rst
new file mode 100644
index 0000000..47ffeac
--- /dev/null
+++ b/Docs/Python/source/tutorials/uncheckall/uncheckall.rst
@@ -0,0 +1,31 @@
+Uncheck All Checkboxes
+======================
+
+In this tutorial, we will demonstrate how to use a ``for`` loop to interact with
+multiple instances of a GUI component. Suppose we want to uncheck all the check
+boxes in a window, such as the Sharing preferences window shown below:
+
+.. image:: uncheck_sharing.png
+
+
+Unfortunately, there is no "uncheck all" function available. The solution? Write a
+Sikuli Script to look for ALL the checked items and uncheck them automatically. The
+function needed for this operation is :py:meth:`findAll() <Region.findAll>`.
+
+First, let's capture the screenshot image of a checked item.
+
+.. image:: uncheck_capturing.png
+
+Then, we can insert the image into the ``findAll()`` function.
+
+.. image:: uncheck_findall.png
+
+``findAll()`` searches the entire screen for all the matching visual patterns and
+returns a list of locations of those similar patterns. This capability allows us to
+obtain all the checked items are on the screen. Then, we can simply write a for loop
+in standard Python syntax and call ``click()`` on each element in the list.
+
+.. image:: uncheck_code.png
+
+When this script is executed, Sikuli will find all the items that are currently
+checked and click on each item one by one in the loop.
diff --git a/Docs/Python/source/vistastart.png b/Docs/Python/source/vistastart.png
new file mode 100644
index 0000000..e0f12df
Binary files /dev/null and b/Docs/Python/source/vistastart.png differ
diff --git a/Docs/Python/source/w7start.png b/Docs/Python/source/w7start.png
new file mode 100644
index 0000000..b94303e
Binary files /dev/null and b/Docs/Python/source/w7start.png differ
diff --git a/Docs/Python/source/xpstart.png b/Docs/Python/source/xpstart.png
new file mode 100644
index 0000000..54bcc04
Binary files /dev/null and b/Docs/Python/source/xpstart.png differ
diff --git a/Docs/Python/source/youtube.py b/Docs/Python/source/youtube.py
new file mode 100644
index 0000000..381b213
--- /dev/null
+++ b/Docs/Python/source/youtube.py
@@ -0,0 +1,42 @@
+from docutils import nodes
+from docutils.parsers.rst import directives
+
+CODE = """\
+<object type="application/x-shockwave-flash"
+ width="%(width)s"
+ height="%(height)s"
+ class="youtube-embed"
+ data="http://www.youtube.com/v/%(yid)s">
+ <param name="movie" value="http://www.youtube.com/v/%(yid)s"></param>
+ <param name="wmode" value="transparent"></param>%(extra)s
+</object>
+"""
+
+PARAM = """\n <param name="%s" value="%s"></param>"""
+
+def youtube(name, args, options, content, lineno,
+ contentOffset, blockText, state, stateMachine):
+ """ Restructured text extension for inserting youtube embedded videos """
+ if len(content) == 0:
+ return
+ string_vars = {
+ 'yid': content[0],
+ 'width': 640,
+ 'height': 385,
+ 'extra': ''
+ }
+ extra_args = content[1:] # Because content[0] is ID
+ extra_args = [ea.strip().split("=") for ea in extra_args] # key=value
+ extra_args = [ea for ea in extra_args if len(ea) == 2] # drop bad lines
+ extra_args = dict(extra_args)
+ if 'width' in extra_args:
+ string_vars['width'] = extra_args.pop('width')
+ if 'height' in extra_args:
+ string_vars['height'] = extra_args.pop('height')
+ if extra_args:
+ params = [PARAM % (key, extra_args[key]) for key in extra_args]
+ string_vars['extra'] = "".join(params)
+ return [nodes.raw('', CODE % (string_vars), format='html')]
+
+def setup(app):
+ app.add_directive('youtube', youtube, content=True)
diff --git a/Docs/Python/source/youtube.pyc b/Docs/Python/source/youtube.pyc
new file mode 100644
index 0000000..368bb33
Binary files /dev/null and b/Docs/Python/source/youtube.pyc differ
diff --git a/Docs/README.md b/Docs/README.md
new file mode 100644
index 0000000..02997be
--- /dev/null
+++ b/Docs/README.md
@@ -0,0 +1,30 @@
+SikuliX-Docs
+============
+
+The official documentation for SikuliX-1.1+
+
+<hr />
+
+**To get the documentation package without a setup <br />
+just download this zipped repo using the button on the right, unzip and double-click `index.html`**
+
+<hr />
+
+**Beginning with version 1.1.0 the documentation in HTML format will be made available on your local system during setup.**
+
+In the IDE you can open the documentation with the respectivce entry in the Help menu. The command scripts will have an option to open the dcumentation. In all cases it will be opened in your standard browser using the index.html on the first level of the docs folder, so you might as well open it directly and/or add a bookmark to your browser.
+
+**General Information and details about the scripting API**
+
+Currently the only supported scripting language is Jython.
+
+The sources of the docs are contained here in the Python folder and are text files in restructured text (.rst) format.
+
+To build the docs from the sources, you need the Python based Sphinx converter <br />
+(needing Python 2.7+ and using `easy_install -U Sphinx`).
+
+To run the build on Mac/Linux use `make html` (on Windows `make.bat html`) in the folder containing the source folder (for other target formats use without html to see the options). The HTML version will be built in the folder `build/html`.
+
+**Information for the Java API**
+
+The docs contain information about the Java API at places, where there are major differences to the scripting API.
diff --git a/Docs/index.html b/Docs/index.html
new file mode 100644
index 0000000..8386651
--- /dev/null
+++ b/Docs/index.html
@@ -0,0 +1,25 @@
+<html>
+<body>
+<h1 align="center">SikuliX 1.1+ Documentation</h1>
+<hr />
+ <br />
+<h2 align="center"><a href="Python/build/html/index.html">General and SikuliX Script Information</a></h2>
+ <br />
+<div align="center"><strong>
+Textual documentation concentrating on general advices and the API description, <br />
+as it is to be used on the Jython script level, <br />
+but with additional information for the Java API usage, where applicable.
+</strong></div>
+ <br />
+ <br />
+<h2 align="center"><a href="Java/docs/index.html">SikuliX Java API</a></h2>
+ <br />
+<div align="center"><strong>
+The JavaDocs in HTML format <br />
+showing only the officially supported public API on Sikuli's Java level (represented by sikuli-java.jar). <br />
+The "deprecated" marker should be taken into account seriously, <br />
+since the marked element might vanish in the future without notice. <br />
+(earliest though with version 1.2).
+</strong></div>
+</body>
+</html>
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sikuli.git
More information about the pkg-java-commits
mailing list