Re: html5Player
My goodness -- magic" indeed! Where is the "stack" in the environment? Is in everything inside the lower right quadrant: My I should switch for the forum so that we have screen shots. We envision a scenario like this: for 5 people to collaborate as the same time: 1. all load the IDE [html5IDE.html] 2. Person 1 make change to stack. 3. it is saved to server 4. other refresh their browser 5. it loads from the server 6. they would be "see" the changes person 1 had made. "Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template." Assuming stack I saved in the downloads folder If I understand correctly: What you want will be done soon, in a limited way, with the "html5IDE" https://hyperhh.de/html5/html5IDE.html (but without debugging!). The html5Player is not for that (**). You have there a propertyInspector, scriptEditor (and Dictionary). Everything is done in the browser. Then standard saving (when implemented) will go to the downloads folder. This could be reduced to the propertyInspector in your case. Saving/uploading to the server will be server dependent. Perhaps it would be best if Mark Talluto could come in with his work at that point. Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template. The html5IDE will load much faster in the future, currently the same engine is loaded six(!) times, that will go down to two times, could go down to one time in your case. Sadly this will be still too slow for mobile. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: html5Player
If I understand correctly: What you want will be done soon, in a limited way, with the "html5IDE" https://hyperhh.de/html5/html5IDE.html (but without debugging!). The html5Player is not for that (**). You have there a propertyInspector, scriptEditor (and Dictionary). Everything is done in the browser. Then standard saving (when implemented) will go to the downloads folder. This could be reduced to the propertyInspector in your case. Saving/uploading to the server will be server dependent. Perhaps it would be best if Mark Talluto could come in with his work at that point. Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template. The html5IDE will load much faster in the future, currently the same engine is loaded six(!) times, that will go down to two times, could go down to one time in your case. Sadly this will be still too slow for mobile. --- (**) You can't edit stacks in the html5Player which may be used this way for (fast) development: You have locally the LC-IDE open with an ordinary stack that should become a HTML5 standalone. 1. You load the html5Player once. 2. You drop repeatedly the local stack (while it is saved but still open in the IDE) to the html5Player for testing. Whenever the local stack is closed in html5Player it will be deleted from browser RAM. > BR wrote: > I have a real use case...create a design environment that people can > easily add thing to a rect (414w x 726 tall) that represent a stack. > > EG of how it would be used. > 1. Say we get 5 people on SKYPE and they all open the "design" … > they add a simple control (image, fld, graphic rect) and save it > 2. It would have to be save an SVG to the server OR its saves a > stack to the server > 3. everyone refresh their broswer. It get the svg from the server > OR it get the stack from the server. and displays it. > > Could be done asynchronistically, user work alone. Someone loads with > page, it fetches the stack. > > I know it see link we are inventing the wheel once again, but all the > players out there over complicated the "thing" > > It would act like a "white board wiki for LC Design" ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Import SVG as Images
Alright! Now have more questions. The is way OFF TOPIC but I thought I could ask, because some of you know the SVG standards better I do… the SVG from Sketch, come with a default width and height and a viewBox of 100px http://www.w3.org/2000/svg; xmlns:xlink="http://www.w3.org/1999/xlink;> shum Created with Sketch. But the object in the path parameter, that is the object itself, in way smaller than the "view port" I can easily parse these on the fly, and change to color but: Is there a way to format the SVG to come in as is does in the SVG widget, where the "viewport" in constrained to the actual size the object? It should be okay, it's in the dictionary. It requires the inclusion of the XML extension in a standalone. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: html5Player
"Can you save" To which you supplied a lengthy answer, thank you. I have a real use case: I looked at all the collaborative "white boards" on the market. There are 10 that only have free version that allows a limit number of people participating. All too complicationed and unnecessarily over-engineered from what we want to do. Other design environment require a skill level, learning curve/price that is too steep. simply: create a design environment that people can easily add thing to a rect (414w x 726 tall) that represent a stack. EG of how it would be used. 1. Say we get 5 people on SKYPE and they all open the "design" … they add a simple control (image, fld, graphic rect) and save it 2. It would have to be save an SVG to the server OR its saves a stack to the server 3. everyone refresh their broswer. It get the svg from the server OR it get the stack from the server. and displays it. Could be done asynchronistically, user work alone. Someone loads with page, it fetches the stack. I know it see link we are inventing the wheel once again, but all the players out there over complicated the "thing" It would act like a "white board wiki for LC Design" Added to html5Player (v103 alpha) https://hyperhh.de/html5/html5Player.html ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Import SVG as Images
It should be okay, it's in the dictionary. It requires the inclusion of the XML extension in a standalone. -- Jacqueline Landman Gay | jac...@hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 1, 2020 3:15:19 PM Sannyasin Brahmanathaswami via use-livecode wrote: I want to import SVG as a tool in a stack meant for deployment. digging into REV IDE stacks | RevMenuBar, we find the "revIDEImportControl" handler [snip} case "image" if pFileName ends with ".svg" then -- SVG files can't be referenced revIDECreateObject "com.livecode.interface.classic.image", tTargetStack, tCreatedControlLocation put the long id of the last control into tCreatedControlID set the text of tCreatedControlID to drawingSvgCompileFile(pFileName) = so I made a button with: on mouseup answer file "Find an SVG" put it into pFileName create image put it into tImageID set the text of tImageID to drawingSvgCompileFile(pFileName) end mouseup it works! Are there any caveats to calling REV IDE handlers we create a standalone app? BR ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: html5Player
Added to html5Player (v103 alpha) https://hyperhh.de/html5/html5Player.html 1. Your added local (uncompiled) stacks can use as textfont Aclonica, Andale Mono, DejaVu Sans, DejaVu Serif, Impact, Inconsolata, Optima, Permanent Marker, Skia, Verdana else textfont falls back to Droid Sans. 2. (Just for fun!) Apply a color-filter to all *open* windows, one of grayscale(v), invert(x), sepia(x), roentgen(x), blur(x) where the amount v is taken from a slider value. [New windows have no filter, you have to reapply.] ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: directory tree -> array
> On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode > wrote: > > I stumbled across a code challenge for y'all, one that seems seductively > simple but I don't think it is: > > What is the simplest way to build an array that reflects the files and > folders within a given folder? > > There's a discussion about this here: > > https://forums.livecode.com/viewtopic.php?f=7=33565 > > > On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode > wrote: > > We have many handlers that deliver directory trees as lists, but arrays are a > different beast. Because the depth is both unknowable and varied, I can't > think of a way to do this without resorting to "do". Since that thread vanished last week, and hasn’t returned, I'm offering help here instead. The list of full paths contains enough information to build an array representation of the directory tree. /** Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure pPaths: a return-delimited list of full paths pPath: the path that was used to generate the list of full paths Returns (array): A array with a branch node for each folder and a leaf node for each file Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. email subject "directory tree -> array" forum topic "f=7=33565" */ function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list local tPaths, tFile, tArray set the itemDelimiter to "/" put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path repeat for each line tPath in tPaths -- insert each file name into the array put the last item of tPath into tFile delete the last item of tPath if tPath is empty then -- the file is in folder pPath put "true" into tArray[ tFile ] else -- the file is in a folder in folder pPath split tPath by slash put "true" into tArray[ tPath ][ tFile ] end if end repeat return tArray end arrayFromPaths on mouseUp local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f local tPath = "a/b" -- the shared partial path replace comma with cr in tPaths get arrayFromPaths( tPaths, tPath ) breakpoint end mouseUp If the topic reappears soon, I’ll repost there because reading code is easier there. By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. — Dick ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Import SVG as Images
I want to import SVG as a tool in a stack meant for deployment. digging into REV IDE stacks | RevMenuBar, we find the "revIDEImportControl" handler [snip} case "image" if pFileName ends with ".svg" then -- SVG files can't be referenced revIDECreateObject "com.livecode.interface.classic.image", tTargetStack, tCreatedControlLocation put the long id of the last control into tCreatedControlID set the text of tCreatedControlID to drawingSvgCompileFile(pFileName) = so I made a button with: on mouseup answer file "Find an SVG" put it into pFileName create image put it into tImageID set the text of tImageID to drawingSvgCompileFile(pFileName) end mouseup it works! Are there any caveats to calling REV IDE handlers we create a standalone app? BR ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: HTML5 deployment
> Sean wrote: > > 4. As with 3 also, emscripten itself has capabilities built in that will > allow for this so I will more likely utilise these rather than use JQuery. > The idea will be to handle as much as possible within the emscripten code > and have minimal stuff within the HTML output other than anything the user > wants to add in. [JQuery is only used for easier identifying DOM objects.] When doing "windowing" also look at the current implementation of "globalRect". This is not correct as it doesn't respect the scroll of the browser window what creates "jumping" stack windows. > 5. Thinking ahead, a way to add in JS functions an LC developer would want > included in the HTML output (from within LC) would be useful. Perhaps a > stack custom property that can hold the whole JS code that gets inserted at > deployment so that it builds as self contained. And/Or a way to access, > manipulate and/or set parameters of the HTML from within LC before > deployment (not at runtime). This could then include things like custom > layouts, loading bars, screen size handlers, php/Ajax/jquery comms, etc. Please leave out such things. These are extensions. But we could build a separate library of JS-extensions (updated with actual things from JS/CSS) that can be loaded if needed. And every beginner can insert JS from any LC container (do fld "JS1" as "javascript"). Thinking ahead? I'll extend my list not before 1.-4. is done: What I dislike most with LC is that too much projects are only halfway finished. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Diff?
This is marvellous. This will be so useful. Sean Cole Pi Digital Prod Ltd > On 1 Feb 2020, at 15:02, Brian Milby via use-livecode > wrote: > > I use this in ScriptTracker to get the changes when saving a stack. I > squash them together into a consolidated diff for the stack. I have not done > anything with the patch side though. > > Thanks, > Brian >> On Feb 1, 2020, 6:02 AM -0500, Niggemann, Bernd via use-livecode >> , wrote: >> Richard, >> >> Library com.livecode.library.diff was introduce in 9.0 >> >> From the release notes: >> diff library >> A new library has been implemented for computing diffs between text sources >> and applying those diffs to text. >> >> https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript >> >> I have used it occasionally and it worked well once you get the syntax right >> and find out what it does. >> Especially in >> >> DiffCompare(pFrom,pTo,pContext) >> >> how pContext works. It takes a little experimentation. >> >> Kind regards >> Bernd >> >>> Richard wrote: >>> I just discovered three very interesting functions in the Dictionary: >>> >>> DiffCompare >>> DiffCompareFiles >>> DiffPatch >> >> ___ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: HTML5 deployment
1&2 I am already implementing that way but thanks for the affirmation. 3. Good idea regarding keeping them all on one predetermined layer. 4. As with 3 also, emscripten itself has capabilities built in that will allow for this so I will more likely utilise these rather than use JQuery. The idea will be to handle as much as possible within the emscripten code and have minimal stuff within the HTML output other than anything the user wants to add in. 5. Thinking ahead, a way to add in JS functions an LC developer would want included in the HTML output (from within LC) would be useful. Perhaps a stack custom property that can hold the whole JS code that gets inserted at deployment so that it builds as self contained. And/Or a way to access, manipulate and/or set parameters of the HTML from within LC before deployment (not at runtime). This could then include things like custom layouts, loading bars, screen size handlers, php/Ajax/jquery comms, etc. Sean Cole Pi Digital Prod Ltd > On 1 Feb 2020, at 14:38, hh via use-livecode > wrote: > > * There are some things relating 1 & 2 one could think about: > > Start with mouseEvents (incl. wheel) and modifier keys. > > Then one could use native fields so that the browser does the keyboard job > and executes all shortcuts for fields. > To get/set field values is easy. A native styled field is also possible > (see my demo at hyperhh.de/html5). > > My technique is to use ordinary LC fields, hide these (and optionally use > them as container). Then adjust the native field rects to these hidden field > rects in the movestack/resizestack handlers. > > * For 3 it would be enough to define ONE 'window'/canvas of id 'menu' for the > menus with a z-level of say 23121950 and similarly define ONE 'window'/canvas > for the tooltips of id 'tooltip' with a z-level of say 23121949. > > That implies: do NOT create a new window for each menu/tooltip. > Probably function createWindow in em-dc.js needs a switch for that (I could > not find out where this method is called for menus/tooltips). > > Then insert the two lines > canvas.classList.add('lcStack'); > canvas.id('stack_'+tWindowID); > after current line 128 of em-dc.js, so one has several methods to get stack > objects. > > * For 4 one could use the lib I use for htmlPlayer. This needs jQuery but it > is the only one I've found that works with LC-menus. I added a short script > to put stacks into a panel. > >> Sean wrote: >> em-event.js is the one for 1 & 2 causing the problem mainly because of its >> use of now deprecated event handlers. That's what I am working on right >> now. >> >> em-dc, em-nativeLayer and em-surface are what is likely to do with 3 & 4. >> Maybe also em-preamble-overlay.js. >> >> em-clipboard obviously may have some relevance to the clipboard issue but >> I'm working on the assumption first it is more likely just a keyboard/input >> event issue. >> >>> Hermann wrote: >>> 1. *Full* keyboard and mouse (incl. wheel) support. >>> >>> 2. Support for usual field shortcuts (selectAll, copy, cut, paste, >>> undo) and rawkey handlers. >>> >>> 3. Improve the canvas generation: >>> >>> Currently LC generates canvases for stacks, tooltips and >>> menus that are without querying windowIDs for all stacks >>> undistinguishable. Often menus and tooltips are hidden by stacks: >>> >>> 3a. Menus need to have an own fixed (very high) z-level, >>> 3b. Tooltips need to have an own fixed (very high) z-level, >>> 3c. Stacks need an own class for easier access in DOM. >>> >>> 4. Add a draggable, resizable windowing system (adding titlebar, >>> decorations) with automatic layering (z-levels). > > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Diff?
I use this in ScriptTracker to get the changes when saving a stack. I squash them together into a consolidated diff for the stack. I have not done anything with the patch side though. Thanks, Brian On Feb 1, 2020, 6:02 AM -0500, Niggemann, Bernd via use-livecode , wrote: > Richard, > > Library com.livecode.library.diff was introduce in 9.0 > > From the release notes: > diff library > A new library has been implemented for computing diffs between text sources > and applying those diffs to text. > > https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript > > I have used it occasionally and it worked well once you get the syntax right > and find out what it does. > Especially in > > DiffCompare(pFrom,pTo,pContext) > > how pContext works. It takes a little experimentation. > > Kind regards > Bernd > > > Richard wrote: > > I just discovered three very interesting functions in the Dictionary: > > > > DiffCompare > > DiffCompareFiles > > DiffPatch > > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: HTML5 deployment
* There are some things relating 1 & 2 one could think about: Start with mouseEvents (incl. wheel) and modifier keys. Then one could use native fields so that the browser does the keyboard job and executes all shortcuts for fields. To get/set field values is easy. A native styled field is also possible (see my demo at hyperhh.de/html5). My technique is to use ordinary LC fields, hide these (and optionally use them as container). Then adjust the native field rects to these hidden field rects in the movestack/resizestack handlers. * For 3 it would be enough to define ONE 'window'/canvas of id 'menu' for the menus with a z-level of say 23121950 and similarly define ONE 'window'/canvas for the tooltips of id 'tooltip' with a z-level of say 23121949. That implies: do NOT create a new window for each menu/tooltip. Probably function createWindow in em-dc.js needs a switch for that (I could not find out where this method is called for menus/tooltips). Then insert the two lines canvas.classList.add('lcStack'); canvas.id('stack_'+tWindowID); after current line 128 of em-dc.js, so one has several methods to get stack objects. * For 4 one could use the lib I use for htmlPlayer. This needs jQuery but it is the only one I've found that works with LC-menus. I added a short script to put stacks into a panel. > Sean wrote: > em-event.js is the one for 1 & 2 causing the problem mainly because of its > use of now deprecated event handlers. That's what I am working on right > now. > > em-dc, em-nativeLayer and em-surface are what is likely to do with 3 & 4. > Maybe also em-preamble-overlay.js. > > em-clipboard obviously may have some relevance to the clipboard issue but > I'm working on the assumption first it is more likely just a keyboard/input > event issue. > > > Hermann wrote: > > 1. *Full* keyboard and mouse (incl. wheel) support. > > > > 2. Support for usual field shortcuts (selectAll, copy, cut, paste, > > undo) and rawkey handlers. > > > > 3. Improve the canvas generation: > > > > Currently LC generates canvases for stacks, tooltips and > > menus that are without querying windowIDs for all stacks > > undistinguishable. Often menus and tooltips are hidden by stacks: > > > > 3a. Menus need to have an own fixed (very high) z-level, > > 3b. Tooltips need to have an own fixed (very high) z-level, > > 3c. Stacks need an own class for easier access in DOM. > > > > 4. Add a draggable, resizable windowing system (adding titlebar, > > decorations) with automatic layering (z-levels). ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Running LiveCode Standalones under Crossover on Linux
Could the "Hi-DPI Support" support in the Windows setting of the Standalone builder be the cause of this issue? I noticed that in LC6.7.11 it is unchecked by default and in LC9.0.5 it is checked by default ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Running LiveCode Standalones under Crossover on Linux
Hivemind, I have a user who runs the Windows version of my software on Linux using Crossover. Our prior releases all have worked fine. Those releases were build under LiveCode 6.7.11 We just went to a new release built under LiveCode 9.0.5 and this user is getting menus and dialog boxes with no text (none at all) in them. Any chance that someone in the larger LiveCode community has seen this issue and knows what may be going on? We test under Windows 7,8,10 and under macOS 10.9 to 10.15, but not on Linux running Windows emulators. We don't have a Linux system here to even test on, but I'd like to try an help the person. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Diff?
Richard, Library com.livecode.library.diff was introduce in 9.0 >From the release notes: diff library A new library has been implemented for computing diffs between text sources and applying those diffs to text. https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript I have used it occasionally and it worked well once you get the syntax right and find out what it does. Especially in DiffCompare(pFrom,pTo,pContext) how pContext works. It takes a little experimentation. Kind regards Bernd >Richard wrote: >I just discovered three very interesting functions in the Dictionary: > >DiffCompare >DiffCompareFiles >DiffPatch ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Diff?
I just discovered three very interesting functions in the Dictionary: DiffCompare DiffCompareFiles DiffPatch Supercool - I can put these to use soon. The Dictionary entries for these are unusually sparse - anyone here know which version these were added in, and why? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: OMG text processing performance 6.7 - 9.5
Ralph DiMola wrote: I found this as well. Another thing, it's faster to truncate the string and search from the beginning than using a "start at" on the entire string when searching for all occurrences of a string . This was counter intuitive to me until Mark explained that skipping chars requires more work because repetitive skipping of Unicode chars is slower than many "memcpy"s on very long strings. Very interesting - thanks for noting that. It's counterintuitive, but it sure shows: I ran a quick test searching for all offsets for the string "Spitz" in the Gutenberg text file for Jack London's "Call of the Wild" - here are the results: 377 ms for 'start at' 56 ms for deletion -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode