REVO8100qhhTextEditBasic_103 Pon preopenStack send "choose browse tool" to me in 1 tick end preopenStack on closeCard if "hhAnim" is in the pendingmessages then send "exxit" to fld "logo" end closeCard on openstack call "mouseUp" of btn "TextEdit-Zero" end openstack BBBBBB} 89 5 W (Message) U(Text) U(Text),unicode U(Text),unicode W(Text),unicode U(Text),unicode U(Message),unicode UMonaco U(Menu) W(Text),unicode U(Text),unicode U (Default) U(Default),unicode UDejaVu Sans Mono UDejaVu Sans Mono,unicode  cREVGeneral breakpointstates breakpointsbreakpointconditionsscripteditorselection212 scalefactor?scripteditorvscrollcREVGeometryCache stackIDq TextEdit-Zero P 8: cREVGeometryCacheIDs 1514343763051 1514234791088 1514234791079 1514234812816 1514343763053 1514235430134 1514235430135 1514234812813 1514239690445 1514234835172 1514234843553cREVGeometryCache total order  cREVGeneral scripteditorvscrollscripteditorselection0 TextEdit-Mini PBon resizestack w,h put the topright of grp "buttons" into tr set the rect of grc "backView" of grp "hhView" to \ (item 1 of tr, 4+item 2 of tr, w-5, h-5) put the rect of grc "backView" into r set the rect of widget "hhView" to (8+item 1 of r, 8+item 2 of r, -8+item 3 of r, -8+item 4 of r) end resizestack  8< cREVGeometryCacheIDs ; 1514403397927V 1514239046114 1514239046121 1514235764855 1514239046131+ 1514234938691 1514235430134 15142395397258 1514235764850 1514234938678 1514239046106 1514239046115 1514239046118 1514239046120 15142395397287 1514239046132, 1514239046112 1514235764844 1514239046125$ 1514239008877 1514234812813 1514239046105 1514234812816 1514235764852 1514239046119 1514239046123" 1514239008879 1514239046113 1514235764847 1514239008880) 1514239046124# 1514343763053 1514234925898 1514239046104 1514239046116 1514235764853 1514239046129( 1514239046122! 1514239008878 1514235764843 1514489284450d 1514239046109 1514239046110 1514235764846 1514239046128' 1514239046127& 1514489284451e 1514234925905 1514239046117 1514235764854 1514235430135 1514239046130* 1514239046108 1514239046111 1514235764849 1514239046126% 1514343763051 1514239046107 1514235764848 cREVGeneral scripteditorvscrollscripteditorselection144cREVGeometrycache total;order  7>TextEdit-Basic Pon resizestack w,h set the topright of grp "options"to (w-2,2) set the rect of grc "backView" of grp "hhView" to (5, 32, the left of grp "options",h-5) put the rect of grc "backView" into r set the rect of widget "hhView" to (8+item 1 of r, 8+item 2 of r, -8+item 3 of r, -8+item 4 of r) end resizestack on opencard if there is no folder field "Export" then put empty into fld "export" end opencard  8  cREVGeneral scripteditorvscrollscripteditorselection119cREVGeometryCacheIDs 1514375683886 1514375683823 15142395397287 1514239046122! 1514375683822 1514375619905 15143854327334 1514239046123" 1514375683870 1514375683918' 1514375683852 1514239046120 1514375619904 1514375683871 1514375683853 1514239046121 1514375619906 1514375683872 1514234812816 1514375683916% 1514375683850 1514375683836 1514375683851 1514375683837 1514375683915$ 1514239046132, 1514375683914# 1514375683856 1514375683830 1514239046131+ 1514375683913" 1514375683857 1514375683831 1514375683896 1514239046130* 1514239046108 1514375923094- 1514375683908 1514342582881? 1514375683832 1514375683897 1514239046111 1514239046109 1514375683833 1514375683909 1514234812813 1514375683894 1514239046110 1514375683895 1514239046113 1514239046129( 15143801202230 1514375683892 1514239046112 1514375683825 1514375683878 1514558093278m 1514375683893 1514375683824 1514375683879 1514343763051 1514239008880) 1514342681918A 1514239008877 1514375683818 1514375683858 1514375683819 1514375683859 1514375683865 1514343763053 1514375683816 1514375683838 1514375683902 1514375683864 1514375683817 1514375683903 1514375683867 1514375683839 1514375683885 1514375683814 1514375683900 1514375683866 1514375683884 1514375683815 1514239046119 1514375948277. 1514375683901 1514375683869 1514375683883 1514239046118 1514375683834 1514375683868 1514375683882 1514235430134 1514375683898 1514375683849 1514375683835 1514375683881 1514235430135 1514239046126% 1514375683899 1514375683848 1514239046104 1514375683873 1514375683880 1514239046105 1514239046127& 1514375683874 1514239046106 1514239046124# 1514375683875 1514239046107 1514239046125$ 1514239008878 1514375619902 1514375683876 1514375683912! 1514375683854 1514375695444) 1514239008879 1514375683877 1514375683911 1514375683855 1514375695445* 1514375683910 1514239046128' 1514375695446+ 15142395397258 1514342582868@ 1514375695447, 1514375683843 1514375683861 1514239046115 1514375683860 1514375683842 1514375683890 1514239046114 1514375683863 1514375683841 1514375683891 1514375683889 1514239046117 1514375619929 1514375683904 1514375683862 1514375683840 1514375683888 1514375683826 1514239046116 1514375683847 1514375683821 1514375683887 1514375683820cREVGeometrycache totalorder ?0 7mhhViewiuon openControl set the htmltext of widget "hhview" to "" end openControl z  cREVGeneral  revUniqueIDKvBscripteditorvscrollscripteditorselection101hhView `+ncom.livecode.widget.browser horizontalScrollbarEnabledjavaScriptHandlershtmlText*verticalScrollbarEnabled  cREVGeneral  revUniqueIDpJvBbackViewKvlocal L,T,R,B, oldHV, wdgt="hhView", dd, rct, dx, dy local bclr="0,84,147", fclr="0,204,0" on mouseDown n,h,v lock screen; lock messages set the forecolor of me to fclr put the left of me into L put the top of me into T put the right of me into R put the bottom of me into B put (L,T,R,B) into rct put the mouseH into H put the mouseV into V put 0 into i; put 0 into j if V-T < 13 then put 2 into j else if B-V < 13 then put 4 into j if H-L < 13 then put 1 into i else if R-H < 13 then put 3 into i if i > 0 and j > 0 then put item i of "-8,-8,8,8" into dx put item j of "-8,-8,8,8" into dy put the linesize of me into dd resizeMe i,j else grab the owner of me end mouseDown on mouseUp b if b=3 then edit script of the owner of me set the forecolor of me to bclr end mouseUp on mouseRelease mouseUp end mouseRelease on resizeMe i,j if the mouse is up then exit resizeMe lock screen; lock messages put the mouseH into H put the mouseV into V if (H,V) is not oldHV then put (H,V) into oldHV put rct into r put H+dx into item i of r put V+dy into item j of r set the rect of me to r add dd to item 1 of r; add -dd to item 3 of r add dd to item 2 of r; add -dd to item 4 of r set the rect of widget wdgt to r end if unlock screen; unlock messages send "resizeMe i,j" to me in 1 tick end resizeMe TT#~ |  cREVGeneral  revUniqueIDlvBscripteditorvscrollscripteditorselection873nav@ion mouseUp b,x if x is empty then put the short name of the target into sn else put x into sn repeat with i=1 to 3 if the short name of btn i of me is sn then set the backcolor of btn i to "0,255,0" else set the backcolor of btn i to "255,255,255" end if end repeat if there is a grp "colorRGBPlus" then hide grp "colorRGBPlus" if there is a grp "colorMark" then hide grp "colorMark" go card sn end mouseUp p~  cREVGeneral  revUniqueIDvBscripteditorvscrollscripteditorselection422 TextEdit-ZeroEy x   cREVGeneral  revUniqueIDИvBscripteditorvscrollscripteditorselection0  TextEdit-MiniEix   cREVGeneral  revUniqueID`OpvBscripteditorvscrollscripteditorselection0 TextEdit-BasicEix   cREVGeneral  revUniqueIDpOpvBscripteditorvscrollscripteditorselection0  Help/InfobE[on mouseUp put the hilite of me into h set the visible of widget "hhView" to not h set the visible of grp "hhView" to not h set the visible of fld "help" to h end mouseUp BBBBBB R >  cREVGeneral scripteditorvscrollscripteditorselection88 revUniqueID@vB Help jP'z   cREVGeneral  revUniqueIDvBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  bAll TextEdit widgets are grouped. Drag their frames to grab them or, at the edges, to resize them. #@ ' [0] TextEdit-Zero #@" 9This is a browser widget "hhView" and one line of script: 'L #L '\ ' on openControl # ' U set the htmltext of widget "hhView" to "" ' # ' end openControl # ' ' [1] TextEdit-Mini #@" Adds methods # • save and restore #$ Adds properties # %• textFont, textSize and lineHeight #F '• color (of text) and backgroundColor #J ,• textAlign (left, center, right, justify) #T ' [2] TextEdit-Basic #@$ Adds properties # ?• scale, skew, translate, rotate3D and perspective transform #z ^• filter: blur, brightness, contrast, gray, hue-rotate, invert, opacity, saturate and sepia. # ' 1[3] TextEdit-Full (to appear in a separate stack) #@$ #$> ' [-hh fecit, Dec 2017] #* '`'buttonsiXlocal wdgt="hhview" local bs="fontFamily,fontSize,textAlign,color,backgroundColor,lineHeight,dummy" on mouseUp b put the short name of the target into sn switch sn case "reset" put "" & \ "

 

" into htm set the htmltext of widget wdgt to htm wait 5 ticks with messages set the label of btn "fontFamily" to "Verdana" set the label of btn "textAlign" to "left" set the text of fld "fontSize" to "13" set the text of fld "lineHeight" to "1.3" set the backcolor of btn "color" to "0,0,0" set the backcolor of btn "backgroundColor" to "255,255,255" updateAll "dummy" wait 3 ticks with messages break case "save" saveOptions do "liveCode.hhJS('save',window.btoa(document.body.outerHTML))" in widget wdgt break case "restore" restoreOptions do "document.body.outerHTML=window.atob('" & the savedHTML of widget wdgt & "');" in widget wdgt break default updateAll sn end switch end mouseUp on updateAll x if x is not among the items of bs then exit updateAll put the label of btn "fontFamily" into ff put the text of fld "fontSize" into fs put the label of btn "textAlign" into ta put the backcolor of btn "color" into fc put the backcolor of btn "backgroundcolor" into bc put the text of fld "lineHeight" into lh put merge("font-family:[[ff]]; font-size:[[fs]]; text-align:[[ta]];" & \ "color:rgb([[fc]]); background-color:rgb([[bc]]); " & \ "line-height:[[lh]]") into myStyle do "document.body.style.cssText='"& myStyle &"';" in widget wdgt end updateAll on saveOptions put "fontFamily,textAlign" into m repeat for each item I in m put the label of btn I into tOptions[I] end repeat put "fontSize,lineHeight" into m repeat for each item I in m put fld I into tOptions[I] end repeat repeat for each item I in "backgroundColor,color" put the backcolor of btn 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 put "fontFamily,textAlign" 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 put "fontSize,lineHeight" 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 repeat for each item I in "backgroundColor,color" if I is among the keys of tOptions then set the backcolor of btn I to tOptions[I] end repeat end restoreOptions on scrollbarLineDec put the short name of the target into sn switch sn case "fontSize" put min(256,(1+fld sn)) into fld sn ; break case "lineHeight" put format("%.2f",min(4,(0.05+fld sn))) into fld sn ; break end switch updateAll sn end scrollbarLineDec on scrollbarLineInc put the short name of the target into sn switch sn case "fontSize" put max(9,(-1+fld sn)) into fld sn ; break case "lineHeight" put format("%.2f",max(0.5,(-0.05+fld sn))) into fld sn ; break end switch updateAll sn end scrollbarLineInc 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 #-- adjust here: set the left of grp cRGB to -4 set the top of grp cRGB to the bottom of the target show grp cRGB end if 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 ~  cREVGeneral  revUniqueID5vBscripteditorvscrollscripteditorselection321Round RectangleKQon 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 x 6 profile cREVGeneral  revUniqueID4vBscripteditorvscrollscripteditorselection183colorA won mouseUp hhAnswerColor the backColor of me,"colorRGBPlus" end mouseUp on colorChosen cit set the backColor of me to cit updateAll the short name of me end colorChosen @*\  cREVGeneral  revUniqueIDvBscripteditorvscrollscripteditorselection177 backgroundColorA won mouseUp hhAnswerColor the backColor of me,"colorRGBPlus" end mouseUp on colorChosen cit set the backColor of me to cit updateAll the short name of me end colorChosen !!!!!!C\  cREVGeneral scripteditorvscroll revUniqueIDvBscripteditorselection161  fontFamily uon mouseDown put the fontnames into m 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 me end mouseDown %,VerdanaP(Default) (Menu) (Message) (Styled Text) (System) (Text) (Tooltip) Aclonica 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 Farah 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 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 Sana 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 Zapfino#   cREVGeneral scripteditorvscrollscripteditorselection422 revUniqueIDvB fontSize*@@'E-1  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection0  13 'fontSizei`NB    cREVGeneral  revUniqueIDvB  lineheight*@@^E.V  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection0  1.3 ' lineHeighti`Bq    cREVGeneral  revUniqueID vBscripteditorvscroll textAlign uqon mouseDown put "left,center,right,justify" into m replace comma with cr in m put m into me end mouseDown DJjustifyleft center right justify  cREVGeneral scripteditorvscrollscripteditorselection68 revUniqueID@vB SaveEpcu>  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueIDPvB RestoreEpuD  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueID`vB VResetEp%u>  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueIDp vB dlabel8 Y\*p  cRevTable  cellFormatfalsemaxColumnCountcellEditfalse cREVGeneral  revUniqueID v vBtablefalsescripteditorvscroll Insert ' e innerHTML uon mouseUp do "document.body.innerHTML=" "e&mytext(the label of me)"e & ";" in widget "hhview" of grp "hhview" end mouseUp on mouseDown put "Caesar,Cicero,LiveCode" into m replace comma with cr in m put m into me end mouseDown function mytext x 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 "LiveCode" then 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 if end mytext \[CiceroCaesar Cicero LiveCode  cREVGeneral scripteditorvscrollscripteditorselection167 revUniqueID0v vB hhViewinlocal wdgt="hhview" on hhJS x,y switch x case "save" set the savedHTML of widget wdgt of me to y break case "current" set the currentHTML of widget wdgt of me to y break case "info" put y break end switch end hhJS on closeControl do "liveCode.hhJS('current'," & \ "window.btoa(document.body.outerHTML))" in widget wdgt of me end closeControl on openControl send "updateMe" to me in 5 ticks end openControl on updateMe do "document.body.outerHTML=window.atob('" & \ the currentHTML of widget wdgt of me & "');" in widget wdgt of me end updateMe   cREVGeneral  revUniqueID0TvBscripteditorvscrollscripteditorselection456hhView `(wcom.livecode.widget.browser horizontalScrollbarEnabledjavaScriptHandlershhJShtmlTextt

 

verticalScrollbarEnabled  currentHTML|PGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJmYWxzZSIgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEzcHg7IHRleHQtYWxpZ246IGp1c3RpZnk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjM7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsiPjxwPkF0IHZlcm8gZW9zIGV0IGFjY3VzYW11cyBldCBpdXN0byBvZGlvIGRpZ25pc3NpbW9zIGR1Y2ltdXMgcXVpIGJsYW5kaXRpaXMgcHJhZXNlbnRpdW0gdm9sdXB0YXR1bSBkZWxlbml0aSBhdHF1ZSBjb3JydXB0aSBxdW9zIGRvbG9yZXMgZXQgcXVhcyBtb2xlc3RpYXMgZXhjZXB0dXJpIHNpbnQgb2NjYWVjYXRpIGN1cGlkaXRhdGUgbm9uIHByb3ZpZGVudCwgc2ltaWxpcXVlIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0aWEgYW5pbWksIGlkIGVzdCBsYWJvcnVtIGV0IGRvbG9ydW0gZnVnYS4gRXQgaGFydW0gcXVpZGVtIHJlcnVtIGZhY2lsaXMgZXN0IGV0IGV4cGVkaXRhIGRpc3RpbmN0aW8uIE5hbSBsaWJlcm8gdGVtcG9yZSwgY3VtIHNvbHV0YSBub2JpcyBlc3QgZWxpZ2VuZGkgb3B0aW8gY3VtcXVlIG5paGlsIGltcGVkaXQgcXVvIG1pbnVzIGlkIHF1b2QgbWF4aW1lIHBsYWNlYXQgZmFjZXJlIHBvc3NpbXVzLCBvbW5pcyB2b2x1cHRhcyBhc3N1bWVuZGEgZXN0LCBvbW5pcyBkb2xvciByZXBlbGxlbmR1cy4gVGVtcG9yaWJ1cyBhdXRlbSBxdWlidXNkYW0gZXQgYXV0IG9mZmljaWlzIGRlYml0aXMgYXV0IHJlcnVtIG5lY2Vzc2l0YXRpYnVzIHNhZXBlIGV2ZW5pZXQgdXQgZXQgdm9sdXB0YXRlcyByZXB1ZGlhbmRhZSBzaW50IGV0IG1vbGVzdGlhZSBub24gcmVjdXNhbmRhZS4gSXRhcXVlIGVhcnVtIHJlcnVtIGhpYyB0ZW5ldHVyIGEgc2FwaWVudGUgZGVsZWN0dXMsIHV0IGF1dCByZWljaWVuZGlzIHZvbHVwdGF0aWJ1cyBtYWlvcmVzIGFsaWFzIGNvbnNlcXVhdHVyIGF1dCBwZXJmZXJlbmRpcyBkb2xvcmlidXMgYXNwZXJpb3JlcyByZXBlbGxhdC48L3A+PC9ib2R5Pg== savedHTML|PGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJmYWxzZSIgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEzcHg7IHRleHQtYWxpZ246IGp1c3RpZnk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjM7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsiPjxwPkF0IHZlcm8gZW9zIGV0IGFjY3VzYW11cyBldCBpdXN0byBvZGlvIGRpZ25pc3NpbW9zIGR1Y2ltdXMgcXVpIGJsYW5kaXRpaXMgcHJhZXNlbnRpdW0gdm9sdXB0YXR1bSBkZWxlbml0aSBhdHF1ZSBjb3JydXB0aSBxdW9zIGRvbG9yZXMgZXQgcXVhcyBtb2xlc3RpYXMgZXhjZXB0dXJpIHNpbnQgb2NjYWVjYXRpIGN1cGlkaXRhdGUgbm9uIHByb3ZpZGVudCwgc2ltaWxpcXVlIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0aWEgYW5pbWksIGlkIGVzdCBsYWJvcnVtIGV0IGRvbG9ydW0gZnVnYS4gRXQgaGFydW0gcXVpZGVtIHJlcnVtIGZhY2lsaXMgZXN0IGV0IGV4cGVkaXRhIGRpc3RpbmN0aW8uIE5hbSBsaWJlcm8gdGVtcG9yZSwgY3VtIHNvbHV0YSBub2JpcyBlc3QgZWxpZ2VuZGkgb3B0aW8gY3VtcXVlIG5paGlsIGltcGVkaXQgcXVvIG1pbnVzIGlkIHF1b2QgbWF4aW1lIHBsYWNlYXQgZmFjZXJlIHBvc3NpbXVzLCBvbW5pcyB2b2x1cHRhcyBhc3N1bWVuZGEgZXN0LCBvbW5pcyBkb2xvciByZXBlbGxlbmR1cy4gVGVtcG9yaWJ1cyBhdXRlbSBxdWlidXNkYW0gZXQgYXV0IG9mZmljaWlzIGRlYml0aXMgYXV0IHJlcnVtIG5lY2Vzc2l0YXRpYnVzIHNhZXBlIGV2ZW5pZXQgdXQgZXQgdm9sdXB0YXRlcyByZXB1ZGlhbmRhZSBzaW50IGV0IG1vbGVzdGlhZSBub24gcmVjdXNhbmRhZS4gSXRhcXVlIGVhcnVtIHJlcnVtIGhpYyB0ZW5ldHVyIGEgc2FwaWVudGUgZGVsZWN0dXMsIHV0IGF1dCByZWljaWVuZGlzIHZvbHVwdGF0aWJ1cyBtYWlvcmVzIGFsaWFzIGNvbnNlcXVhdHVyIGF1dCBwZXJmZXJlbmRpcyBkb2xvcmlidXMgYXNwZXJpb3JlcyByZXBlbGxhdC48L3A+PC9ib2R5Pg== savedOptions  textAlignjustify fontFamilyVerdanabackgroundColor 255,255,255fontSize13color0,0,0 lineHeight1.3 cREVGeneral  revUniqueID`SvBscripteditorvscrollscripteditorselection0backViewKlocal L,T,R,B, oldHV, wdgt="hhView", dd, rct, dx, dy local bclr="0,84,147", fclr="0,204,0" on mouseDown n,h,v if n=3 then edit script of the owner of me exit mouseDown end if lock screen; lock messages set the forecolor of me to fclr put the left of me into L put the top of me into T put the right of me into R put the bottom of me into B put (L,T,R,B) into rct put the mouseH into H put the mouseV into V put 0 into i; put 0 into j if V-T < 13 then put 2 into j else if B-V < 13 then put 4 into j if H-L < 13 then put 1 into i else if R-H < 13 then put 3 into i if i > 0 and j > 0 then put item i of "-8,-8,8,8" into dx put item j of "-8,-8,8,8" into dy put the linesize of me into dd resizeMe i,j else grab the owner of me end mouseDown on mouseUp b if b=3 then edit script of the owner of me set the forecolor of me to bclr end mouseUp on mouseRelease mouseUp end mouseRelease on resizeMe i,j if the mouse is up then exit resizeMe lock screen; lock messages put the mouseH into H put the mouseV into V if (H,V) is not oldHV then put (H,V) into oldHV put rct into r put H+dx into item i of r put V+dy into item j of r set the rect of me to r add dd to item 1 of r; add -dd to item 3 of r add dd to item 2 of r; add -dd to item 4 of r set the rect of widget wdgt to r end if unlock screen; unlock messages send "resizeMe i,j" to me in 1 tick end resizeMe TT    cREVGeneral  revUniqueIDpvBscripteditorvscroll{scripteditorselection808?hhViewi@local wdgt="hhview" on hhJS x,v1,v2 switch x case "save" set the savedHTML of widget wdgt of me to v1 break case "current" set the currentHTML of widget wdgt of me to v1 break case "code" put base64Decode(v1) into c replace "

" with cr&"

" in c replace cr&cr&"

" with cr&"

" in c replace "

" with cr&"
" in c replace cr&cr&"
" with cr&"
" in c replace cr&cr with cr in c repeat while char 1 of c is cr delete char 1 of c end repeat repeat while char -1 of c is cr delete char -1 of c end repeat put c into fld "code" break case "info" return v1 break end switch end hhJS on closeControl do "liveCode.hhJS('current'," & \ "window.btoa(document.body.outerHTML))" in widget wdgt of me end closeControl on openControl send "updateMe" to me in 5 ticks end openControl on updateMe do "document.body.outerHTML=window.atob('" & \ the currentHTML of widget wdgt & "');" in widget wdgt of me end updateMe  ?  cREVGeneral  revUniqueID] vBscripteditorvscrollscripteditorselection689@hhView ` (1com.livecode.widget.browser horizontalScrollbarEnabledjavaScriptHandlershhJShtmlTextfverticalScrollbarEnabled  currentHTML PGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJmYWxzZSIgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgc2tld1goMGRlZykgc2tld1koMGRlZykgcGVyc3BlY3RpdmUoMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZykgIHJvdGF0ZVooMGRlZykgdHJhbnNsYXRlWCgwcHgpIHRyYW5zbGF0ZVkoMHB4KTsgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHNrZXdYKDBkZWcpIHNrZXdZKDBkZWcpIHBlcnNwZWN0aXZlKDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpICByb3RhdGVaKDBkZWcpIHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDBweCk7IC13ZWJraXQtZmlsdGVyOiBibHVyKDBweCkgYnJpZ2h0bmVzcygxMDAlKSAgb3BhY2l0eSgxMDAlKSBjb250cmFzdCgxMDAlKSBzYXR1cmF0ZSgxMDAlKSBzZXBpYSgwJSkgIGdyYXlzY2FsZSgwJSkgaHVlLXJvdGF0ZSgwZGVnKSBpbnZlcnQoMCUpOyBmaWx0ZXI6IGJsdXIoMHB4KSBicmlnaHRuZXNzKDEwMCUpIG9wYWNpdHkoMTAwJSkgIGNvbnRyYXN0KDEwMCUpIHNhdHVyYXRlKDEwMCUpIHNlcGlhKDAlKSAgZ3JheXNjYWxlKDAlKSBodWUtcm90YXRlKDBkZWcpIGludmVydCgwJSk7IHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IHBhZGRpbmc6IDBweDsgbWFyZ2luOiAyM3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHJnYigyMTQsMjE0LDIxNCk7IGNvbG9yOiByZ2IoMCwwLDI1NSk7IGZvbnQtZmFtaWx5OiAmcXVvdDtWZXJkYW5hJnF1b3Q7OyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjMwOyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXZhcmlhbnQ6IG5vcm1hbDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+PGgxPlNURVBTPC9oMT48aDI+QnkgSGVybWFubiBIZXNzZTwvaDI+CjxwPkFzIGV2ZXJ5IGJsb3Nzb20gZmFkZXM8YnI+YW5kIGFsbCB5b3V0aCBzaW5rcyBpbnRvIG9sZCBhZ2UsPGJyPnNvIGV2ZXJ5IGxpZmUncyBkZXNpZ24sIGVhY2ggZmxvd2VyIG9mIHdpc2RvbSw8YnI+YXR0YWlucyBpdHMgcHJpbWUgYW5kIGNhbm5vdCBsYXN0IGZvcmV2ZXIuPGJyPlRoZSBoZWFydCBtdXN0IHN1Ym1pdCBpdHNlbGYgY291cmFnZW91c2x5PGJyPnRvIGxpZmUncyBjYWxsIHdpdGhvdXQgYSBoaW50IG9mIGdyaWVmLDxicj5BIG1hZ2ljIGR3ZWxscyBpbiBlYWNoIGJlZ2lubmluZyw8YnI+cHJvdGVjdGluZyB1cywgdGVsbGluZyB1cyBob3cgdG8gbGl2ZS48L3A+CjxwPkhpZ2ggcHVycG9zZWQgd2Ugc2hhbGwgdHJhdmVyc2UgcmVhbG0gb24gcmVhbG0sPGJyPmNsZWF2aW5nIHRvIG5vbmUgYXMgdG8gYSBob21lLDxicj50aGUgd29ybGQgb2Ygc3Bpcml0IHdpc2hlcyBub3QgdG8gZmV0dGVyIHVzPGJyPmJ1dCByYWlzZSB1cyBoaWdoZXIsIHN0ZXAgYnkgc3RlcC48YnI+U2NhcmNlIGluIHNvbWUgc2FmZSBhY2N1c3RvbWVkIHNwaGVyZSBvZiBsaWZlPGJyPmhhdmUgd2UgZXN0YWJsaXNoIGEgaG91c2UsIHRoZW4gd2UgZ3JvdyBsYXg7PGJyPm9ubHkgaGUgd2hvIGlzIHJlYWR5IHRvIGpvdXJuZXkgZm9ydGg8YnI+Y2FuIHRocm93IG9sZCBoYWJpdHMgb2ZmLiZuYnNwOzwvcD4KPHA+TWF5YmUgZGVhdGgncyBob3VyIHRvbyB3aWxsIHNlbmQgdXMgb3V0IG5ldy1ib3JuPGJyPnRvd2FyZHMgdW5kcmVhbWVkLWxhbmRzLDxicj5tYXliZSBsaWZlJ3MgY2FsbCB0byB1cyB3aWxsIG5ldmVyIGZpbmQgYW4gZW5kPGJyPkNvdXJhZ2UgbXkgaGVhcnQsIHRha2UgbGVhdmUgYW5kIGZhcmUgdGhlZSB3ZWxsLjwvcD48L2JvZHk+ savedHTML PGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJmYWxzZSIgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgc2tld1goMGRlZykgc2tld1koMGRlZykgcGVyc3BlY3RpdmUoMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZykgIHJvdGF0ZVooMGRlZykgdHJhbnNsYXRlWCgwcHgpIHRyYW5zbGF0ZVkoMHB4KTsgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHNrZXdYKDBkZWcpIHNrZXdZKDBkZWcpIHBlcnNwZWN0aXZlKDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpICByb3RhdGVaKDBkZWcpIHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDBweCk7IC13ZWJraXQtZmlsdGVyOiBibHVyKDBweCkgYnJpZ2h0bmVzcygxMDAlKSAgb3BhY2l0eSgxMDAlKSBjb250cmFzdCgxMDAlKSBzYXR1cmF0ZSgxMDAlKSBzZXBpYSgwJSkgIGdyYXlzY2FsZSgwJSkgaHVlLXJvdGF0ZSgwZGVnKSBpbnZlcnQoMCUpOyBmaWx0ZXI6IGJsdXIoMHB4KSBicmlnaHRuZXNzKDEwMCUpIG9wYWNpdHkoMTAwJSkgIGNvbnRyYXN0KDEwMCUpIHNhdHVyYXRlKDEwMCUpIHNlcGlhKDAlKSAgZ3JheXNjYWxlKDAlKSBodWUtcm90YXRlKDBkZWcpIGludmVydCgwJSk7IHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IHBhZGRpbmc6IDBweDsgbWFyZ2luOiAyM3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHJnYigyMTQsMjE0LDIxNCk7IGNvbG9yOiByZ2IoMCwwLDI1NSk7IGZvbnQtZmFtaWx5OiAmcXVvdDtWZXJkYW5hJnF1b3Q7OyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjMwOyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXZhcmlhbnQ6IG5vcm1hbDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+PGgxPlNURVBTPC9oMT48aDI+QnkgSGVybWFubiBIZXNzZTwvaDI+CjxwPkFzIGV2ZXJ5IGJsb3Nzb20gZmFkZXM8YnI+YW5kIGFsbCB5b3V0aCBzaW5rcyBpbnRvIG9sZCBhZ2UsPGJyPnNvIGV2ZXJ5IGxpZmUncyBkZXNpZ24sIGVhY2ggZmxvd2VyIG9mIHdpc2RvbSw8YnI+YXR0YWlucyBpdHMgcHJpbWUgYW5kIGNhbm5vdCBsYXN0IGZvcmV2ZXIuPGJyPlRoZSBoZWFydCBtdXN0IHN1Ym1pdCBpdHNlbGYgY291cmFnZW91c2x5PGJyPnRvIGxpZmUncyBjYWxsIHdpdGhvdXQgYSBoaW50IG9mIGdyaWVmLDxicj5BIG1hZ2ljIGR3ZWxscyBpbiBlYWNoIGJlZ2lubmluZyw8YnI+cHJvdGVjdGluZyB1cywgdGVsbGluZyB1cyBob3cgdG8gbGl2ZS48L3A+CjxwPkhpZ2ggcHVycG9zZWQgd2Ugc2hhbGwgdHJhdmVyc2UgcmVhbG0gb24gcmVhbG0sPGJyPmNsZWF2aW5nIHRvIG5vbmUgYXMgdG8gYSBob21lLDxicj50aGUgd29ybGQgb2Ygc3Bpcml0IHdpc2hlcyBub3QgdG8gZmV0dGVyIHVzPGJyPmJ1dCByYWlzZSB1cyBoaWdoZXIsIHN0ZXAgYnkgc3RlcC48YnI+U2NhcmNlIGluIHNvbWUgc2FmZSBhY2N1c3RvbWVkIHNwaGVyZSBvZiBsaWZlPGJyPmhhdmUgd2UgZXN0YWJsaXNoIGEgaG91c2UsIHRoZW4gd2UgZ3JvdyBsYXg7PGJyPm9ubHkgaGUgd2hvIGlzIHJlYWR5IHRvIGpvdXJuZXkgZm9ydGg8YnI+Y2FuIHRocm93IG9sZCBoYWJpdHMgb2ZmLiZuYnNwOzwvcD4KPHA+TWF5YmUgZGVhdGgncyBob3VyIHRvbyB3aWxsIHNlbmQgdXMgb3V0IG5ldy1ib3JuPGJyPnRvd2FyZHMgdW5kcmVhbWVkLWxhbmRzLDxicj5tYXliZSBsaWZlJ3MgY2FsbCB0byB1cyB3aWxsIG5ldmVyIGZpbmQgYW4gZW5kPGJyPkNvdXJhZ2UgbXkgaGVhcnQsIHRha2UgbGVhdmUgYW5kIGZhcmUgdGhlZSB3ZWxsLjwvcD48L2JvZHk+ savedOptions & font-weightBoldrotateZ0fontsFJImpactxfontsSZtruepadding0rotateX0 font-variantNormalscalex1blur0 font-size13 font-styleItalictext-decorationNonecontrast100fontsSZVerdanabackground-color 214,214,214opacity100margin23xfontsKRfalseskewy0 translatey0 hue-rotate0fontsKRPalatinosepia0 text-alignCenter brightness100 perspective0 grayscale0rotateY0scaley1skewx0xfontsAEfalse translatex0color0,0,255saturate100 line-height1.30invert0xfontsFJfalsefontsAEAclonica cREVGeneral  revUniqueID@] vBscripteditorvscrollscripteditorselection0AbackViewKlocal L,T,R,B, oldHV, wdgt="hhView", dd, rct, dx, dy local bclr="0,84,147", fclr="0,204,0" on mouseDown n,h,v if n=3 then edit script of the owner of me exit mouseDown end if lock screen; lock messages set the forecolor of me to fclr put the left of me into L put the top of me into T put the right of me into R put the bottom of me into B put (L,T,R,B) into rct put the mouseH into H put the mouseV into V put 0 into i; put 0 into j if V-T < 13 then put 2 into j else if B-V < 13 then put 4 into j if H-L < 13 then put 1 into i else if R-H < 13 then put 3 into i if i > 0 and j > 0 then put item i of "-8,-8,8,8" into dx put item j of "-8,-8,8,8" into dy put the linesize of me into dd resizeMe i,j else grab the owner of me end mouseDown on mouseUp b if b=3 then edit script of the owner of me set the forecolor of me to bclr end mouseUp on mouseRelease mouseUp end mouseRelease on resizeMe i,j if the mouse is up then exit resizeMe lock screen; lock messages put the mouseH into H put the mouseV into V if (H,V) is not oldHV then put (H,V) into oldHV put rct into r put H+dx into item i of r put V+dy into item j of r set the rect of me to r add dd to item 1 of r; add -dd to item 3 of r add dd to item 2 of r; add -dd to item 4 of r set the rect of widget wdgt to r end if unlock screen; unlock messages send "resizeMe i,j" to me in 1 tick end resizeMe TT  Y  cREVGeneral  revUniqueIDӸ] vBscripteditorvscrollscripteditorselection1344 stackPathHi5  cREVGeneral scripteditorvscroll0 revUniqueID^ vBscripteditorselection0 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. tA[Top] Users admin Documents [-hh] hhTextEdit (hhTextEdit.livecode cGlx2TimeStamp checksum¥·VfiØ͡¯V0Ÿük0Ê cGLX2General  cConstantscScriptChecksum cHandlers'menuPick mouseDown mouseRelease mouseUp cHtmlHandlersã•Ã¡ !Ö·}Oq1h+bísW=@=Äc∑îGÊ&Ω~∂hÈÚ>[–éhπé¿!>fiÉ–múû¿ãoCk•ç‹2hI∂+ÇK ÇÀ˜D [ŸYpc Ó∂Ê¥∆‘;®£ŸÎl¢\/—ø˙êπ2ùÁOÓWÆî»1ıC∑Ú3æXH˝ccHscrollScript0cHandlersListWidth93cVscrollScript5891cFolders all handlers cGlobals cLocals'shifty m me m mm line line me last CR (cSelectedChunkchar 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  revUniqueID^ vBscripteditorvscrollkscripteditorselection1154 OPTIONSilocal fvs="font-size,line-height,padding,margin,text-align,font-style,fontVariant,text-decoration" 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="hhView" 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; setMyHTML b; exit mouseUp else if N is "ResetOptions" then resetButtons; exit mouseUp else if N is "SAVE" then saveIt; exit mouseUp else if N is "RESTORE" then restoreIt; 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 24 into fld fvx; break case fvx is "margin"; put 0 into fld fvx; 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 if there is a sb fvx then send "mouseUp" to sb fvx 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("document.body.removeAttribute('style'); " & \ "document.body.setAttribute('style', 'position: relative; " & \ "-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]]); color: rgb([[fc]]); " & \ "font-family: " & quote & "[[fn]]" & quote & "; font-size: [[fsz]]px; " & \ "line-height: [[lh]]; font-weight: [[fst0]]; font-style: [[fst1]]; " & \ "font-variant: [[fst2]]; text-decoration: [[fst3]];');") into js -- put js --> debug here do js in widget wdgt end mouseUp on setMyHTML b put "" & \ "" into htm set the htmltext of widget wdgt to htm wait 5 ticks with messages if b=3 then setContent "
 
" else setContent "

 

" do "document.body.focus();" in widget wdgt end setMyHTML on setContent s lock screen; lock messages put base64Encode(s) into b replace linefeed with empty in b do "document.body.innerHTML=window.atob('" & b & "');" in widget wdgt wait 5 ticks with messages send "mouseUp" to me unlock screen; unlock messages end setContent 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 8 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 saveIt saveOptions do "liveCode.hhJS('save',window.btoa(document.body.outerHTML));" in widget wdgt end saveIt on restoreIt restoreOptions do "document.body.outerHTML=window.atob('" & the savedHTML of widget wdgt & "');" in widget wdgt end restoreIt 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 function myText x 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 "LiveCode" then 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 & "

" 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 B19  cREVGeneral  revUniqueIDU"} vBscripteditorvscrollscripteditorselection5277backrectKQon 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 yyyyyy:) s   cREVGeneral  revUniqueIDS"} vBscripteditorvscrollscripteditorselection183 . labelinsert 3on mouseUp end mouseUp on mouseDown end mouseDown ^p@2  cREVGeneral  revUniqueIDPr} vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Insert '  RectangleK@TT& s  cREVGeneral  revUniqueID`1} vB labelfont-weight F51  cREVGeneral  revUniqueIDp1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Weight ' labeltext-decoration F51  cREVGeneral  revUniqueID1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Decor ' labelfont-variant F53  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Variant '  labelcolor 3on mouseUp end mouseUp on mouseDown end mouseDown Fp53  cREVGeneral  revUniqueID1} vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Text ' labelbackground-color 3on mouseUp end mouseUp on mouseDown end mouseDown F5U  cREVGeneral  revUniqueID1} vBtablefalsescripteditorselection50scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Back ' labelfont-weight F5U  cREVGeneral  revUniqueID1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Style ' labelfont-size {@W  cREVGeneral  revUniqueID1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Size ' labelline-height {@W  cREVGeneral  revUniqueID1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse LHeight '  label-margin {@Q  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Margin '  label-padding {@Q  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Padding 'ResetEpoX  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueID1} vB  Convert CBEpXConvert clipboard to plainText  cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueID 1} vB background-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 !!!!!!9  cREVGeneral scripteditorvscroll revUniqueID`1} vBscripteditorselection147 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 @9q  cREVGeneral  revUniqueIDp1} vBscripteditorvscrollscripteditorselection147 fonts 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 "aW  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection964xFontsAEjd@RR Fonts A-E  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > xFontsFJjd@-RT Fonts F-J  cREVGeneral  revUniqueID1} vB > xFontsKRjd@CRT Fonts K-R  cREVGeneral  revUniqueID1} vB > xFontsSZjd@YRV Fonts S-Z  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > )fontsAE u/AclonicasAclonica 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@4} vB *fontsFJ u/-ImpactFarah 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 revUniqueIDP4} vBscripteditorselection0 +fontsKR u/CPalatino/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`4} vBscripteditorselection0 ,fontsSZ u/YVerdanaSana 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 ZapfinoO   cREVGeneral scripteditorvscroll revUniqueIDp4} vBscripteditorselection0  labeltext-align {5W  cREVGeneral  revUniqueID1} vBtablefalse cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Align ' text-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 revUniqueID1} vB  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 revUniqueID1} vB  font-weightΥ uron mouseDown put "Normal,Bold,Bolder,Lighter" into m replace comma with cr in m put m into me end mouseDown oBoldNormal Bold Bolder Lighter  cREVGeneral scripteditorvscrollscripteditorselection39 revUniqueID1} vB  text-AlignΥ uqon mouseDown put "Center,Justify,Left,Right" into m replace comma with cr in m put m into me end mouseDown LCenterCenter Justify Left Right  cREVGeneral scripteditorvscrollscripteditorselection40 revUniqueID1} vB SaveEpQ  cREVGeneral  revUniqueID 1} vBscripteditorvscrollscripteditorselection0 RestoreE`Q  cREVGeneral  revUniqueID01} vBscripteditorvscrollscripteditorselection0 rotateX*@@O5ONegative angles turn back, positive angles turn forth. 12 o'clock = 0 degrees.  cREVGeneral  revUniqueIDp1} vBscripteditorvscrollscripteditorselection0 > 0 '  labelrotateX RRN@S  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateX '  labelrotateY RRc@S  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateY ' rotateY*@@d5LNegative angles turn up, positive angles turn down. 12 o'clock = 0 degrees.2  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 ' rotateZ*@@y5^(= 2D rotate). Negative angles turn left, positive angles turn right . 12 o'clock = 0 degrees.2  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 '  labelrotateZ RRx@w  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse RotateZ ' blur*@@5Blur in pixels0  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 '  labelblur ePq  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Blur '  brightness*@@%5Brightness 0 to 100%6  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 100 ' labelbrightness d$Ps  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Brightness ' contrast*@@:5Contrast 0 to 100%4  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 100 '  labelcontrast d9Pu  cREVGeneral  revUniqueIDT"} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Contrast ' labelgrayscale @ GrayScaleu  cREVGeneral  revUniqueID 1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Gray '  grayscale*@@5GrayScale 0 to 100 %0  cREVGeneral  revUniqueID01} vBscripteditorvscrollscripteditorselection0 > 0 ' labelhue-rotate $@ Hue-Rotatew  cREVGeneral  revUniqueID@1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse HueRot '  hue-rotate*@@%5Hue-Rotate 0 to 360 degrees6  cREVGeneral  revUniqueIDP1} vBscripteditorvscrollscripteditorselection0 > 0 '  labelinvert 9@q  cREVGeneral  revUniqueID`1} vBtablefalsescripteditorselection0scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Invert ' invert*@@:5Invert 0 to 100%4  cREVGeneral  revUniqueIDp1} vBscripteditorvscrollscripteditorselection0 > 0 ' opacity*@@O5Opacity 0 to 100%4  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 100 '  labelopacity dNPu  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Opacity '  labelsaturate dcPu  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Saturate ' saturate*@@d5Saturate 0 to 100%0  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 100 '  labelsepia dxPw  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse Sepia ' sepia*@@y5Sepia 0 to 100%6  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 'bluri`    cREVGeneral  revUniqueID1} vBscripteditorvscroll brightnessi`#    cREVGeneral  revUniqueID1} vBscripteditorvscrollcontrasti`89    cREVGeneral  revUniqueID1} vBscripteditorvscrollopacityi`M'    cREVGeneral  revUniqueID1} vBscripteditorvscrollsaturatei`b4    cREVGeneral  revUniqueID 1} vBscripteditorvscrollsepiai`w    cREVGeneral  revUniqueID01} vBscripteditorvscroll ResetOptionsE`1r  cREVGeneral  revUniqueID@1} vBscripteditorvscrollscripteditorselection0  labelScaleX RR@q  cREVGeneral  revUniqueIDP1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse ScaleX ' ScaleX*@@5Factor from -2 to +26  cREVGeneral  revUniqueID`1} vBscripteditorvscrollscripteditorselection0 > 1 '  labelSkewX RR@s  cREVGeneral  revUniqueIDp1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse SkewX ' SkewX*@@5-90 to 90 degrees4  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 ' labeltranslatex RR@  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse TranslX '  translatex*@@5Translate x (px)S  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 ' ScaleY*@@5Factor from -2 to +2Q  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 1 '  labelScaleY RRs@  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse ScaleY ' scaleYi`t    cREVGeneral  revUniqueID1} vBscripteditorvscroll  labelSkewY RRs@  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse SkewY ' skewy*@@5-90 to 90 degreesU  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 ' labeltranslatey RRs@  cREVGeneral  revUniqueID1} vBtablefalsescripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse TranslY '  translatey*@@5Translatey (px)S  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection0 > 0 '  font-Size*@@5 Linesize (px)S  cREVGeneral  revUniqueID 1} vBscripteditorvscrollscripteditorselection0 > 13 ' font-Sizei`rd    cREVGeneral  revUniqueID01} vBscripteditorvscroll  line-height*@@5 LineHeight %Q  cREVGeneral  revUniqueID@1} vBscripteditorvscrollscripteditorselection0 > 1.30 ' line-Heighti`t0    cREVGeneral  revUniqueIDP1} vBscripteditorvscroll  margin*@@5 Margin (px)W  cREVGeneral  revUniqueID`1} vBscripteditorvscrollscripteditorselection0 > 23 ' padding*@@5 Padding (px)U  cREVGeneral  revUniqueIDp1} vBscripteditorvscrollscripteditorselection0 > 0 'margini`v:    cREVGeneral  revUniqueIDT"} vBscripteditorvscrollscripteditorselection0paddingi`p    cREVGeneral  revUniqueID1} vBscripteditorvscrollskewYi`p    cREVGeneral  revUniqueID1} vBscripteditorvscroll translateYi`r    cREVGeneral  revUniqueID1} 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)W  cREVGeneral  revUniqueID1} vBtablefalsescripteditorselection45scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse > '(a$ Y labelperspective RRs  cREVGeneral  revUniqueID1} vBtablefalsescripteditorselection0scripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse PerspectiveDist '  perspective*@@N@:Perspective distance (px) Active as soon as you rotate ...W  cREVGeneral  revUniqueID1} 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 "hhView" set the htmltext of widget wdgt to "" & \ ""& mytext("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 "hhView" 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 yy@i,hh's LiveCode Animation STOP with mouseClick  cREVGeneral  revUniqueID1} vBtablefalsescripteditorselection2033scripteditorvscrollj cRevTable  cellFormatfalsemaxColumnCountcellEditfalse > [-hh fecit, Dec 2017] '*EXPORTEplocal wdgt="hhview" 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 do "liveCode.hhJS('current'," & \ "window.btoa(document.body.outerHTML))" in widget wdgt wait 5 millisecs with messages end if put empty into me set the itemdel to comma put "Size_when_saving=" & the width of widget "hhView" & "x" & the height of widget "hhView" into wsize put ""&cr&"" &cr& \ ""&wsize&"" &cr&"" &cr& \ base64Decode(the currentHTML of widget wdgt) &cr& \ "" into url ("file:"&fn) if b=3 then launch document fn end mouseUp RRa?RightClick for immediate export. Folder of file as given below.  cREVGeneral  revUniqueID1} vBscripteditorvscrollscripteditorselection915  font-StyleΥ umon mouseDown put "Normal,Italic,Oblique" into m replace comma with cr in m put m into me end mouseDown oItalicNormal Italic Oblique  cREVGeneral scripteditorvscrollscripteditorselection27 revUniqueID1} vB rotateXi`Mt    cREVGeneral  revUniqueID@1} vBscripteditorvscrollscripteditorselection0rotateYi`bt    cREVGeneral  revUniqueID T"} vBscripteditorvscrollrotateZi`wv    cREVGeneral  revUniqueIDP1} vBscripteditorvscroll grayscalei`v    cREVGeneral  revUniqueID`1} vBscripteditorvscroll hue-rotatei`#P    cREVGeneral  revUniqueIDp1} vBscripteditorvscroll!inverti`8P.    cREVGeneral  revUniqueID1} vBscripteditorvscroll"scaleXi`R    cREVGeneral  revUniqueID1} vBscripteditorvscroll#skewXi`R:    cREVGeneral  revUniqueID1} vBscripteditorvscroll$ translateXi`T    cREVGeneral  revUniqueID1} vBscripteditorvscroll% perspectivei`DT(    cREVGeneral  revUniqueID1} vBscripteditorvscroll-insert u6on mouseUp put base64Encode(mytext(the label of me)) into str replace linefeed with empty in str do "document.body.innerHTML= window.atob('" & str & "');" in widget "hhview" end mouseUp on mouseDown put "Caesar,Cicero,Hesse,LiveCode" into m replace comma with cr in m put m into me end mouseDown o\HesseCaesar Cicero Hesse LiveCode  cREVGeneral scripteditorvscrollscripteditorselection29 revUniqueID`Yl} vB 4Codejelocal wdgt="hhview", sstr="", wcd="code" on mouseEnter if not the hilite of me then do "liveCode.hhJS('info',window.getSelection().toString());" in widget wdgt wait 5 ticks with messages put the result into sstr end if end mouseEnter on mouseUp b if the hilite of me and b<>42 then lock screen; lock messages set rect of fld wcd to the rect of widget wdgt hide grp wdgt hide widget wdgt do "liveCode.hhJS('code'," & \ "window.btoa(document.body.innerHTML))" in widget wdgt wait 5 ticks with messages set layer of fld wcd to "top" show fld wcd put offset(sstr,fld wcd) into o if the platform is "win32" then -- the stack needs focus put the long id of this cd into cid go stack "revMenuBar"; go cid; focus on fld wcd end if if o=0 then select after fld wcd else select char o to o+length(sstr)-1 of fld wcd else set hilite of me to false hide fld "code" put base64Encode(fld wcd) into c replace linefeed with empty in c do "document.body.innerHTML=window.atob('" & c & "');" in widget wdgt wait 5 ticks with messages set rect of widget wdgt to the rect of fld wcd show grp wdgt show widget wdgt end if end mouseUp &&@1Edit HTML Code  cREVGeneral scripteditorvscrollscripteditorselection724 revUniqueID ~ vB 'HELP(r %HELP (Small HELP to hhTextEdit-Basic) # # @ ' (• EDIT acts like lockText for a field. # ' @ • Edit HTML lets you act on parts of the html code of your text: Use Cmd/Ctrl-B,-I,-U,-K to add or remove bold, italic, underlined, strikeThrough styling of a selection. Cmd/Ctrl-1 to 6 adds or removes h1 to h6. #  ' # 8F '~( WAfter unchecking the button your input is applied, but you have to save it by yourself. ' # & ' ' .• All other options apply to the whole text: '@X ' O• Select a font and make it active by checking the appropriate radio button. '@ #@ ( #@HR A• Convert CB converts HTML text in the clipboard to plain text #@@ #@ @ #@` • Click/Ctrl-Click on a label close to 'little arrows' to insert the default / extremal value of the option. The connected fields have explaining tooltips. #@6 K• Perspective distortion works after rotateX and/or rotateY is activated. #@ • Export. Click to set an output folder, RightClick to write your current HTML with a time-stamp-name immediately to an output file into the output folder #@ #@  #@" ' \• Of course you can edit the text also while it is filtered with Blur etc. or transformed. #@ ' +More features to appear in hhTextEdit-Full. #@ V 0 converter!` Z  cREVGeneral  revUniqueID m 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 qX< rgbColor 255,255,255theColor 153,255,153 theTargetbutton "backgroundColor" cREVGeneral scripteditorvscroll revUniqueIDvBscripteditorselection231 rgbBackKP3on mouseDown grab the owner of me end mouseDown @@uPU  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection51Closex 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 revUniqueIDvBscripteditorselection123 >    red iCon setThumb x send "setThumb x" to grc "sr1b" of me end setThumb 2@+ maxVal255 thumbInfo 278.521569absThumbo@minVal0 cREVGeneral  revUniqueIDvBscripteditorvscroll0scripteditorselection67sb1bKVNon mouseUp send "baseClicked" to grc "sr1b" of the owner of me end mouseUp :8%Q=o  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection31sr1bKRlocal x0, y0, l0, l1, w0, ow0, v01, dx0, oooM local iAmDragging=false, sg="sb1b", sf="red" --> 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 fff %Siooii  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection966 red*h ff@@PF$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  revUniqueIDvBscripteditorvscroll0scripteditorselection0 255 ' blue iCon setThumb x send "setThumb x" to grc "sr1b" of me end setThumb @+ maxVal255 thumbInfo402.6absThumbo@minVal0 cREVGeneral  revUniqueIDvBscripteditorvscroll0scripteditorselection67sb1bKVNon mouseUp send "baseClicked" to grc "sr1b" of the owner of me end mouseUp 8%U  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection31sr1bKRlocal 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 ff %W  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection1448 blue*h ff@@P$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  revUniqueIDvBscripteditorvscroll0scripteditorselection529 255 ' green iCon setThumb x send "setThumb x" to grc "sr1b" of me end setThumb nA+ maxVal255 thumbInfo335.6absThumbo@minVal0 cREVGeneral  revUniqueIDvBscripteditorvscroll0scripteditorselection67sb1bKVNon mouseUp send "baseClicked" to grc "sr1b" of the owner of me end mouseUp v8%Yy  cREVGeneral scripteditorvscroll0 revUniqueID 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 ff %S  cREVGeneral scripteditorvscroll0 revUniqueID0vBscripteditorselection1449 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  revUniqueID@vBscripteditorvscroll0scripteditorselection529 255 '  backSpectraK@ffffffxU  cREVGeneral  revUniqueIDPvBgrayspectrum.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 revUniqueID`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 revUniqueIDpvBscripteditorselection76color12 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 xD  cREVGeneral scripteditorvscroll revUniqueIDvBscripteditorselection148 silverK@| 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 revUniqueIDvBscripteditorselection0!magentaK@ }Click to recall my color (= 255,0,255) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.q  cREVGeneral  revUniqueIDvB"brownK@BB| }Click to recall my color (= 170,21,66) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.s  cREVGeneral scripteditorvscroll0 revUniqueIDvBscripteditorselection0#redK@| {Click to recall my color (= 255,0,0) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.s  cREVGeneral  revUniqueIDvB$blueK@| {Click to recall my color (= 0,0,255) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.u  cREVGeneral  revUniqueIDvB%greenK@| {Click to recall my color (= 0,255,0) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.u  cREVGeneral  revUniqueIDvB&yellowK@ }Click to recall my color (= 255,255,0) RightClick to memorize the current color. Shift-RightClick to reset all 12 to default.w  cREVGeneral  revUniqueIDvB'cyanK@ }Click to recall my color (= 0,255,255) RightClick to memorize the current color. Shift-RightClick to reset all 12 to