1. Source Repository
Check out with:
git clone git://people.freedesktop.org/~herzi/ccc
(It's in jhbuild too, as libccc)
1.1. Bugs/Patches
2. Links
3. Goals
3.1. Other views
A GdkPixbuf view would be nice, as well as a file writer that can be used to create PNG/SVG thumbnails. A CellRenderer might be useful for drag and drop operations.
3.2. Printing
Printing is not yet implemented. I have several ideas for that, but there's 2 things we need for that:
cairo 1.2.0 for stable PS/PDF support
GTK+ HEAD for GtkPrinter support
3.3. Embedding Widgets
Alex wrote some code for off screen rendering, let's see whether we can get widgets to be displayed.
3.4. Canvas Editing
This needs three things:
- a canvas editor (libccc/editor)
- canvas to xml code
- xml to canvas code
Maybe we should wait for libglade to come into GTK+ so we can use the same code as there.
4. Canvas Users
Sven Herzberg is developing the presentation application Criawips, which will be ported to libccc once it's as powerful as required for this application.
Canek Peláez Valdés is using libccc for his interactive geometry application Geom.
Yves Combe made a test to port the education application GCompris to libccc. After investigation, we decided to use the goocanvas library as it is close at the API level from the goocanvas. Since GCompris is a heavy user of the gnomecanvas, it is easier for us to move to a similar API.
Jean Brefort is porting the chemistry application gChempaint to libccc.
Sven Herzberg offered help to the developers of the DTP application passepartout to port their document rendering to libccc.
5. Roadmap
This section will highlight the currently planned development for the future. Note that right now, there are no API and ABI guarantees (but starting with 0.0.6 I'm going to have a migration guide within the API reference, so you can port your applications to newer versions step-by-step).
5.1. 0.0.6
Whole list including bug fixes: 0.0.6
- a better bounding-box update API: gnomebug:436208
- async size allocation API: gnomebug:379319
- layout managers (similar to the ones from Java): Table, Over, Boxes (implemented by Table): gnomebug:354331
- natural size, width-for-height and height-for-width management
- callback-based API (for rapid prototyping): gnomebug:436218
- struct-sealing (don't expose any private members): gnomebug:436221
- printing (work has started but isn't finished yet): gnomebug:379331
- complete resolution independence (it's available - not really complete yet - but not used everywhere, and it will make several API aspects easier): gnomebug:436222
make the CcBrush an interface: gnomebug:436223
- repair the text editing capabilities: gnomebug:379992
5.2. 0.0.7
- canvas editor (plus load and save functionality): gnomebug:379332
- selection support: gnomebug:379329
- a cleaner observer interface implementation
widget embedding (based upon GTK+ 2.12 and offscreen rendering to not even start having the bugs that GnomeCanvas had with relation to widget embedding)
5.3. Future
- better API for item composition
- full a11y (accessibility) implementation based upon gailcanvas
- more powerful brushes
- refactoring
- add clipping and affine transformations to the items (and integrate well with layout managers)
- add support for cascading styles
- add support for themes
- easy animations: gnomebug:379324
finish CcImageWriter: gnomebug:379338