[cairo-commit] goocanvas ChangeLog,1.113,1.114 TODO,1.32,1.33

Damon Chaplin commit at pdx.freedesktop.org
Fri May 11 09:30:57 PDT 2007


Committed by: damon

Update of /cvs/cairo/goocanvas
In directory kemper:/tmp/cvs-serv11649

Modified Files:
	ChangeLog TODO 
Log Message:
2007-05-11  Damon Chaplin  <damon at gnome.org>

	* demo/demo-large-rect.c: 
	* demo/demo-large-line.c: 
	* demo/demo-large-items.c: new demo and items to show how to create a
	very large canvas and very large items.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_line_width): 
	added utility function to get an item's line width.
	Also changed default line width property value to 2.0, and returned
	canvas line width setting if item's line width isn't set.

	* src/goocanvasrect.c (goo_canvas_rect_update): 
	* src/goocanvaspolyline.c (goo_canvas_polyline_reconfigure_arrows): use
	the above function to get the line width.



Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/goocanvas/ChangeLog,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- ChangeLog	30 Apr 2007 21:09:45 -0000	1.113
+++ ChangeLog	11 May 2007 16:30:46 -0000	1.114
@@ -1,3 +1,19 @@
+2007-05-11  Damon Chaplin  <damon at gnome.org>
+
+	* demo/demo-large-rect.c: 
+	* demo/demo-large-line.c: 
+	* demo/demo-large-items.c: new demo and items to show how to create a
+	very large canvas and very large items.
+
+	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_line_width): 
+	added utility function to get an item's line width.
+	Also changed default line width property value to 2.0, and returned
+	canvas line width setting if item's line width isn't set.
+
+	* src/goocanvasrect.c (goo_canvas_rect_update): 
+	* src/goocanvaspolyline.c (goo_canvas_polyline_reconfigure_arrows): use
+	the above function to get the line width.
+
 2007-04-30  Damon Chaplin  <damon at gnome.org>
 
 	* src/goocanvas.c (goo_canvas_create_cairo_context): if the GooCanvas

Index: TODO
===================================================================
RCS file: /cvs/cairo/goocanvas/TODO,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- TODO	30 Apr 2007 21:09:45 -0000	1.32
+++ TODO	11 May 2007 16:30:46 -0000	1.33
@@ -9,6 +9,12 @@
    errors. Maybe we should extend any bounds returned from cairo slightly to
    cover the maximum possible errors.
 
+ o goo_canvas_set_bounds() doesn't update the display correctly. Currently
+   you need to do something like goo_canvas_set_scale() afterwards.
+
+ o button press events are generating leave-notify and enter-notify signals.
+   Seems to be a GTK+/X problem.
+
 
 Features definitely needed:
 
@@ -18,15 +24,29 @@
  o Need a function to setup a given cairo context with the defaults settings
    of a GooCanvas, e.g. default line width.
 
+ o Check canvas and all items can be completely configured with properties
+   so that GtkBuilder can be used to load hierarchies of items/models.
+   Add "root-item" and "root-item-model" properties? Will GtkBuilder be able
+   to handle the tree of items/models like that? What about GUI builders?
+   How can gradients be specified by object properties?
+
 
 Possible additional features:
 
  o "scale-x" and "scale-y" properties to allow setting different horizontal
    and vertical scales. We already seem to support this internally.
+ o "scale-line-width" boolean property to specify if the line width scales
+   with the canvas? The item bounds will change at different scale settings.
+
+ o Need a way to efficiently notify items about changes in canvas scale, if
+   they request it. Could use something similar to the update flags.
 
  o "integer-layout" property for GooCanvas so all containers like
    GooCanvasTable do layout in integers (i.e. on the pixel grid).
 
+ o Change GooCanvasStyle so it doesn't expose GValues in the API.
+   Use get/set_boolean/int/double/boxed() instead.
+
  o Caching of rendered items to improve performance. Items would have a cache
    option with choices like Never, Always and WhenVisible.
  o Sticky items that don't move at all as the canvas is scrolled & zoomed.
@@ -35,3 +55,22 @@
  o Support using system color names, like SVG, e.g. "ActiveBorder".
    This helps you write widget-like items that fit in with the rest of GTK+.
 
+
+Requests from GTK+ people:
+
+ o Use separate GooCanvasContainer[Model] interfaces? May help bindings.
+ o Implicit bounds -  goo_canvas_set_bounds_implicit (gboolean from_origin,
+                                                      gdouble  border_width);
+   Also add properties like "implicit-bounds", "bounds-from-origin",
+   "bounds-border".
+ o GooCanvasWidget width & height are redundant - use widget's requested size.
+ o Make PathCommand and LineDash structs opaque.
+ o Use floating flag and sink() for objects.
+ o Use 1-byte integer percentage for xalign/yalign instead of doubles?
+ o Make it easy to add a border and background to items. "border-width",
+   "border-color" and "background-color" properties? Might also need "x-pad",
+   "y-pad", "x-radius", "y-radius" etc. Maybe have a related border item.
+ o Link/URL item, or enable URLs in the markup of text items.
+ o A button item, with different children displayed for different states,
+   maybe with optional automatic prelighting.
+



More information about the cairo-commit mailing list