Reflex — File Browser

Reflexv0.1 / Reflexv0.1 / Reflex / system / scripts / extensions.mrc

extensions.mrc — 3.74 KB — Download this file

alias extensions {
  if (!$dialog(extensions)) { dialog -mv extensions extensions }
  else { dialog -v extensions extensions }
}
alias extinst { return $datdir $+ extinst.dat }
dialog extensions {
  title "Extensions"
  size -1 -1 193 120
  option dbu
  button "", 1, 3 2 187 102
  button "Get Extensions", 2, 145 106 45 12
  button "Check for Updates", 3, 3 106 55 12, disabled
}
on *:dialog:extensions:init:0: {
  mdx SetMircVersion $version
  mdx MarkDialog $dname
  mdx SetDialog $dname Icon
  mdx SetControlMDX 1 window > $mdx_dialog
  window -hipB +dx @hide_extensions
  did -a $dname 1 grab $window(@hide_extensions).hwnd @hide_extensions
  nhtmln attach $window(@hide_extensions).hwnd
  nhtmln handler extentions_handler
  nhtmln navigate $htmdir $+ extensions.html
  download -ho extentions_list $webstr $+ reflex/ext.rdf $longfn($datdir)
}
on *:dialog:extensions:sclick:2: {
  if ($did($dname,2) == List Installed) {
    did -o $dname 2 1 Get Extensions
    ;did -e $dname 3
    nhtmln select $window(@hide_extensions).hwnd
    nhtmln navigate $htmdir $+ extensions.html
  }
  else {
    did -o $dname 2 1 List Installed
    did -b $dname 3
    nhtmln select $window(@hide_extensions).hwnd
    nhtmln navigate $htmdir $+ extensions.html
  }
  extensions_add
}
alias extentions_handler {
  if ($2 == document_complete) { 
    extensions_add
  }
  elseif ($2 == navigate_begin) {
    if ($gettok($3-,-1,46) == mpk) { 
      download -o $gettok($3-,-1,47) $3- $cr extension_install $gettok($3-,-1,47)
      return S_CANCEL 
    }
    elseif ($gettok($3-,-1,46) == mrc) { 
      if ($isalias($deltok($gettok($3-,-1,92),-1,46))) {
        $deltok($gettok($3-,-1,92),-1,46)
      } 
      return S_CANCEL
    }
    elseif ($gettok($3-,-1,46) == uni) {
      if ($gettok($deltok($gettok($3-,-1,92),-1,46),1,124)) { 
        extension_uninstall $gettok($deltok($gettok($3-,-1,92),-1,46),1,124)
      } 
      return S_CANCEL 
    }
  }
  return S_OK
}

alias extensions_add {
  nhtmln select $window(@hide_extensions).hwnd
  if ($did(extensions,2) != List Installed) {
    var %i = 1
    while ($read($extinst,%i)) { 
      tokenize 124 $v1
      nhtmln execScript extensionadd(' $+ $1 $+ ',' $+ $2 $+ ',' $+ $3 $+ ',' $+ $4 $+ ',' $+ $5 $+ ',' $+ $6 $+ ')
      inc %i 
    }
  }
  else {
    var %i = 1
    while ($read($datdir $+ ext.rdf,%i)) { 
      tokenize 124 $v1
      if (!$read($extinst,w,$1 $+ *)) { nhtmln execScript extensionnewadd(' $+ $1 $+ ',' $+ $2 $+ ',' $+ $3 $+ ',' $+ $4 $+ ',' $+ $5 $+ ',' $+ $6 $+ ',' $+ $7 $+ ') }
      elseif ($2 > $gettok($read($extinst,w,$1 $+ *),2,124)) { nhtmln execScript extensionnewadd(' $+ $1 $+ ',' $+ $2 $+ ',' $+ $3 $+ ',' $+ $4 $+ ',' $+ $5 $+ ',' $+ $6 $+ ',' $+ $7 $+ ') }
      inc %i 
    }
  }
}

alias extension_install {
  .munpack -l $2-
  if ($read($datdir $+ ext.rdf, w, * $+ $1 $+ *)) { write $extinst $v1 }
  if ($dialog(extensions)) {
    did -o Extensions 2 1 Get Extensions
    did -e Extensions 3
    nhtmln select $window(@hide_extensions).hwnd
    nhtmln navigate $htmdir $+ extensions.html
  }
}
alias extension_uninstall {
  tokenize 124 $1-
  if ($ini($mpacklog,$1,0)) {
    var %i = 1
    while (%i <= $ini($mpacklog,$1,0)) {
      var %f = $readini($mpacklog,$1 $+ $2,$ini($mpacklog,$1 $+ $2,%i))
      if ($isfile(%f)) {
        if ($right(%f,3) == mrc) { .unload -rs %f }
        if ($right(%f,3) == dll) { .dll -u %f }
        .remove %f 
      }
      inc %i
    }
  }
  if ($read($extinst, w,$1 $+ *)) { write -dl $+ $readn $extinst }
  if ($dialog(extensions)) {
    if ($did(extensions,2) == Get Extensions) {
      nhtmln select $window(@hide_extensions).hwnd
      nhtmln navigate $htmdir $+ extensions.html
    }
  }
}