EXOdesk UI Developer Preview, provided below, is aimed to help developers to create and test applications for the EXOdesk.
Later this month, the publication tool will be made available to allow the participants of the EXOdesk Development Challenge to submit their applications.
EXOdesk UI is built on the HTML5 apps runtime EXOengine. An application can be built either with HTML tags or with HTML5 canvas. In all situations, hardware acceleration is enabled.
The debug mode shows the collision color map for each application and some of the metrics provided for up to 256 point of touch: pressure, angles, distances.
Independent access to pressure, speed and angle of movement for up to 256 simultaneous points of touch, enabling advanced behaviors and collaborative applications.
Custom HTML5 keyboards and virtual input devices are easy to create with access from JavaScript to functions enabling keyboard and mouse emulations.
The full title and position of the active application is accessible,
enabling contextual customization of the application behavior.
Instant testing: Edit the HTML5 code source and resource files of your application, then click on EXOdesk Dev to test it.
- exo.app provides an access to the current object properties
- exo.array provides useful functions to manipulate standard JavaScript arrays.
- exo.monitors provides an access to all the monitors connected to the current device
- exo.collisionMap provides functions to manipulate the appearance or your application in the collision map, used to detect when the user or an object touch the application.
- exo.mouse provides an access to the mouse position in all the screens
- exo.touch provides an access to up to 256 points of touch with pressure sensitive (depending on hardware).
Download EXO UI PH Developers Preview
By clicking “Download EXO UI PH Developers Preview” below and installing or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License Agreement please click ‘I refuse’ below and do not install or use the Software. IF YOU ACCEPT, THE FOLLOWING WILL CONSTITUTE A BINDING AGREEMENT BETWEEN YOU, THE USER (You), AND EXOPC AND YOU WILL BE GRANTED THE FOLLOWING LIMITED RIGHTS:
LIMITED LICENSE RIGHTS TO USE:
The following downloadable software (including but not limited to the software development Kit) is provided strictly for the purpose of developing applications for the EXOdesk AND SHALL NOT BE USED IN ANY other manner than the specific contest as described above. The participant understands the limited license of the downloadable software for the period of the contest and limited to the scope of the development of applications for the EXOdesk.
INTELLECTUAL PROPERTY:
The contest participant, grants EXOPC the world-wide rights to use the developed application in a non-commercial context, namely for demonstration purposes as follows (i.) display, copy, reproduce, modify, exhibit, publicly perform, broadcast, rebroadcast, transmit, retransmit, distribute through any electronic means, electronically publish and synchronize with visual images the application, by any and all means and media now known or hereinafter devised, discovered, or developed for purposes of self-promotion offline/online. (ii) EXOPC shall not use the developed application in a commercial manner to generate revenues without having a specific written consent with the contest participant; this shall be negotiated between both parties on a case per case manner. (iii) Contest participant acknowledges and agrees to the fact that some ideas and concepts of applications are in the current development pipeline of EXOPC, thus, the submission of a given application by the contest participant shall not limit in any way EXOPC from developing a similar application, copyright and intellectual property of the application submitted are only regarding the source code and not the ideas and concepts.
LIMITATION OF LIABILITY:
EXOPC CANNOT BE HELD RESPONSIBLE UNDER ANY CIRCUMSTANCES FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY NATURE (INCLUDING, BUT NOT LIMITED TO, DIRECT OR INDIRECT DAMAGES RESULTING FROM THE LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OR THE INABILITY TO USE THE SOFTWARE AND/OR THE RESULTING DEVELOPED APPLICATION BY THE USER USING THE SDK OR ANY OTHER DAMAGE. ADDITIONALLY, EXOPC COULD NOT BE HELD RESPONSIBLE DIRECTLY OR INDIRECTLY OF ANY DAMAGES RESULTING ON MATERIAL, EQUIPMENT OR ANY OTHER HARDWARE AND/OR SOFTWARE DEVICE, THROUGH THE DOWNLOAD AND/OR THE USE OF THE SOFTWARE MADE AVAILABLE FOR DOWNLOAD ON THIS LINK.
WARRANTY
The user understands that he is receiving a free license for the purpose of producing an application for contest purposes. EXOPC does not give any warranty for the downloadable software. Notwithstanding this, we encourage
users to let us know any issues they may encounter related to the software and will be pleased to assist on a voluntarily basis.
> Download EXOdesk Developer Preview v0.1
37 Mb – Executable for Windows 7 or 8
Requirements
Internet Explorer 9, a decent graphic card (Intel GMA 2000 or more), an HD display (1920×1080 pixels) to emulate an EXOdesk.Installation
Copy the executable file on your desktop then double click on it. You will be requested to allow the application to have an admin access.
Support
Please reply to this post for assistance.
Mouse support was added to emulate the touch to test the application without an EXOdesk. When you are not able to click on an icon, click twice, but only when required. Double click should not be used otherwise for a correct behavior.
exo.app.left
Left position of the application in the container.
exo.app.top
Top position of the application in the container.
exo.app.width
Application width
exo.app.height
Application height
exo.app.processId
Returns the unique application process ID. The process ID is unique within the application container.
exo.array.insert(array, elementIndex, stringToInsert, mustBeUnique)
Insert an item in an array.
exo.array.remove(array, itemIndex)
Remove an item in an array.
exo.array.indexOf(array, string)
Returns the index of the item egual to string.
exo.close()
Closes the application container, for example EXO UI or EXO UI physics.
All other applications runing in the same container are closed.exo.collisionMap.setAsRect()
Set the shape of the application in the global collision map as a rectangle.
exo.collisionMap.setAsElliptic()
Set the shape of the application in the global collision map as an ellipse.
exo.collisionMap.indexToColor(value)
Converts an index into a color to be used for a collision map.
Each index from 0 to 510 matches with an unique color.exo.createUniqueId()
Returns a 16 charaters unique ID, containing letters and numbers.
id = exo.createUniqueId()exo.ellipsis(string, length)
Returns a string ending with ellipsis if the string is too long.
exo.monitors.height
Total height of all monitors connected to the computer.
exo.monitors.left
Left position of the first monitor connected to the computer.
exo.monitors.top
Top position of the first monitor connected to the computer.
exo.monitors.width
Total width of all monitors connected to the computer.
exo.monitors.isLandscape()
Returns true if the monitor is in landscape mode, false otherwise.
orientation = exo.monitors[ID].isLandscape()exo.monitors.count
Number of monitors connected to the computer.
exo.mouse.x
Returns the horizontal position of the mouse on the screen.
The value can be negative in case of multiple monitors configuration.exo.mouse.y
Vertical position of the mouse in pixels.
In case of multiple monitors, the value can be negative.exo.mouse.move(x, y)
Move the mouse cursor relatively to the actual mouse position.
exo.mouse.moveTo(x, y)
Moves the mouse cursor to the specified position (in pixels)
exo.openURL(URL)
Opens the specified URL using the default web browser.
exo.random(min, max)
Returns a random number.
exo.replace(source, toReplace, replaceBy)
Replaces all instances of a string by another one.
exo.sendKey
Send a key to the operating system as if the user pressed a key on the keyboard.
The key can be any character code, character, or one of the following values:
ENTER
TAB
BACKSPACE
SPACE
LEFT
DOWN
UP
BOTTOM
HOME
END
PGUP
PGDOWN
CLICK
RCLICK
The syntax is as follow:
exo.sendKey(keyString,shiftPressed, ctrlPressed)exo.sendKeys(string)
Emulates the keyboard input of a complete string.
exo.toHex(integer)
Returns the hexadecimal value of an integer.
This function can be used to convert colors for example.exo.touch.onStart
Function to be called when a finger touch the panel.
exo.touch.onMove
Function to be called when a finger move over the panel.
exo.touch.onEnd
Function to be called when a finger is released from the panel.
exo.touch.points.count
Returns the total number of points of touch recorded from the moment the finger touched the panel.
exo.touch[touchID].points.countexo.touch.points.x
Returns the horizontal position of the specified point of touch.
exo.touch[touchID].points[index].x
To get the point just before the last position of the finger, do as follow:
previousTouch = exo.touch[touchID].points[exo.touch[touchID].points.count – 1] alert(previousTouch.x)exo.touch.points.y
Vertical position of the given point of touch.
exo.touch[touchID].points[index].yexo.touch.x
Returns the last position of the finger specified with touchID.
exo.touch[touchID].xexo.touch.y
Last vertical position of the given touch ID.
exo.touch[touchID].yexo.touch.minID
Minimum touch ID managed during the session.
This can be useful to browse all possible points of touch as follow:
for(ptr = exo.touch.minID; ptr <= exo.touch.maxID; ptr++) {
…
}exo.touch.maxID
Maximum value for a registered touch point. At any time, an higher touch ID can be received from the touch panel.
This value is useful to loop on each possible point of touch.exo.trim(string)
Returns the string without spaces at the begining and at the end of the string.
Source EXOPC lab