CCCPaste
alias fordialog {
set %geninp.1 $1
set %geninp.2 $2
set %geninp.3 $3
set %geninp.4 $4
set %geninp.5 $5
var %t = fordialog. $+ $trnum
mrcdlg -m %t
}
dialog fordialog.* {
title ""
option dbu
size -1 -1 173 94
text "", 1, 6 5 257 8, read multi
combo 2, 5 60 163 170, drop edit result
edit "NOTE: No specific, show the first 100 available entries.", 4, 4 51 165 8, disable
link "Help?", 5, 7 79 20 8
button "&OK", 6, 77 77 44 13, ok default
button "&Cancel", 7, 124 77 44 13, cancel
}
on *:dialog:fordialog.*:*:*:{
if ($devent == init) {
mdx SetBorderStyle $dname 4
dialog -t $dname %geninp.2
did -a $dname 1 %geninp.1
didtok $dname 2 44 %forb.syntax
}
elseif ($devent == sclick) {
if ($did == 6) {
set %forblist forbid
if (!$did(2).text) { %geninp.4 }
elseif ($regex($did(2).text, /^[a-zA-Z\s]+$/)) { set %cfblist $calc($did(2).sel +1) $did(2) | %geninp.4 $did(2) }
else { set %cfblist %linenum | %geninp.4 $did(2) }
}
elseif ($did == 7) { unset %forb.syntax %linenum }
elseif ($did == 5) { var %r = $specialwin | window -kea %r | os help Forbid }
}
elseif ($devent == edit) {
var %read $did(2,0)
if (%read != $null) && ($regex(%read, /[a-zA-Z]/)) {
var %t $did(2).lines, %i 1
while (%i <= %t) {
var %line $did(2, %i)
if (%line $+ * iswm %read) { set %linenum $calc(%i +1) %read | return }
inc %i
}
}
}
elseif ($devent == close) { unset %linenum %geninp.* }
}