<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On Jan 7, 2009, at 8:00 PM, Brian Mastenbrook wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Alex,</div><div><br></div><div>Can I suggest another idea? I'd love to see a cross-platform GUI development system based on WebKit, with Lisp access to the DOM tree and to DOM events. The resulting application need not necessarily look like a web browser, and developing the application doesn't imply having a web server as you could build up the DOM tree from code at runtime. DOM events would be handled by Lisp, so there'd be no need for JavaScript. WebKit is a great cross-platform display engine for an application. It doesn't handle everything (sound, video, and 3D animation or fast 2D animation being notable deficits, though these are not out-of-the-box available in most other cross-platform GUI solutions either). For widget interaction it'd be a good start and very flexible as you can use CSS to style things according to user preference or to fit in with an application theme. To address the remaining issues there's no reason why a set of bindings to OpenAL and OpenGL couldn't be included as complementary, with the ability to embed an OpenGL context in the DOM tree.</div><div> </div></div></blockquote><br></div><div>It looks like what I was talking about actually exists at least in some form: <a href="http://titaniumapp.com/">http://titaniumapp.com/</a></div><div><br></div><div>I haven't had a chance yet to look at the API. It looks like it's focused on JavaScript but I could certainly imagine using the framework and building a Lisp interface to the DOM.</div><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="'Courier New'">--</font></div><div><font class="Apple-style-span" face="'Courier New'">Brian Mastenbrook</font></div><div><font class="Apple-style-span" face="'Courier New'"><a href="mailto:brian@mastenbrook.net">brian@mastenbrook.net</a></font></div><div><font class="Apple-style-span" face="'Courier New'"><a href="http://brian.mastenbrook.net/">http://brian.mastenbrook.net/</a></font></div></div></span></div></span></div></span></div></span></div></span> </div><br></body></html>