
On Wed, Sep 8, 2010 at 06:28, Artyom <artyomtnk@yahoo.com> wrote:
1. Use "native" widgets or not
Use none! That's exactly was my point! Designing a low level library is wrong. Design the high level which can be bound to "native" widgets or even "windowless" drawn on some canvas. ****TAKE A LOOK AT http://notus.sourceforge.net/ !!!**** 2. What strings should be used? std::string, std::wstring, custom string
like Qt's QString or GTKmm's ustring?
As a windows programmer I say: use UTF-8 with std::string. See Pavel's answer here: http://stackoverflow.com/questions/1049947/should-utf-16-be-considered-harmf.... Why UTF-8? In non gui code std::string is more common. Single byte encoding is also default for std::exception::what() for example. Anyway if there is no consensus on this topic you still can use both through a configuration (typedef std::string/std::wstring tstring;). 3. What about event loop:
This is the hard part. 4. What about OS support. What GUI systems are you going to work with:
Any GUI that the user of the library wants. The library will supply bindings to the common controls on common GUIs. 5. What 3D rendering would you use?
Any rendering that the user of the library wants. 3D rendering (unlike basic 2D rendering) shouldn't be considered at all. It should be possible to use 3rd party portable libraries with this GUI. 6. What about licensing? Can we use LGPL libraryes? GPL libraries? or only
BSD/MIT like ones.
You don't use other libraries for anything except the bindings for some platform. If you use the native API that's not a problem. Yakov