REVO8100hhTextEditFull_138 HPzno:HX U(Menu) U(Text),unicode U(Message),unicode U (Message) U(Message),unicode W (Message) W(Message),unicode U(Text),unicode W(Text),unicode U (Default) U(Default),unicode  cREVGeneral breakpointstates breakpointsbreakpointconditionsscripteditorselection0scripteditorvscroll scalefactor?cREVGeometryCache stackIDIPlocal wdgt="hhTextEdit" on saveStackRequest if there is no widget wdgt then pass saveStackRequest if the htmltext of widget wdgt is empty then pass saveStackRequest put "var htmlText = $('#hh').summernote('code');" & \ "liveCode.hhGetVal('save',htmlText,document.getElementById('hh1').getAttribute('style'));" into js do js in widget wdgt pass saveStackRequest end saveStackRequest on hhGetVal y,x,z if y is "Info" then put the params else if y is "Save" then set the savedHTML of widget wdgt to x set the savedStyle of widget wdgt to z put the exportFile of widget wdgt into ef if there is no file ef then put the effective filename of this stack into sn set itemdel to "/" put "exportHTML.html" into last item of sn set itemdel to comma if there is no file sn then put "" into url("file:"&sn) set the exportFile of widget wdgt to sn end if put the exportFile of widget wdgt into ef put exportHTML(x) into s replace "HHSTYLE" with (the savedStyle of widget wdgt) in s replace "\q" with quote in s replace "\n" with CR in s replace "

" is line 1 of s delete line 1 of s end repeat put textEncode(s,"UTF-8") into url("file:"& ef) if the hilite of btn "preview" then launch document ef if "gucki" is in the openstacks and the hilite of btn "GUCKI" then send "reload ef" to stack "GUCKI" in 2 ticks end if else if y is "Restore" then put base64Encode(textEncode(the savedHTML of widget wdgt,"UTF-8")) into f replace linefeed with empty in f put "var htm=decodeURIComponent(escape(window.atob('" & f & "')));" & \ "$('#hh').summernote('code',htm);$('#hh').summernote('editor.focus');" into js do js in widget wdgt call "mouseUp" of grp "OPTIONS" end if end hhGetVal -- memo -- function utf8_to_b64(str) { return window.btoa(unescape(encodeURIComponent(str))); } -- function b64_to_utf8(str) { return decodeURIComponent(escape(window.atob(str))); } on resizestack w,h lock screen if w is empty then put the width of this card into w if h is empty then put the height of this card into h set the right of grp "helper" to w-5 set the top of grp "helper" to the top of grp "buttons" set the height of fld "HTML" to the height of widget wdgt set the topright of fld "HTML" to (the right of btn "HTML", the bottom of btn "HTML" +5) if the hilite of btn "HTML" then set the rect of widget wdgt to (5,35, the left of grp "helper",h-5) hide grp "OPTIONS" else show grp "OPTIONS" set the topright of grp "Options" to (w,32) set the rect of widget wdgt to (5,35, the left of grp "OPTIONS"-4, h-10) end if end resizestack on movestack if there is a stack "gucki" then set topleft of stack "gucki" to the topright of this stack end if end movestack on preopenstack if there is no widget wdgt then create widget wdgt as "com.livecode.widget.browser" wait 5 ticks with messages end if set the hscrollbar of widget wdgt to "false" set the vscrollbar of widget wdgt to "true" resizestack if there is no folder (fld "export") then put empty into fld "export" send "choose browse tool" to me in 1 tick end preopenstack function exportHTML pStr put the hilite of btn "editable" into edt return "\n" & \ "\n" & \ "\n" & \ "\n" & \ "\n" & \ "hhTextEdit ("&the width of widget wdgt &"x" & the height of widget wdgt & ")\n" & \ "\n" & \ "\n" & \ " \n" & \ " \n" & \ "\n" & \ " \n" & \ "\n" & \ "\n" & \ " \n" & \ "\n" & \ "\n" & \ "
\n" &cr& \ pStr &cr& \ "
" &cr end exportHTML no: cREVGeometryCacheIDs 1514701266820 1514701266760S 1514701266797y 1515349444490 1515175985168 1514707125061 1514701266804 1514701266740> 1514696552155r 1514701266771^ 1514701266768[ 1514701266782i 1514701266764W 1514701266824 1515036971375 1514707125075 1514707125069 1514701266793u 1509146702089 1514701266808 1514701266748F 1514707125080 1514701266744B 1514707125055 1514701266831 1514701266816 1514707125065 15151759419476 1514701266753K 1514701266776c 1514707125058 1514701266786m 1514701266798z 15146965521797 1514707125070 1514701266737; 1514701266757O 1514701266821 1514701266794v 1514701266812 1514701266805 1514696552154R 1514701266772_ 1514701266767Z 1514701266825 1514707125074 1514701266790q 1514707125078 1514701266809 1514707125081 1514707125054 1514701266829 1514701266830 1514707125066 15113078156034 1514701266801} 1514701266738< 1514701266743A 1515175941946 1514701266750H 1514701266785l 1514701266763V 1514701266789p 1514701266811 1514701266834 1509215260204 1514704018923 1514707125062 1514701266754L 1514701266781h 1514701266819 1514701266795w 1514701266815 1514701266806 1515037789383 1511220581561% 15146939465655 1514707125057 1514701266773` 1514701266758P 1514701266766Y 1514707125077 1514701266791s 15146965521539 1514707125053 1514701266777d 1514701266822 1511044887701 1514701266799{ 1514707125073 1514707125067 1514701266802~ 1511045397840 1514704018946 1514701266742@ 1514696552157 1514701266784k 1514701266762U 1514701266826 1515183646732 1514701266810 1514701266788o 1514704018922 1514707125063 1514701266746D 1514701266755M 1514701266780g 1514701266818 1514701266792t 1514701266833 1514701266814 1514701266807 1514707125056 1514701266774a 1514701266759Q 1514707125076 1514701266739= 1511220585127' 1514701266751I 1514701266778e 1514701266761T 1514701266823 1514701266796x 1514707125072 1515175985169 1514707125060 1514701266803 1514704018921 1514704018945 1514701266741? 1514696552156 1514701266770] 1514701266769\ 1514701266783j 1514701266765X 1514701266827 1514701266813 1514707125068 1511044887704 1511220581558& 1514701266749G 1514701266745C 1514701266832 1514707125079 1514701266817 1514704018925 1514707125064 1514701266752J 15146965521528 1514707125059 1509146118899 1514701266787n 1514701266828 1514701266775b 1514707125071 1514701266800| 1514701266736: 1514701266756N 1515181990686 1514701266779fcREVGeometrycache totalorder  cREVGeneral scripteditorvscrollVscripteditorselection1978%457Buttonsi,on mouseEnter focus on me end mouseEnter ~  cREVGeneral  revUniqueID0uBscripteditorvscrollscripteditorselection27NEWEpon mouseUp b if b=3 then set the url of widget "hhTextEdit" to empty set the htmltext of widget "hhTextEdit" to empty else set the javascriptHandlers of widget "hhTextEdit" to "hhGetVal" put fld "HTML" into ht if the hilite of btn "ApplyToTB" then replace "toolbarContainer: '#hh2'," with "//toolbarContainer: '#hh2'," in ht end if set the htmltext of widget "hhTextEdit" to ht end if end mouseUp 9  cREVGeneral scripteditorvscrollscripteditorselection260 revUniqueIDCuB  Set Save-FileEpon mouseUp b,x put the effective filename of this stack into sn set itemdel to "/" put "exportHTML.html" into last item of sn put sn into gucki put "gucki.livecode" into last item of gucki set itemdel to comma if x is empty and b is not 3 and item 1 of the clickloc < 24+item 1 of the loc of me then ask file "Set exportFile of widget 'hhTextEdit'" with sn if it is empty then exit mouseUp end if if there is no file sn then put "" into url("file:"&sn) set the exportFile of widget "hhTextEdit" to sn if the hilite of btn "preview" then launch document sn if the hilite of btn "GUCKI" then if there is a file gucki then lock screen put the short name of this stack into lid open stack gucki -- creates widget "hhGucki" set the topleft of stack gucki to the topright of stack lid set the URL of widget "hhGucki" of stack gucki to ("file://"&sn) go stack lid send "reload sn" to stack gucki send "setRect" to stack gucki unlock screen end if end if end mouseup p  cREVGeneral scripteditorvscrollscripteditorselection172 revUniqueIDsuB  CloseStackEpon mouseUp set the width of widget "hhTextEdit" to 80 set the topleft of widget "hhTextEdit" to 10,40 answer "Save the contents of your editor before closing?" with "YES" or "NO" or "Cancel" as sheet if it is "cancel" then resizestack exit mouseUp end if if it is "YES" then save this stack wait 1 ticks with messages end if if the platform is "linux" then delete widget "hhTextEdit" wait 5 ticks with messages save this stack end if close this stack end mouseUp ""K`  cREVGeneral scripteditorvscrollscripteditorselection431 revUniqueID/uB  stackPathHi  cREVGeneral scripteditorvscroll0 revUniqueIDIuBscripteditorselection0 StackPathn]on mouseDown put the long id of this stack into M set the itemdelimiter to quote put item-1 of M into M set the itemdelimiter to comma replace "/" with CR in M if line 1 of M is empty then put "[Top]" into line 1 of M if line 2 of M is empty then put "[]"& line 3 of M into line 1 to 3 of M end if put "(" before last line of M put M into me end mouseDown on mouseUp end mouseUp on mouseRelease end mouseRelease on menuPick goTo line 1 to (the menuhistory of me) of me -- in script of grp "stackPath" end menuPick on mouseEnter set the tooltip of me to "Select from the path to this stack." end mouseENter on goTo t set the itemdelimiter to "]" put item 1 of line 1 of t into t1 if colon is in t1 then // do nothing else if "[Top"is t1 then put empty into line 1 of t else if "[" is t1 then put "//" into char 1 to 2 of t else put CR before t set the itemdelimiter to comma if t is empty then put CR into t replace CR with "/" in t if the platform is "linux" then try launch document t get shell("xdg-open " & quote&t"e) end try else launch document t end if end goTo @@ff#Select from the path to this stack. PI[Top] Users admin Documents [-hh] hhTextEdit (hhTextEditFull_137.livecode cGlx2TimeStamp checksum¥·VfiØ͡¯V0Ÿük0Ê cGLX2General  cConstantscScriptChecksumcLocals'shifty m me m mm line line me last CR ( cHtmlHandlersã•Ã¡ !Ö·}Oq1h+bísW=@=Äc∑îGÊ&Ω~∂hÈÚ>[–éhπé¿!>fiÉ–múû¿ãoCk•ç‹2hI∂+ÇK ÇÀ˜D [ŸYpc Ó∂Ê¥∆‘;®£ŸÎl¢\/—ø˙êπ2ùÁOÓWÆî»1ıC∑Ú3æXH˝ccVscrollScript5891cHandlersListWidth93cHscrollScript0cFolders all handlers cGlobals cHandlers'menuPick mouseDown mouseRelease mouseUpcSelectedChunkchar 10741 to 10740cVscrollHandlers0cHscrollHandlers0 cDirtyFlagfalse cHTMLScriptãmSMo€0 Ω˚W>¨Œ¡€öÏvi7`áEõù∫¬–l:¢ØYÚ2ˇ˚ëíÌ∏≈Ç@(æ'æG™,?ÉP :aÖΩœ≤≤| OñK^∂p•d}Ñ`¡#ÇÄV*º°ÉÔhhm°C®áæG¿ç°≥&&Ω$Ùn,¿1B‘–ˆVGàf<—,ØÈ#‰MÑHs%|HΖ¯rc…‹p탫·’'ǧ[ ˝F;\¸°Ç:ΗLıI+4 Û-Ô8˘=‹w≤ I‡(Q5ûJ’g]ÑÛA‘« ø(˙¿¿èº@µ˙¡ûí+˙SM’I6°´î‘2Tfl™¡dÙH_\C≤å*÷ñ¢◊ˆd27(䮘lõl“î≠7 ûQî∑7¯IÙ£nB¡«ûïq“0∏ H√‰‡H…≤ùˆLe"öØW“ lô∂U ‰n¸J™ç–ò'ºéô÷Lã⁄≠ E^‹XJÊm¥‹£¬:`33‡îãex"‡ÀÕ5q”Y≈ I'çÇlíÏπ!Ár<¶i0˙ç=”Ô¡ú,Â√2∫¶'√ztJ‘˘´<Õ“’ù¶3“çH†gRì»áΩuèì§uÓ Ω˝zq:xÃ_§ƒ›ú∏"£›na\|!jc√∫sìÂ9¸BöXLO&rÃ`Nò……|Ê:ªæå‡w>°˝ø£Ó øÇÕÅòAÖfl*›r∞˚uÌ≈¸æ©a¡ˆ„4®Èì»&Ï?ÒŒxá cHilitedLinecExplicitVariables cREVGeneral  revUniqueIDPIuBscripteditorvscrollkscripteditorselection1154 %helperi=  cREVGeneral  revUniqueIDKAuBscripteditorvscroll &HTML!b@"~C[ cellFormattingfalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse cREVGeneral  revUniqueID`KAuBtablefalsescripteditorselection0scripteditorvscroll   '  '2  '  ', - 'Z hhTextEdit '2  '* '\ 1 ' ` ' W ' Y ' h ' ^ ' ` ' l ' W ' ^ ' R ' r ' n ' z ' i ' l ' a ' c ' f ' h ' h ' f ' i ' k ' j ' a ' f ' l ' f ' q ' r ' l ' ! 'B d ' ` '  '  '  '  '  ' ,
'X &
'L 3

 

