aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / dialog.mrc

dialog.mrc — 10.39 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Dialogs
; *
; **********************************************************************/

alias _dialog {
  if ($dialog($2)) { dialog -v $2 }
  else { dialog $1-3 }
}
alias _dialog-x {
  if ($dialog($1)) { dialog -x $1 }
}
alias _dida {
  if ($dialog($1) != $null) { did -a $1- $+ $crlf }
}
alias _did.inc {
  if ($dialog($1) != $null) { did -o $1 $2 $3 $calc($did($1,$2,$3) + $iif($4 isnum,$4,1)) }
}
alias _did.dec {
  if ($dialog($1) != $null) { did -o $1 $2 $3 $calc($did($1,$2,$3) - $iif($4 isnum,$4,1)) }
}
alias _dialog.addandselectmatch {
  if ($3 === $4) {
    did -ac $1 $2 $3
    if ($5 isnum) { did -o $1 $5 1 $3 }
  }
  else { did -a $1 $2 $3 }
}
alias _dialog.loadlist {
  var %lt,%i = 1,%lines = $_list.total($5)
  if ($6) { %lt = $len($iif(%lines,%lines,1)) }
  if ($7) { did -r $1 $2 }
  while ($_list.get($5,%i) != $null) {
    if ($gettok($ifmatch,$3,$4)) { did -a $1 $2 $iif($6,$base(%i,10,10,%lt)) $gettok($_list.get($5,%i),$3,$4) }
    inc %i
  }
}
alias _dialog.savelist {
  var %i,%r
  if ($dialog($1) == $null) { return }
  %i = $did($1,$2).lines
  ._list.flush $3
  while (%i) {
    _list.add $3 $iif($4,$gettok($did($1,$2,%i).text,2-,32),$did($1,$2,%i).text)
    dec %i
  }
}
; /_dialog.loadbuf dialog id file
alias _dialog.loadbuf {
  if ($dialog($1) == $null) { return }
  if ($isfile($3-)) { loadbuf -o $1 $2 $"($3-) }
  dialog -v $1
}
; /_dialog.loadbufsection section dialog id file
alias _dialog.loadbufsection {
  if ($dialog($2) == $null) { return }
  if ($isfile($4-)) { loadbuf -ot $+ $1 $2 $3 $"($4-) }
  dialog -v $2
}
alias _dialog.savebuf {
  if ($dialog($1) == $null) { return }
  if ($3- == $null) {
    dialog -v $1
    return
  }
  if ($isfile($3-)) {
    if ($_filexists(1,$null,$3-)) { .remove " $+ $3- $+ " }
    else { write -a " $+ $3- $+ " $lf }
  }
  var %l = $did($1,$2).lines,%i = 1
  while (%i <= %l) {
    if ($did($1,$2,%i).text != $null) { write -a " $+ $3- $+ " $ifmatch }
    else { write -a " $+ $3- $+ " $lf }
    inc %i
  }
  dialog -v $1
}
; /_dialog.up dialog seldid dids
alias _dialog.up {
  if ($dialog($1) == $null) { return }
  var %i = 1,%m,%t
  while ($did($1,$2,%i).sel != $null) {
    %m = $ifmatch
    ;    if (%m > %f) && ($_not($did($1,$2,$calc(%m - 1)).state)) {
    if (%m > 1) {
      %t = $did($1,$2,%m)
      did -d $1 $3 %m
      dec %m
      did -i $1 $3 %m %t
      did -ck $1 $3 %m
    }
    inc %i
  }
}
; /_dialog.down dialog seldid dids
alias _dialog.down {
  if ($dialog($1) == $null) { return }
  var %l = $did($1,$2).lines,%i = $did($1,$2,0).sel,%m,%t
  while (%i) && ($did($1,$2,%i).sel != $null) {
    %m = $ifmatch
    ;    if (%m < %l) && ($_not($did($1,$2,$calc(%m + 1)).state)) {
    if (%m < %l) {
      %t = $did($1,$2,%m)
      did -d $1 $3 %m
      inc %m
      did -i $1 $3 %m %t
      did -ck $1 $3 %m
    }
    dec %i
  }
}
; /_dialog.MDXVIEWLISTup dialog seldid dids
alias _dialog.MDXVIEWLISTup {
  if ($dialog($1) == $null) { return }
  var %i = 1,%m,%t,%win = @__dialogMDXVIEWLISTup,%z = 0
  _openwins %win
  ;;;  while ($did($1,$2,%i).sel != $null) {
  while ($did($1,$2,1).sel != $null) {
    %m = $ifmatch
    if (%m > 2) {
      %t = $did($1,$2,%m)
      did -d $1 $3 %m
      dec %m
      did -i $1 $3 %m %t
      ;;;      did -ck $1 $3 %m
      aline %win %m
    }
    elseif (%z <= 2) {
      did -uk $1 $3 %m
      aline %win %m
      inc %z
    }
    else { break }
    inc %i
  }
  var %i = $line(%win,0)
  while (%i) {
    did -ck $1 $3 $line(%win,%i)
    dec %i
  }
  close -@ %win
}
; /_dialog.MDXVIEWLISTdown dialog seldid dids
alias _dialog.MDXVIEWLISTdown {
  if ($dialog($1) == $null) { return }
  var %l = $did($1,$2).lines,%i = $did($1,$2,0).sel,%m,%t
  ;;;  while (%i) && ($did($1,$2,%i).sel != $null) {
  if ($did($1,$2,1).sel != $null) {
    %m = $ifmatch
    ;    if (%m < %l) && ($_not($did($1,$2,$calc(%m + 1)).state)) {
    if (%m < %l) {
      %t = $did($1,$2,%m)
      did -d $1 $3 %m
      inc %m
      did -i $1 $3 %m %t
      did -ck $1 $3 %m
    }
    dec %i
  }
}
alias _dialog.move {
  if ($dialog($1) == $null) { return }
  if ($did($1,$2,1).sel) {
    did -u $1 $3
    while ($did($1,$2,1).sel) {
      did -ack $1 $3 $did($1,$2,$ifmatch)
      did -d $1 $2 $ifmatch
    }
  }
}
; /_dialog.file dialog did dir$chr(9)action desc
alias _dialog.file {
  if ($dialog($1) == $null) { return }
  var %t = $$dir=" $gettok($3-,2,9) " $gettok($3-,1,9)
  if ($dialog($1) == $null) { return }
  if (%t != $null) { did -o $1 $2 1 %t }
  dialog -v $1
}
alias _dialog.dir {
  if ($dialog($1) == $null) { return }
  var %t = $$sdir=" $gettok($3-,2,9) " $gettok($3-,1,9)
  if ($dialog($1) == $null) { return }
  if (%t != $null) { did -o $1 $2 1 %t }
  dialog -v $1
}
alias _dialog.addir {
  if ($dialog($1) == $null) { return }
  var %m = $$sdir=" $gettok($3-,2,9) " $gettok($3-,1,9),%i
  if ($isdir(%m)) && ($dialog($1) != $null) {
    if ($didwm($1,$2,%m)) { did -c $1 $2 $ifmatch }
    else { did -ac $1 $2 %m }
  }
}
alias _dialog.delsels {
  if ($dialog($1) == $null) { return }
  var %r = 0
  while ($did($1,$2,1).sel) {
    did -d $1 $2 $ifmatch
    inc %r
  }
  return %r
}
alias _dialog.delsel {
  if ($dialog($1) == $null) { return }
  var %t = $did($1,$2,1).sel
  if (%t) {
    did -d $1 $2 $ifmatch
    if ($did($1,$2,%t)) { did -c $1 $2 %t }
    elseif ($did($1,$2,$calc(%t - 1))) { did -c $1 $2 $calc(%t - 1) }
  }
}
alias _dialog.add {
  if ($dialog($1) == $null) { return }
  var %i = 1,%l
  while ($didwm($1,$2,$3-,%i)) {
    %l = $ifmatch
    if ($did($1,$2,%l).text == $3-) {
      did -c $1 $2 %l
      return
    }
    inc %i
  }
  did -ac $1 $2 $3-
}
alias _dialog.add1 {
  if ($dialog($1) == $null) { return }
  var %i = 1,%l
  while ($didwm($1,$2,$3-,%i)) {
    %l = $ifmatch
    if ($did($1,$2,%l).text == $3-) {
      did -d $1 $2 %l
      break
    }
    inc %i
  }
  did -ic $1 $2 1 $3-
}
alias _dialog.del {
  if ($dialog($1) == $null) { return }
  var %i = 1,%l
  while ($didwm($1,$2,$3-,%i)) {
    %l = $ifmatch
    if ($did($1,$2,%l).text == $3-) {
      did -d $1 $2 %l
      return
    }
    inc %i
  }
}
; /_dialog.lsfsi2lid <initopic> <inisetting> <dialog> <did> <did> <pre|$null> <settings...>
alias _dialog.lsfsi2lid {
  if ($dialog($3) == $null) { return }
  var %t = $_getsetup($1,$2),%i = 1,%n = $numtok($7-,32),%c,%m
  if ($6 != $null) { %m = $6 }
  while (%i <= %n) {
    %c = $gettok($7-,%i,32)
    if ($istok(%t,%c,32)) { did -a $3 $5 %m %c }
    else { did -a $3 $4 %m %c }
    inc %i
  }
}
; /_dialog.sslid2fsi <initopic> <inisetting> <dialog> <did> <did> <pre|$null> <settings...>
alias _dialog.sslid2fsi {
  if ($dialog($3) == $null) { return }
  var %t,%i = 1,%n = $did($3,$5).lines,%c,%m,%r
  if ($6 != $null) { %m = $6 }
  while (%i <= %n) {
    %c = $did($3,$5,%i)
    if (%m == $null) {
      if ($numtok(%c,32) == 1) { %r = %r %c }
    }
    else {
      if ($numtok(%c,32) == 2) && ($gettok(%c,1,32) == %m) { %r = %r $gettok(%c,2,32) }
    }
    inc %i
  }
  _setsetup $1 $2 %r
}
; /_win2dialog <window> <dialog> <did> [match]
alias _win2dialog {
  if ($window($1) == $null) || ($dialog($2) == $null) { return }
  filter -wo $1 $2 $3 $iif($4- != $null,$4-,*)
}
; /_dialog2win <dialog> <did> <window> [match]
alias _dialog2win {
  if ($window($3) == $null) || ($dialog($1) == $null) { return }
  filter -iw $1 $2 $3 $iif($4- != $null,$4-,*)
}
; $_did2filesection(dname,did,file,section)
alias _did2filesection {
  var %dname = $1,%did = $2,%file = $_fixfilename($3),%section = $gettok($4,1,32),%win = @__did2filesection,%i,%t
  if ($dialog(%dname) == $null) || (%file == $null) { return }
  %file = $_chfile(%file)
  _openwins %win
  _dialog2win %dname %did %win *
  %i = $line(%win,0)
  while (%i) {
    %t = $_text($line(%win,%i))
    if (%t == $null) { rline %win %i $chr(160) }
    if ([*] iswm %t) { rline %win %i ( $+ $left($right(%t,-1),-1) $+ ) }
    dec %i
  }
  remini $"(%file) %section
  flushini $"(%file)
  write $"(%file) [[ $+ %section $+ ]]
  while ($_text($line(%win,$line(%win,0))) == $chr(160)) { dline %win $line(%win,0) }
  savebuf -a %win $"(%file)
  close -@ %win
}
;
;
dialog _simplelist {
  size -1 -1 172 170
  option dbu

  list 1,5 10 125 145,sort extsel size
  list 2,5 10 125 145,sort size hide
  list 3,5 10 125 145,sort extsel size hide
  list 4,5 10 125 145,sort size hide

  combo 20,5 11 125 9999,drop hide
  button "",21,5 10 125 15,hide
  text "",22,5 5 125 20,hide

  list 40,5 25 125 130,sort extsel size hide
  list 41,5 25 125 130,sort extsel size hide
  list 42,5 25 125 130,sort extsel size hide
  list 43,5 25 125 130,sort extsel size hide
  list 44,5 25 125 130,sort extsel size hide
  list 45,5 25 125 130,sort extsel size hide
  list 46,5 25 125 130,sort extsel size hide
  list 47,5 25 125 130,sort extsel size hide
  list 48,5 25 125 130,sort extsel size hide
  list 49,5 25 125 130,sort extsel size hide
  list 50,5 25 125 130,sort extsel size hide

  list 60,5 25 125 130,sort size hide
  list 61,5 25 125 130,sort size hide
  list 62,5 25 125 130,sort size hide
  list 63,5 25 125 130,sort size hide
  list 64,5 25 125 130,sort size hide
  list 65,5 25 125 130,sort size hide
  list 66,5 25 125 130,sort size hide
  list 67,5 25 125 130,sort size hide
  list 68,5 25 125 130,sort size hide
  list 69,5 25 125 130,sort size hide
  list 70,5 25 125 130,sort size hide

  list 80,5 30 125 125,sort size hide

  button "&New...",101,135 10 33 15
  button "&Delete",102,135 30 33 15
  button "",103,135 50 33 15,hide
  button "",104,135 70 33 15,hide
  button "",105,135 90 33 15,hide
  button "",106,135 110 33 15,hide

  button "&OK",201,135 120 33 15,ok
  button "&Cancel",202,135 140 33 15,cancel
  check "",220,5 156 170 15,hide
  text "",221,5 156 170 15,hide

  list 246,1 1 1 1,hide
  list 247,1 1 1 1,hide
  list 248,1 1 1 1,hide
  list 249,1 1 1 1,hide
  list 250,1 1 1 1,hide
}
dialog _simplesockd {
  size -1 -1 250 200
  option dbu

  text "",49,10 8 230 8
  combo 50,5 18 100 75,drop edit
  button "",51,115 18 30 11,ok
  button "",52,150 18 30 11
  button "",53,185 18 30 11
  button "",60,185 18 30 11,cancel hide

  text "",90,10 35 230 8

  edit "",100,10 50 230 140,read multi vsbar hsbar

  edit "",250,1 1 1 1,hide
}