Whoa, 3am typo: "... toy console *uses* a 1-row ..." > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:users- > [EMAIL PROTECTED] On Behalf Of Jimmy Schementi > Sent: Thursday, June 19, 2008 3:09 AM > To: Discussion of IronPython > Subject: Re: [IronPython] Python in the Browser updates > > My "Try IronRuby (in the browser)" toy console does doesn't users a 1- > row textarea that expands as more rows are added. The previous console > output isn't in the textarea, it's moved into a div above it. It's easy > to hide everything's borders and set the margins/paddings right with > CSS that the effect is transparent. > > When I get my bits in the wild feel free to rip it off =) > > ~js > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:users- > > [EMAIL PROTECTED] On Behalf Of Michael Foord > > Sent: Thursday, June 19, 2008 2:05 AM > > To: Discussion of IronPython > > Subject: Re: [IronPython] Python in the Browser updates > > > > Hello all, > > > > Thanks Jonathan. The approach you suggest has several great > advantages. > > The disadvantages are that you lose the ability to copy and paste (I > > think most browsers forbid you from manipulating the clipboard from > > Javascript unless the user has fiddled with some obscure settings). > > > > For the first release I'll stick with a textarea but I'll prototype > > your > > suggestion for the next release and see what I think. > > > > Michael Foord > > > > Jonathan Slenders wrote: > > > > > > > > > 2008/6/18 Michael Foord <[EMAIL PROTECTED] > > > <mailto:[EMAIL PROTECTED]>>: > > > > > > Jimmy Schementi wrote: > > > > > > Michael, question for you: > > > > > > > > > > > > On every keypress Javascript calls into IronPython (via > > > the C#!). > > > > > > > > > > > > How come you used C# to handle the onkeypress event? This > > > should do it in Python: > > > > > > > > > > > > > > > Did you look at the code to see why? I'd be really interested > to > > > know if I can do what I'm doing from Python inside Silverlight, > > > but I doubt it. There's not much code in total, so it should be > > > easy to follow. > > > > > > I actually handle the onkeypress event from Javascript > > > (onkeypress.js). This calls into 'getSelection' (cursor_pos.js) > > to > > > work out the current selection in the textarea. Naturally this > is > > > easy to do in Firefox / Safari and scarily awful in IE. :-) > > > > > > Having worked these out (and shortcut a few specific scenarios > - > > > like ctrl-A, ctrl-Z and ctrl-C), the Javascript then calls into > > > IronPython with the selection start, selection end, and the > > > character that was pressed. I use C# to expose a scriptable > type > > > that Javascript can call. > > > > > > I use attaching events from Python to provide the sample code. > > > There are three links above the console and Python handles the > > > 'onclick' event to swap the examples around. > > > > > > > > > > > > I think Jimmy is right here. And the parts you did in javascript, > > > could also be done in Silverlight. Some suggestions how I would do > > this: > > > - instead of a text area, I'd use a html <div> , with CSS > "overflow: > > > auto;" for the scrollbars. > > > - insert a <p> tag for each line into the <div>. > > > - capture the body.onkeypress events for input > > > - keep a textinput buffer in IronPython, but show the last line by > > > copying it on each keypress to the last <p> > > > - The cursor could be <span>, styled in CSS to show a pinking > cursor. > > > - handle the left/right arrows to shift the cursor > > > - handle the up/down arrows to replace the last <p> with the second > > > last executed command > > > - on a "enter" press, process that line. > > > - when using a <div>, it's even very easy to do syntax highlighting > > on > > > the fly. Surround known keywords by a <span class="keyword"> and > > style > > > them. > > > > > > That shouldn't be too hard to do. But you should decide whether > it's > > > necessary to have this all in IronPython. Probably, it's the > cleanest > > > way to do it. > > > > > > Jonathan > > > ------------------------------------------------------------------- > -- > > --- > > > > > > _______________________________________________ > > > Users mailing list > > > [email protected] > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > > > > _______________________________________________ > > Users mailing list > > [email protected] > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