'f 
'  '  '  ' ') `U#3Y( aUnY'HTMLjeon mouseUp b if b=3 then exit mouseUp set visible of fld "HTML" to the hilite of me resizestack end mouseUp on mouseDown b if b=3 and the shiftkey is down then put empty into me put the clipboarddata["text"] into fld "HTML" end if end mouseDown 3 HTML (widget)  cREVGeneral  revUniqueIDp*BuBscripteditorvscrollscripteditorselection101 4 hhTextEdit `##B]com.livecode.widget.browser horizontalScrollbarEnabledjavaScriptHandlershhGetValhtmlText hhTextEdit

 

verticalScrollbarEnabled  savedOptions & font-weightNormalfontsFJImpactrotateZ0xfontsSZtruepadding0rotateX0 font-variantNormalscalex1blur0 font-size13skewy0text-decorationNone font-styleNormalfontsSZVerdanabackground-color 255,255,255opacity100margin0xfontsKRfalsecontrast100 translatey0 hue-rotate0fontsKRPalatinosepia0 text-alignLeft brightness100 perspective0 grayscale0rotateY0scaley1skewx0xfontsAEfalse translatex0color0,0,0saturate100 line-height1.30invert0xfontsFJfalsefontsAE Droid Sans savedHTML

 

savedStylefont-size:13px; exportFile7/Users/admin/Documents/[-hh]/hhTextEdit/exportHTML.html cREVGeneral  revUniqueID0ruBscripteditorvscrollscripteditorselection05GUCKIjEon mouseUp put the long id of this stack into sid if the hilite of me then put the effective filename of this stack into sn set itemdel to "/" put "gucki.livecode" into last item of sn if there is no file sn then put the gucki of me into url("binfile:"&sn) end if open stack sn go sid set topleft of stack sn to the topright of this stack else if "gucki" is in the openstacks then go stack "gucki" call "mouseUp" of btn "closeStack" go sid end if end if end mouseUp !K>Opens/Closes a "preview-stack" that uses an own browser widget1 gucki 7REVO8100Gucki P@on reload f if f is not empty then if there is a file f then set the url of widget "hhGucki" to ("file://"&f) set the theUrl of btn "Set url" to f end if end if end reload on resizeStack w,h set the rect of grp "gucki2" to (11,h-55,218,h-2) set the rect of fld "Notes" to (224, h-50, w-10, h-5) set the rect of widget "hhGucki" to (10, 10, w-10, h-55) end resizeStack on preopenstack send "choose browse tool" to me in 1 tick end preopenstack on setRect resizestack the width of stack "gucki", the height of stack "gucki" end setRect {|X^J U(Text),unicode U(Message),unicode cREVGeometryCache stackID cREVGeneral breakpointstates breakpointsbreakpointconditionsscripteditorselection117 scalefactor?scripteditorvscroll P(on closeStackRequest save this stack wait 1 ticks with messages pass closeStackRequest end closeStackRequest on openstack put the theURl of button "set URL" into u if there is a file u then set the url of widget "hhGucki" to ("file:"&u) send "setRect" to me in 3 ticks end openstack |X: cREVGeometryCacheIDs  1511291401167 1511266044170 1511307893650 1511265759718 1511291420469 1511291139746 1511291139745 1511291617941cREVGeometrycache totalorder  cREVGeneral scripteditorvscrollscripteditorselection21 Notes)b@&- cellFormattingfalse cREVGeneral  revUniqueID`WuBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  2GUCKI displays the *SAVED* HTML (without Effects). 'd `b'+gucki2i !5|  cREVGeneral  revUniqueIDuBscripteditorvscrollscripteditorselection0ReloadEpon mouseUp put the url of widget "hhGucki" into u0 set the htmltext of widget "hhGucki" to empty set the url of widget "hhGucki" to u0 end mouseup <Z  cREVGeneral scripteditorvscrollscripteditorselection44 revUniqueIDjuB  Label Field o&nv  cREVGeneral  revUniqueID juBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Notes '  CloseStackEpon mouseUp set the width of widget "hhGucki" to 80 set the topleft of widget "hhGucki" to 10,40 save this stack wait 1 ticks with messages close this stack end mouseUp o;i  cREVGeneral scripteditorvscrollscripteditorselection101 revUniqueIDfile:///Users/admin/Documents/[-hh]/hhTextEdit/exportHTML.htmlhtmltext vscrollbartrue cREVGeneral  revUniqueID uB cREVGeneral  revUniqueIDP̶ vBscripteditorvscrollscripteditorselection339 7OPTIONSi3local fvs="font-size,line-height,padding,margin,text-align,font-style,font-variant,font-weight,text-decoration" local fvs1="font-style,font-variant,font-weight" local px1="blur" local px2="translateX,translateY,perspective" local pcs="brightness,contrast,grayscale,invert,opacity,saturate,sepia" local pd1="hue-rotate" local pd2="rotateX,rotateY,rotateZ,skewX,skewY" local pvs="scaleX,scaleY" local fvs0="rotateX,rotateY,rotateZ,grayscale,hue-rotate,invert,blur,sepia,skewX,skewY,translateX,translateY,perspective" local fvs100="brightness,contrast,opacity,saturate" local wdgt="hhTextEdit" on mouseUp b,x,N if N is empty then put the short name of the target into N if N is "Reset" then resetButtons; exit mouseUp else if N is "SAVE" then saveOptions; exit mouseUp else if N is "RESTORE" then restoreOptions; call "mouseUp 0,0,1" of me; exit mouseUp else if N begins with "convert" then -- convert clipboard to plain text if there is no fld "converter" then create invisible fld "converter" set the text of fld "converter" to the clipboardData["text"] copy char 1 to -1 of fld "converter"; put empty into fld "converter" exit mouseUp else if N begins with "label" then put char 6 to -1 of N into fvx switch case fvx is "font-size"; put 13 into fld fvx; break case fvx is "line-height"; put 1.30 into fld fvx; break case fvx is "padding"; put 0 into fld fvx; break case fvx is "margin"; put 0 into fld fvx; break case (fvx is among the items of fvs1); set label of btn fvx to "Normal"; break case fvx is "text-align"; set label of btn fvx to "Left"; break case fvx is "text-decoration"; set label of btn fvx to "None"; break case (fvx is among the items of pcs) if b=3 then put 100 into fld fvx; else put 0 into fld fvx; break case (fvx is among the items of "rotateX,rotateY,rotateZ") if b=3 then put 180 into fld fvx; else put 0 into fld fvx; break case (fvx is among the items of fvs0); put 0 into fld fvx; break case (fvx is among the items of pvs); put 1 into fld fvx; break case (fvx is among the items of fvs100); put 100 into fld fvx; break end switch send "mouseUp" to me exit mouseUp end if put char 2 to -1 of the hilitedButtonname of group "fonts" into bn put the label of btn bn into fn put fld "font-size" into fsz put tolower(the label of btn "text-align") into al put tolower(the label of btn "font-weight") into fst0 put tolower(the label of btn "font-style") into fst1 put tolower(the label of btn "font-variant") into fst2 put tolower(the label of btn "text-decoration") into fst3 replace "Nonsense" with "line-through" in fst3 put fld "line-height" into lh put fld "padding" into padd put fld "margin" into marg put the backColor of btn "background-Color" into bc put the backColor of btn "color" into fc put fld "rotateX" into rx; put fld "rotateY" into ry; put fld "rotateZ" into rz put fld "grayscale" into grayscale; put fld "hue-rotate" into huerotate put fld "invert" into invert; put fld "blur" into blurr put fld "brightness" into brightness; put fld "contrast" into contrast put fld "opacity" into opacity; put fld "saturate" into saturate put fld "sepia" into sepia; put fld "perspective" into persp put fld "scalex" into scx; put fld "scaley" into scy put fld "skewx" into skx; put fld "skewy" into sky put fld "translatex" into tx; put fld "translatey" into ty; put merge("var mystyle='" & \ "-webkit-transform: scaleX([[scx]]) scaleY([[scy]]) skewX([[skx]]deg) skewY([[sky]]deg)" & \ " perspective([[persp]]px) rotateX([[rx]]deg) rotateY([[ry]]deg) " & \ " rotateZ([[rz]]deg) translateX([[tx]]px) translateY([[ty]]px); " & \ "transform: scaleX([[scx]]) scaleY([[scy]]) skewX([[skx]]deg) skewY([[sky]]deg)" & \ " perspective([[persp]]px) rotateX([[rx]]deg) rotateY([[ry]]deg) " & \ " rotateZ([[rz]]deg) translateX([[tx]]px) translateY([[ty]]px); " & \ "-webkit-filter: blur([[blurr]]px) brightness([[brightness]]%) " & \ " opacity([[opacity]]%) contrast([[contrast]]%) saturate([[saturate]]%) sepia([[sepia]]%) " & \ " grayscale([[grayscale]]%) hue-rotate([[huerotate]]deg) invert([[invert]]%); " & \ "filter: blur([[blurr]]px) brightness([[brightness]]%) opacity([[opacity]]%) " & \ " contrast([[contrast]]%) saturate([[saturate]]%) sepia([[sepia]]%) " & \ " grayscale([[grayscale]]%) hue-rotate([[huerotate]]deg) invert([[invert]]%); " & \ "transform-origin: 50% 50%; " & \ "padding: [[padd]]px; margin: [[marg]]px; text-align: [[al]]; " & \ "background-color: rgb([[bc]]) !important; color: rgb([[fc]]) !important; " & \ "font-family: " & quote & "[[fn]]" & quote & "; font-size: [[fsz]]px; " & \ "line-height: [[lh]]; font-weight: [[fst0]]; font-style: [[fst1]]; " & \ "font-variant: [[fst2]]; text-decoration: [[fst3]];z-index:1;'; " & \ "document.getElementById('hh1').setAttribute('style',mystyle);") into js --put js --> debug here do js in widget wdgt end mouseUp on enterInField if the short name of the target is not "help" then call "mouseUp" of me -- call preserves the target else pass enterInField end enterInField on returnInField if the short name of the target is not "help" then call "mouseUp" of me else pass returnInField end returnInField on scrollbarLineDec if the optionkey is down then put 5 into d else put 1 into d switch the short name of the target case "rotateX"; put (d+fld "rotateX") mod 360 into fld "rotateX"; break case "rotateY"; put (d+fld "rotateY") mod 360 into fld "rotateY"; break case "rotateZ"; put (d+fld "rotateZ") mod 360 into fld "rotateZ"; break case "hue-rotate"; put (d+fld "hue-rotate") mod 180 into fld "hue-rotate"; break case "grayscale"; put min(100,d+fld "grayscale") into fld "grayscale"; break case "invert"; put min(100,d+fld "invert") into fld "invert"; break case "brightness"; put min(100,d+fld "brightness") into fld "brightness"; break case "contrast"; put min(100,d+fld "contrast") into fld "contrast"; break case "opacity"; put min(100,d+fld "opacity") into fld "opacity"; break case "saturate"; put min(100,d+fld "saturate") into fld "saturate"; break case "sepia"; put min(100,d+fld "sepia") into fld "sepia"; break case "blur"; put format("%.1f",min(16,d/2+fld "blur")) into fld "blur"; break case "scaleX"; put format("%.2f",min(4,d/20+fld "scaleX")) into fld "scaleX"; break case "scaleY"; put format("%.2f",min(4,d/20+fld "scaleY")) into fld "scaleY"; break case "skewX"; put format("%d",(d+fld "skewX") mod 90) into fld "skewX"; break case "skewY"; put format("%d",(d+fld "skewY") mod 90) into fld "skewY"; break case "translateX"; put min(2000,2*d+fld "translateX") into fld "translateX"; break case "translateY"; put min(2000,2*d+fld "translateY") into fld "translateY"; break case "font-size"; put format("%d",min(196,d+fld "font-size")) into fld "font-size"; break case "line-height"; put format("%.2f",min(3,d/20+fld "line-height")) into fld "line-height"; break case "padding"; put min(200,d+fld "padding") into fld "padding"; break case "margin"; put min(200,d+fld "margin") into fld "margin"; break case "perspective"; put min(2000,2*d+fld "perspective") into fld "perspective"; break end switch call "mouseUp" of me --> live update end scrollbarLineDec on scrollbarLineInc if the optionkey is down then put -5 into d else put -1 into d switch the short name of the target case "rotateX"; put (d+fld "rotateX") mod 360 into fld "rotateX"; break case "rotateY"; put (d+fld "rotateY") mod 360 into fld "rotateY"; break case "rotateZ"; put (d+fld "rotateZ") mod 360 into fld "rotateZ"; break case "hue-rotate"; put (d+fld "hue-rotate") mod 180 into fld "hue-rotate"; break case "grayscale"; put max(0,d+fld "grayscale") into fld "grayscale"; break case "invert"; put max(0,d+fld "invert") into fld "invert"; break case "brightness"; put max(0,d+fld "brightness") into fld "brightness"; break case "contrast"; put max(0,d+fld "contrast") into fld "contrast"; break case "opacity"; put max(0,d+fld "opacity") into fld "opacity"; break case "saturate"; put max(0,d+fld "saturate") into fld "saturate"; break case "sepia"; put max(0,d+fld "sepia") into fld "sepia"; break case "blur"; put format("%.1f",max(0,d/2+fld "blur")) into fld "blur"; break case "scaleX"; put format("%.2f",max(-4,d/20+fld "scaleX")) into fld "scaleX"; break case "scaleY"; put format("%.2f",max(-4,d/20+fld "scaleY")) into fld "scaleY"; break case "skewX"; put format("%d",(d+fld "skewX") mod 90) into fld "skewX"; break case "skewY"; put format("%d",(d+fld "skewY") mod 90) into fld "skewY"; break case "translateX"; put max(-2000,2*d+fld "translateX") into fld "translateX"; break case "translateY"; put max(-2000,2*d+fld "translateY") into fld "translateY"; break case "font-size"; put format("%d",max(7,d+fld "font-size")) into fld "font-size"; break case "line-height"; put format("%.2f",max(0.5,d/20+fld "line-height")) into fld "line-height"; break case "padding"; put max(0,d+fld "padding") into fld "padding"; break case "margin"; put max(0,d+fld "margin") into fld "margin"; break case "perspective"; put max(0,2*d+fld "perspective") into fld "perspective"; break end switch call "mouseUp" of me --> live update end scrollbarLineInc --local pvs="scaleX,scaleY" --local fvs0="rotateX,rotateY,rotateZ,grayscale,hue-rotate,invert,blur,sepia,skewX,skewY,translateX,translateY,perspective" --local fvs100="brightness,contrast,opacity,saturate" on resetButtons x repeat for each item I in fvs0 put 0 into fld I end repeat repeat for each item I in fvs100 put 100 into fld I end repeat repeat for each item I in pvs put 1 into fld I end repeat put 13 into fld "font-Size"; put 1.30 into fld "line-height" put 0 into fld "padding"; put 0 into fld "margin" set label of btn "text-align" to "Left" set label of btn "font-variant" to "Normal" set label of btn "font-style" to "Normal" set label of btn "font-weight" to "Normal" set label of btn "text-decoration" to "None" set backcolor of btn "background-color" to "255,255,255" set backcolor of btn "color" to "0,0,0" set label of btn "fontsAE" to "Droid Sans" set label of btn "fontsFJ" to "Impact" set label of btn "fontsKR" to "Palatino" set label of btn "fontsSZ" to "Verdana" set hilitedButton of grp "fonts" to 4 send "mouseUp" to me --> live update end resetButtons on saveOptions repeat for each item I in "xfontsAE,xfontsFJ,xfontsKR,xfontsSZ" put the hilite of btn I into tOptions[I] end repeat put "fontsAE,fontsFJ,fontsKR,fontsSZ,font-style,text-align,font-weight,font-variant,text-decoration" into m repeat for each item I in m put the label of btn I into tOptions[I] end repeat repeat for each item I in "background-color,color" put the backcolor of btn I into tOptions[I] end repeat put "font-size,line-height,padding,margin,grayscale,hue-rotate," & \ "invert,blur,brightness,contrast,opacity,saturate,sepia," & \ "rotateX,rotateY,rotateZ,scalex,scaley,skewx,skewy," & \ "translatex,translatey,perspective" into m repeat for each item I in m put fld I into tOptions[I] end repeat set the savedOptions of widget wdgt to tOptions end saveOptions on restoreOptions put the savedOptions of widget wdgt into tOptions repeat for each item I in "xfontsAE,xfontsFJ,xfontsKR,xfontsSZ" if I is among the keys of tOptions then set the hilite of btn I to tOptions[I] end repeat put "fontsAE,fontsFJ,fontsKE,fontsSZ,font-style,text-align,,font-weight,font-variant,text-decoration" into m repeat for each item I in m if I is among the keys of tOptions then set the label of btn I to tOptions[I] end repeat repeat for each item I in "background-color,color" if I is among the keys of tOptions then set the backcolor of btn I to tOptions[I] end repeat put "font-size,line-height,padding,margin,grayscale,hue-rotate," & \ "invert,blur,brightness,contrast,opacity,saturate,sepia," & \ "rotateX,rotateY,rotateZ,scalex,scaley,skewx,skewy," & \ "translatex,translatey,perspective" into m repeat for each item I in m if I is among the keys of tOptions then put tOptions[I] into fld I end repeat end restoreOptions on hhAnswerColor bc, gc local cRGB="colorRGB", cM="colorMark" if gc is not empty then put gc into cRGB put the target into tgt if bc is empty then put the backColor of tgt into bc if not the vis of grp cRGB then set the topleft of grp cRGB to the topleft of btn "font-variant" show grp cRGB end if set the layer of grp cRGB to "top" set theTarget of grp cRGB to tgt send "changeRGB bc" to grp cRGB if there is a grp cM then set the layer of grp cM to "top" set the currentTarget of grp cM to tgt show grp cM set the loc of grp cM to the loc of tgt end if end hhAnswerColor , B1?  cREVGeneral  revUniqueID02 vBscripteditorvscrollscripteditorselection16348backrectKQon mouseUp b if b=3 then edit the script of the owner of me end mouseUp on mouseDown if there is a grp "colorMark" then hide grp "colormark" grab the owner of me end mouseDown yyyyyy0$:) q   cREVGeneral  revUniqueID2 vBscripteditorvscrollscripteditorselection183 RectangleK22=  ]  cREVGeneral  revUniqueID vB 9 labelselect 3on mouseUp end mouseUp on mouseDown end mouseDown @5  cREVGeneral  revUniqueID2 vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Current ': RectangleK@TT:& s  cREVGeneral  revUniqueID vB ;labelfont-weight 57  cREVGeneral  revUniqueID vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Weight ' <labeltext-decoration 51  cREVGeneral  revUniqueID vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Decor ' =labelfont-variant 51  cREVGeneral  revUniqueID0 vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Variant ' > labelcolor 3on mouseUp end mouseUp on mouseDown end mouseDown 53  cREVGeneral  revUniqueID@ vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Text ' ?labelbackground-color 3on mouseUp end mouseUp on mouseDown end mouseDown 3-3  cREVGeneral  revUniqueIDP vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Back ' @labelfont-style 5U  cREVGeneral  revUniqueID` vBtablefalsescripteditorselection0scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Style ' Alabelfont-size 7U  cREVGeneral  revUniqueIDp vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse FSize ' Blabelline-height @W  cREVGeneral  revUniqueID vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse LHeight ' C labelmargin @W  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Margin ' D labelpadding @Q  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Padding 'F Convert ClipbEp@oConvert clipboard to plainText  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueID vB Gbackground-ColorA won mouseUp hhAnswerColor the backColor of me,"colorRGBPlus" end mouseUp on colorChosen cit set the backColor of me to cit call "mouseUp" of the owner of me end colorChosen !!!!!!%  cREVGeneral scripteditorvscroll revUniqueID vBscripteditorselection245 HcolorA won mouseUp hhAnswerColor the backColor of me,"colorRGBPlus" end mouseUp on colorChosen cit set the backColor of me to cit call "mouseUp" of the owner of me end colorChosen @  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection73 Ifonts ion mouseDown b if b=3 then edit script of me exit mouseDown end if put the short name of the target into sn if char 1 of sn is "x" then exit mouseDown put the fontnames into m switch char -2 to -1 of sn case "AE" filter m with regex pattern "^[A-E]+" break case "FJ" filter m with regex pattern "^[F-J]+" break case "KR" filter m with regex pattern "^[K-R]+" break case "SZ" filter m with regex pattern "^[S-Z]+" break default exit mouseDown; break end switch put " bold,-bold, regular,-regular, plain, oblique, italic," & \ " semibold, demi, heavy, light, regular, thin, condensed," & \ " medium, ultralight, extrabold, ultra" into iis repeat for each item i in iis replace i with empty in m end repeat repeat for each line L in m put L into mm[L] end repeat combine mm with cr sort mm put mm into the target end mouseDown =1"aQ  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection964JxFontsAEjd@A5RV Fonts A-E  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  KxFontsFJjd@AJRV Fonts F-J  cREVGeneral  revUniqueID vB  LxFontsKRjd@A_RP Fonts K-R  cREVGeneral  revUniqueID vB  MxFontsSZjd@AtRP Fonts S-Z  cREVGeneral  revUniqueID0 vBscripteditorvscrollscripteditorselection0  NfontsAE u5 Droid SanssAclonica Acme Al Bayan Al Nile Al Tarikh Aladin Alegreya Sans SC Alfa Slab One Alido American Typewriter Andale Mono Anonymice Powerline Anton Antonio Apple Braille Apple Braille Outline 6 Dot Apple Braille Outline 8 Dot Apple Braille Pinpoint 6 Dot Apple Braille Pinpoint 8 Dot Apple Chancery Apple Color Emoji Apple SD Gothic Neo Apple SD GothicNeo Apple Symbols AppleGothic AppleMyungjo Architects Daughter Arial Arial Black Arial Hebrew Arial Hebrew Scholar Arial Narrow Arial Rounded MT Arial Unicode MS Arimo for Powerline Avenir Avenir Black Avenir Book Avenir Next Avenir Roman Aventura Ayuthaya Baghdad Bangers Bangla MN Bangla Sangam MN Baskerville Beirut Big Caslon Bitstream Vera Sans Mono Bodoni 72 Bodoni 72 Book Bodoni 72 Oldstyle Bodoni 72 Oldstyle Book Bodoni 72 Smallcaps Book Bodoni Ornaments Boogaloo Bradley Hand Brush Script MT Butch Caveat Brush Chalkboard Chalkboard SE Chalkduster Chango ChunkFive Churchill Clearwater Cochin Comfortaa Comic Sans MS Copperplate Corsiva Hebrew Courier Courier New Cousine for Powerline Damascus Damascus Semi DecoType Naskh DejaVu Sans DejaVu Sans Mono DejaVu Sans Mono for Powerline DejaVu Serif Devanagari MT Devanagari Sangam MN Devawriter Didot Diwan Kufi Diwan Thuluth Dorsa Droid Sans Droid Sans Mono Droid Sans Mono Dotted for Powerline Droid Sans Mono for Powerline Droid Sans Mono Slashed for Powerline Droid Serif Euphemia UCAS   cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueID@ vB OfontsFJ uJImpactFarah Farisi FFF Tusj Fira Mono Fira Mono for Powerline Fjalla One Fluria Fondant FontAwesome Forum Frente H1 Futura GB18030 Bitmap Geeza Pro Geneva Georgia Gujarati MT Gujarati Sangam MN Gurmukhi MN Gurmukhi MT Gurmukhi Sangam MN Hack Heiti SC Heiti TC Helvetica Helvetica Neue Helvetica Neue Black Herculanum Hiragino Kaku Gothic StdN W8 Hiragino Maru Gothic ProN W4 Hiragino Mincho ProN W3 Hiragino Mincho ProN W6 Hiragino Sans GB W3 Hiragino Sans GB W6 Hiragino Sans W0 Hiragino Sans W1 Hiragino Sans W2 Hiragino Sans W3 Hiragino Sans W4 Hiragino Sans W5 Hiragino Sans W6 Hiragino Sans W7 Hiragino Sans W8 Hiragino Sans W9 Hoefler Text Hoefler Text Black Hoefler Text Ornaments Impact Impasto InaiMathi Inconsolata Inconsolata for Powerline Inconsolata-dz for Powerline Inconsolata-g for Powerline ITF Devanagari ITF Devanagari Book ITF Devanagari Marathi ITF Devanagari Marathi Book Junction-   cREVGeneral scripteditorvscroll revUniqueIDP vBscripteditorselection0 PfontsKR u_Palatino/Kailasa Kannada MN Kannada Sangam MN Kefa Khmer MN Khmer Sangam MN King Lear Kohinoor Bangla Kohinoor Devanagari Kohinoor Telugu Kokonor Krungthep KufiStandardGK La unicaRegular Lao MN Lao Sangam MN Lato lcideicons League Gothic League Spartan Literation Mono Powerline Lobster 1.3 Lollipop Lucida Grande Luminari Magnolia Magnolia SmCaps Malayalam MN Malayalam Sangam MN Marker Felt Marker Felt Wide Menlo Meslo LG L DZ for Powerline Meslo LG L for Powerline Meslo LG M DZ for Powerline Meslo LG M for Powerline Meslo LG S DZ for Powerline Meslo LG S for Powerline Microsoft Sans Serif Mishafi Mishafi Gold Monaco monofur for Powerline monofur for Powerline Montserrat Mostly Mono Mshtakan MshtakanOblique Muna Muna Black Myanmar MN Myanmar Sangam MN Nadeem New Peninim MT New Peninim MT Inclined Noteworthy Noto Emoji Noto Nastaliq Urdu Noto Sans Noto Sans Runic OFL Sorts Mill Goudy TT Old Standard TT Optima Optima ExtraBlack Oranienbaum Orbitron Oriya MN Oriya Sangam MN Osaka-Mono Palatino Pathway Gothic One Permanent Marker Petit Formal Script Phosphate Inline Phosphate Solid PingFang HK PingFang SC PingFang TC Plantagenet Cherokee Pomelo Prociono TT PT Mono PT Sans PT Sans Caption PT Sans Narrow PT Serif PT Serif Caption Raanana Raleway Raleway Black Raleway ExtraLight Realla Roboto Mono for Powerline ROCKY AOE   cREVGeneral scripteditorvscroll revUniqueID` vBscripteditorselection0 QfontsSZ utVerdanaSana Sathu Sauce Code Powerline Sauce Code Powerline Black Sauce Code Powerline ExtraLight Savoye LET:1.0 Sequel Shadows Into Shree Devanagari 714 SignPainter-HouseScript Silom Sinhala MN Sinhala Sangam MN Skia Skia Black Skia Black Extended Skia Extended Snell Roundhand Snell Roundhand Black Songti SC Songti SC Black Songti TC Source Code Pro Source Code Pro Black Source Code Pro ExtraLight Stint STIXGeneral STIXGeneral-Italic STIXGeneralItalic STIXIntegralsD STIXIntegralsSm STIXIntegralsUp STIXIntegralsUpD STIXIntegralsUpSm STIXNonUnicode STIXNonUnicode-Italic STIXNonUnicodeItalic STIXSizeFiveSym STIXSizeFourSym STIXSizeOneSym STIXSizeThreeSym STIXSizeTwoSym STIXVariants Strait STSong Sukhumvit Set Sukhumvit Set Semi Sukhumvit Set Text Supermercado Symbol Symbol Neu for Powerline Tahoma Tamil MN Tamil Sangam MN Tangerine TeamViewer13 Telugu MN Telugu Sangam MN TeX Gyre Adventor TeX Gyre Bonum TeX Gyre Chorus TeX Gyre Cursor TeX Gyre Heros TeX Gyre Heros Cn TeX Gyre Pagella TeX Gyre Schola TeX Gyre Termes Thonburi Times Times New Roman Times Roman Tinos for Powerline Titan One Toplar Trattatello Trebuchet MS Ubuntu Mono derivative Powerline Ultra Verdana Waseem Webdings Wingdings Wingdings 2 Wingdings 3 Yeseva One Zapf Dingbats ZapfinoV   cREVGeneral scripteditorvscroll revUniqueIDp vBscripteditorselection0  Rlabeltext-align 5W  cREVGeneral  revUniqueID2 vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Align ' Stext-Decoration uxon mouseDown put "None,Overline,Underline,Nonsense" into m replace comma with cr in m put m into me end mouseDown @oNone None Overline Underline Nonsense  cREVGeneral scripteditorvscrollscripteditorselection52 revUniqueID vB T font-Variant uion mouseDown put "Normal,Small-Caps" into m replace comma with cr in m put m into me end mouseDown @oNormalNormal Small-Caps  cREVGeneral scripteditorvscrollscripteditorselection33 revUniqueID vB U font-weightΥ uron mouseDown put "Normal,Bold,Bolder,Lighter" into m replace comma with cr in m put m into me end mouseDown @oNormalNormal Bold Bolder Lighter  cREVGeneral scripteditorvscrollscripteditorselection39 revUniqueID vB V text-alignΥ uqon mouseDown put "Center,Justify,Left,Right" into m replace comma with cr in m put m into me end mouseDown LLeftCenter Justify Left Right  cREVGeneral scripteditorvscrollscripteditorselection40 revUniqueID vB WSaveEpA  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0 XRestoreE`A  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0 YrotateX*@@m5ONegative angles turn back, positive angles turn forth. 12 o'clock = 0 degrees.  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' Z labelrotateX RR>l@W  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateX ' [ labelrotateY RR<@W  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateY ' \rotateY*@@5LNegative angles turn up, positive angles turn down. 12 o'clock = 0 degrees.  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' ]rotateZ*@@5^(= 2D rotate). Negative angles turn left, positive angles turn right . 12 o'clock = 0 degrees.  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' ^ labelrotateZ RR<@S  cREVGeneral  revUniqueID0 vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateZ ' _blur*@@$.5Blur in pixels  cREVGeneral  revUniqueID@ vBscripteditorvscrollscripteditorselection0  0 ' ` labelblur -Pu  cREVGeneral  revUniqueIDP vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Blur ' a brightness*@@$C5Brightness 0 to 100%2  cREVGeneral  revUniqueID` vBscripteditorvscrollscripteditorselection0  100 ' blabelbrightness BPw  cREVGeneral  revUniqueIDp vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Brightness ' ccontrast*@@$X5Contrast 0 to 100%0  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  100 ' d labelcontrast WPq  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Contrast ' elabelgrayscale <-@ GrayScaleq  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Gray ' f grayscale*@@.5GrayScale 0 to 100 %4  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' glabelhue-rotate <B@ Hue-Rotates  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse HueRot ' h hue-rotate*@@C5Hue-Rotate 0 to 360 degrees2  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' i labelinvert <W@u  cREVGeneral  revUniqueID vBtablefalsescripteditorselection0scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Invert ' jinvert*@@X5Invert 0 to 100%0  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' kopacity*@@$m5Opacity 0 to 100%0  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  100 ' l labelopacity lPq  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Opacity ' m labelsaturate Pq  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Saturate ' nsaturate*@@$5Saturate 0 to 100%4  cREVGeneral  revUniqueID0 vBscripteditorvscrollscripteditorselection0  100 ' o labelsepia Ps  cREVGeneral  revUniqueID@ vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Sepia ' psepia*@@$5Sepia 0 to 100%2  cREVGeneral  revUniqueIDP vBscripteditorvscrollscripteditorselection0  0 'qbluri`,n    cREVGeneral  revUniqueID` vBscripteditorvscrollr brightnessi`A    cREVGeneral  revUniqueID2 vBscripteditorvscrollscontrasti`V9    cREVGeneral  revUniqueIDp vBscripteditorvscrolltopacityi`k'    cREVGeneral  revUniqueID vBscripteditorvscrollusaturatei`    cREVGeneral  revUniqueID vBscripteditorvscrollvsepiai`&    cREVGeneral  revUniqueID vBscripteditorvscrollwResetE`A  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0 x labelScaleX RR=@u  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse ScaleX ' yScaleX*@@5Factor from -2 to +22  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  1 ' z labelSkewX RR<@w  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse SkewX ' {SkewX*@@5-90 to 90 degrees0  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' |labeltranslatex RR<@q  cREVGeneral  revUniqueID vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse TranslX ' } translatex*@@5Translate x (px)6  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' ~ScaleY*@@$5Factor from -2 to +24  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  1 '  labelScaleY RR@s  cREVGeneral  revUniqueID0 vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse ScaleY ' scaleYi`q    cREVGeneral  revUniqueID@ vBscripteditorvscroll  labelSkewY RR@  cREVGeneral  revUniqueIDP vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse SkewY ' skewy*@@$5-90 to 90 degreesP  cREVGeneral  revUniqueID` vBscripteditorvscrollscripteditorselection0  0 ' labeltranslatey RR@  cREVGeneral  revUniqueIDp vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse TranslY '  translatey*@@$5Translatey (px)V  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 '  font-Size*@@%5 Linesize (px)V  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  13 ' font-Sizei`w&    cREVGeneral  revUniqueID vBscripteditorvscroll  line-height*@@%5 LineHeight %T  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  1.30 ' line-Heighti`q    cREVGeneral  revUniqueID vBscripteditorvscroll margin*@@%5 Margin (px)R  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 ' padding*@@%5 Padding (px)P  cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0  0 'margini`s    cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0paddingi`u    cREVGeneral  revUniqueID vBscripteditorvscrollskewYi`u    cREVGeneral  revUniqueID vBscripteditorvscroll translateYi`w    cREVGeneral  revUniqueID vBscripteditorvscroll exportE(P:on mouseUp b if b=3 then launch document me end mouseUp @:&':RightClick to open the folder (which is set by btn EXPORT)R  cREVGeneral  revUniqueID0 vBtablefalsescripteditorselection45scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  (/Users/admin/Documents/[-hh]/hhTextEdit/ 'Pa;1$ Z labelperspective RR:s  cREVGeneral  revUniqueID@ vBtablefalsescripteditorselection0scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse PerspectiveDist '  perspective*@@@:Perspective distance (px) Active as soon as you rotate ...R  cREVGeneral  revUniqueIDP vBscripteditorvscrollscripteditorselection0  0 ' logo,local savedW, savedH, savedTL, wdgt="hhLCStars" on mouseUp lock screen; lock messages put the topleft of this stack into savedTL put the width of this stack into savedW put the height of this stack into savedH set the width of this stack to 975 set the height of this stack to 750 set the loc of this stack to the screenloc if there is no widget wdgt then create invisible widget wdgt as "com.livecode.widget.browser" end if set the rect of widget wdgt to the rect of this card set the hScrollbar of widget wdgt to "false" set the vScrollbar of widget wdgt to "false" hide widget "hhTextEdit" set the htmltext of widget wdgt to "" & \ ""& livecode() &"" wait 1 ticks with messages if the version > 8 then put 2 into d else put 2 into d -- LC 9 is faster hhAnim 750,d show widget wdgt end mouseUp on exxit repeat 2 repeat for each line L in the pendingmessages if "hhAnim" is in L then cancel item 1 of L end repeat end repeat set the htmltext of widget wdgt to empty delete widget wdgt set the width of this stack to savedW set the height of this stack to savedH set the topleft of this stack to savedTL show widget "hhTextEdit" end exxit -- variant: background-color: rgb(51,51,51); function js x return "document.body.style.cssText='overflow:hidden; " & \ " -webkit-transform: scale(1.62,2) perspective(300px) " & \ " rotateX(30deg) translateY(" &x& "px); " & \ " padding: 70px; margin: 70px; text-align: center; " & \ " background-color: rgba(51,51,51,0.4); color: rgb(255,204,102); " & \ " font-family: impact, oswald, sans-serif; " & \ " font-size: 18px; line-height: 1.1; ';" end js on hhAnim x,d if hhAnim is in the pendingMessages then exit hhAnim subtract 2 from x do js(x) in widget wdgt if x < -2100 or the mouse is down then lock screen; lock messages exxit unlock screen; unlock messages exit hhAnim end if send "hhAnim x,d" to me in d ticks end hhAnim function livecode put "

