|  | ; http://dev.adiirc.com/boards/5/topics/169
 | 
  
    |  | ; Scratchpad - quick msl code evaluation
 | 
  
    |  | ; v0.2 by pereba
 | 
  
    |  | 
 | 
  
    |  | on *:Unload:.remove scratchpad.txt
 | 
  
    |  | 
 | 
  
    |  | menu menubar {
 | 
  
    |  |   Scratchpad:sp
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | alias sp { if (!$dialog(Scratchpad)) dialog -mp Scratchpad Scratchpad }
 | 
  
    |  | 
 | 
  
    |  | dialog Scratchpad {
 | 
  
    |  |   title "Scratchpad"
 | 
  
    |  |   size -1 -1 312 220
 | 
  
    |  |   option dbu
 | 
  
    |  |   edit "", 1, 0 0 312 198, multi return hsbar vsbar hsbar vsbar
 | 
  
    |  |   button "Tab", 4, 6 202 28 14
 | 
  
    |  |   button "Evaluate", 5, 40 202 240 14
 | 
  
    |  |   button "i", 6, 286 202 20 14
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | alias -l sendkey {
 | 
  
    |  |   var %name sk $+ $ticks
 | 
  
    |  |   .comopen %name WScript.Shell
 | 
  
    |  |   .comclose %name $com(%name,SendKeys,3,bstr,$replacex($1-,{space},$chr(32)))
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | ; temp file to store code
 | 
  
    |  | alias -l f return scratchpad.txt
 | 
  
    |  | 
 | 
  
    |  | ; populate box if previous code is found
 | 
  
    |  | on *:dialog:Scratchpad:init:*: {
 | 
  
    |  |   if ($isfile($f)) {
 | 
  
    |  |     var %i 2, %l $lines($f)
 | 
  
    |  |     while (%i < %l) {
 | 
  
    |  |       did -a $dname 1 $read($f,n,%i) $+ $crlf
 | 
  
    |  |       inc %i
 | 
  
    |  |     }
 | 
  
    |  |   }
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | on *:dialog:Scratchpad:*:*: {
 | 
  
    |  |   if ($devent = sclick) {
 | 
  
    |  |     ; info button
 | 
  
    |  |     if ($did == 6) {
 | 
  
    |  |       noop $?!="Remember to not add $chr(160) $chr(160) ALIAS NAME {...} $chr(160) $chr(160) this is not supported."
 | 
  
    |  |     }
 | 
  
    |  |     ; tab button
 | 
  
    |  |     if ($did == 4) {
 | 
  
    |  |       did -f $dname 1 | sendkey {space}{space}
 | 
  
    |  |     }
 | 
  
    |  |     ; evaluate button
 | 
  
    |  |     if ($did == 5) {
 | 
  
    |  |       var %code $did(1).lines
 | 
  
    |  |       if (%code) {
 | 
  
    |  | 
 | 
  
    |  |         write -c $f alias sidentifier $chr(123)
 | 
  
    |  |         var %line = 1
 | 
  
    |  |         while (%line <= $did(1).lines) {
 | 
  
    |  |           write -a $f $did(1, %line).text
 | 
  
    |  |           inc %line 
 | 
  
    |  |         }
 | 
  
    |  | 
 | 
  
    |  |         write -a $f $chr(125)
 | 
  
    |  |         .load -rs $f
 | 
  
    |  |         sidentifier
 | 
  
    |  |         .unload -rs $f
 | 
  
    |  |       }
 | 
  
    |  |     }
 | 
  
    |  |   }
 | 
  
    |  | }
 |