home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / doc / libgoocanvas3 / TODO < prev   
Encoding:
Text File  |  2009-04-19  |  3.2 KB  |  72 lines

  1.  
  2. NOTE: I am no longer actively developing GooCanvas, so no major new
  3. features will be added (unless a new maintainer takes over). I'll still
  4. try to fix any bugs that appear though, and may accept minor patches.
  5.  
  6.  
  7. Bugs:
  8.  
  9.  o I need to check the bounds are being calculated correctly so that they
  10.    are correct for all zoom settings. Since cairo uses fixed point maths
  11.    and I think only calculates up to a certain tolerance there might be
  12.    slight errors in our gdouble results. So as the canvas is scaled this
  13.    could eventually lead to the bounds being a pixel out, leading to painting
  14.    errors. Maybe we should extend any bounds returned from cairo slightly to
  15.    cover the maximum possible errors.
  16.  
  17.  
  18. Features definitely needed:
  19.  
  20.  o API for modifying GooCanvasPath data.
  21.  o Editable text item - a port of GtkTextView.
  22.  
  23.  o Need a function to setup a given cairo context with the defaults settings
  24.    of a GooCanvas, e.g. default line width.
  25.  
  26.  o Check canvas and all items can be completely configured with properties
  27.    so that GtkBuilder can be used to load hierarchies of items/models.
  28.    Add "root-item" and "root-item-model" properties? Will GtkBuilder be able
  29.    to handle the tree of items/models like that? What about GUI builders?
  30.    How can gradients be specified by object properties?
  31.  
  32.  
  33. Possible additional features:
  34.  
  35.  o Need a way to efficiently notify items about changes in canvas scale, if
  36.    they request it. Could use something similar to the update flags.
  37.  
  38.  o Change GooCanvasStyle so it doesn't expose GValues in the API.
  39.    Use get/set_boolean/int/double/boxed() instead.
  40.  
  41.  o Drag-and-Drop - probably copy all the GTK+ widget signals so items can
  42.    implement their own behavior.
  43.  
  44.  o Caching of rendered items to improve performance. Items would have a cache
  45.    option with choices like Never, Always and WhenVisible.
  46.    But don't use caches when printing.
  47.  o Filters like in SVG, to add graphical effects.
  48.  o Support using the same item in different places, like SVG 'use'.
  49.  o Support using system color names, like SVG, e.g. "ActiveBorder".
  50.    This helps you write widget-like items that fit in with the rest of GTK+.
  51.  o "scale-line-width" boolean property to specify if the line width scales
  52.    with the canvas? The item bounds will change at different scale settings.
  53.  o Arrows on path items, just like on polyline.
  54.  
  55.  
  56. Requests from GTK+ people:
  57.  
  58.  o Use separate GooCanvasContainer[Model] interfaces? May help bindings.
  59.  o GooCanvasWidget width & height are redundant - use widget's requested size.
  60.  o Make PathCommand and LineDash structs opaque.
  61.  o Use floating flag and sink() for objects.
  62.  o Use 1-byte integer percentage for xalign/yalign instead of doubles?
  63.  o Make it easy to add a border and background to items. "border-width",
  64.    "border-color" and "background-color" properties? Might also need "x-pad",
  65.    "y-pad", "x-radius", "y-radius" etc. Maybe have a related border item.
  66.    Note that we only have the bounds in device coords, so drawing a border of
  67.    a rotated item would be awkward. (Maybe we store the user bounds somewhere.)
  68.  o Link/URL item, or enable URLs in the markup of text items.
  69.  o A button item, with different children displayed for different states,
  70.    maybe with optional automatic prelighting.
  71.  
  72.