On Fri, Feb 24, 2012 at 6:28 AM, Jeffrey Van Voorst <[email protected]> wrote:
> I am working my way through getting pyjamas desktop going on Mac OS X. > I had been using macports to install additional packages that do not > come with Mac OS X, but gave up and I am using a much newer package > tool called homebrew. Anyhow, my current build process is stuck at > gobject-introspection, and this is due to some subtle linking issue. > I am pursuing that issue through other routes. right - you do *not* want to use the gobject bindings. they are incomplete and the functionality that *is* complete is unstable and uses significant resources. if you want details, here's where i discuss it on the sugar-devel mailing list: http://lists.sugarlabs.org/archive/sugar-devel/2012-February/035683.html > While trying to build python bindings for GTK+, I did some google > searches and found some comments here and there about wxWebKit. right. i investigated those, 18 months ago. the wxWebKit bindings are hand-crafted (!!!!) because they're in c/c++ and the bit that's actually auto-generated is the python bindings. so, as they're hand-crafted in c/c++, the wxWebKit DOM bindings are ****NOT**** complete. it will take them months of very very hard work to complete them. then and only then will they be able to auto-generate the python bindings. until that is done, there is absolutely no point whatsoever in bothering to even investigate them, because, as you know, even if _one_ piece of functionality is missing, it's a complete waste of time. pyjd requires *everything*. timers, all events, all DOM objects, all DOM properties, all DOM functions - everything. absolutely, without fail, cast-iron guaranteed absolutely without fail 100% of all functionality that is available to javascript - absolutely *everything* must be available to python. to drive this home - if that's not emphasised enough: * what would be the point of having DOM bindings if for example the property "clientWidth" was missing, because someone happened to miss it out? * what about HTTPRequest? what would be the consequences of not having the onload event, or the open function? * what about say... NodeList? would it be acceptable to miss that out? * what about say.... the HTML5 video tag? you see what i'm getting at? > However I cannot find much useful information on wxWebKit. On the > other hand, I was able to at least build wxPython 2.9.3.1 (that is > needed for wxWebKit). In addition I found this note (below) for > wxPython 2.9.3.0, and I am wondering how this approach differs from > pythonwebkit? Is the work that would be needed for pyjamas desktop to > use wxWebKit primarily needed for the bindings to the pyjamas "way of > doing things" (whatever that might be) or is wxWebKit a fundamentally > different approach from pythonwebkit? pyjd doesn't _actually_ care how things are done: all that matters is that you can fire up a full-screen window with a piece of HTML in it, and that you then have 100% full complete absolute without fail absolute guaranteed access to all and i mean all DOM features without exception of any kind. > """ > Added wrappers for new WebView classes which came from a successful > Google Summer of Code project this year. This new module allows you to > embed the platform's native HTML/CSS/Javascript rendering engine in a > wx application like we've always been able to do with wx.webkit on Mac > or with the various ActiveX modules that we've had for windows, except > in the new version it uses the exact same API on all platforms and > also provides an implementation for GTK. does it have full and i mean full DOM python bindings and i do *not* mean the gobject introspection ones which i *know* are fundamentally flawed. > Finally, at one point it had seemed to me that wxWidgets was more > adept for developing cross platform GUIs that do not look like ugly > transplanted windows from some ancient and foreign technology than > GTK+, but maybe that is an incorrect assumption? it doesn't matter, because the only critical thing is to have the web engine be the only thing that comes up in the window, occupying the entire window, using the underlying browser engine full access to the entire window, and no other thing, widget or other object is allowed or required to write to the screen. l.

