
Hajo Kirchhoff wrote:
Hello all,
Considering the fact that some of the Boosters work on the GUI library, I would like to throw something to the mix:
I wasn't aware that some people here were into GUI work!
There are :). John Torjo has a Win32 specific library (www.torjo.com) and I am currently working on a generic GUI framework. The problem is that we have 4 or more people interested in developing a GUI framework and the same number of GUI frameworks up for consideration. The question is which platform do we use and who develops it? With this in mind, it might be best if a sub-group with a specialist list be created, aimed at creating a GUI framework for integration into Boost with possible adoption by the next C++ standard. My library is available at http://uk.geocities.com/msclrhd/gui/gui.zip It is not quite ready to be committed into the boost sandbox and lacks documentation and a lot of functionality. It is buildable with gcc 3.3 and msvc 8.0, e.g.: bjam release link=static gcc-3.3 The aims of my library are: * provide a platform-independant programming model * integrate with the platform for native functionality and interoperability with existing code The platform specific code is contained in a namespace associated with the API for that platform (cocoa for MacOS, win for Win32/64, x11, gtk, motif for *nix). In order to aid platform independant programming, the API you are targeting is aliased as platf. This allows code like: boost::io::platf::position pos; without knowing whether you are targeting MacOS, Windows or *nix. There is a platform independant interface with source files for the specific APIs (currently only Win32/64 is supported). This includes a platform independant entry point: int gui_main( const boost::gui::platf::entry_data & ed ); where entry_data is specific to the target API. This allows you to access WinMain specific data on Win32/64 and PilotMain specific data on PalmPilot PalmOS. I am also making use of properties (based on the Louis Goldthwaite document on library properties at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf). This allows: gui::area a( gui::position( 5, 5 ), gui::size( 100, 50 )); gui::size sz = a.size; assert( sz.dx == 100 ); assert( a.width == 100 ); assert( a.center == gui::position( 55, 30 )); Currently, I have area, size and position support in Cocoa, Win32/64 and PalmOS. Regards, Reece