drawbutton {
if (-* iswm $1) { if ($remove($1,-) !isin fscd) { return } | var %win = $iif(@* iswm $2,$2,@ $+ $2),%x = $3,%y = $4,%w = $5,%h = $6,%font = $iif($7 == *,Tahoma,$7),%size = $iif($8 isnum,$8,-8),%text = $9- }
else { var %win = $iif(@* iswm $1,$1,@ $+ $1),%x = $2,%y = $3,%w = $4,%h = $5,%font = $iif($6 == *,Tahoma,$6),%size = $iif($7 isnum,$7,-8),%text = $8- }
var %twin = @btn- $+ $remove(%win,@)
if ($window(%twin)) { window -c %twin } | window -hCpB +d %twin 0 0 %w %h
drawrect -rf %twin $rgb(face) 0 0 0 %w %h
if (-* !iswm $1) || (b isin $1) {
drawrect -r %twin $rgb(hilight) 1 0 0 %w %h
drawline -r %twin $rgb(shadow) 1 $calc(%w -2) 1 $calc(%w -2) $calc(%h -2) 0 $calc(%h -2)
drawline -r %twin $rgb(3dlight) 1 1 $calc(%h -3) 1 1 $calc(%w -2) 1
drawline -r %twin $rgb(64,64,64) 1 0 $calc(%h -1) $calc(%w -1) $calc(%h -1) $calc(%w -1) -1
}
if (f isin $1) { drawrect -r %twin $rgb(frame) 1 0 0 %w %h | drawrect -r %twin $rgb(hilight) 1 1 1 $calc(%w -2) $calc(%h -2) }
if (c isin $1) { drawrect -r %twin $rgb(frame) 1 0 0 %w %h | drawrect -r %twin $rgb(shadow) 1 1 1 $calc(%w -2) $calc(%h -2) }
if (d isin $1) {
var %w = %w - 1,%h = %h - 1
drawrect -r %twin $rgb(frame) 1 0 0 $calc(%w +1) $calc(%h +1)
drawrect -r %twin $rgb(hilight) 1 1 1 %w %h
drawline -r %twin $rgb(shadow) 1 $calc(%w -3) 2 $calc(%w -3) $calc(%h -3) 1 $calc(%h -3)
drawline -r %twin $rgb(3dlight) 1 1 $calc(%h -4) 2 2 $calc(%w -3) 2
drawline -r %twin $rgb(64,64,64) 1 1 $calc(%h -2) $calc(%w -2) $calc(%h -2) $calc(%w -2) 1
}
if ($len(%text)) {
var %tw = $width(%text,%font,%size,0,1),%th = $height(%text,%font,%size)
var %tx = $int($calc(($window(%twin).w - %tw) /2)),%ty = $int($calc(($window(%twin).h - %th) /2))
if (%tx <= 0) { var %tx = 2 }
if (%ty <= 0) { var %ty = 2 }
if (%tw > $calc($window(%twin).w -4)) { %tw = $calc($window(%twin).w -4) }
if (%th > $calc($window(%twin).h -4)) { %th = $calc($window(%twin).h -4) }
drawtext -rpcb %twin $rgb(text) $rgb(face) %font %size %tx %ty %tw %th %text
}
if (s isin $1) { drawrect -rc %twin $rgb(frame) 1 3 3 $calc(%w -6) $calc(%h -6) }
drawcopy %twin 0 0 $window(%twin).w $window(%twin).h %win %x %y | window -c %twin
return %x %y %w %h
}