I'm betting this post will recieve a lot of response but that you won't find what you're looking for. I've only been watching discussions along this line enough to convince me that although there is much interest in this, we're not there (yet?). However, I don't think all is lost. My experience with GUI stuff is in writing programs using MFC. Typically there is the opportunity to divide the application in to two "halves". a) A "lower" half which is (mostly) portable which deals with data, devices, etc and exposes an interface (or API) by which the underlying data, devices, etc. can be manipulated. b) An "upper" half which handles gui stuff like drawing, events, etc. This upper half is generally non-portable an particulary to the environment - windows, mac, or what ever. The lower half is very suitable for a boost approach and architecture. any and all of boost can be useful. This is generally refered to as MVC (Model, View, Controller) pattern. The upper half - well it depends... I think its too hard (expensive) to make this portable and generic and still benefit from all the code that comes with MFC or other GUI toolkits. Though there may be some places where boost stuff is useful, I think that mostly one will get most bang for the buck in doing this part "their way". To summarize, a project of this nature is best factored into loosly coupled pieces. Some pieces are are a very good fit with boost - and others are not. Use the best toolkit for each piece. Someday, their may be a boost library which presents a common interface to GUI libraries. But until that happens, I would recommend the above. Robert Ramey Matthew Johnson wrote:
I would like to study a gui application designed from the ground up with modern C++ techniques and built on top of STL and Boost. Ideally I am looking for an application that abstracts the system specific ui components (windows, controls, etc) as much as possible.
The ideal application would: Implement significant, non-trivial functionality. Be elegant and efficient. Use modern C++ and implementation design techniques. Be built on top of STL and Boost. Use the best techniques for the job (metaprogramming, generic programming, functional programming, oo, etc) Have source code available for study (not necessarily available for legal use). Last but not least, a native Mac OS X application would be ideal.
Does anyone here know of any applications that meet these requirements? I have been studying modern C++ for a while now and would like to study real world applications and uses of the these techniques and libraries as a next step in this study.
Thanks, Matthew