Search code examples
javascriptwindowextendscriptpaletteadobe-scriptui

Javascript/ExtendScript/ScriptUI temporary window message


This should be relatively simple. While writing a script for Adobe InDesign CS6, I'd like to have a window/palette appear briefly—say, about two seconds— to notify the user that the end of the script was reached successfully. How can I go about doing this?


Solution

  • try this:

    main();
    function main(){
          var progress_win = new Window ("palette");
    var progress = progress_bar(progress_win, 2, 'Doing Something. Please be patient');
        delay(1);
          progress.value = progress.value+1;
        delay(1);
        progress.parent.close();
        }
    
    // delay function found here
    //found here http://www.wer-weiss-was.de/theme157/article1143593.html
      function delay(prmSec){
      prmSec *= 1000;
      var eDate = null;
      var eMsec = 0;
      var sDate = new Date();
      var sMsec = sDate.getTime();
      do {
      eDate = new Date();
      eMsec = eDate.getTime();
      } while ((eMsec-sMsec)<prmSec);
      }
    /**
     * Taken from ScriptUI by Peter Kahrel
     * 
     * @param  {Palette} w    the palette the progress is shown on
     * @param  {[type]} stop [description]
     * @return {[type]}      [description]
     */
    function progress_bar (w, stop, labeltext) {
    var txt = w.add('statictext',undefined,labeltext);
    var pbar = w.add ("progressbar", undefined, 1, stop);
    pbar.preferredSize = [300,20];
    w.show ();
    return pbar;
    }