INFINITE LIVECODE

" &CR& \ "Multiplatform" &CR& \ "Create native applications for iOS, Android, Windows, Mac, Linux, Server & HTML5 all from the same code." &CR& \ "Code once, deploy to billions of devices. LiveCode is a truly multi-platform programming tool with iOS, Android, Mac, Windows, Linux, Server & HTML5 deployment options." &CR& \ "A development tool designed for speed" &CR& \ "Visual development environment" &CR& \ "Drag the fully featured controls you need from the Tools Palette onto your app. Place them where you want, resize, and customise their properties to change their appearance and behaviour." &CR& \ "Edit live applications" &CR& \ "In LiveCode your application is always running. You can add objects or change the code and instantly see the effect. No other language does this. Editing live applications creates a powerful workflow, so you can build your apps faster and more easily than ever. Simply toggle between 'run' and 'edit' mode." &CR& \ "One code base" &CR& \ "LiveCode is cross platform so you won't have to write extra code for each platform you deploy to. This avoids having to write your app multiple times for multiple platforms saving you crucial developer time." &CR& \ "A powerful and productive language" &CR& \ "A natural expressive language" &CR& \ "The LiveCode language is designed to be expressive, readable, memorable and as close as possible to the way you speak and think. That means you write up to 90% less code compared to traditional languages." &CR& \ "Maintainable code" &CR& \ "Code is written once and read hundreds of times. The simple and straightforward aspect of the LiveCode language makes your code base easy to read and maintain, with less need for comments." &CR& \ "GUI coding built in" &CR& \ "Working with your app GUI is not an afterthought. Its integrated right into the language. Create and manipulate sophisticated GUIs with dedicated, built-in language designed for exactly that." &CR& \ "Extensibility Built In" &CR& \ "Ready made useful extensions" &CR& \ "LiveCode comes with a selection of controls and libraries but if they aren't enough, you can download and install extensions created by members of the LiveCode community and third-party vendors." &CR& \ "Make your own extensions" &CR& \ "If you can't find the perfect control or library you can write your own. The LiveCode development environment has tools to help you develop, test, debug and package your extensions." &CR& \ "Powerful extensions" &CR& \ "Developers can also access the host platform when writing extensions, whether it's using a specific API, UI component or system level operation. Extensions can be written in LiveCode as well as other programming languages such as C, C++ and Java." into m replace cr with "

