1. Complete, clean up and document existing tags:

objects tags:

<menu> : *DONE!*
<menuItem> : *DONE!*
<menuSeparator>: *DONE!*
<instance> : *DONE!*
<window>: *DONE!*
<panel>: *DONE!*
<view>: *DONE!*
<control>: *DONE!*
<button>: *DONE!*
<label>: *DONE!*
<colorWell>: *DONE!*
<textField>: *DONE!*
<secureTextField>: *DONE!*
<hbox>: *DONE!*
<vbox>: *DONE!*
<hspace>: *DONE!*
<vspace>: *DONE!*
<textView>
<scrollView>
<box>
...

connectors tags:

<control> : *DONE!*
<outlet> : *DONE!*

This is a major work involving basic design of the gsmarkup API.  Each
tag should be compared with existing competitors (in particular, with
the corresponding XUL tags).

Write a DTD along the way ... it can only describe standard library
tags, and likely not completely, but it can still be useful ... XEmacs
can read it and validate.

2. Fix memory management.  All top-level objects are non-autoreleased;
for special cases, implement the undocumented NSTopLevelObjects
extension to NSBundleAdditions which I learnt about on the web ... it
should all be exactly 100% as in NIBs.  *DONE!*

3. Port the SAX XML parser to Apple using CFXML.  *DONE!*

4. Consider what happens with comments ... because the XML parser
builds nodes for them, they break strings in two - we need to paste
back the two string fragments together.  In other words, fix
<label>Hi, <!-- label --> this is not shown</label> so that it
works. *DONE!*

5. Think more about the GSMarkupTagObject design and internals ... make
that pretty.  Particularly consider also what happens with a gui 
builder.

6. Rewrite the whole examples/gui using GSMarkup.  *DONE!*

7. Clean up and commit to CVS.  *DONE!*

8. Deciding about library vs bundle vs gnustep-gui subproject.  External
library looks like the preferred solution.  Definitely external library ...
more reliably working.  *DONE!*

9. Add the localization API.  *DONE!*

10. Make gnustep-gui sizeToFit for buttons pretty :-) it's currently
too tiny.  *DONE!*

11. Choose a name, `marketing strategy'.  *DONE!*

12. Rewrite completely the boxes.  *DONE!*

13. Write a gui builder.

14. Removing views from boxes.  *DONE!*

15. Define and test how the autoresizing works when you add or remove
a view from a box which is inside a window that is already on screen.
We need to walk through the view hierarchy upwards from the view that
has been added/removed, and update all minimum sizes, then redo the
layout.  This might increase the window size if a view has been added,
but will never shrink it if a view has been removed.

16. Add new methods (or examples) on how to load a <view> from a
gsmarkup file and automatically add it somewhere in an existing
window

17. Add all missing widgets

18. Support bindings in some elegant way - they should fit nicely in
Renaissance

19. Multi-line labels (presumably adding a <br /> tag to be used to
represent newlines inside strings ?)

20. Attribute strings in <label> (presumably adding HTML-like
formatting to represent attributed strings ?)

21. A nicer syntax for outlets - what about 

 <outlet key="#NSOwner.vbox" value="#vbox" />

22. Grids - it should be a matter of extending the existing boxes as
the autolayout managers can be reused

23. If you set the 'border' attribute of a window's top-level view,
it's ignored (no autolayout container holding it).  Maybe we could
hack some way of having it work.

24. Update gsmarkup loading framework to be similar to the new Apple
NSNib stuff

25. Sort out the button types.  Go through Apple's human interface
guidelines for buttons making sure all the types are available, easy
to setup and work well.

26. Sort out instructions on how to start GSMarkupBrowser.app from the
command-line.

27. Sharing the autolayout manager between different boxes and grids
to create eye-pleasing symmetries