Snippets Project Page
Author: Dazuz
Added: 5y
Updated: 5y
mIRC: 7.62
Hits: 1,421
Downloads: 39
Review: entropy
Size: 32.91KB
0
0
Login to vote.
Colour Picker
v1.1
A little @picwin Colour Picker tool.
Generates a fullish RGB and mIRC colour bitmaps out of thin air!
/CP opens the window, menubar has Colour Picker menu.
Download
JSON
▲ Review
▲ Log
▼ Source
/* Colour Picker for mIRC v7.62+ Version: 1.1 Coded by: Dazuz @ QuakeNet 1.1 (2020-08-03) - Changed text box background colour from hilight to inverted text colour. 1.0 (2020-08-02) - Initial release. */ ;This alias creates $scriptdirCube.ico file. Feel free to remove the alias, it won't break anything important. alias cp.createicon { set -l %icon $qt($scriptdirCube.ico) if (!$isfile(%icon)) { bset -t & 1 Y2BgBEIBAQYgUGDIYGFgEAOyNIBYACzCAJQFkQwMDiwMGOD///+MtMBrt+9oRMak6steN+U/MiZkDrq+zMPL/6c/PPSfGHOw6YNhdP3I5sD0Y9NHSD8II+vHpnco63/x8+v/vS/uwjGx+kH6YBhZPzZzkPXPO7sHRS8u/SDce2wTin6YGejm4NKHrheXOaTow2UOqfpIxaASgBIMAA== if ($decode(&,bm)) && ($decompress(&,bm1)) && ($sha1(&,1) == ae378536e1f7af22066cb722dd04739a5a7fe8a4) bwrite %icon 0 & } } on *:load: { if ($version < 7.62) { echo $color(info) -at * Unsupported mIRC version, please update to $v2 or newer. unload -rs $qt($script) } else { echo $color(info) -at * Colour Picker loaded! Type /CP to open the Colour Picker window. cp.createicon } } on *:unload: { cp.close unset %cp.* .remove $qt($scriptdirColour Picker RGB.bmp) .remove $qt($scriptdirColour Picker mIRC.bmp) } menu menubar { Colour Picker .$+(Colour Picker,$chr(9),/cp):cp .- .Uninstall:if ($input(Do you really want to uninstall Colour Picker?,yqu,Colour Picker)) unload -rs $qt($script) } alias cp { if ($window(@Colour)) window -a @Colour else { set -l %icon $qt($scriptdirCube.ico) window -pdfk0w0B +ftn @Colour -1 -1 800 600 %icon titlebar @Colour Picker - /CP drawsize @Colour 800 600 :tryagain if (!%cp.c.bitmap) %cp.c.bitmap = $qt($scriptdirColour Picker RGB.bmp) if (!$isfile(%cp.c.bitmap)) { if ($nopath(%cp.c.bitmap) == Colour Picker RGB.bmp) cp.generatergb elseif ($nopath(%cp.c.bitmap) == Colour Picker mIRC.bmp) cp.generatemirc else { %cp.c.bitmap = goto tryagain } } else drawpic -c @Colour 0 0 %cp.c.bitmap hfree -w cp.* hmake cp.colours hmake cp.database set -l %x 0 while (%x <= 98) { tokenize 1 $rgb($color(%x)) hadd cp.colours $1 $hget(cp.colours,$1) %x inc %x } window -phfk0 @cp.cache -1 -1 583 128 %icon drawsize @cp.cache 583 128 drawrect -nrf @cp.cache $rgb(face) 1 0 0 200 128 drawrect -nr @cp.cache $rgb(frame) 1 0 0 200 128 drawtext -nro @cp.cache $rgb(text) Tahoma -8 $calc(51-$width(Current colour,Tahoma,-8,1)/2) 2 Current colour drawline -nr @cp.cache $rgb(shadow) 1 5 48 5 17 97 17 drawline -nr @cp.cache $rgb(3dlight) 1 5 48 97 48 97 16 drawrect -nr @cp.cache $rgb(frame) 1 5 53 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 6 54 91 14 drawrect -nr @cp.cache $rgb(frame) 1 5 71 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 6 72 91 14 drawrect -nr @cp.cache $rgb(frame) 1 5 89 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 6 90 91 14 drawrect -nr @cp.cache $rgb(frame) 1 5 107 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 6 108 91 14 drawtext -nro @cp.cache $rgb(text) Tahoma -8 $calc(148-$width(Selected colour,Tahoma,-8,1)/2) 2 Selected colour drawline -nr @cp.cache $rgb(shadow) 1 102 48 102 17 194 17 drawline -nr @cp.cache $rgb(3dlight) 1 102 48 194 48 194 16 drawrect -nr @cp.cache $rgb(frame) 1 102 53 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 103 54 91 14 drawrect -nr @cp.cache $rgb(frame) 1 102 71 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 103 72 91 14 drawrect -nr @cp.cache $rgb(frame) 1 102 89 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 103 90 91 14 drawrect -nr @cp.cache $rgb(frame) 1 102 107 93 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 103 108 91 14 window -phfk0 @cp.preview -1 -1 200 128 %icon drawsize @cp.preview 200 128 %cp.c.xoffset = +10 %cp.c.yoffset = %cp.c.lastposition = 0 0 if (%cp.s.selecteddecimal !isnum 0-16777215) { %cp.s.selectedrgb = 0,0,0 %cp.s.selectedhex = #000000 %cp.s.selecteddecimal = 0 %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) } drawcopy -n @cp.cache 0 0 200 128 @cp.preview 0 0 drawrect -nrf @cp.preview %cp.s.selecteddecimal 1 103 18 91 30 drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(148.5-$width(%cp.s.selectedrgb,Tahoma,-8)/2) 54 91 16 %cp.s.selectedrgb drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(148.5-$width(%cp.s.selectedhex,Tahoma,-8)/2) 72 91 14 %cp.s.selectedhex drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(148.5-$width(%cp.s.selecteddecimal,Tahoma,-8)/2) 90 91 14 %cp.s.selecteddecimal drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(148.5-$width(%cp.s.selectedmirc,Tahoma,-8)/2) 108 91 14 %cp.s.selectedmirc drawrect -nrf @cp.cache $rgb(3dlight) 1 200 74 10 20 drawrect -nr @cp.cache $rgb(frame) 1 200 74 10 20 drawrect -nrf @cp.cache $rgb(face) 1 200 0 360 74 drawrect -nr @cp.cache $rgb(frame) 1 200 0 360 74 ;drawrect -nr @cp.cache $rgb(frame) 1 240 4 150 20 drawtext -nr @cp.cache $rgb(text) Tahoma -8 205 6 Red drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 245 12 140 4 drawrect -nr @cp.cache $rgb(shadow) 1 245 12 140 4 drawrect -nr @cp.cache $rgb(frame) 1 395 6 40 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 396 7 38 14 ;drawrect -nr @cp.cache $rgb(frame) 1 240 27 150 20 drawtext -nr @cp.cache $rgb(text) Tahoma -8 205 29 Green drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 245 35 140 4 drawrect -nr @cp.cache $rgb(shadow) 1 245 35 140 4 drawrect -nr @cp.cache $rgb(frame) 1 395 29 40 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 396 30 38 14 ;drawrect -nr @cp.cache $rgb(frame) 1 240 50 150 20 drawtext -nr @cp.cache $rgb(text) Tahoma -8 205 52 Blue drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 245 58 140 4 drawrect -nr @cp.cache $rgb(shadow) 1 245 58 140 4 drawrect -nr @cp.cache $rgb(frame) 1 395 52 40 16 drawrect -nrf @cp.cache $cp.invert($rgb($rgb(text))) 1 396 53 38 14 drawline -nr @cp.cache $rgb(shadow) 1 480 68 480 5 504 5 drawline -nr @cp.cache $rgb(3dlight) 1 480 68 504 68 504 4 drawline -nr @cp.cache $rgb(shadow) 1 510 68 510 5 554 5 drawline -nr @cp.cache $rgb(3dlight) 1 510 68 554 68 554 4 %cp.s.sliders = 1 %cp.s.sliderx = 10 %cp.s.slidery = 515 ;window -pdfk0w0B +ftL @cp.sliders -1 -1 360 74 %icon window -phfk0 @cp.sliders -1 -1 360 74 %icon drawsize @cp.sliders 360 74 cp.drawsliders } } alias -l cp.invert { tokenize 44 $1 return $rgb($calc(255*(1-$1 /255)),$calc(255*(1-$2 /255)),$calc(255*(1-$3 /255))) } alias -l cp.drawsliders { drawcopy -n @cp.cache 200 0 360 74 @cp.sliders 0 0 tokenize 44 %cp.s.selectedrgb set -l %t $calc($1 +$2 +$3) tokenize 32 $1-3 $round($calc(($1 /%t)*100),1) $+ % $round($calc(($2 /%t)*100),1) $+ % $round($calc(($3 /%t)*100),1) $+ % drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($1 /255))) 4 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($2 /255))) 27 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($3 /255))) 50 if (%cp.c.object == 1) drawrect -nr @cp.sliders $rgb(frame) 1 40 4 150 20 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($1,Tahoma,-8)/2)) 7 38 14 $1 if (%cp.c.object == 2) drawrect -nr @cp.sliders $rgb(frame) 1 40 27 150 20 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($2,Tahoma,-8)/2)) 30 38 14 $2 if (%cp.c.object == 3) drawrect -nr @cp.sliders $rgb(frame) 1 40 50 150 20 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($3,Tahoma,-8)/2)) 53 38 14 $3 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($4,Tahoma,-8)) 6 $4 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($5,Tahoma,-8)) 29 $5 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($6,Tahoma,-8)) 52 $6 set -l %a 30 set -l %1 $1 set -l %2 $2 set -l %3 $3 set -l %b 61 set -l %4 0 set -l %5 0 set -l %6 0 tokenize 32 $calc((255-$1)/30) $calc((255-$2)/30) $calc((255-$3)/30) $calc($1 /30) $calc($2 /30) $calc($3 /30) while (%a >= 0) { drawline -nr @cp.cache $rgb(%1,%2,%3) 1 560 %a 583 %a dec %a inc %1 $1 inc %2 $2 inc %3 $3 drawline -nr @cp.cache $rgb(%4,%5,%6) 1 560 %b 583 %b dec %b inc %4 $4 inc %5 $5 inc %6 $6 } drawcopy -n @cp.cache 560 0 23 62 @cp.sliders 281 6 drawline -nri @cp.sliders 0 1 281 36 303 36 303 38 281 38 281 36 %cp.c.brightness = 37 drawrect -nrf @cp.sliders %cp.s.selecteddecimal 1 311 6 43 62 drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery } alias -l cp.updatesliders { %cp.c.object = $1 %cp.s.selectedrgb = $puttok(%cp.s.selectedrgb,$2,$1,44) tokenize 44 %cp.s.selectedrgb %cp.s.selecteddecimal = $rgb($1,$2,$3) %cp.s.selectedhex = $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) cp.drawsliders drawdot @Colour %cp.c.updateneeded = 1 } alias -l cp.updatebrightness { %cp.c.brightness = $1 drawcopy -n @cp.cache 200 0 360 74 @cp.sliders 0 0 drawcopy -n @cp.cache 560 0 23 62 @cp.sliders 281 6 drawrect -nr @cp.sliders $rgb(frame) 1 280 5 25 64 drawline -nri @cp.sliders 0 1 281 $calc($1 -1) 303 $calc($1 -1) 303 $calc($1 +1) 281 $calc($1 +1) 281 $calc($1 -1) %cp.s.selecteddecimal = $getdot(@cp.sliders,290,$1) %cp.s.selectedrgb = $rgb(%cp.s.selecteddecimal) tokenize 44 %cp.s.selectedrgb %cp.s.selectedhex = $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) set -l %t $calc($1 +$2 +$3) tokenize 32 $1-3 $round($calc(($1 /%t)*100),1) $+ % $round($calc(($2 /%t)*100),1) $+ % $round($calc(($3 /%t)*100),1) $+ % drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($1 /255))) 4 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($2 /255))) 27 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($3 /255))) 50 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($1,Tahoma,-8)/2)) 7 38 14 $1 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($2,Tahoma,-8)/2)) 30 38 14 $2 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($3,Tahoma,-8)/2)) 53 38 14 $3 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($4,Tahoma,-8)) 6 $4 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($5,Tahoma,-8)) 29 $5 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($6,Tahoma,-8)) 52 $6 drawrect -nrf @cp.sliders %cp.s.selecteddecimal 1 311 6 43 62 drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery drawdot @Colour %cp.c.updateneeded = 1 } ;DOWN/LEFT on *:keydown:@Colour:37,40: { if (%cp.c.object == 4) { inc %cp.c.brightness if (%cp.c.brightness > 67) cp.updatebrightness 67 else cp.updatebrightness %cp.c.brightness } elseif (%cp.c.object isnum 1-3) { set -l %v $gettok(%cp.s.selectedrgb,%cp.c.object,44) dec %v if (%v < 0) %v = 0 %cp.s.selectedrgb = $puttok(%cp.s.selectedrgb,%v,%cp.c.object,44) cp.updateslidersx } } alias -l cp.updateslidersx { tokenize 44 %cp.s.selectedrgb %cp.s.selecteddecimal = $rgb($1,$2,$3) %cp.s.selectedhex = $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) cp.drawsliders drawdot @Colour %cp.c.updateneeded = 1 } ;UP/RIGHT on *:keydown:@Colour:38,39: { if (%cp.c.object == 4) { dec %cp.c.brightness if (%cp.c.brightness < 6) cp.updatebrightness 6 else cp.updatebrightness %cp.c.brightness } elseif (%cp.c.object isnum 1-3) { set -l %v $gettok(%cp.s.selectedrgb,%cp.c.object,44) inc %v if (%v > 255) %v = 255 %cp.s.selectedrgb = $puttok(%cp.s.selectedrgb,%v,%cp.c.object,44) cp.updateslidersx } } ;1-9 on *:keydown:@Colour:48,49,50,51,52,53,54,55,56,57: { if (%cp.c.object isnum 1-3) cp.editrgb %cp.c.object $keychar $gettok(%cp.s.selectedrgb,%cp.c.object,44) } alias -l cp.editrgb { if ($len($3) >= 3) beep 1 else { set -l %v $3 $+ $2 while ($left(%v,1) == 0) && ($len(%v) > 1) %v = $mid(%v,2-) if (%v > 255) beep 1 elseif (%v < 0) beep 1 else { %cp.s.selectedrgb = $puttok(%cp.s.selectedrgb,%v,$1,44) cp.updateslidersx } } } ;BACKSPACE on *:keydown:@Colour:8: { if (%cp.c.object isnum 1-3) cp.delrgb %cp.c.object $gettok(%cp.s.selectedrgb,%cp.c.object,44) } alias -l cp.delrgb { if ($2 == 0) beep 1 else { set -l %v $left($2,-1) if (!%v) %v = 0 %cp.s.selectedrgb = $puttok(%cp.s.selectedrgb,%v,$1,44) cp.updateslidersx } } ;TAB on *:keydown:@Colour:9: { inc %cp.c.object if (%cp.c.object > 4) %cp.c.object = 1 drawcopy -n @cp.cache 200 0 360 74 @cp.sliders 0 0 drawcopy -n @cp.cache 560 0 23 62 @cp.sliders 281 6 drawline -nri @cp.sliders 0 1 281 $calc(%cp.c.brightness -1) 303 $calc(%cp.c.brightness -1) 303 $calc(%cp.c.brightness +1) 281 $calc(%cp.c.brightness +1) 281 $calc(%cp.c.brightness -1) tokenize 44 %cp.s.selectedrgb set -l %t $calc($1 +$2 +$3) tokenize 32 $1-3 $round($calc(($1 /%t)*100),1) $+ % $round($calc(($2 /%t)*100),1) $+ % $round($calc(($3 /%t)*100),1) $+ % drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($1 /255))) 4 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($2 /255))) 27 drawcopy -n @cp.cache 200 74 10 20 @cp.sliders $calc(40+(140*($3 /255))) 50 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($1,Tahoma,-8)/2)) 7 38 14 $1 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($2,Tahoma,-8)/2)) 30 38 14 $2 drawtext -nrc @cp.sliders $rgb(text) Tahoma -8 $calc(215-($width($3,Tahoma,-8)/2)) 53 38 14 $3 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($4,Tahoma,-8)) 6 $4 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($5,Tahoma,-8)) 29 $5 drawtext -nr @cp.sliders $rgb(text) Tahoma -8 $calc(275-$width($6,Tahoma,-8)) 52 $6 drawrect -nrf @cp.sliders %cp.s.selecteddecimal 1 311 6 43 62 if (%cp.c.object == 1) drawrect -nr @cp.sliders $rgb(frame) 1 40 4 150 20 elseif (%cp.c.object == 2) drawrect -nr @cp.sliders $rgb(frame) 1 40 27 150 20 elseif (%cp.c.object == 3) drawrect -nr @cp.sliders $rgb(frame) 1 40 50 150 20 elseif (%cp.c.object == 4) drawrect -nr @cp.sliders $rgb(frame) 1 280 5 25 64 drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery drawdot @Colour } ;CTRL+C on *:keydown:@Colour:67: { if ($asc($keychar) == 3) && ($input(What would you like to copy?,qms,@Colour,Colour Picker,RGB: %cp.s.selectedrgb,RGB: %cp.s.selectedrgb,HEX: %cp.s.selectedhex,Decimal: %cp.s.selecteddecimal,mIRC: %cp.s.selectedmirc)) clipboard $gettok($v1,2-,32) } ;CTRL+V on *:keydown:@Colour:86: { if ($asc($keychar) == 22) { tokenize 32 $cb if (*?,?*,?* iswm $cb) cp.loadrgb $replacex($cb,$chr(44),$chr(32)) elseif ($1 isnum 0-255) && ($2 isnum 0-255) && ($3 isnum 0-255) cp.loadrgb $1-3 elseif (#?????? iswm $cb) cp.loadrgb $base($mid($cb,2,2),16,10) $base($mid($cb,4,2),16,10) $base($mid($cb,6,2),16,10) elseif ($base($mid($cb,1,2),16,10) isnum 0-255) && ($base($mid($cb,3,2),16,10) isnum 0-255) && ($base($mid($cb,5,2),16,10) isnum 0-255) cp.loadrgb $base($mid($cb,1,2),16,10) $base($mid($cb,3,2),16,10) $v1 elseif (#??? iswm $cb) cp.loadrgb $base($str($mid($cb,2,1),2),16,10) $base($str($mid($cb,3,1),2),16,10) $base($str($mid($cb,4,1),2),16,10) elseif ($base($str($mid($cb,1,1),2),16,10) isnum 0-255) && ($base($str($mid($cb,2,1),2),16,10) isnum 0-255) && ($base($str($mid($cb,3,1),2),16,10) isnum 0-255) cp.loadrgb $base($str($mid($cb,1,1),2),16,10) $base($str($mid($cb,2,1),2),16,10) $v1 elseif ($cb isnum 0-16777215) cp.loadrgb $rgb($cb) else beep 1 } } alias -l cp.loadrgb { if ($1 isnum 0-255) && ($2 isnum 0-255) && ($3 isnum 0-255) { %cp.s.selecteddecimal = $rgb($1,$2,$3) %cp.s.selectedrgb = $rgb(%cp.s.selecteddecimal) tokenize 44 %cp.s.selectedrgb %cp.s.selectedhex = $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) cp.drawsliders if (%cp.c.visible) cp.drawselected %cp.s.selecteddecimal else %cp.s.history = $gettok($instok($remtok(%cp.s.history,%cp.selectedrgb,0,32),%cp.s.selectedrgb,1,32),1-10,32) drawdot @Colour } else beep 1 } menu @Colour { uclick:unset %cp.c.x %cp.c.y %cp.c.move leave: { unset %cp.c.x %cp.c.y %cp.c.move drawpic -nc @Colour %cp.c.lastposition %cp.c.lastposition 200 128 %cp.c.bitmap if (%cp.s.sliders) drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery drawdot @Colour } mouse: { set -l %x $mouse.x set -l %y $mouse.y set -l %relativex %x - %cp.s.sliderx set -l %relativey %y - %cp.s.slidery if (%cp.c.move == brightness) { if (%relativey < 6) %relativey = 6 elseif (%relativey > 67) %relativey = 67 cp.updatebrightness %relativey } elseif (%cp.c.move) { if (%relativex <= 45) set -l %v 0 elseif (%relativex >= 185) set -l %v 255 else set -l %v $round($calc(255*((%relativex -45)/140)),0) cp.updatesliders %cp.c.move %v } elseif (%cp.c.x isnum) { set -l %nx $calc(%x -(%cp.c.x -%cp.s.sliderx)) set -l %ny $calc(%y -(%cp.c.y -%cp.s.slidery)) if (%nx < 0) %nx = 0 elseif ($calc(%nx +360) > 800) %nx = 800 - 360 if (%ny < 0) %ny = 0 elseif ($calc(%ny +74) > 600) %ny = 600 - 74 drawpic -nc @Colour %cp.s.sliderx %cp.s.slidery %cp.s.sliderx %cp.s.slidery 360 74 %cp.c.bitmap %cp.s.sliderx = %nx %cp.s.slidery = %ny %cp.c.x = %x %cp.c.y = %y drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery drawdot @Colour } elseif (%cp.s.sliders) && ($inrect(%x,%y,%cp.s.sliderx,%cp.s.slidery,360,74)) { if (%cp.c.visible) { drawpic -nc @Colour %cp.c.lastposition %cp.c.lastposition 200 128 %cp.c.bitmap drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery drawdot @Colour %cp.c.visible = } } else { if (%cp.c.updateneeded) cp.updateselected %cp.c.visible = 1 if (%x > 590) %cp.c.xoffset = -210 elseif (%x < 210) %cp.c.xoffset = +10 if (%y > 472) %cp.c.yoffset = -128 elseif (%y < 128) %cp.c.yoffset = drawpic -nc @Colour %cp.c.lastposition %cp.c.lastposition 200 128 %cp.c.bitmap if (%cp.s.sliders) drawcopy -n @cp.sliders 0 0 360 74 @Colour %cp.s.sliderx %cp.s.slidery %cp.c.lastposition = $calc(%x %cp.c.xoffset) $calc(%y %cp.c.yoffset) if (*\Colour Picker mIRC.bmp" iswm %cp.c.bitmap) { if (%y <= 138) cp.drawcurrent $getdot(@Colour,$calc($floor($calc(%x /100))*100+50),%y) else cp.drawcurrent $getdot(@Colour,$calc($floor($calc(%x /67))*67+50),%y) } else cp.drawcurrent $getdot(@Colour,%x,%y) } } sclick: { set -l %x $mouse.x set -l %y $mouse.y if (%cp.s.sliders) && ($inrect(%x,%y,%cp.s.sliderx,%cp.s.slidery,360,74)) { tokenize 44 %cp.s.selectedrgb set -l %relativex %x - %cp.s.sliderx set -l %relativey %y - %cp.s.slidery if (%relativex <= 45) set -l %v 0 elseif (%relativex >= 185) set -l %v 255 else set -l %v $round($calc(255*((%relativex -45)/140)),0) if ($inrect(%relativex,%relativey,195,6,40,16)) { %cp.c.object = 1 cp.drawsliders drawdot @Colour } elseif ($inrect(%relativex,%relativey,$calc(40+(140*($1 /255))),4,10,20)) { %cp.c.move = 1 %cp.c.object = 1 } elseif ($inrect(%relativex,%relativey,40,4,150,20)) cp.updatesliders 1 %v elseif ($inrect(%relativex,%relativey,195,29,40,16)) { %cp.c.object = 2 cp.drawsliders drawdot @Colour } elseif ($inrect(%relativex,%relativey,$calc(40+(140*($2 /255))),27,10,20)) { %cp.c.move = 2 %cp.c.object = 2 } elseif ($inrect(%relativex,%relativey,40,27,150,20)) cp.updatesliders 2 %v elseif ($inrect(%relativex,%relativey,195,52,40,16)) { %cp.c.object = 3 cp.drawsliders drawdot @Colour } elseif ($inrect(%relativex,%relativey,$calc(40+(140*($3 /255))),50,10,20)) { %cp.c.move = 3 %cp.c.object = 3 } elseif ($inrect(%relativex,%relativey,40,50,150,20)) cp.updatesliders 3 %v elseif ($inrect(%relativex,%relativey,281,6,23,62)) { %cp.c.move = brightness %cp.c.object = 4 cp.updatebrightness %relativey } else { %cp.c.x = %x %cp.c.y = %y } } else { if (%cp.c.updateneeded) cp.updateselected if (%x > 590) %cp.c.xoffset = -210 elseif (%x < 210) %cp.c.xoffset = +10 if (%y > 472) %cp.c.yoffset = -128 elseif (%y < 128) %cp.c.yoffset = drawpic -nc @Colour %cp.c.lastposition %cp.c.lastposition 200 128 %cp.c.bitmap %cp.c.lastposition = $calc(%x %cp.c.xoffset) $calc(%y %cp.c.yoffset) if (*\Colour Picker mIRC.bmp" iswm %cp.c.bitmap) { if (%y <= 138) cp.drawselected $getdot(@Colour,$calc($floor($calc(%x /100))*100+50),%y) else cp.drawselected $getdot(@Colour,$calc($floor($calc(%x /67))*67+50),%y) } else cp.drawselected $getdot(@Colour,%x,%y) } } $+(Red Green Blue,$chr(9),%cp.s.selectedrgb) :clipboard %cp.s.selectedrgb $+(Hexadecimal,$chr(9),%cp.s.selectedhex) :clipboard %cp.s.selectedhex $+(Decimal,$chr(9),%cp.s.selecteddecimal) :clipboard %cp.s.selecteddecimal $+(mIRC,$chr(9),%cp.s.selectedmirc) :clipboard %cp.s.selectedmirc - Bitmap... .$iif(*\Colour Picker RGB.bmp" iswm %cp.c.bitmap,$style(1)) $+(Full RGB,$chr(9),CTRL+B):cp.rgbbitmap .$iif(*\Colour Picker mIRC.bmp" iswm %cp.c.bitmap,$style(1)) $+(mIRC colours,$chr(9),CTRL+M):cp.mircbitmap .- .$iif((*\Colour Picker mIRC.bmp" iswm %cp.c.bitmap) && (*\Colour Picker RGB.bmp" iswm %cp.c.bitmap),$style(1)) Custom image...: { if ($sfile($iif($isdir($nofile(%cp.c.bitmap)),$nofile(%cp.c.bitmap),$scriptdir) *.jpg;*.jpeg;*.png;*.bmp;*.gif,Choose an image,Open)) { %cp.c.bitmap = $qt($v1) drawpic -c drawrect -nrf @Colour 0 1 0 0 800 600 drawpic -nc @Colour 0 0 %cp.c.bitmap drawdot @Colour } if ($error) { reseterror noop $input(Invalid image file.,ohu,Colour Picker) %cp.c.bitmap = $qt($scriptdirColour Picker RGB.bmp) if (!$isfile(%cp.c.bitmap)) cp.generatergb else drawpic -c @Colour 0 0 %cp.c.bitmap } } - $+(Invert selected colour,$chr(9),CTRL+I):cp.drawselected $cp.invert(%cp.s.selectedrgb) $+(Random colour,$chr(9),CTRL+R): { if ($nopath(%cp.c.bitmap) == Colour Picker mIRC.bmp) cp.drawselected $color($r(0,98)) else cp.drawselected $rgb($r(0,255),$r(0,255),$r(0,255)) } - History... .$submenu($cp.history($1)) - Close:cp.close } ;CTRL+M on *:keydown:@Colour:77:if ($asc($keychar) == 13) cp.mircbitmap alias -l cp.mircbitmap { if (*\Colour Picker mIRC.bmp" iswm %cp.c.bitmap) && ($input(mIRC bitmap already selected $+ $chr(44) do you want to regenerate the bitmap?,yqu,Colour Picker)) cp.generatemirc else { drawpic -c %cp.c.bitmap = $qt($scriptdirColour Picker mIRC.bmp) if (!$isfile(%cp.c.bitmap)) cp.generatemirc else drawpic -c @Colour 0 0 %cp.c.bitmap } } ;CTRL+B on *:keydown:@Colour:66:if ($asc($keychar) == 2) cp.rgbbitmap alias -l cp.rgbbitmap { if (*\Colour Picker RGB.bmp" iswm %cp.c.bitmap) && ($input(Full RGB bitmap already selected $+ $chr(44) do you want to regenerate the bitmap?,yqu,Colour Picker)) cp.generatergb else { drawpic -c %cp.c.bitmap = $qt($scriptdirColour Picker RGB.bmp) if (!$isfile(%cp.c.bitmap)) cp.generatergb else drawpic -c @Colour 0 0 %cp.c.bitmap } } ;CTRL+I on *:keydown:@Colour:73: { if ($asc($keychar) == 9) { tokenize 44 %cp.s.selectedrgb cp.drawselected $rgb($calc(255*(1-$1 /255)),$calc(255*(1-$2 /255)),$calc(255*(1-$3 /255))) } } ;CTRL+R on *:keydown:@Colour:82: { if ($asc($keychar) == 18) { if ($nopath(%cp.c.bitmap) == Colour Picker mIRC.bmp) cp.drawselected $color($r(0,98)) else cp.drawselected $rgb($r(0,255),$r(0,255),$r(0,255)) } } alias -l cp.history { if ($1 == begin) return - elseif ($gettok(%cp.s.history,$1,32)) return $v1 :cp.loadrgb $replacex($v1,$chr(44),$chr(32)) else return - } alias -l cp.drawcurrent { set -l %v $1 tokenize 44 $rgb(%v) drawcopy -n @cp.cache 0 0 100 128 @cp.preview 0 0 drawrect -nrf @cp.preview %v 1 6 18 91 30 drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(51.5-$width($1-3,Tahoma,-8)/2) 54 91 16 $rgb(%v) set -l %h $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(51.5-$width(%h,Tahoma,-8)/2) 72 91 14 %h drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(51.5-$width(%v,Tahoma,-8)/2) 90 91 14 %v set -l %m $cp.match(%v) drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(51.5-$width(%m,Tahoma,-8)/2) 108 91 14 %m drawcopy -n @cp.preview 0 0 200 128 @Colour %cp.c.lastposition drawdot @Colour } alias -l cp.drawselected { %cp.s.selecteddecimal = $1 %cp.s.selectedrgb = $rgb($1) tokenize 44 %cp.s.selectedrgb drawcopy -n @cp.cache 0 0 200 128 @cp.preview 0 0 drawrect -nrf @cp.preview %cp.s.selecteddecimal 1 6 18 91 30 103 18 91 30 cp.drawtext 54 $width(%cp.s.selectedrgb,Tahoma,-8) %cp.s.selectedrgb %cp.s.selectedhex = $+($chr(35),$base($1,10,16,2),$base($2,10,16,2),$base($3,10,16,2)) cp.drawtext 72 $width(%cp.s.selectedhex,Tahoma,-8) %cp.s.selectedhex cp.drawtext 90 $width(%cp.s.selecteddecimal,Tahoma,-8) %cp.s.selecteddecimal %cp.s.selectedmirc = $cp.match(%cp.s.selecteddecimal) cp.drawtext 108 $width(%cp.s.selectedmirc,Tahoma,-8) %cp.s.selectedmirc cp.drawsliders %cp.s.history = $gettok($instok($remtok(%cp.s.history,%cp.selectedrgb,0,32),%cp.s.selectedrgb,1,32),1-10,32) drawcopy -n @cp.preview 0 0 200 128 @Colour %cp.c.lastposition drawdot @Colour } alias -l cp.updateselected { %cp.c.updateneeded = drawcopy -n @cp.cache 0 0 200 128 @cp.preview 0 0 drawrect -nrf @cp.preview %cp.s.selecteddecimal 1 6 18 91 30 103 18 91 30 cp.drawtext 54 $width(%cp.s.selectedrgb,Tahoma,-8) %cp.s.selectedrgb cp.drawtext 72 $width(%cp.s.selectedhex,Tahoma,-8) %cp.s.selectedhex cp.drawtext 90 $width(%cp.s.selecteddecimal,Tahoma,-8) %cp.s.selecteddecimal cp.drawtext 108 $width(%cp.s.selectedmirc,Tahoma,-8) %cp.s.selectedmirc %cp.s.history = $gettok($instok($remtok(%cp.s.history,%cp.selectedrgb,0,32),%cp.s.selectedrgb,1,32),1-10,32) } alias -l cp.drawtext { drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(51.5-$2 /2) $1 91 16 $3- drawtext -nrc @cp.preview $rgb(text) Tahoma -8 $calc(148.5-$2 /2) $1 91 16 $3- } on *:close:@Colour:cp.close on *:exit:if ($window(@Colour)) cp.close alias -l cp.close { window -c @Colour drawpic -c while ($window(@cp.*,1)) window -c $v1 unset %cp.c.* hfree -w cp.* } alias -l cp.match { if ($hget(cp.database,$1) != $null) return $v1 else return $cp.find($1) } alias -l cp.find { set -l %a $1 set -l %b a set -l %n 1 tokenize 44 $rgb($1) set -l %x 1 set -l %1 $1 set -l %2 $2 set -l %3 $3 while ($hget(cp.colours,%x).item) { tokenize 44 $v1 tokenize 1 $sqrt($calc((($1 -%1)*0.3)^2+(($2 -%2)*0.59)^2+(($3 -%3)*0.11)^2)) if ($1 < %b) var %b = $v1,%n $hget(cp.colours,%x).data elseif ($1 == %b) %n = %n $hget(cp.colours,%x).data inc %x } hadd cp.database %a $replacex(%n,$chr(32),$chr(44) $+ $chr(32)) return $hget(cp.database,%a) } alias -l cp.generatergb { drawpic -c drawrect -nrf @Colour $rgb(face) 1 0 0 800 600 drawtext -nro @Colour $rgb(shadow) Tahoma -20 2 2 Please wait, generating RGB bitmap... drawtext -nro @Colour $rgb(text) Tahoma -20 0 0 Please wait, generating RGB bitmap... drawdot @Colour set -l %xsize 800 / 6 set -l %ysize 600 / 2 set -l %xstep 255 / %xsize set -l %1ststep 255 / %ysize set -l %2nd 0 set -l %3rdstep 255 / %ysize set -l %1 0 set -l %2 2 * %xsize set -l %3 2 * %xsize set -l %4 4 * %xsize set -l %5 4 * %xsize set -l %6 6 * %xsize while (%1 <= %xsize) { set -l %1st 255 set -l %2ndtemp %2nd set -l %2ndstep $calc((255-%2nd)/%ysize) set -l %2ndtempdark %2nd set -l %2ndstepdark %2nd / %ysize set -l %3rd 0 set -l %ylight %ysize set -l %ydark %ysize while (%ylight >= 0) { drawdot -nr @Colour $rgb(255,%2ndtemp,%3rd) 1 %1 %ylight drawdot -nr @Colour $rgb(%2ndtemp,255,%3rd) 1 %2 %ylight drawdot -nr @Colour $rgb(%3rd,255,%2ndtemp) 1 %3 %ylight drawdot -nr @Colour $rgb(%3rd,%2ndtemp,255) 1 %4 %ylight drawdot -nr @Colour $rgb(%2ndtemp,%3rd,255) 1 %5 %ylight drawdot -nr @Colour $rgb(255,%3rd,%2ndtemp) 1 %6 %ylight drawdot -nr @Colour $rgb(%1st,%2ndtempdark,0) 1 %1 %ydark drawdot -nr @Colour $rgb(%2ndtempdark,%1st,0) 1 %2 %ydark drawdot -nr @Colour $rgb(0,%1st,%2ndtempdark) 1 %3 %ydark drawdot -nr @Colour $rgb(0,%2ndtempdark,%1st) 1 %4 %ydark drawdot -nr @Colour $rgb(%2ndtempdark,0,%1st) 1 %5 %ydark drawdot -nr @Colour $rgb(%1st,0,%2ndtempdark) 1 %6 %ydark dec %1st %1ststep dec %2ndtempdark %2ndstepdark inc %2ndtemp %2ndstep inc %3rd %3rdstep dec %ylight inc %ydark } inc %2nd %xstep inc %1 dec %2 inc %3 dec %4 inc %5 dec %6 drawdot @Colour } drawsave -b32 @Colour %cp.c.bitmap } alias -l cp.generatemirc { drawpic -c set -l %y 0 set -l %m 0 while (%m <= 15) { set -l %x 0 while (%x <= 790) { drawrect -nrf @Colour $color(%m) 1 %x %y 100 69 tokenize 44 $rgb($color(%m)) drawtext -nro @Colour $iif($calc(0.2126*$1 +0.7152*$2 +0.0722*$3) >= 125,0,16777215) Tahoma -20 %x %y $base(%m,10,10,2) inc %x 100 inc %m } inc %y 69 } while (%m <= 98) { %x = 0 while (%x <= 790) { drawrect -nrf @Colour $color(%m) 1 %x %y 67 66 tokenize 44 $rgb($color(%m)) drawtext -nro @Colour $iif($calc(0.2126*$1 +0.7152*$2 +0.0722*$3) >= 125,0,16777215) Tahoma -14 %x %y %m inc %x 66.666667 inc %m } inc %y 66 } drawrect -nrf @Colour 0 1 733 534 67 66 drawdot @Colour drawsave -b32 @Colour %cp.c.bitmap }
Changelog:
1.1 (2020-08-03)
- Changed text box background colour from hilight to inverted text colour.
1.0 (2020-08-02)
- Initial release.
1.1 (2020-08-03)
- Changed text box background colour from hilight to inverted text colour.
1.0 (2020-08-02)
- Initial release.
Comments (2)
Aug 2nd, 2020 - By: Koragg
It appears that the textbox backgrounds when using this in AdiIRC (beta 3.9 Build (2020/07/24 UTC) are colored (I removed the version check so that it can function properly): Screenshot to showcase better what is meant: https://imgur.com/a/aRe5dLQ <--- it might be blue as that was the first image I chose. Can the script be made to have textboxes with white background like in mIRC or is this a bug on AdiIRC's end?
Reply:
Aug 3rd, 2020 - By: Dazuz
Technically it's a mistake on my part. The script uses system colours given by $rgb (https://pastebin.com/ZcbYAtyd), and it uses hilight as the background colour. I'll change it so that it'll use the inverted colour of text instead, in the next version.
For now, an instant fix would be to replace all occurrences of "$rgb(hilight)" with "16777215".
For now, an instant fix would be to replace all occurrences of "$rgb(hilight)" with "16777215".

![Click to enlarge: project[CF8QL].png](./snippets/project[CF8QL].png)