" in m return "

" & m & "

" end livecode yyP8,hh's LiveCode Animation STOP with mouseClick   cREVGeneral  revUniqueID` vBtablefalsescripteditorselection897scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  [-hh fecit, Jan 2018] '*EXPORTep>local wdgt="hhTextEdit" on mouseUp b if fld "export" is empty then put the effective filename of this stack into fn else put fld "export" & space into fn -- work around a LC BUG put the seconds into d convert d to dateItems put item 1 to 5 of d into d put item 1 of d into d0 repeat with i=2 to 5 put format("_%02d",item i of d ) after d0 end repeat set the itemdel to slash put ("Export_"&d0&".html") into item -1 of fn if b <> 3 then put "Export your artwork to a HTML file:" into pp ask file pp with fn titled pp if it is empty then exit mouseUp put it into fn; put it into fn1 put empty into item -1 of fn1 put fn1 into fld "export" else put the exportFile of widget wdgt into ef put exportHTML(the savedHTML of widget wdgt) into s replace "HHSTYLE" with (the savedStyle of widget wdgt) in s replace "\q" with quote in s replace "\n" with CR in s replace "

" is line 1 of s delete line 1 of s end repeat put textEncode(s,"UTF-8") into url("file:"& fn) end if if b=3 then launch document fn end mouseUp RR_*?RightClick for immediate export. Folder of file as given below.EXPORT current saved  cREVGeneral  revUniqueID2 vBscripteditorvscrollscripteditorselection1297  font-styleΥ umon mouseDown put "Normal,Italic,Oblique" into m replace comma with cr in m put m into me end mouseDown @oNormalNormal Italic Oblique  cREVGeneral scripteditorvscrollscripteditorselection27 revUniqueIDp vB rotateXi`yku    cREVGeneral  revUniqueID vBscripteditorvscrollscripteditorselection0rotateYi`yw    cREVGeneral  revUniqueID vBscripteditorvscrollrotateZi`yw    cREVGeneral  revUniqueID vBscripteditorvscroll grayscalei`y,q    cREVGeneral  revUniqueID vBscripteditorvscroll hue-rotatei`yAq4    cREVGeneral  revUniqueID vBscripteditorvscrollinverti`yVs    cREVGeneral  revUniqueID vBscripteditorvscrollscaleXi`ysc    cREVGeneral  revUniqueID vBscripteditorvscrollskewXi`yu    cREVGeneral  revUniqueID vBscripteditorvscroll translateXi`yu    cREVGeneral  revUniqueID vBscripteditorvscroll perspectivei`w    cREVGeneral  revUniqueID vBscripteditorvscrollinsert u -- This sets the currentSnippet -- insert it by button 'Extras' of the widget's toolbar on mouseUp put base64Encode(textEncode(mytext(the label of me),"UTF-8")) into tt replace linefeed with empty in tt put "hhsnippet=decodeURIComponent(escape(window.atob('" & tt & "')));" into js do js in in widget "hhTextEdit" end mouseUp -- add your snippets name here on mouseDown put "Caesar,Cicero,Hesse,LiveCode,Lorem,Extra#1" into m replace comma with cr in m put m into me end mouseDown -- Add your snippets content here. Include it in quotes: -- Inside the outer quotes use \" or single quotes function myText x if x is "Extra#1" then return "[#1] This is my first own snippet." else if x is "Lorem" then return "Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." else if x is "Caesar" then return "

