Source Repository

  • Check out with:
    git clone git://
    (It's in jhbuild too, as libccc)

  • Browse




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.


Printing is not yet implemented. I have several ideas for that, but there's 2 things we need for that:

Embedding Widgets

Alex wrote some code for off screen rendering, let's see whether we can get widgets to be displayed.

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.

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.


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).


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


  • 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)


  • better API for item composition
  • full a11y (accessibility) implementation based upon gailcanvas
  • more powerful brushes
  • refactoring
    • rewrite of the transformation code
    • implement all the views directly using the CcCamera and make sure that CcCamera can do everything the other views need (this makes the implementation of the MockView easier and allows better testing of the views)

  • 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

Attic/Criawips/CriaCanvas (last edited 2013-11-22 22:22:19 by WilliamJonMcCann)