ircN for mIRC — File Browser

ircNformIRCv6.0 / ircNformIRCv6.0 / ircn / SYSTEM / MGUI.MRC

MGUI.MRC — 36.21 KB — Download this file

;
; mGUI for mIRC v2.1
; By Chutzpah (Patrick McLean)
;
;  To give mIRC scripts/addons a GUI look and
;   feel for setting configurations.
;
; Please leave these lines in or give me credit if
;  you include this in your script/addon.
;
;
; NOTE: This is NOT compatible with older
;   versions of this addon, read mgui.txt for
;   details on how to update your script/addon.
;
;
;---------------------------------------------
;
; Remote
;
on 1:start { unset %gui.* }
menu @Error {
  sclick { if ($inrect($mouse.x,$mouse.y,90,47,70,17)) window -c @Error }
}
;
; Global Aliases
;
alias gui.version { return mGUI version 2.1 }
alias gui.error {
  window -padof +f @Error $calc(( [ [ $window(-1).w ] ] / 2) - 130) $calc(( [ [ $window(-1).h ] ] / 2) - 120) 250 70 @Error
  drawfill -nr @Error 12632256 0 12 12
  drawtext -n @Error 1 Arial 14 $abs($int($calc((250 - ($width($1-,Arial,14,0,0) + 17)) / 2))) 15 $1-
  drawrect -nrf @Error 13168840 1 90 47 70 17
  drawrect -n @Error 1 1 90 47 70 17
  drawtext -n @Error 1 Arial 14 118 49 OK
  drawdot @Error
}
alias guiwin {
  if (%gui.window) {
    if ($window(%gui.window)) gui.close
    else unset %gui.*
  }
  if ($1 == -n) {
    if (($right($2-,4) == .gui) || ($right($2-,4) == .ini)) set -u1 %gui.filetemp $2-
    else set -u1 %gui.filetemp $2- $+ .gui
  }
  else {
    if (($right($1-,4) == .gui) || ($right($1-,4) == .ini)) set -u1 %gui.filetemp $1-
    else set -u1 %gui.filetemp $1- $+ .gui
  }
  if ($rowtest) { echo -a  $+ $colour(info) $+ * /guiwin: incompatible file format ' $+ %gui.filetemp $+ ' | halt }
  if ($exists($guidir(%gui.filetemp))) {
  if ($1 == -n) creategui -n $guidir(%gui.filetemp)
  else creategui $guidir(%gui.filetemp)
  }
  else echo -a  $+ $colour(info) $+ * /guiwin: no such file ' $+ %gui.filetemp $+ '
}
alias gui.cancel { .timer 1 1 $readini %gui.filename options cancelcmd | gui.close }
alias gui.close {
  if ($window(%gui.window)) window -c %gui.window
  if ($script($guidir(guipop.mrc))) {
    .unload -rs $guidir(guipop.mrc)
    .remove $guidir(guipop.mrc)
  }
  if ($timer(%gui.timer)) [ .timer $+ [ %gui.timer ] ] off
  unset %gui.*
}
alias gui.ok { closeclick }
alias gui.write { closeclick n }
alias gui.sclick {
  if ($inrect($1,$2,$round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 0.8),0),$calc( [ [ $window(%gui.window).h ] ] - 60),75,23)) { closeclick | halt }
  elseif ($inrect($1,$2,$round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 2.5),0),$calc( [ [ $window(%gui.window).h ] ] - 60),75,23)) { gui.cancel | halt }
  elseif (%gui.combo.list) { combox.listselect $gettok(%gui.combo.list,1,46) $gettok(%gui.combo.list,2,46) $1 $2 | halt }
  set %gui.column $round($calc((($1 + (%gui.dist - 20)) / %gui.dist)),0)
  set %gui.num $round($calc((($2 - 27) / 15) - 1),0))
  update %gui.column %gui.num $1 $2
}
alias guidir { return $nofile($script) $+ $1- }
alias guifile { return $guidir( [ [ $1- ] $+ .gui ] ) }
;
; Local Aliases
;
alias -l arrow {
  set %tmpi $2 | set %tmpii $1 | set %tmpjj $1
  :start
  set %tmpi $calc(%tmpi - 1)
  inc %tmpjj
  set %tmpii $calc(%tmpii - 1) | set %tmpj $int(%tmpii)
  :loop
  inc %tmpj
  drawdot -nr %gui.window %gui.colour.border 1 %tmpj %tmpi
  if (%tmpj < $int(%tmpjj)) goto loop
  if (%tmpi > $calc($2 - 3)) goto start
  unset %tmpjj %tmpi %tmpj %tmpii
}
alias -l caption { if ($3) drawtext -nr %gui.window %gui.colour.font Arial 14 $calc($2 + 18) $calc(52 + (15 * ($1 - 1))) $3- }
alias -l check {
  drawrect -nrf %gui.window %gui.colour.objects 1 $calc(20 + (($1 - 1) * %gui.dist)) $calc(52 + (15 * ($2 - 1))) 12 12
  drawrect -nr %gui.window %gui.colour.border 1 $calc(20 + (($1 - 1) * %gui.dist)) $calc(52 + (15 * ($2 - 1))) 12 12
  drawline -nr %gui.window %gui.colour.border 2 $calc((20 + (($1 - 1) * %gui.dist)) + 6) $calc((52 + (15 * ($2 - 1))) + 10) $calc((20 + (($1 - 1) * %gui.dist)) + 3) $calc((52 + (15 * ($2 - 1))) + 6)
  drawline -nr %gui.window %gui.colour.border 2 $calc((20 + (($1 - 1) * %gui.dist)) + 9) $calc((52 + (15 * ($2 - 1))) + 1) $calc((20 + (($1 - 1) * %gui.dist)) + 6) $calc((52 + (15 * ($2 - 1))) + 10)
  drawdot %gui.window
  if ($get.command($2,$1)) $get.command($2,$1)
}
alias -l checked { if ($getdot(%gui.window,$calc((($1 - 1) * %gui.dist) + 23),$calc((50 + (15 * ($2 - 1))) + 7)) == %gui.colour.objects) return $false | else return $true }
alias -l closeclick {
  set %i 0
  :startchk
  inc -u1 %i
  set %j 0
  :startloop
  inc -u1 %j
  if (($1 != n) && ($gettype(%i,%j) == text) && ($textboxvar(%j,%i) == $null) && ($textbox.reqval(%i,%j))) { gui.error You did not enter a value in a required field. | halt }
  if (($1 != n) && ($gettype(%i,%j) == combo) && ($comboboxvar(%j,%i) == $null) && ($textbox.reqval(%i,%j))) { gui.error You did not enter a value in a required field. | halt }
  if ($gettype(%i,$calc(%j + 1))) goto startloop
  if (%i < %gui.columns) goto startchk
  set %j 0
  :loop
  inc -u2 %j
  set %i 0
  :start
  inc -u2 %i
  if ($gettype(%j,%i) == check) {
    if ($checked(%j,%i)) set [ $varn(%j,%i) ] %gui.on
    else set [ $varn(%j,%i) ] %gui.off
  }
  elseif ($gettype(%j,%i) == text) { set [ $varn(%j,%i) ] $textboxvar(%i,%j) }
  elseif ($gettype(%j,%i) == combo) { set [ $varn(%j,%i) ] $comboboxval(%i,%j) }
  if ($gettype(%j,$calc(%i + 1))) goto start
  if (%j < %gui.columns) goto loop
  cmd
  if ($1 != n) {
    gui.close
  }
}
alias -l cmd { $readini %gui.filename options command }
alias -l combox.listselect {
  set -u1 %gui.listbox.items 0 | :start | inc -u1 %gui.listbox.items | if ($getlist($1,$2,%gui.listbox.items)) goto start
  set -u1 %tmp.textbox $calc(54 + (15 * ($2 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($1 - 1) * %gui.dist))
  if ($inrect($3,$4,$calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))),$calc(%tmp.textbox + 14),$int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)),$calc((14 * (%gui.listbox.items) - 1) - 14))) {
    set -u1 %gui.tmp.listsel $calc($round($calc((((($4 - 27) / 15) - 1),0)) - (54 + (15 * ($2 - 1))),0) - $2)
    set [ [ $chr(37) ] $+ gui.combobox $+ [ $2 ] $+ - $+ [ $1 ] $+ .value ] $getval($1,$2,%gui.tmp.listsel)
    set [ [ $chr(37) ] $+ gui.combobox $+ [ $2 ] $+ - $+ [ $1 ] $+ .text ] $getlist($1,$2,%gui.tmp.listsel)
    if ($get.combo.command($1,$2)) $get.combo.command($1,$2) $getval($1,$2,%gui.tmp.listsel)
  }
  elseif ($inrect($3,$4,$calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + (((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)))),$calc(%tmp.textbox + 14),14,$calc((14 * (%gui.listbox.items) - 1) - 14))) { halt }
  else {
    set %gui.tmp.text.num $calc($round($calc((($3 + (%gui.dist - 7)) / %gui.dist)),0) - 1)
    if (($gettype(%gui.tmp.text.num,$2) == combo) && ($incombolist(%gui.tmp.text.num,$2,$3,$4))) { nothing }
    elseif (($gettype(%gui.tmp.text.num,$calc($2 - 1)) == combo) && ($incombolist(%gui.tmp.text.num,$calc($2 - 1),$3,$4))) { nothing }
    elseif (($gettype(%gui.tmp.text.num,$2) == combo) && ($incombotext(%gui.tmp.text.num,$2,$3,$4))) { nothing }
    elseif (($gettype(%gui.tmp.text.num,$calc($2 - 1)) == combo) && ($incombotext(%gui.tmp.text.num,$calc($2 - 1),$3,$4))) { nothing }
    else set -u2 %gui.combobox.sel.no 1
  }
  drawrect -nrf %gui.window %gui.colour.background 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) $calc(14 * (%gui.listbox.items))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
  drawrect -ntrf %gui.window %gui.colour.background 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 14 + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5)))))) $calc(%tmp.textbox + 14) 14 $calc(14 * (%gui.listbox.items - 1))
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -ntrf %gui.window %gui.colour.combobutton 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  arrow $calc(%tmp1.textbox + $int($calc(3 + (%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 11))))) $calc(%tmp.textbox + 9)
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  if ($comboboxvar($2,$1)) drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14 $comboboxvar($2,$1)
  if ($calc((14 * (%gui.listbox.items)) + %tmp.textbox) >= $calc( [ [ $window(%gui.window).h ] ] - 60)) { draw.ok | draw.cancel }
  set %gui.tmp.count 0
  :start2
  inc %gui.tmp.count
  drawobj $1 $calc($2 + %gui.tmp.count)
  if (%gui.tmp.count < %gui.listbox.items) goto start2
  unset %gui.combo.list
  drawdot %gui.window
  if (%gui.combobox.sel.no) {
    gui.sclick $3 $4
    unset %gui.combobox.sel.no
  }
}
alias -l combobox.reqval {
  set -n1 %gui.get $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ]
  if ($gettok(%gui.get,5,59) == yes) return $true
  else return $false
}
alias -l combobox.type {
  set -n1 %gui.get $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ]
  if ($gettok(%gui.get,4,59) != no) return $true
  else return $false
}
alias -l comboboxval { set -u1 %tmp.text1 [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .value | return [ [ %tmp.text1 ] ] }
alias -l comboboxvar { set -u1 %tmp.text1 [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text | return [ [ %tmp.text1 ] ] }
alias -l create.combobox {
  set [ [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .value ] $var($2,$1)
  set [ [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text ] $getlisttext($2,$1,$comboboxval($1,$2))
  set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -ntrf %gui.window %gui.colour.combobutton 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  arrow $calc(%tmp1.textbox + $int($calc(3 + (%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 11))))) $calc(%tmp.textbox + 9)
  if ($comboboxvar($1,$2)) drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 16)) 14 $comboboxvar($1,$2)
  drawtext -nrc %gui.window %gui.colour.font Arial 14 $calc(%tmp1.textbox + 3) $calc(%tmp.textbox - 1) $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 3)) 14 $gettext($2,$1)
}
alias -l create.command {
  set -u1 %tmp.cmd.x $calc(20 + (($2 - 1) * %gui.dist))
  set -u1 %tmp.cmd.y $calc(56 + (15 * ($1 - 1)))
  draw.button %gui.window $calc(%tmp.cmd.x + (%gui.dist / 3.5)) %tmp.cmd.y $int($calc(%gui.dist / 2.5)) 13
  drawtext -nc %gui.window 1 Arial 12 $calc((%tmp.cmd.x) + (%gui.dist / 3.5) + ($rndup($calc(((%gui.dist / 2.5) - ($width($gettext($2,$1),Arial,12,0,0) - 15)) / 2)))) $calc(%tmp.cmd.y + 1) $int($calc(%gui.dist / 2.5)) 13 $gettext($2,$1)
}
alias -l create.picture {
  set -u1 %tmp.pic.x $calc(20 + (($2 - 1) * %gui.dist))
  set -u1 %tmp.pic.y $calc(56 + (15 * ($1 - 1)))
  if ($exists($get.pic($2,$1))) drawpic -nc %gui.window %tmp.pic.x %tmp.pic.y $get.pic.col($2,$1) $get.block($2,$1) %gui.dist 15 $get.pic($2,$1)
}
alias -l create.textbox {
  set [ [ $chr(37) ] $+ gui.textbox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text ] $var($2,$1)
  set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  if ($textboxvar($1,$2)) {
    if ($textbox.file($2,$1)) set -u1 %gui.tmp $nopath($textboxvar($1,$2))
    else set -u1 %gui.tmp $textboxvar($1,$2)
    drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 3)) 14 %gui.tmp
  }
  drawtext -nrc %gui.window %gui.colour.font Arial 14 $calc(%tmp1.textbox + 3) $calc(%tmp.textbox - 1) $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 2)) 14 $gettext($2,$1)
}
alias -l createcheck {
  drawrect -nrf %gui.window %gui.colour.objects 1 $2 $calc(52 + (15 * ($1 - 1))) 12 12
  drawrect -nr %gui.window %gui.colour.border 1 $2 $calc(52 + (15 * ($1 - 1))) 12 12
  drawline -nr %gui.window %gui.colour.border 2 $calc($2 + 6) $calc((52 + (15 * ($1 - 1))) + 10) $calc($2 + 3) $calc((52 + (15 * ($1 - 1))) + 6)
  drawline -nr %gui.window %gui.colour.border 2 $calc($2 + 9) $calc((52 + (15 * ($1 - 1))) + 1) $calc($2 + 6) $calc((52 + (15 * ($1 - 1))) + 10)
}
alias -l creategui {
  if ($1 != -n) {
    window -aprfh +fn @Loading $calc(( [ [ $window(-1).w ] ] - 300) /2) $calc(( [ [ $window(-1).h ] ] - 200) /2) 300 100
    window -ar @Loading
    drawfill -nr @Loading 12632256 0 10 10
    drawtext -no @Loading 1 Arial 22 47 39 Loading, Please wait...
    drawdot @Loading
    set %gui.filename $1-
  }
  else set %gui.filename $2-
  set %gui.window @ $+ $gettok($getwin,1,32)
  if (%gui.window == $null) set %gui.window @Settings
  readcolour background 12632256
  readcolour objects 16777215
  readcolour combolist 14483420
  readcolour disabled 14145495
  readcolour combobutton 12632256
  readcolour border 0
  readcolour font 0
  write -c $guidir(guipop.mrc) menu %gui.window $chr(123)
  write $guidir(guipop.mrc) sclick $chr(123) gui.sclick $chr(36) $+ mouse.x $chr(36) $+ mouse.y $chr(125)
  write $guidir(guipop.mrc) dclick $chr(123) gui.sclick $chr(36) $+ mouse.x $chr(36) $+ mouse.y $chr(125)
  set -u1 %i 0
  :startpop
  inc -u2 %i
  set -u1 %gui.tmp.pop $guipop(%i)
  if (%gui.tmp.pop) { write $guidir(guipop.mrc) %gui.tmp.pop | goto startpop }
  write $guidir(guipop.mrc) $chr(125)
  set -u1 %gui.win.w $readini %gui.filename options width
  set -u1 %gui.win.h $readini %gui.filename options height
  if (%gui.win.h == $null) set %gui.win.h 360
  if (%gui.win.w == $null) set %gui.win.w 460
  if (%gui.win.w < 360) set %gui.win.w 360
  .load -rs $guidir(guipop.mrc)
  if (%gui.win.h < 140) set %gui.win.h 140
  window -apfh +fn %gui.window $round($calc(( [ [ $window(-1).w ] ] - %gui.win.w) / 2),0) $calc((( [ [ $window(-1).h ] ] - %gui.win.h) / 2) - 50) %gui.win.w %gui.win.h %gui.window
  .timer 0 2 if ( $+ $chr(36) $+ window(%gui.window) == $chr(36) $+ null) $chr(123) gui.cancel $chr(125)
  set %gui.timer $ltimer
  clear %gui.window
  titlebar %gui.window $readini %gui.filename options windowtitle
  drawfill -rn %gui.window %gui.colour.background 3 10 10
  set %gui.columns $readini %gui.filename options columns
  set %gui.dist $readini %gui.filename options distance
  if (%gui.dist == $null) set %gui.dist $round($calc(( [ [ $window(%gui.window).w ] ] - 20) / %gui.columns),0)
  set %gui.on $readini %gui.filename options on
  set %gui.off $readini %gui.filename options off
  set %ii 0
  :loop
  inc %ii
  set %i 0
  :start
  inc %i
  createobj %ii %i
  if ($gettype(%ii,$calc(%i + 1))) goto start
  if (%ii < %gui.columns) goto loop
  if ($rini(colours,ok)) set %gui.okcolour $rgb($gettok($rini(colours,ok),1,44),$gettok($rini(colours,ok),2,44),$gettok($rini(colours,ok),3,44))
  else set %gui.okcolour 12632256
  draw.ok
  if ($rini(colours,cancel)) set %gui.cancelcolour $rgb($gettok($rini(colours,cancel),1,44),$gettok($rini(colours,cancel),2,44),$gettok($rini(colours,cancel),3,44))
  else set %gui.cancelcolour 12632256
  draw.cancel
  drawtext -nro %gui.window %gui.colour.font Arial 22 $int($calc(( [ [ $window(%gui.window).w ] ] - ($width($gui.title,Arial,22,1,0) - ($len($gui.title)) * 1.1)) / 2)) 10 $gui.title
  drawdot %gui.window
  unset %ii %i %jj
  if ($1 != -n) window -c @Loading
  window -ar %gui.window
  $readini %gui.filename options opencmd
}
alias -l createobj {
  set -u1 %gui.tmp33 $calc(20 + (($1 - 1) * %gui.dist))
  set -u1 %gui.tmp.type $gettype($1,$2)
  if (%gui.tmp.type == check) {
    if ($var($1,$2) == %gui.on) createcheck $2 %gui.tmp33
    else createuncheck $2 %gui.tmp33
    caption $2 %gui.tmp33 $getcap($1,$2)
  }
  elseif (%gui.tmp.type == title) drawtitle $2 $1 $getlabel($1,$2)
  elseif (%gui.tmp.type == label) label $2 $1 $getlabel($1,$2)
  elseif (%gui.tmp.type == text) create.textbox $2 $1
  elseif (%gui.tmp.type == combo) create.combobox $2 $1
  elseif (%gui.tmp.type == command) create.command $2 $1
  elseif (%gui.tmp.type == picture) create.picture $2 $1
}
alias -l createuncheck {
  drawrect -nrf %gui.window %gui.colour.objects 1 $2 $calc(52 + (15 * ($1 - 1))) 12 12
  drawrect -nr %gui.window %gui.colour.border 1 $2 $calc(52 + (15 * ($1 - 1))) 12 12
}
alias -l draw.button {
  drawline -rn $1 14671839 1 $2 $calc($3 + $5) $2 $3 $calc($2 + $4) $3
  drawline -rn $1 8355711 1 $calc($2 + 1) $calc($3 + $5) $calc($2 + ($4 - 1)) $calc($3 + $5) $calc($2 + ($4 - 1)) $calc($3 + 1)
  drawline -n $1 1 1 $2 $calc($3 + ($5 + 1)) $calc($2 + $4) $calc($3 + ($5 + 1)) $calc($2 + $4) $3
}
alias -l draw.cancel {
  drawrect -nrf %gui.window %gui.cancelcolour 1 $round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 2.5),0) $calc( [ [ $window(%gui.window).h ] ] - 60) 75 23
  drawbutton %gui.window $round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 2.5),0) $calc( [ [ $window(%gui.window).h ] ] - 60)
  drawtext -nr %gui.window %gui.colour.font Arial 15 $round($calc((( [ [ $window(%gui.window).w ] ] / 4) * 2.5) + 19),0) $calc( [ [ $window(%gui.window).h ] ] - 56) Cancel
}
alias -l draw.ok {
  drawrect -nrf %gui.window %gui.okcolour %gui.colour.border $round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 0.8),0) $calc( [ [ $window(%gui.window).h ] ] - 60) 75 23
  drawbutton %gui.window $round($calc(( [ [ $window(%gui.window).w ] ] / 4) * 0.8),0) $calc( [ [ $window(%gui.window).h ] ] - 60)
  drawtext -nr %gui.window %gui.colour.font Arial 15 $round($calc((( [ [ $window(%gui.window).w ] ] / 4) * 0.8) + 29),0) $calc( [ [ $window(%gui.window).h ] ] - 56) OK
}
alias -l drawbutton {
  drawline -rn $1 14671839 1 $2 $calc($3 + 22) $2 $3 $calc($2 + 75) $3
  drawline -rn $1 8355711 1 $calc($2 + 1) $calc($3 + 22) $calc($2 + 74) $calc($3 + 22) $calc($2 + 74) $calc($3 + 1)
  drawline -n $1 1 1 $2 $calc($3 + 23) $calc($2 + 75) $calc($3 + 23) $calc($2 + 75) $3
}
alias -l drawobj {
  set -u1 %gui.tmp33 $calc(20 + (($1 - 1) * %gui.dist))
  set -u1 %gui.tmp.type $gettype($1,$2)
  if (%gui.tmp.type == check) {
    if ($checked($1,$2)) createcheck $2 %gui.tmp33
    else createuncheck $2 %gui.tmp33
    caption $2 %gui.tmp33 $getcap($1,$2)
  }
  elseif (%gui.tmp.type == title) drawtitle $2 $1 $getlabel($1,$2)
  elseif (%gui.tmp.type == label) label $2 $1 $getlabel($1,$2)
  elseif (%gui.tmp.type == text) redraw.textbox $2 $1
  elseif (%gui.tmp.type == combo) redraw.combobox $2 $1
  elseif (%gui.tmp.type == command) create.command $2 $1
  elseif (%gui.tmp.type == picture) create.picture $2 $1
}
alias -l drawtitle { if ($3) drawtext -nro %gui.window %gui.colour.font Arial 14 $calc(20 + (($2 - 1) * %gui.dist)) $calc(52 + (15 * ($1 - 1))) $3- }
alias -l get.block {
  set %gui.get.block $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ]
  set %gui.get.block $gettok(%gui.get.block,3,59)
  if (%gui.get.block > 1) set -u1 %gui.get.block $calc((%gui.get.block - 1) * 15)
  else set -u1 %gui.get.block 0
  return %gui.get.block
}
alias -l get.combo.command { set -u1 %gui.getcap $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getcap,6,59) }
alias -l get.pic { set -u1 %gui.get.pic $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.get.pic,2,59) }
alias -l get.pic.col {
  set %gui.get.col $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ]
  set %gui.get.col $gettok(%gui.get.col,4,59)
  if (%gui.get.col > 1) set -u1 %gui.get.col $calc((%gui.get.col - 1) * %gui.dist)
  else set -u1 %gui.get.col 0
  return %gui.get.col
}
alias -l getcap { set -u1 %gui.getcap $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getcap,2,59) }
alias -l get.command { set -u1 %gui.get.command $readini %gui.filename [ column $+ [ $1 ] ] [ c $+ [ $2 ] ] | return %gui.get.command }
alias -l getcommand { set -u1 %gui.getcommand $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getcommand,3,59) }
alias -l getfile { set -u1 %gui.getfile $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getfile,6,59) }
alias -l getname { set -u1 %gui.getname $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getname,7,59) }
alias -l getlabel { set -u1 %gui.getlabel $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getlabel,2,59) }
alias -l getlist { set -u1 %gui.getlist $readini -n %gui.filename [ combo $+ [ $1 ] $+ [ $chr(46) ] $+ [ $2 ] ] [ n $+ [ $3 ] ] | return $gettok(%gui.getlist,1,59) }
alias -l getlisttext {
  if ($3) {
    set %tmp.getval 0
    :start
    inc -u1 %tmp.getval
    if ($getval($1,$2,%tmp.getval) == $3) return $getlist($1,$2,%tmp.getval)
    elseif ($getval($1,$2,$calc(%tmp.getval + 1))) goto start
    return $3
  }
}
alias -l gettext { set -u1 %gui.getcap $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $gettok(%gui.getcap,2,59) }
alias -l gettype { set -u1 %gui.getcap $readini -n %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $remove($remove($gettok(%gui.getcap,1,59),<),>) }
alias -l getval {
  set -u1 %gui.getlist $readini %gui.filename [ combo $+ [ $1 ] $+ [ $chr(46) ] $+ [ $2 ] ] [ n $+ [ $3 ] ]
  if ($gettok(%gui.getlist,2,59)) return $gettok(%gui.getlist,2,59)
  else return $gettok(%gui.getlist,1,59)
}
alias -l getwin { return $readini %gui.filename options window }
alias -l gui.title { return $readini %gui.filename options title }
alias -l guipop { return $readini -n %gui.filename popup [ n $+ [ $1 ] ] }
alias -l incheck {
  set -u1 %gui.tmp1 $calc(20 + (($1 - 1) * %gui.dist))
  set -u1 %gui.tmp2 $calc(50 + (15 * ($2 - 1)))
  return $inrect($3,$4,%gui.tmp1,%gui.tmp2,17,17)
}
alias -l incombolist {
  set -u1 %gui.tmp1 $calc($calc(20 + (($1 - 1) * %gui.dist)) + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)))))
  set -u1 %gui.tmp2 $calc(54 + (15 * ($2 - 1)))
  return $inrect($3,$4,%gui.tmp1,%gui.tmp2,14,14)
}
alias -l incombotext {
  set -u1 %gui.tmp1 $int($calc((20 + (($1 - 1) * %gui.dist)) + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))))
  set -u1 %gui.tmp2 $calc(54 + (15 * ($2 - 1)))
  return $inrect($3,$4,%gui.tmp1,%gui.tmp2,$int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)),14)
}
alias -l incommand {
  set -u1 %tmp.cmd.x $calc(20 + (($1 - 1) * %gui.dist))
  set -u1 %tmp.cmd.y $calc(54 + (15 * ($2 - 1)))
  return $inrect($3,$4,$int($calc(%tmp.cmd.x + (%gui.dist / 3.5))),%tmp.cmd.y,$int($calc(%gui.dist / 2.5)),15)
}
alias -l intext {
  set -u1 %gui.tmp1 $calc((20 + (($1 - 1) * %gui.dist)) + $int($calc((%gui.dist / 3) + (%gui.dist / 10))))
  set -u1 %gui.tmp2 $calc(54 + (15 * ($2 - 1)))
  return $inrect($3,$4,%gui.tmp1,%gui.tmp2,$int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))),14)
}
alias -l label { if ($3) drawtext -nr %gui.window %gui.colour.font Arial 14 $calc(20 + (($2 - 1) * %gui.dist)) $calc(52 + (15 * ($1 - 1))) $3- }
alias -l nothing { return }
alias -l readcolour {
  if ($rini(colours,$1)) set [ [ $chr(37) ] $+ gui.colour. $+ [ $1 ] ] $rgb($gettok($rini(colours,$1),1,44),$gettok($rini(colours,$1),2,44),$gettok($rini(colours,$1),3,44))
  else set [ [ $chr(37) ] $+ gui.colour. $+ [ $1 ] ] $2
}
alias -l redraw.combobox {
  set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -ntrf %gui.window %gui.colour.combobutton 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
  arrow $calc(%tmp1.textbox + $int($calc(3 + (%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 11))))) $calc(%tmp.textbox + 9)
  if ($comboboxvar($1,$2)) drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14 $comboboxvar($1,$2)
  drawtext -nrc %gui.window %gui.colour.font Arial 14 $calc(%tmp1.textbox + 3) $calc(%tmp.textbox - 1) $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 3)) 14 $gettext($2,$1)
}
alias -l redraw.textbox {
  set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  if ($textboxvar($1,$2)) {
    if ($textbox.file($2,$1)) set -u1 %gui.tmp $nopath($textboxvar($1,$2))
    else set -u1 %gui.tmp $textboxvar($1,$2)
    drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 3)) 14 %gui.tmp
  }
  drawtext -nrc %gui.window %gui.colour.font Arial 14 $calc(%tmp1.textbox + 3) $calc(%tmp.textbox - 1) $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 3)) 14 $gettext($2,$1)
}
alias -l rini { return $readini %gui.filename $1 $2 }
alias -l rndup {
  if ($gettok($1,2,46)) return $calc($gettok($1,1,46) + 1)
  else return $1
}
alias -l showlist {
  if ($getlist($1,$2,1)) {
    set -u1 %gui.listbox.items 0 | :start | inc -u1 %gui.listbox.items | if ($getlist($1,$2,%gui.listbox.items)) goto start
    set -u2 %tmp.textbox $calc(54 + (15 * ($2 - 1)))
    set -u2 %tmp1.textbox $calc(20 + (($1 - 1) * %gui.dist))
    drawrect -ntrf %gui.window %gui.colour.combolist 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) $calc(14 * %gui.listbox.items)
    drawrect -ntrf %gui.window %gui.colour.disabled 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 14 + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5)))))) $calc(%tmp.textbox + 14) 14 $calc(14 * (%gui.listbox.items - 1))
    drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) - 14 + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5)))))) $calc(%tmp.textbox + 14) 14 $calc(14 * (%gui.listbox.items - 1))
    drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) $calc(14 * %gui.listbox.items)
    drawrect -ntfr %gui.window %gui.colour.disabled 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
    drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
    set %i 0
    :loop
    inc -u2 %i
    drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc((%tmp.textbox + (%i * 14)) + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14 $getlist($1,$2,%i)
    drawline -nrc %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) $calc(%tmp.textbox + (14 * %i)) $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))) $calc(%tmp.textbox + (14 * %i))
    if ($comboboxvar($2,$1)) drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 16)) 14 $comboboxvar($2,$1)
    if (%i < $calc(%gui.listbox.items - 1)) goto loop
    set %gui.combo.list $1 $+ $chr(46) $+ $2
    unset %i
    drawdot %gui.window
  }
}
alias -l textbox.file { set -n1 %gui.get $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | if ($gettok(%gui.get,5,59) == yes) return $true | else return $false }
alias -l textbox.reqval {
  set -n1 %gui.get $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ]
  if ($gettok(%gui.get,4,59) == yes) return $true
  else return $false
}
alias -l textboxvar { set -u1 %tmp.text1 [ $chr(37) ] $+ gui.textbox $+ $1 $+ - $+ [ $2 ] $+ .text | return [ [ %tmp.text1 ] ] }
alias -l uncheck {
  drawrect -nrf %gui.window %gui.colour.objects 1 $calc(20 + (($1 - 1) * %gui.dist)) $calc(52 + (15 * ($2 - 1))) 12 12
  drawrect -nr %gui.window %gui.colour.border 1 $calc(20 + (($1 - 1) * %gui.dist)) $calc(52 + (15 * ($2 - 1))) 12 12
  drawdot %gui.window
  if ($get.command($2,$1)) $get.command($2,$1)
}
alias -l update {
  set -u2 %gui.tmp.type $gettype($1,$2)
  if (%gui.tmp.type == check) {
    if ($incheck($1,$2,$3,$4)) {
      if ($checked($1,$2)) uncheck $1 $2
      else check $1 $2
    }
  }
  else {
    set -u1 %gui.tmp.text.num $calc($round($calc((($3 + (%gui.dist - 7)) / %gui.dist)),0) - 1)
    if (($gettype(%gui.tmp.text.num,$2) == text) && ($intext(%gui.tmp.text.num,$2,$3,$4))) { update.textbox $2 %gui.tmp.text.num }
    elseif (($gettype(%gui.tmp.text.num,$2) == text) && ($intext(%gui.tmp.text.num,$calc($2 - 1),$3,$4))) { update.textbox $calc($2 - 1) %gui.tmp.text.num }
    elseif (($gettype(%gui.tmp.text.num,$2) == combo) && ($incombolist(%gui.tmp.text.num,$2,$3,$4))) { showlist %gui.tmp.text.num $2 }
    elseif (($gettype(%gui.tmp.text.num,$calc($2 - 1)) == combo) && ($incombolist(%gui.tmp.text.num,$calc($2 - 1),$3,$4))) { showlist %gui.tmp.text.num $calc($2 - 1) }
    elseif (($gettype(%gui.tmp.text.num,$2) == combo) && ($incombotext(%gui.tmp.text.num,$2,$3,$4))) { update.combobox $2 %gui.tmp.text.num }
    elseif (($gettype(%gui.tmp.text.num,$calc($2 - 1)) == combo) && ($incombotext(%gui.tmp.text.num,$calc($2 - 1),$3,$4))) { update.combobox $calc($2 - 1) %gui.tmp.text.num }
    else {
      set -u1 %gui.tmp.command.num $calc($round($calc((($3 + (%gui.dist + 20)) / %gui.dist)),0) - 1)
      if ($gettype(%gui.tmp.command.num,$2) == command) { if ($incommand(%gui.tmp.command.num,$2,$3,$4)) { $getcommand(%gui.tmp.command.num,$2) | halt } }
      if ($gettype(%gui.tmp.command.num,$calc($2 - 1)) == command) { if ($incommand(%gui.tmp.command.num,$calc($2 - 1),$3,$4)) $getcommand(%gui.tmp.command.num,$calc($2 - 1)) }
    }
  }
}
alias -l update.combobox {
  if ($combobox.type($2,$1)) {
    if ($textbox.reqval($2,$1)) set [ [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text ] $$?="Enter value for ` $+ $gettext($2,$1) $+ ` "
    set [ [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .value ] $comboboxvar($1,$2)
    else set [ [ $chr(37) ] $+ gui.combobox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text ] $?="Enter value for ` $+ $gettext($2,$1) $+ ` "
    set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
    set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
    drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14)) 14
    drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
    drawrect -ntrf %gui.window %gui.colour.combobutton 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
    drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 14))))) %tmp.textbox 14 14
    arrow $calc(%tmp1.textbox + $int($calc(3 + (%gui.dist / 3) + (%gui.dist / 10) + $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 11))))) $calc(%tmp.textbox + 9)
    if ($comboboxvar($1,$2)) drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 16)) 14 $comboboxvar($1,$2)
    drawdot %gui.window
    if ($get.command($2,$1)) $get.command($2,$1)
  }
}
alias -l update.textbox {
  if ($textbox.file($2,$1)) {
    if ($textbox.reqval($2,$1)) set -u1 %gui.tmp $$dir="Select file $getname($2,$1) " $getfile($2,$1)
    else set -u1 %gui.tmp $dir="Select file for $getname($2,$1) " $getfile($2,$1)
  }
  else {
    if ($textbox.reqval($2,$1)) set -u1 %gui.tmp $$?="Enter value for ` $+ $gettext($2,$1) $+ ` "
    else set -u1 %gui.tmp $$?="Enter value for ` $+ $gettext($2,$1) $+ ` "
  }
  set [ [ $chr(37) ] $+ gui.textbox $+ [ $1 ] $+ - $+ [ $2 ] $+ .text ] %gui.tmp
  set -u1 %tmp.textbox $calc(54 + (15 * ($1 - 1)))
  set -u1 %tmp1.textbox $calc(20 + (($2 - 1) * %gui.dist))
  drawrect -ntrf %gui.window %gui.colour.objects 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  drawrect -nrt %gui.window %gui.colour.border 1 $calc(%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10)))) %tmp.textbox $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5))) 14
  if ($textboxvar($1,$2)) {
    if ($textbox.file($2,$1)) set -u1 %gui.tmp $nopath($textboxvar($1,$2))
    else set -u1 %gui.tmp $textboxvar($1,$2)
    drawtext -nrc %gui.window %gui.colour.font Arial 12 $calc((%tmp1.textbox + $int($calc((%gui.dist / 3) + (%gui.dist / 10))) + 2) + 1) $calc(%tmp.textbox + 2) $int($calc(((%gui.dist / 3) * 2) - (%gui.dist / 5) - 3)) 14 %gui.tmp
  }
  drawdot %gui.window
  if ($get.command($2,$1)) $get.command($2,$1)
}
alias -l var { set %tmp.var $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | set -u1 %tmp.var $chr(37) $+ $gettok(%tmp.var,3,59) | return [ [ %tmp.var ] ] }
alias -l varn { set -u1 %tmp.var $readini %gui.filename [ column $+ [ $1 ] ] [ n $+ [ $2 ] ] | return $chr(37) $+ $gettok(%tmp.var,3,59) }
alias -l vertest { return $readini -n %gui.filetemp options rows }