[1] 1 Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. 2 Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. 3 Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, 4 proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt. 5 Eorum una pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. 6 Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. 7 Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.

" & \ "

[2] 1 Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: 2 perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. 3 Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. 4 His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; 5 qua ex parte homines bellandi cupidi magno dolore adficiebantur. 6 Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant.

" else if x is "Cicero" then return "

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

" else if x is "Hesse" then return "

STEPS

By Hermann Hesse

As every blossom fades
and all youth sinks into old age,
so every life's design, each flower of wisdom,
attains its prime and cannot last forever.
The heart must submit itself courageously
to life's call without a hint of grief,
A magic dwells in each beginning,
protecting us, telling us how to live.

High purposed we shall traverse realm on realm,
cleaving to none as to a home,
the world of spirit wishes not to fetter us
but raise us higher, step by step.
Scarce in some safe accustomed sphere of life
have we establish a house, then we grow lax;
only he who is ready to journey forth
can throw old habits off.

Maybe death's hour too will send us out new-born
towards undreamed-lands,
maybe life's call to us will never find an end
Courage my heart, take leave and fare thee well.

" end if end myText @oLorem*Caesar Cicero Hesse LiveCode Lorem Extra#1  cREVGeneral scripteditorvscrollscripteditorselection216 revUniqueID vB  Label Field <V_  cREVGeneral  revUniqueID vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse OPTIONS > '  Label Field &&H W  cREVGeneral  revUniqueIDp̠ vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse MAIN ' HELP(r')). #@X #@X #@ -• GUCKI gives you a preview in an LC stack. #@ #@F n• Preview gives you a preview in your browser. Check 'Editable' to make the preview also editable (unsaved). #@ #@ • ApplyToTB. Applies the main settings also to the toolbar. This is not only for fun, because else the toolbar is partially hidden when 2D-rotating. #@ #@ #@ #@b '@x • Images. [a] Most image types can be pasted directly into the editor. [b] (Sadly this doesn't work on linux:) Use the image dialog editor for image URLs. You can also paste dataURIs into the URL field of the image dialog. #@ #@ #@ #@& #@browser i_ Q  cREVGeneral  revUniqueIDsax vB RectangleK@c   cREVGeneral  revUniqueIDlx vB6PreviewjEf\IOpens the editor's content (optionally editable) in your default browser.3  cREVGeneral  revUniqueIDsax vBscripteditorvscrollscripteditorselection0 EditablebEQ]  cREVGeneral  revUniqueIDlx vB  colorRGBPlusHa&on mouseUp if the target begins with "field " and \ the owner of the owner of the target is me then ask "Set a RGB color r,g,b" &cr& "(three integer items in range 0-255)" \ with the rgbColor of me as sheet if it is empty then exit mouseUp if the num of items of it <> 3 then exit mouseUp repeat for each item i in it if i is not an integer then exit mouseUp if i < 0 or i > 255 then exit mouseUp end repeat changeRGB it end if end mouseUp on rgbChanged g put the shiftkey is down into shifty if shifty then put the absThumb of grp g of me into c put c into r; put c into g; put c into b else put the absThumb of grp "red" of me into r put the absThumb of grp "green" of me into g put the absThumb of grp "blue" of me into b end if set rgbColor of me to (r,g,b) set backColor of grc "rgbBack" of me to (r,g,b) set backcolor of grc "contrast" of me to adjustContrastRatio(4.5,(r,g,b),(r,g,b)) if shifty then updateThumbs (r,g,b) end rgbChanged on changeRGB x send "setThumb (item 1 of x)" to grc "sr1b" of grp "red" of me send "setThumb (item 2 of x)" to grc "sr1b" of grp "green" of me send "setThumb (item 3 of x)" to grc "sr1b" of grp "blue" of me set backcolor of grc "contrast" of me to adjustContrastRatio(7,x,x) end changeRGB on updateThumbs x send "setThumb (item 1 of x),0" to grc "sr1b" of grp "red" of me send "setThumb (item 2 of x),0" to grc "sr1b" of grp "green" of me send "setThumb (item 3 of x),0" to grc "sr1b" of grp "blue" of me set backcolor of grc "contrast" of me to adjustContrastRatio(7,x,x) end updateThumbs ############################################################# ## [-hh fecit, Dec 2017] Below an excerpt from ## ## RaspberryPi stacks collection #81 [-hh fecit, Oct 2016] ## ## Contrast Ratios and Relative Luminance formulas on base ## ## of the W3C's Accessibility Recommendations ## ############################################################# function adjustContrastRatio minContrast,baseClr set cursor to watch put avg(baseClr) > 127 into goDown -- use complement as start put (255-item 1 of baseClr,255-item 2 of baseClr,255-item 3 of baseClr) into clr put clr into clr1; put 0 into cnt repeat add 1 to cnt put contrastRatio(relativeLuminance(clr),relativeLuminance(baseClr)) into contrst if contrst > minContrast or cnt > 512 then exit repeat if clr = "255,255,255" then -- or other criterium put true into goDown; put clr1 into clr end if if goDown then repeat with i=1 to 3 put max(0, -1+item i of clr) into item i of clr end repeat else repeat with i=1 to 3 put min(255, 1+item i of clr) into item i of clr end repeat end if if clr = "0,0,0" then put false into goDown; put clr1 into clr end if end repeat return clr end adjustContrastRatio -- rgb is of the form "r,g,b" where each -- item r,g,b is an integer in range 0-255 function relativeLuminance rgb put 0 into tLuminance put "0.2126,0.7152,0.0722" into tWeights repeat with i=1 to 3 put item i of rgb into ci put ci/255 into cc if cc <= 0.03928 then put cc/12.92 into ri else put ((cc+0.055)/1.055)^2.4 into ri end if add (item i of tWeights*ri) to tLuminance end repeat return tLuminance end relativeLuminance -- computes ratio of lighter against darker function contrastRatio lu1,lu2 if lu1 > lu2 then -- lu2 is darker return (lu1 + 0.05) / (lu2 + 0.05) else return (lu2 + 0.05) / (lu1 + 0.05) end contrastRatio X<5 rgbColor 156,255,255 theTargetbutton "background-Color"theColor 153,255,153 cREVGeneral scripteditorvscroll revUniqueIDQ vBscripteditorselection231rgbBackKP3on mouseDown grab the owner of me end mouseDown @@Pu  cREVGeneral scripteditorvscroll0 revUniqueIDQ vBscripteditorselection51Closex on mouseUp set theTarget of me to empty hide the owner of me if there is a grp "colorMark" then hide grp "colorMark" end mouseUp ff@@2   theTarget cREVGeneral scripteditorvscroll revUniqueID3H vBscripteditorselection123   adjust sf local v0=0, v1=255, rodDelta=1 -- minval, maxval, baseClick on setLocals dx put the long id of the owner of me into ow0; put the loc of me into lc0 put the long id of the owner of ow0 into oooM put item 1 of lc0 into x0; put item 2 of lc0 into y0 if dx is empty then put 0 into dx0; else put x0-dx into dx0 put the width of me div 2 into dw put dw+the left of grc sg of ow0 into l0 put -dw+the right of grc sg of ow0 into l1 put v1-v0 into v01; put l1-l0 into w0 end setLocals on mouseDown;setLocals the clickH;put true into iAmDragging;end mouseDown on mouseUp; put false into iAmDragging; end mouseUp on mouseRelease; put false into iAmDragging; end mouseRelease on dragRect x,y lock screen; lock messages put min(max(x + dx0, l0),l1) into x1; set loc of me to (x1,y0) put v0 + round((x1 - l0)/w0 * v01) into t1 set absThumb of ow0 to t1; put t1 into fld sf of ow0 if y is empty then send "rgbChanged sf" to oooM #<------------------------ unlock screen; unlock messages end dragRect on mouseMove x,y if iAmDragging then dragRect x end mouseMove on baseClicked setLocals; put the absThumb of ow0 into b if the clickH < x0 then dragRect (l0+(b-rodDelta-v0)*w0/v01) else dragRect (l0+(b+rodDelta-v0)*w0/v01) end baseClicked on setThumb t,y setlocals; dragRect (l0+(t-v0)/v01*w0),y end setThumb ff %s  cREVGeneral scripteditorvscroll0 revUniqueID4H vBscripteditorselection966 red*h ff@@P$red channel value \  cREVTable  currentview=Drag Polygony and use the sliders and/ or the checks. =M0-M9 memorize. Cmd-Click to set, click to recall the memorized settings. =Click 'Animate' to recall hilited out of M0-M9 in a row. =Set colors at right. cREVGeneral  revUniqueID 4H vBscripteditorvscroll0scripteditorselection0 156 ' blue iCon setThumb x send "setThumb x" to grc "sr1b" of me end setThumb >@+5 maxVal255 thumbInfo402.6absThumbo@minVal0 cREVGeneral  revUniqueID04H vBscripteditorvscroll0scripteditorselection67sb1bKVNon mouseUp send "baseClicked" to grc "sr1b" of the owner of me end mouseUp F8%uI{  cREVGeneral scripteditorvscroll0 revUniqueIDQ vBscripteditorselection31sr1bKRlocal x0, y0, l0, l1, w0, ow0, v01, dx0, oooM local iAmDragging=false, sg="sb1b", sf="blue" --> adjust sf local v0=0, v1=255, rodDelta=1 -- minval, maxval, baseClick on setLocals dx put the long id of the owner of me into ow0; put the loc of me into lc0 put the long id of the owner of ow0 into oooM put item 1 of lc0 into x0; put item 2 of lc0 into y0 if dx is empty then put 0 into dx0; else put x0-dx into dx0 put the width of me div 2 into dw put dw+the left of grc sg of ow0 into l0 put -dw+the right of grc sg of ow0 into l1 put v1-v0 into v01; put l1-l0 into w0 end setLocals on mouseDown;setLocals the clickH;put true into iAmDragging;end mouseDown on mouseUp; put false into iAmDragging; end mouseUp on mouseRelease; put false into iAmDragging; end mouseRelease on dragRect x,y lock screen; lock messages put min(max(x + dx0, l0),l1) into x1; set loc of me to (x1,y0) put v0 + round((x1 - l0)/w0 * v01) into t1 set absThumb of ow0 to t1; put t1 into fld sf of ow0 if y is empty then send "rgbChanged sf" to oooM #<------------------------ unlock screen; unlock messages end dragRect on mouseMove x,y if iAmDragging then dragRect x end mouseMove on baseClicked setLocals; put the absThumb of ow0 into b if the clickH < x0 then dragRect (l0+(b-rodDelta-v0)*w0/v01) else dragRect (l0+(b+rodDelta-v0)*w0/v01) end baseClicked on setThumb t,y setlocals; dragRect (l0+(t-v0)/v01*w0),y end setThumb ffr %wu{{uu  cREVGeneral scripteditorvscroll0 revUniqueID@4H vBscripteditorselection1448 blue*h ff@@PQ$blue channel value X  cREVTable  currentview=Drag Polygony and use the sliders and/ or the checks. =M0-M9 memorize. Cmd-Click to set, click to recall the memorized settings. =Click 'Animate' to recall hilited out of M0-M9 in a row. =Set colors at right. cREVGeneral  revUniqueIDP4H vBscripteditorvscroll0scripteditorselection529 255 ' green iCon setThumb x send "setThumb x" to grc "sr1b" of me end setThumb A+1 maxVal255 thumbInfo335.6absThumbo@minVal0 cREVGeneral  revUniqueID`4H vBscripteditorvscroll0scripteditorselection67sb1bKVNon mouseUp send "baseClicked" to grc "sr1b" of the owner of me end mouseUp  8%y >  cREVGeneral scripteditorvscroll0 revUniqueIDp4H vBscripteditorselection31sr1bKRlocal x0, y0, l0, l1, w0, ow0, v01, dx0, oooM local iAmDragging=false, sg="sb1b", sf="green" --> adjust sf local v0=0, v1=255, rodDelta=1 -- minval, maxval, baseClick on setLocals dx put the long id of the owner of me into ow0; put the loc of me into lc0 put the long id of the owner of ow0 into oooM put item 1 of lc0 into x0; put item 2 of lc0 into y0 if dx is empty then put 0 into dx0; else put x0-dx into dx0 put the width of me div 2 into dw put dw+the left of grc sg of ow0 into l0 put -dw+the right of grc sg of ow0 into l1 put v1-v0 into v01; put l1-l0 into w0 end setLocals on mouseDown;setLocals the clickH;put true into iAmDragging;end mouseDown on mouseUp; put false into iAmDragging; end mouseUp on mouseRelease; put false into iAmDragging; end mouseRelease on dragRect x,y lock screen; lock messages put min(max(x + dx0, l0),l1) into x1; set loc of me to (x1,y0) put v0 + round((x1 - l0)/w0 * v01) into t1 set absThumb of ow0 to t1; put t1 into fld sf of ow0 if y is empty then send "rgbChanged sf" to oooM #<------------------------ unlock screen; unlock messages end dragRect on mouseMove x,y if iAmDragging then dragRect x end mouseMove on baseClicked setLocals; put the absThumb of ow0 into b if the clickH < x0 then dragRect (l0+(b-rodDelta-v0)*w0/v01) else dragRect (l0+(b+rodDelta-v0)*w0/v01) end baseClicked on setThumb t,y setlocals; dragRect (l0+(t-v0)/v01*w0),y end setThumb ff5 %s8>>88  cREVGeneral scripteditorvscroll0 revUniqueID4H vBscripteditorselection1449 green*h ff@@P$green channel value \  cREVTable  currentview=Drag Polygony and use the sliders and/ or the checks. =M0-M9 memorize. Cmd-Click to set, click to recall the memorized settings. =Click 'Animate' to recall hilited out of M0-M9 in a row. =Set colors at right. cREVGeneral  revUniqueIDQ vBscripteditorvscroll0scripteditorselection529 255 '  backSpectraK@ffffffu  cREVGeneral  revUniqueID4H vBgrayspectrum.png  PLon mouseUp send "changeRGB the mouseColor" to the owner of me end mouseUp  sPNG  IHDR ~vMIDATx/g{#ڳ6 Č[H#jFJզVSڴ'O|Qoxs_Q\ECCCKKKGG)O@@@PPPHHHXXXDDDTTT\\\RRRJJJZZZFFFNNN^^^QQQIIIEEEUUUMMM]]]CCCSSSKKK[[[WWWOO3(///___W^EGG'$$$&&&''edddeeFWTTTVVVUU744|y󶱱[wQ333sss +++kkk?\#g/ u~~~qq;ԟ.{ 3gX)anm]ma‚l[`A klla677)aɋE-2/zzznA///$$$X`KAAl)++-Xx0,e```hhHennN0,777wwwP 0@EXPll,°ȋa 5aX]]]V__Ƌj}}ZX(P `nE+Ѻ,5 ,+++u ,ȋE X ab=zE>E\ZzSH άǀ}=%,**뎗O\Z0ZW Ka[KȰ~[7->ebb1,ggga[,TEtVNNVIIIYYXoV㻂5==mͣ`.| a߁_‚z Xaaab`OIENDB`  cREVGeneral scripteditorvscroll0 revUniqueID4H vBscripteditorselection0colorspectrum.png  PLon mouseUp send "changeRGB the mouseColor" to the owner of me end mouseUp  q PNG  IHDR ~vIDATxҽKq$8 ԐE``6$ BV5HFP 8B-4qtRR+wadxe/)~p߿yK ˱[۰;{pGq'q g04.*nϓddQR2/2#2)2$'=%&rBai:%5]ILb,V`= Iq_[|p 7MVg^}dE^;o~`qp!q1gr9^Ӕ]bg*ľPG5jpwqE ؅=؇14#H#,0O^6dU%-$LE 2Z^Ni/H4J}R+R)R&%gUbX!VbX!VbX!VbX!VbXY_ %o${ IENDB`  cREVGeneral scripteditorvscroll0 revUniqueID4H vBscripteditorselection76color12 ison mouseUp b if b=3 then if the shiftkey is up then set the backcolor of the target to the rgbColor of the owner of me else -- reset set the backcolor of grc "white" to "255,255,255" set the backcolor of grc "black" to "0,0,0" set the backcolor of grc "red" to "255,0,0" set the backcolor of grc "green" to "0,255,0" set the backcolor of grc "blue" to "0,0,255" set the backcolor of grc "cyan" to "0,255,255" set the backcolor of grc "magenta" to "255,0,255" set the backcolor of grc "yellow" to "255,255,0" set the backcolor of grc "orange" to "255,147,0" set the backcolor of grc "brown" to "170,21,66" set the backcolor of grc "purple" to "148,33,146" set the backcolor of grc "silver" to "214,214,214" end if else changeRGB the backcolor of the target end if end mouseUp on mouseEnter set tooltip of the target to \ "Click to recall my color (= " & (the backcolor of the target) & ")" & cr & \ "RightClick to memorize the current color."& cr & \ "Shift-RightClick to reset all 12 to default." end mouseEnter HD7  cREVGeneral scripteditorvscroll revUniqueID4H vBscripteditorselection148silverK@` Click to recall my color (= 214,214,214) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.q  cREVGeneral scripteditorvscroll0 revUniqueID4H vBscripteditorselection0magentaK@t }Click to recall my color (= 255,0,255) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.q  cREVGeneral  revUniqueID4H vBbrownK@BBV }Click to recall my color (= 170,21,66) RightClick to memori