This is a snippet to change mIRC's default font. Uses your windows or mac fonts. Put in new remotes and select your directory.
dialog afonts {
title "Fonts [/fonts]"
size -1 -1 166 164
option dbu
icon icons\chars.ico, 0
list 1, 4 10 158 58, sort size
scroll "", 2, 5 92 157 8, range 1 35 horizontal
box "", 3, 5 100 157 33
button "&Add", 4, 5 146 22 12
button "&Del ", 5, 29 146 22 12
button "&OK", 6, 118 146 43 12, ok
text "&Font:", 7, 5 71 14 8
text "&Size:", 8, 5 81 14 8
text "", 9, 20 71 142 8
text "", 10, 20 81 142 8
box "&All Fonts", 11, 1 2 164 160
check "&Set as default", 12, 8 106 44 10
check "Bold", 13, 63 106 23 10
button "&Dir ", 14, 57 146 22 12
edit "", 15, 7 119 153 10, read autohs
}
on *:dialog:afonts:init:*: {
afonts.list
did -ra $dname 9 $gettok($readini($afonts.spc($mircini),fonts,fstatus),1,44)
did -c $dname 2 $readini($afonts.spc($script),fonts,size)
did -ra $dname 10 $readini($afonts.spc($script),fonts,size)
if ($readini($afonts.spc($script),fonts,default) == 1) { did -c $dname 12 }
if ($readini($afonts.spc($script),fonts,bold) == 1) { did -c $dname 13 }
if ($remove($afonts.spc($readini($script,fonts,dir)),")) { did -ra afonts 15 $ifmatch }
}
on *:dialog:afonts:scroll:2:{
afonts.set $did(2).sel
did -ra $dname 10 $did(2).sel
}
on *:dialog:afonts:sclick:*: {
if ($did == 4) {
write $afonts.spc($scriptdirafonts.dat) $$input(Enter a fontname to add to list of fonts!,129)
afonts.list
}
elseif ($did == 5) {
if ($did(1).sel) {
write $+(-dw,$afonts.spc($did(1).seltext)) $afonts.spc($+($scriptdir,afonts.dat))
afonts.list
}
}
elseif ($did == 12) {
writeini -n $afonts.spc($script) fonts default $iif($did(12).state = 1,1,0)
}
elseif ($did == 13) {
writeini -n $afonts.spc($script) fonts bold $iif($did(13).state = 1,1,0)
afonts.set $readini($afonts.spc($script),fonts,size)
}
elseif ($did == 14) { afonts.sdir }
}
on *:dialog:afonts:dclick:*: { if ($did = 1) { afonts.set $did(1).seltext | did -ra $dname 9 $did($dname,1).seltext } }
; Local aliases
alias afonts { $iif(!$dialog(afonts),dialog -m afonts afonts,echo $color(info) -a - Afonts dialog already open!) }
alias -l afonts.bold { if ($readini($afonts.spc($script),fonts,bold) == 1) { return -b } }
alias -l afonts.chans { var %a = 1 | while ($chan(%a)) { | font $afonts.bold $chan(%a) $1- | inc %a } }
alias -l afonts.querys { var %b = 1 | while ($query(%b)) { | font $afonts.bold $query(%b) $1- | inc %b } }
alias -l afonts.chats { var %c = 1 | while ($chat(%c)) { | font $afonts.bold $chat(%c) $1- | inc %c } }
alias -l afonts.cwins { var %d = 1 | while ($window(%d)) { | font $afonts.bold $window(%d) $1- | inc %d } }
alias -l afonts.spc { return $+($chr(34),$1-,$chr(34)) }
alias -l afonts.sdir {
dialog -x afonts
writeini -n $afonts.spc($script) fonts dir $$sdir(*,Select your fonts directory eg. C:\WINDOWS\FONTS)
write -c $afonts.spc($+($scriptdir,afonts.dat))
var %f = $findfile($afonts.spc($readini($script,fonts,dir)),*.ttf,0,write $afonts.spc($+($scriptdir,afonts.dat)) $truetype($1-).fullname)
echo $color(info) -a *** Afonts v.05 has finished writing all .ttf fontnames to afonts.dat to make loading faster.
afonts
}
alias -l afonts.list {
if ($readini($script,fonts,dir)) && ($isfile($afonts.spc($scriptdirafonts.dat))) {
did -r afonts 1
loadbuf -o afonts 1 $afonts.spc($scriptdirafonts.dat)
did -ra afonts 15 $remove($afonts.spc($readini($script,fonts,dir)),")
if ($gettok($readini($afonts.spc($mircini),fonts,fstatus),1,44)) { did -c $dname 1 $didwm($dname,1,$ifmatch) }
}
else {
afonts.sdir
}
}
alias -l afonts.set {
if ($1-) {
if ($readini($afonts.spc($script),fonts,default) == 1) {
scid -a font $+(-sd,$afonts.bold) $1-
var %d = $readini($afonts.spc($mircini),fonts,fstatus)
scid -a afonts.chans $1-
scid -a afonts.querys $1-
scid -a afonts.chats $1-
scid -a afonts.cwins $1-
writeini -n $afonts.spc($mircini) fonts fmessage %d
writeini -n $afonts.spc($mircini) fonts ffinger %d
writeini -n $afonts.spc($mircini) fonts fquery %d
writeini -n $afonts.spc($mircini) fonts fchannel %d
writeini -n $afonts.spc($mircini) fonts flist %d
writeini -n $afonts.spc($mircini) fonts flinks %d
writeini -n $afonts.spc($mircini) fonts fwwwlist %d
writeini -n $afonts.spc($mircini) fonts fnotify %d
writeini -n $afonts.spc($script) fonts size $did(afonts,2).sel
}
else {
scid -a font $+(-s,$afonts.bold) $1-
scid -a afonts.chans $1-
scid -a afonts.querys $1-
scid -a afonts.chats $1-
scid -a afonts.cwins $1-
writeini -n $afonts.spc($script) fonts size $did(afonts,2).sel
}
}
}
alias -l truetype {
if (!$isfile($1)) { return }
var %fn = $iif(("*" iswm $1), $1, $+(", $1, ")), %ntables, %i = 1, %p, %namepos, %namelen, %nid = 1
if ($findtok(copyright family subfamily id fullname version postscript trademark manufacturer designer - urlvendor urldesigner, $prop, 32)) { %nid = $calc($ifmatch - 1) }
bread %fn 0 8192 &font
if ($bvar(&font, 1, 4) != 0 1 0 0) { return }
%ntables = $bvar(&font, 5).nword
while (%i <= %ntables) {
%p = $calc(13 + (%i - 1) * 16)
if (%p > 8192) { return }
if ($bvar(&font, %p, 4).text === name) { %namepos = $bvar(&font, $calc(%p + 8)).nlong | %namelen = $bvar(&font, $calc(%p + 12)).nlong | break }
inc %i
}
if (!%namepos) { return }
if (%namelen > 8192) { %namelen = 8192 }
bread %fn %namepos %namelen &font
var %nrecs = $bvar(&font, 3).nword, %storepos = $calc(%namepos + $bvar(&font, 5).nword), %i = 1
while (%i <= %nrecs) {
%p = $calc(7 + (%i - 1) * 12)
if ($bvar(&font, %p).nword = 3) && ($bvar(&font, $calc(%p + 6)).nword = %nid) {
var %len = $bvar(&font, $calc(%p + 8)).nword, %peid = $bvar(&font, $calc(%p + 2)).nword
bread %fn $calc(%storepos + $bvar(&font, $calc(%p + 10)).nword) %len &font
return $uni2ansi($bvar(&font, 1, %len))
}
inc %i
}
}
alias -l uni2ansi {
var %unicode = $1, %i = 1, %t = $numtok(%unicode, 32), %s = i, %c
while (%i <= %t) {
%c = $gettok(%unicode, $+(%i, -, $calc(%i + 2)), 32)
if ($gettok(%c, 1, 32) = 0) { %c = $chr($gettok(%c, 2, 32)) }
else { %c = ? }
%s = $left(%s, -1) $+ %c $+ i
inc %i 2
}
return $left(%s, -1)
}
on *:unload:{ remini $afonts.spc($script) fonts }