Difference between revisions of "Changes in OS 3.6"

From Inspired-Lua Wiki
Jump to navigation Jump to search
(more placeholders)
m
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''''This page's content is merely a placeholder right now. Actual information will come very soon :)'''''
+
In version 3.6 of the Nspire platform, Lua Scripting changes can be found on the API side as well as on the software's SDK side.
  
In version 3.6 of the Nspire platform, Lua Scripting changes can be found on the API Side as well as on the software's Lua SDK side :
+
For the sake of completeness of this page to most users, changes will be accounted for since OS 3.2 (apilevel 2.0). In fact, it's worth noting that OS 3.6 comes with the [[Changes_in_OS_3.4|changes of OS 3.4]] (iPad).
  
= Software's Lua SDK =
+
== SDK ==
  
== Compatibility options ==
+
=== Compatibility options ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
Under the "File" menu, a new menu item appeared : "Set minimum API", which brings up a dialog window asking for the minimum API Level you'd want the user to be on in order to run the script. The format is [1-255].[0-255], although as of Dec. 2013, the available ones are : 1.0, 2.0, 2.2, and 2.3.
 +
If a user opens a script which needs a higher (newer) version than what his platform can provide, an error message will appear (http://i.imgur.com/N14AQq7.png), asking the user to update.
  
== Images ==
+
=== Images ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
If not setting a [[platform.apiLevel]] < "2.3", images can now be inserted as "Resources" that get embedded into the .tns file directly, instead of long strings stored directly within the script source.
 +
Images can be inserted one by one or several at a time using a csv file (see manual). An image cannot exceed 3 MB.
 +
Example code to create an image from a resource image : ''myImage = image.new(_R.IMG.img_1)''
  
== ... ==
+
== API ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
 
  
= API =
+
=== Images ===
 +
* If not setting a [[platform.apiLevel]] < "2.3", [[image.new]] now takes a "TI.ResourceHandle" as its first argument (image) instead of a string ([[TI.Image]] format). Such a type gets created through the SDK when adding an image resource (see above).
  
== Platform ==
+
=== Platform ===
* a new [[platform.apiLevel]] : "2.4"
+
* New : [[platform.apiLevel]] by default : "2.3"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
* New : [[platform.isTabletModeRendering]] -- self explanatory : returns true if the script is running on a tablet device, false otherwise.
 +
* New : Widget / platform.window : getScrollHeight and setScrollHeight, which respectively return and set the height of the available window size when the tablet's on-screen keyboard is shown.
  
== GC (Graphics Context) ==
+
=== Touch ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
* a new "library" (table), [[touch]] :
 +
It is visible on all platforms but may ignore calls to its functions if the platform running the script does not support touch. The touch library offers a low level interface enabling script authors to develop scripts running on all platforms equally. But it also places the effort on the script writer to design and test the script for all different platforms if platform compatibility is desired.
  
== Images ==
+
The [[touch]] table contains :
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
: [[touch.enabled|enabled]] : Returns true if the platform supports touch, otherwise false. If touch is supported, it is recommended to use the ppi values to calculate touch target sizes.
 +
: [[touch.isKeyboardVisible|isKeyboardVisible]]() : Returns true if any keyboard is visible (docked, oating and split keyboards).
 +
: [[touch.isKeyboardAvailable|isKeyboardAvailable]] : Returns true if an on-screen keyboard is available on the platform, otherwise false.
 +
: [[touch.showKeyboard|showKeyboard]](boolean) : Causes the docked ABC keyboard to appear on the screen if no keyboard is currently visible. Default is true.
 +
: [[touch.ppi|ppi]] : Returns pixels per inches along the diagonal of the screen. This function is useful to determine the touch target size of touchable objects on the screen.
 +
: [[touch.xppi|xppi]] : Returns pixels per inches along the x axis of the screen. This function is useful to determine the touch target size of touchable objects on the screen.
 +
: [[touch.yppi|yppi]] : Returns pixels per inches along the y axis of the screen. This function is useful to determine the touch target size of touchable objects on the screen.
  
== Toolpalette ==
+
=== Event handlers ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
+
* New : [[on.keyboardUp]]() which fires when the tablet's on-screen keyboard gets shown
 
+
* New : [[on.keyboardDown]]() which fires when the tablet's on-screen keyboard gets hidden.
== ... ==
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum feugiat, nibh et gravida egestas, tellus nisi varius diam, vel fermentum nisl neque a mauris. Ut nec tincidunt enim. Quisque luctus augue dignissim nisi ornare, in venenatis metus dictum. Nam a sollicitudin diam
 

Latest revision as of 02:02, 7 May 2014

In version 3.6 of the Nspire platform, Lua Scripting changes can be found on the API side as well as on the software's SDK side.

For the sake of completeness of this page to most users, changes will be accounted for since OS 3.2 (apilevel 2.0). In fact, it's worth noting that OS 3.6 comes with the changes of OS 3.4 (iPad).

SDK

Compatibility options

Under the "File" menu, a new menu item appeared : "Set minimum API", which brings up a dialog window asking for the minimum API Level you'd want the user to be on in order to run the script. The format is [1-255].[0-255], although as of Dec. 2013, the available ones are : 1.0, 2.0, 2.2, and 2.3. If a user opens a script which needs a higher (newer) version than what his platform can provide, an error message will appear (http://i.imgur.com/N14AQq7.png), asking the user to update.

Images

If not setting a platform.apiLevel < "2.3", images can now be inserted as "Resources" that get embedded into the .tns file directly, instead of long strings stored directly within the script source. Images can be inserted one by one or several at a time using a csv file (see manual). An image cannot exceed 3 MB. Example code to create an image from a resource image : myImage = image.new(_R.IMG.img_1)

API

Images

  • If not setting a platform.apiLevel < "2.3", image.new now takes a "TI.ResourceHandle" as its first argument (image) instead of a string (TI.Image format). Such a type gets created through the SDK when adding an image resource (see above).

Platform

  • New : platform.apiLevel by default : "2.3"
  • New : platform.isTabletModeRendering -- self explanatory : returns true if the script is running on a tablet device, false otherwise.
  • New : Widget / platform.window : getScrollHeight and setScrollHeight, which respectively return and set the height of the available window size when the tablet's on-screen keyboard is shown.

Touch

  • a new "library" (table), touch :

It is visible on all platforms but may ignore calls to its functions if the platform running the script does not support touch. The touch library offers a low level interface enabling script authors to develop scripts running on all platforms equally. But it also places the effort on the script writer to design and test the script for all different platforms if platform compatibility is desired.

The touch table contains :

enabled : Returns true if the platform supports touch, otherwise false. If touch is supported, it is recommended to use the ppi values to calculate touch target sizes.
isKeyboardVisible() : Returns true if any keyboard is visible (docked, oating and split keyboards).
isKeyboardAvailable : Returns true if an on-screen keyboard is available on the platform, otherwise false.
showKeyboard(boolean) : Causes the docked ABC keyboard to appear on the screen if no keyboard is currently visible. Default is true.
ppi : Returns pixels per inches along the diagonal of the screen. This function is useful to determine the touch target size of touchable objects on the screen.
xppi : Returns pixels per inches along the x axis of the screen. This function is useful to determine the touch target size of touchable objects on the screen.
yppi : Returns pixels per inches along the y axis of the screen. This function is useful to determine the touch target size of touchable objects on the screen.

Event handlers

  • New : on.keyboardUp() which fires when the tablet's on-screen keyboard gets shown
  • New : on.keyboardDown() which fires when the tablet's on-screen keyboard gets hidden.