[IronPython] Python in the Browser updates

Jimmy Schementi Jimmy.Schementi at microsoft.com
Thu Jun 19 12:12:41 CEST 2008


Whoa, 3am typo: "... toy console *uses* a 1-row ..."

> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-
> bounces at lists.ironpython.com] 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: users-bounces at lists.ironpython.com [mailto:users-
> > bounces at lists.ironpython.com] 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 <fuzzyman at voidspace.org.uk
> > > <mailto:fuzzyman at voidspace.org.uk>>:
> > >
> > >     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
> > > Users at lists.ironpython.com
> > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > >
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




More information about the Ironpython-users mailing list