Gui Library Workshop
Time: At 2001-11-30
Place: in #dime at irc.worldforge.org.
Irc log
GUI Library Workshop in #dime.Attending
- nikal
- zzorn (secretary)
Notes
We identified some things that a widget base class (Component) should handle:
- Event listening (such as mouse events)
- Event dispatching (key up, key down, etc). Event capturing? (for dragging..)
- Name, short desc (for tooltip), long desc (for context sensitive help. partial HTML implementation?)
- Component size
- Border(s)
- Layout manager?
- Theming (use zipped file with bitmaps and sounds + property file, apply different properties for widgets depending on clss name..)
ParaGui is still a bit doubtful a choise as a GUI library, because it's C-like use of macros and callback functions, that could be hard to integrate with a C++ GUI wrapper lib.
We considered writing our own GUI library from scratch. The problem with this is that it would take time, and we wouldn't advance on the battleplan. We could use ideas from existing libraries such as Java Swing, ParaGui, libUta, etc, to speed up the design work.
We also considered starting with libUta, and removingunnecesary parts and refactoring the rest. LibUta is a GUI library that Karsten developed for UCLient, but that he is no longer maintaining, because it tries to do too mch (SDL C++ wrapper, GUI toolkit, etc). LibUta uses libSigC++. IIRC, there was some portability issues with this at some point. Also, it might not be very flexible.
We will be working on Dime during weekends. Both nikal and zzorn can spend around 10-15h on it each weekend.
Action Points
- It's important to start coding on the GUI stuff as soon as possible.
- We also need to start working towards a client type release that can connect and talk to cyphesis
- We will gather Pros and Cons for ParaGui, libUta, from-scratch, and other possible GUI framework alternatives for the next meeting. - how long would it take to implement a simple Widget/GUI library from scratch?
- We need a clear concept of what we want to do with our GUI library. - ie: what wigets will we need?, How will we implement the events?, How will we implement a nice themeable interface?
- Create a concept document or other nice reading for next months chopping block. At least a notice about dime, and some of it's central goals, should be present in the CB.
- zzorn to work on how to implement Themability.
- zzorn to set up his developement environment :)
Decisions
- We will be working on our own GUI Library on top of SDL. This way we are free from design limitations of existing ones.(zzorn estimated: 100h or so to get something basic working up, and 250h for a more polished lib).
- Goal: Get a basic gui library ready for Christmas, where we can show Alistairs map view with some sample cristmas map (using some kludgy way to load the map directly, if we don't get around to coal integration)
- We will hold weekly project meetings, each Saturday, at 15:30 GMT, in #dime, at irc.worldforge.org
Next Meeting
The next Dime meeting is at 15:30 GMT, 1st December, in #dime at irc.worldforge.org.| Current Issue: February 2003, Recent Issues: January 2003, November 2002, October 2002 |