Wow, thanks for your thorough reply! > Well you can use either C gtk+ or gtkmm, the C++ bindings. > Gtk in itself is a good toolkit imo, flexible and intuitive to use. > Its documentation is better than it was 2 years ago, but still not up > to the same level of msdn. Expect to look at other people's source > code a lot.
I could even use PHP, since it's also got a GTK+ binding. ;-) > Gtkmm is the C++ binding to gtk+, and it's pretty good. Very STL'ish > (but has a utf8 string class too, damn you > std::string!) and straighforward to use. Their UTF-8 class I will use, no matter what lib I choose, since half of my work deals with UTF-8 strings. > Documentation is > there but not great, but combined with the C documentation, other > sourcecode and the mailing lists it's workable. > Now for the bad part: gtk was writting for X and it shows. > The windows port is a hack and hardly anyone uses it for > cross-platform development; most windows gtk programs were writting > for unix and the windows port is just a side-effect. > It's hard to get programs on windows to look like native windows > programs and it's almost impossible to get them to look good. One > example is the icons; their style is very different on windows and > linux. Download gaim (gaim.sf.net) to see what I mean. Don't get me > wrong, it's a great program and I use it every day (on windows) but it > doesn't look 'polished'. Hmm, today when I was viewing gtk.org, I noticed it says "GTK+, The GIMP Toolkit"! And gods know why I didn't see it before, since the font size was too big to ignore. This seems to negate what you say here. I've been using The GIMP on both Windows and Linux for a while to do some graphic stuff. I'm quite pleased with its look and feel on both platforms. I see your point about the icons on buttons, but I don't think it can create a sluggish GUI. Also, GTK+ seems to be using GNU's gettext for i18n (correct me if I'm wrong), and it made it to show some parts translated in Persian (my mother language) right away after installing it on Windows. It even had full support for right-to-left window layouts, which also seem great! And if you want a usual left-to-right layout with English interface, it would just be enough to set the environment variable LANG to "C". Amazing, if you ask me! > Gtk has, besides the gui toolkit, some other goodies; the c version > has linked lists and hashtables and similar data structures in glib > but they are alreay in stl of course for the c++ version. Both the c > and c++ versions have a signalling system, cross-platform thread > abstraction and string handling classes. That's about it of the top of > my head; stuff like xml handling or networking are in separate > libraries. Cool. > > Qt, > > Qt is good but non-free (for windows). 3000 USD is not much for a > commercial program but hefty for hobby development. It's not hobby development, but it will be GPL'ed, so any non-free libraries are not an option at all. > It's fairly clean by > 1995 standards but not by today's; that may or may not bother you. For > example the signals system is a klugde compared to that of gtkmm; you > have to preprocess all files with a program called moc to get a > signals and rtti system. On the upside, it's very well documented and > widely used so it's easy to get example code. > Qt isn't just gui code: it has classes for all sorts of other stuff > like internationalization, xml handling, database connectivity, > anything you could possibly need. That makes it very complete and also > very easy to maintain a development environment for: just update Qt > and you have new versions of everything. > To summarize: I'd recommend it over all alternatives but only for > commercial development where the windows version is important (like > in: > the unix and windows versions are values equally). > > > and wxWindows. > > First, it's not called wxWindows anymore, it's wxWidgets nowadays. > That being said, for people who are used to MFC it will feel familiar, > for all others it will feel awkward. Lots of macros everywhere which > doesn't help transparancy. > Documentation is good though, and it doesn't just have gui stuff, but > also database support and multithreading. > I haven't seen any applications that have been written with it yet > that look good. It's hard to get it just right; things like spacing > and widget placement are near impossible to get consistently > good-looking on both platforms. Part of the platform is the inherent > difference between the ways widgets are placed on windows and gtk > (wxWidgets uses gtk on Linux); fixed placing on windows vs > layout-based on gtk. > My recommendation: it's free, it works, and it's fairly easy to use, > but that's it. Applications written with it just scream 'hobby > project' imo. Not much appealing. > A toolkit you haven't mentioned is vcf (vcf.sf.net) but it's very > incomplete and I don't know of any software using it. > Just thought I'd mention it for completeness. > > > Have any of you guys have experienced any of these? Any > > recommendations, or points you'd like to warn me about? > > You didn't mention the license you'll be releasing your app under, > that is very relevant, too. It will be GPL. > And I assume you'll only > be using C/C++, but maybe it would be interesting to have a look at > other language bindings too and then connect that to your C/C++ > backend. For example, both gtk and wxWidgets have very good Python > bindings and it's very easy to call Python from C++ with the boost > python bindings. Yup, it is. GTK+ has quite a bit of language bindings. Of course I myself don't know Python, but maybe I can find someone that will. That way, we could have a backend in C++ (which I'll write) and a UI in Python for example, which someone else writes. > Another option would be to forget about the 'native' look and write > the whole gui in html. Symantec Antivirus has an html gui that looks > great imo. Then write a small wrapper around mozilla and use that on > both platforms. Or just write it all in XUL. Big disadvantage is the > dependency on Mozilla (or the huge download if you include it in your > installer). Hey, I don't know why it didn't occur to me. Do you know how big is Gecko's redistributable package? If it's 2 or 3 megs, then maybe I go that way... > Yeah I'd like that too, but it's not gonna happen soon, sorry > :) I'll tell you what I do nowadays: I make a strict separation > between gui and backend code and I write two gui frontends, one for > windows with wtl and one for linux with gtkmm. It's more work but you > can give your gui's all those extra little thing that make it > integrate with the os that you can never do with cross-platform > toolkits and that provide that 'complete user experience'. > > Sorry for the disencouragement :) Oh, that's what I was afraid of, but thanks for your information! ------------- Ehsan Akhgari Farda Technology (http://www.farda-tech.com/) List Owner: [EMAIL PROTECTED] [ Email: [EMAIL PROTECTED] ] [ WWW: http://www.beginthread.com/Ehsan ] They have something of which they are proud. What do they call it, that which makes them proud? Culture, they call it; it distinguishes them from the goatherds. -Thus Spoke Zarathustra, F. W. Nietzsche _______________________________________________ msvc mailing list [EMAIL PROTECTED] See http://beginthread.com/mailman/listinfo/msvc_beginthread.com for subscription changes, and list archive.
