Hi all,

Youness requested an overview of possibilities for XML (or HTML) to GUI, and 
their pros and cons. In this e-mail I'll try to fulfill that request. I'll 
have to do a lot just from memory, because I did not really write docs, while 
comparing. I always do that kind of thing just 'in the brain'. (And of course 
checking it if I am really uncertain.)

Harry



TkHTML:
---------
Pro:
- Seems to render HTML real good
- Supports CSS1 (TkHtml version 3)

Con:
- It's still TK, any form element for example is still an ugly TK widget.
- It only renders HTML, which is perfectly fit for the contents of our main 
window (except the menu bar), but not for anything else (e.g. dialog 
windows).
- Depends on a single toolkit: TK

Doubtful:
- Seems to be very permissive for bad HTML code. This may be easy when 
creating the code, but also may cause non-wellformed code to go unnoticed, 
which then may break in another TkHtml version. (On bad markup, behavior is 
undefined, and thus may not always be the same.)


xml2gui (http://wiki.tcl.tk/8908)
-----------
Pro:
- Very familiar: 1-to-1 mapping of TK commands to XML
- Everything possible with pure TK is also possible with this xml2gui

Con:
- It's still TK, so it's still ugly.
- Depends on a single toolkit: TK
- Nothing like CSS supported


GladeXML
-----------
Pro:
- Can handle any type of GTK widget
- If you got Glade, you can just draw your GUI
- In use by many projects, seems to work great.

Con:
- Hard to hand-code XML
- Depends on a single toolkit: GTK
- Nothing like CSS supported
- Will not blend with HTML (but Pango markup is supported)



XUL
----
Pro:
- Straight-forward and easy to use XML tag set
- Can be mixed with other XML-based languages (e.g. XHMTL) using XML 
namespaces
- Supports CSS2, as well as some extensions to that.
- Localization support (by means of XML entities). [To be 100% honest: this 
might work with some other XML, but here it is in the specs, so it's sure to 
be supported.]
- Can support a native toolkit on every platform. (on Linux: GTK2)
- We all know the proof that it works: Firefox
- XULRunner can run embedded in another app (not yet complete in current 
version) [Probably not needed, but you never know...]

Con:
- You'll need to use XPCOM to bind code to the GUI. [XPCOM is Mozilla's 
component system. It is best described as a cross-platform subset of 
Microsoft's COM. Using this may require C++, I'm not yet sure of that.]

Doubtful:
- Will enforce a package structure. For aMSN2 this will probably be a per 
plugin package structure, but that is not 100% sure yet. Anyway, one can 
regard this either as a pro or a con. Personally I'd like it per-plugin, 
otherwise not.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to