Adından da anlaşılacağı gibi "mIRC hover menu" fare üzerine gelince açılan menü.
Epeydir MSL/mIRC kod yazmamıştım paslanmışız haliyle, pasımızı atalım dedik.
HTML de sık kullladığım ve mIRC'de çok eskiden beri yapmayı düşünüp zaman
bulamadığım bir fikir, "hotlink" meselesi çok sevdiğim bir konu bu "olay"
tetikleyicisini kullanarak herhangi bir kelimenin (nick, kanal
vb.) fare üzerine
gelince menü açılması ve buna göre işlem yapılmasına dayanan bir mantık.
Ben kanal için bir menü planladım ve kanalda nick'in üstüne fare gelince
açılan bir menü çıkıyor, farklı şeyler düşünenler için kod oldukca sade ve açık
olarak yazıldı, içine kolayca anlaşılması için ek açıklamalar da bıraktım.
Simgeleri her windows içide bulunan simge fontlarından seçtim, isteyen
"drawpic" ile icon, backgroun ve animasyon ekleyebilir gerisi hayal gücünüze kalmış
Standart "hotlink" olay tetikleyici yerine algılayıcı ile çalışıyor ve "picture
window" kullanılıyor dileyen "dialog" kullanarak çok farklı şeyler yapabilir.
Sanırım bu teknik ilkkez kullanılıyor yanılıyor olmayı çok isterim
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. varsa örnek lütfen görsterin.
İsteyen kendisi için özelleştirebilir ki amacı bu.. Eski sürümlerle de çalışabilmesi için
yeni fonsiyonlardan kaçındım ve haliyle biraz fazla kod oludu, dilediğiniz gibi
düzenleyebilir alıntı/çalıntı yapabilir isim bile belirmeyebilirsiniz söz kızmam kimseye
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
konu hakkında yardım isteyen veya fikri olan varsa konu başlığında yazabilir.
neyse.. olay şöyle
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias add:icon {
;<drawtext|switch><win-name><color|$rgb(x,x,x)|0-15><"font"><font size> <coord: x|y> <text-icon>
drawtext -r $win(name) $rgb(64,64,64) Webdings 24 10 2 .
drawtext -r $win(name) $rgb(65,105,225) verdana 10 10 28 Alıntı
drawtext -r $win(name) $rgb(64,64,64) $qt(webdings) 32 45 -1 `
drawtext -r $win(name) $rgb(65,105,225) verdana 10 45 28 Takip
drawtext -r $win(name) $rgb(64,64,64) Webdings 28 80 0 ^
drawtext -r $win(name) $rgb(65,105,225) verdana 9 80 28 Özel
drawtext -r $win(name) $rgb(64,64,64) Webdings 28 116 0 i
drawtext -r $win(name) $rgb(65,105,225) verdana 10 116 28 Whis
drawtext -r $win(name) $rgb(64,64,64) Webdings 28 150 0 x
drawtext -r $win(name) $rgb(65,105,225) verdana 10 150 28 Banla
drawtext -r $win(name) $rgb(255,0,0) $qt(Wingdings 2) 16 205 0 T
clear -c $win(name)
}
menu @cc:hover:tooltipop:menu {
sclick {
set %cl~ 1
;coordinates <button x|y> <command |%nick[%1~ = raw text-line hover]>
if (($mouse.x > 207) && ($v1 < %ww~)) { win -c }
elseif (($mouse.x > 150) && ($v1 < %ww~)) { ban $address(%nick,1) }
elseif (($mouse.x > 110) && ($v1 < %ww~)) { whois %nick }
elseif (($mouse.x > 80) && ($v1 < %ww~)) { query %nick }
elseif (($mouse.x > 45) && ($v1 < %ww~)) { notify %nick }
elseif (($mouse.x > 10) && ($v1 < %ww~)) { editbox $noqt(%h:win) $qt(%1~) }
}
leave: {
if (%cl~) win -c | unset %cl~
}
}
on 1:HOTLINK:*:#:{
set %hwin $qt($active)
if ($1) && ($hotlink(match).type == nick) && (%apa~) {
if ($regsubex($1,/([\<\>\[\]\{\}\(\)\{\}\\\/\\\"\*\!\@\+\%\&\.])/gui,) ison $chan) { set %nick $v1 }
set %1~ $hotline
set %h:win #
var %fs~ $ceil($calc($window(#).fontsize * 0.66))
var %x~ $calc($len($1) + $mouse.dx + %fs~ + $win(left))
var %y~ $calc($len($1) + $mouse.dy + %fs~ + $win(top))
set %w:y $calc($window(#).dy + %fs~ )
noop $win($win(name),%x~,%y~,$hotline).mkwin
return
}
else { .timer_winc -m 1 50 win -c }
haltdef
}
on 1:OPEN:*:*: win -c
on 1:HOTLINK:*:*: haltdef
on 1:APPACTIVE: { if (!$appactive) win -c $win(name) | set %apa~ $appactive }
on 1:ACTIVE:*: {
if ($active == $win(name)) noop $add:icon
if ($lactive == $win(name)) || (!$lactive) || (%hwin == $qt(lactive)) || ($active != $win(name)) win -c
}
alias -l win {
set %wn~ @cc:hover:tooltipop:menu
if $isid {
if $prop == mkwin {
set %ww~ 220 | set %wh~ 40
;-oadDH +dbB
window -aodbvDHfw0pBw0g0 +bLex $1 $2 $3 %ww~ %wh~
clear -c %wn~
}
}
if $1 == name { return %wn~ }
if $1 == -c { $iif($window(%wn~),window -c %wn~) }
if $1 == top { return - 50 }
if $1 == left { return + 10 }
}