WaitCursor

From NSB App Studio
Revision as of 17:23, 7 March 2014 by Ghenne (talk | contribs) (Description)
Jump to: navigation, search

WaitCursor true|false|cursorStyle|filename

Description

Set WaitCursor to true to display a wait cursor. The design of the cursor depends on the browser and whether you are running on a mobile device. Set it to false to turn the WaitCursor off again.

If you are running on a non-touchscreen device, a number of cursorStyles are built in. They are: alias, all-scroll, auto, cell, context-menu, col-resize, copy, crosshair, default, e-resize, ew-resize, help, move, n-resize, ne-resize, nesw-resize, ns-resize, nw-resize, nwse-resize, no-drop, none, not-allowed, pointer, progress, row-resize, s-resize, se-resize, sw-resize, text, URL, vertical-text, w-resize, wait, zoom-in, zoom-out, initial, inherit. Call WaitCursor False to hide it again.

You can also give the name of a gif file. You can create your own custom WaitCursors at http://www.ajaxload.info. Remember to also add the name of the file to the manifest. If you give a name, it will display on both touch and non touchscreen devices. Call WaitCursor False to hide it again.

Example (Basic)

Rem WaitCursor Example
WaitCursor True
Sleep 5000
WaitCursor False

Example (JavaScript)

// Cursor Example with Delay

sleep=function(ms) {
  //used for delay to avoid loop that uses up CPU
  var caller = sleep.caller;
  if (caller.sleepTimer) { 
    delete caller.sleepTimer;
    return true;
  }
  caller.sleepTimer = window.setTimeout (function () {
    caller.apply ([]);
  },ms);
  return false;
}

delayPostProcessing=function(ms) {
  /* if you need a delayed response, put all post processing in this function
   * anything outside this function will execute prior to the delay even if it
   * comes after calling this function */

  document.body.style.cursor = 'wait'; //busy style cursor during delay
  NSB.Print("Cursor changed to busy");
  if (!sleep (ms)) return;
  document.body.style.cursor = ''; //normal cursor
  NSB.Print("Cursor restored to normal");
  NSB.Print("Continue processing inside the wrapper after delay");
  NSB.Print("... and continue processing inside the wrapper");
}

preProcessing=function() {
  //do your pre-processing before delay here
  var delayMS=5000; //5000 ms equates to 5 seconds
  NSB.Print("After processing this line, cause delay of " + (delayMS/1000).toString() + " seconds");
  delayPostProcessing(delayMS); //force delay now
  NSB.Print("This line ignores the delay");
}

preProcessing(); //this runs all code prior to the delay
NSB.Print("This line ignores the delay also");

Output